Метод 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 |