IKsPropertySet::Get 方法

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

Get方法會擷取屬性集 GUID 和屬性識別碼所識別的屬性。

語法

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中指定陣列的大小,以位元組為單位。

停止 [out]

接收方法複製到 pPropData 陣列的位元組數目。

傳回值

傳回 HRESULT 值。 可能的值如下。

傳回碼 描述
S_OK
成功。
E_PROP_SET_UNSUPPORTED
不支援屬性集。
E_PROP_ID_UNSUPPORTED
指定的屬性集不支援屬性識別碼。

 

備註

注意

此名稱的另一個介面存在於 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 介面

屬性集