Поделиться через


Метод IADsExtension::P rivateGetIDsOfNames (iads.h)

Метод IADsExtension::P rivateGetIDsOfNames вызывается агрегатором ADSI после того, как ADSI определяет, что расширение используется для поддержки двойного интерфейса или интерфейса диспетчеризации. Метод может использовать данные типа для получения DISPID с помощью IDispatch::GetIDsOfNames.

Синтаксис

HRESULT PrivateGetIDsOfNames(
  REFIID       riid,
  OLECHAR      **rgszNames,
  unsigned int cNames,
  LCID         lcid,
  DISPID       *rgDispid
);

Параметры

riid

Зарезервировано для последующего использования. Это должно быть IID_NULL.

rgszNames

Переданный массив имен, которые необходимо сопоставить.

cNames

Количество сопоставляемых имен.

lcid

Контекст языкового стандарта для интерпретации имен.

rgDispid

Выделенный вызывающим объектом массив, каждый элемент которого содержит идентификатор, соответствующий одному из имен, переданных в массив rgszNames . Первый элемент представляет имя члена. Последующие элементы представляют каждый из параметров элемента.

Возвращаемое значение

Возвращаемые значения совпадают с значениями стандартного метода IDispatch::GetIDsOfNames . Дополнительные сведения о других возвращаемых значениях см. в разделе Коды ошибок ADSI.

Комментарии

Все параметры имеют то же значение, что и соответствующие параметры в стандартном IDispatch::GetIDsOfNames(). Компонент расширения возвращает уникальный идентификатор (rgDispID) для каждого метода или свойства, определенного в поддерживаемых двойных интерфейсах. Уникальность применяется в компоненте расширения. Поставщик ADSI должен обеспечить уникальность DISPID всех объектов расширения и самого агрегатора (ADSI). Параметр rgDispID должен быть от 1 до 16777215 (2^24-1) или -1 (DISPID_UNKNOWN).

Примеры

В следующем примере кода C/C++ показана универсальная реализация этого метода.

STDMETHOD(PrivateGetIDsOfNames)(REFIID riid, OLECHAR ** rgszNames, unsigned int cNames, LCID lcid, DISPID  * rgdispid)
{
  if (rgdispid == NULL)
  {
     return E_POINTER;
  }
  return  DispGetIDsOfNames(m_pTypeInfo, rgszNames, cNames, rgdispid);
}

Требования

   
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header iads.h
DLL Activeds.dll

См. также раздел

Коды ошибок ADSI

IADsExtension

IADsExtension::P rivateInvoke

IDispatch::GetIDsOfNames