IADsExtension::P rivateGetIDsOfNames 方法 (iads.h)

IADsExtension::P rivateGetIDsOfNames 方法由聚合器 ADSI 调用,在 ADSI 确定扩展用于支持双重接口或调度接口之后。 方法可以使用类型数据通过 IDispatch::GetIDsOfNames 获取 DISPID

语法

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
标头 iads.h
DLL Activeds.dll

另请参阅

ADSI 错误代码

IADsExtension

IADsExtension::P rivateInvoke

IDispatch::GetIDsOfNames