IKsPropertySet::Get 方法

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

Get 方法检索由属性集 GUID 和属性 ID 标识的属性。

语法

HRESULT Get(
  [in]  REFGUID guidPropSet,
  [in]  DWORD   dwPropID,
  [in]  LPVOID  pInstanceData,
  [in]  DWORD   cbInstanceData,
  [out] LPVOID  pPropData,
  [in]  DWORD   cbPropData,
  [out] DWORD   *pcbReturned
);

参数

guidPropSet [in]

属性的 GUID 设置 。

dwPropID [in]

属性集中属性的标识符。

pInstanceData [in]

指向包含 属性的实例数据的字节数组的指针。

cbInstanceData [in]

pInstanceData 中给定的数组的大小(以字节为单位)。

pPropData [out]

指向接收属性数据的字节数组的指针。

cbPropData [in]

pPropData 中给定的数组的大小(以字节为单位)。

2013 年 [out]

接收方法复制到 pPropData 数组的字节数。

返回值

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

返回代码 说明
S_OK
成功。
E_PROP_SET_UNSUPPORTED
不支持属性集。
E_PROP_ID_UNSUPPORTED
指定的属性集不支持属性 ID。

 

备注

备注

dsound.h 头文件中存在另一个此名称的接口。 这两个接口不兼容。 DirectShow DDK 中记录的 IKsControl 接口现在是在 WDM 驱动程序和用户模式组件之间传递属性集的推荐接口。

 

若要检索属性,请分配一个缓冲区,然后此方法将填充该缓冲区。 若要确定必要的缓冲区大小,请为 pPropData 指定 NULL,为 cbPropData 指定零 (0) 。 此方法返回所需的缓冲区大小(以回转)。

必须在 Ksproxy.h 之前包括 Ks.h。

示例

以下示例通过检索 AMPROPERTY_PIN_CATEGORY 属性来查询固定类别的 固定 。 (请参阅 Pin 属性 Set.)

HRESULT GetPinCategory(IPin *pPin, GUID *pPinCategory)
{
    IKsPropertySet *pKs = NULL;

    HRESULT hr = pPin->QueryInterface(IID_PPV_ARGS(&pKs));
    if (FAILED(hr))
    {
        return hr;
    }

    // Try to retrieve the pin category.
    DWORD cbReturned = 0;
    hr = pKs->Get(AMPROPSETID_Pin, AMPROPERTY_PIN_CATEGORY, NULL, 0, 
        pPinCategory, sizeof(GUID), &cbReturned);
    
    // If this succeeded, pPinCategory now contains the category GUID.

    SafeRelease(&pKs);
    return hr;
}

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Ksproxy.h

Strmiids.lib

另请参阅

错误和成功代码

IKsPropertySet 接口

属性集