CBaseDispatch.GetIDsOfNames 方法

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法将 GetIDsOfNames 一组名称映射到一组相应的 DISPID。

语法

HRESULT GetIDsOfNames(
   REFIID  riid,
   OLECHAR **rgszNames,
   UINT    cNames,
   LCID    lcid,
   DISPID  *rgdispid
);

参数

riid

对指定接口的 IID) (接口标识符的引用。

rgszNames

包含要映射的名称的宽字符字符串数组的地址。

cNames

rgszNames 参数给定的数组的大小。

lcid

用于解释名称的区域设置上下文。 可以为 NULL

rgdispid

指向接收 DISPID 的数组的指针。 的每个 元素都接收一个标识符,该标识符对应于 在 rgszNames 参数中传递的名称之一。

返回值

返回 HRESULT 值。 可能的值包括以下值。

返回代码 说明
S_OK
成功。
E_OUTOFMEMORY
内存不足。
DISP_E_UNKNOWNNAME
一个或多个名称未知。

备注

此方法的行为类似于 IDispatch::GetIDsOfNames 方法,但 riid 参数指定检索 DISPID 的接口。 (在 IDispatch 版本中, riid 参数为 reserved.)

如果方法返回DISP_E_UNKNOWNNAME,则返回的 DISPID 包含对应于未知名称的每个条目的DISPID_UNKNOWN。

要求

要求
标头
Ctlutil.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)

另请参阅

CBaseDispatch 类