IMFMediaEvent::GetValue メソッド (mfobjects.h)
イベントに関連付けられている値 (存在する場合) を取得します。 値は PROPVARIANT 構造体として取得されます。 実際のデータ型と値の意味は、イベントによって異なります。
構文
HRESULT GetValue(
[out] PROPVARIANT *pvValue
);
パラメーター
[out] pvValue
PROPVARIANT 構造体へのポインター。 メソッドは、この構造体にデータを入力します。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
注釈
このメソッドを呼び出す前に、 PropVariantInit を呼び出して PROPVARIANT 構造体を初期化します。 メソッドが戻った後、 PropVariantClear を呼び出して、 PROPVARIANT データに割り当てられたメモリを解放します。
このインターフェイスは、Windows Media Format 11 SDK 再頒布可能コンポーネントがインストールされている場合、次のプラットフォームで使用できます。
- Windows XP 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 の更新プログラムのロールアップ) がインストールされています。
例
次の関数は、値が 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 を含む) |
Library | Mfuuid.lib |