IMFMediaEvent::GetValue 方法 (mfobjects.h)

如果有的話,擷取與事件相關聯的值。 此值會擷取為 PROPVARIANT 結構。 實際數據類型和值的意義取決於 事件。

語法

HRESULT GetValue(
  [out] PROPVARIANT *pvValue
);

參數

[out] pvValue

PROPVARIANT 結構的指標。 方法會以數據填入這個結構。

傳回值

方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。

傳回碼 描述
S_OK
此方法已成功。

備註

呼叫這個方法之前,請先呼叫 PropVariantInit 來初始化 PROPVARIANT 結構。 方法傳回之後,呼叫 PropVariantClear 以釋放配置給 PROPVARIANT 數據的記憶體。

如果已安裝 Windows Media Format 11 SDK 可轉散發元件,此介面可在下列平臺上使用:

  • Windows XP with Service Pack 2 (SP2) 和更新版本。
  • 已安裝 Windows XP Media Center Edition 2005 KB900325 (Windows XP Media Center Edition 2005) 和 KB925766 (2006 年 10 月更新匯總) 的 Windows XP Media Center Edition 2005。

範例

如果值是 IUnknown 指標,則下列函式會取得事件值。 如果 PROPVARIANT 類型不是 VT_UNKOWN,函式會 傳回MF_E_INVALIDTYPE

//  Gets an IUnknown pointer from an IMFMediaEvent event and queries 
//  the pointer for a specified interface.
//
//  NOTE: Applies only to events that contain IUnknown pointers.
//        Otherwise, the function returns MF_E_INVALIDTYPE.

template <class Q>
HRESULT GetEventObject(IMFMediaEvent *pEvent, Q **ppObject)
{
    *ppObject = NULL;   // zero output

    PROPVARIANT var;
    HRESULT hr = pEvent->GetValue(&var);
    if (SUCCEEDED(hr))
    {
        if (var.vt == VT_UNKNOWN)
        {
            hr = var.punkVal->QueryInterface(ppObject);
        }
        else
        {
            hr = MF_E_INVALIDTYPE;
        }
        PropVariantClear(&var);
    }
    return hr;
}


規格需求

需求
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 mfobjects.h (包含 Mfidl.h)
程式庫 Mfuuid.lib

另請參閱

IMFMediaEvent

媒體事件產生器