IMFAttributes::GetBlob メソッド (mfobjects.h)
キーに関連付けられているバイト配列を取得します。 このメソッドは、呼び出し元によって割り当てられたバッファーに配列をコピーします。
構文
HRESULT GetBlob(
[in] REFGUID guidKey,
[out] UINT8 *pBuf,
[in] UINT32 cbBufSize,
[out] UINT32 *pcbBlobSize
);
パラメーター
[in] guidKey
取得する値を識別する GUID。 属性の型は MF_ATTRIBUTE_BLOBする必要があります。
[out] pBuf
呼び出し元によって割り当てられたバッファーへのポインター。 キーが見つかり、値がバイト配列である場合、メソッドは配列をこのバッファーにコピーします。 バッファーの必要なサイズを見つけるには、 IMFAttributes::GetBlobSize を呼び出します。
[in] cbBufSize
pBuf バッファーのサイズ (バイト単位)。
[out] pcbBlobSize
バイト配列のサイズを受け取ります。 このパラメーターは、NULL でもかまいません。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
バッファーが配列に対して十分な大きさではありません。 |
|
指定したキーが見つかりませんでした。 |
|
属性値はバイト配列ではありません。 |
注釈
また、バイト配列を保持するバッファーを割り当てる IMFAttributes::GetAllocatedBlob メソッドを使用することもできます。
このインターフェイスは、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 の更新プログラムのロールアップ) がインストールされています。
例
次のコード例は、値がバイト配列である属性を取得する方法を示しています。
HRESULT AttributeGetBlob(IMFAttributes *pAttributes)
{
HRESULT hr = S_OK;
UINT32 cbBlob = 0;
BYTE *pBlob = NULL;
hr = pAttributes->GetBlobSize(MY_ATTRIBUTE, &cbBlob);
if (SUCCEEDED(hr))
{
pBlob = new BYTE[cbBlob];
if (pBlob == NULL)
{
hr = E_OUTOFMEMORY;
}
}
if (SUCCEEDED(hr))
{
hr = pAttributes->GetBlob(MY_ATTRIBUTE, pBlob, cbBlob, &cbBlob);
}
if (pBlob)
{
delete [] pBlob;
}
return hr;
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | mfobjects.h (Mfidl.h を含む) |
Library | Mfuuid.lib |