C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Letyshops [lifetime]

 53 - DispGetlDsOfNames / COM-справка / Приложение

Шаг 53 - DispGetlDsOfNames

По информации о типе преобразует заданные имена в соответствующие DISPID. Это рекомендуемая реализация IDispatch::GetIDsOfNames.

HRESULT DispGetIDsOfNames
(
	ITypeInfo*ptinfo,
	OLECHAR FAR* FAR* rgszNames,
	unsigned int cNames,
	DISPID FAR* rgdispid
);

Параметры:

  • ptinfo - Указатель на информацию о типе для интерфейса. Эта информация специфична для одного интерфейса и кода языка, так что функции нет необходимости передавать идентификатор интерфейса (IID) и LCID.
  • rgszNames - Содержащий имена массив строк, это может быть тот же самый массив, что был передан Displnvoke в структуре DISPPARAMS. Если cNames больше 1, то первое имя рассматривается как имя метода, а последующие — как имена параметров данного метода.
  • cNames - Число элементов rgszNames.
  • rgdispid - Указатель на массив DISPID, который функция должна заполнить. Первый идентификатор соответствует имени метода, остальные — именам его параметров.

Коды возврата:
Из возвращенного HRESULT получают один из следующих кодов возврата:

Код возвратаЗначение
S_OKИнтерфейс поддерживается.
E_INVALIDARGОдин из параметров неверен.
DISP_E_UNKNOWNNAMEОдно или несколько заданных имен неизвестны. В элементах возвращаемого массива DISPID, соответствующих неизвестным именам, будет содержаться значение DISPID_UNKNOWN.
ДругиеМогут также возвращаться любые коды возврата ITypelnfo-Invoke.

Пример:
Следующий код из примера Lines (файл Points.cpp) реализует функцию-член GetlDs-OfNames для класса CPoints с помощью DispGetlDsOfNames.

STDMETHODIMP CPoints::GetIDsOfNames( 
	REFIID riid,
	OLECHAR FAR* FAR* rgszNames,
	UINT cNames,
	LCID lcid,
	DISPID FAR* rgdispid) 
{
	return DispGetIDsOfNames(m_ptinfo, rgszNames, cNames, rgdispid); 
}

| |
Автор Каев Артем.
[AD]





Letyshops [lifetime]