VariantToBuffer 関数 (propvarutil.h)
VT_ARRRAY 型の VARIANT 構造体に格納されているバッファーの内容を抽出します。 |VT_UI1。
構文
PSSTDAPI VariantToBuffer(
[in] REFVARIANT varIn,
[out] void *pv,
[in] UINT cb
);
パラメーター
[in] varIn
型: REFVARIANT
ソース VARIANT 構造体への参照。
[out] pv
型: VOID*
長 さ cb バイトのバッファーへのポインター。 この関数が戻るときに、抽出されたバッファー値の最初の cb バイトが格納されます。
[in] cb
型: UINT
pv バッファーのサイズ (バイト単位)。 バッファーのサイズは、抽出するデータと同じか、小さくする必要があります。
戻り値
型: HRESULT
次の値のいずれか。
リターン コード | 説明 |
---|---|
|
データが正常に抽出されました。 |
|
VARIANT が VT_ARRRAY 型ではありません |VT_UI1。 |
|
VARIANT バッファー値は cb バイト未満でした。 |
注釈
この関数は、呼び出し元のアプリケーションがバッファー値を保持する VARIANT を想定している場合に使用されます。 呼び出し元のアプリケーションは、この関数を呼び出す前に、値の長さが予想されることをチェックする必要があります。
ソース VARIANT の型がVT_ARRAYの場合 |VT_UI1、この関数は構造体から最初の cb バイトを抽出し、 pv が指すバッファーに配置します。
格納されている値が cb バイト未満の場合、 VariantToBuffer は失敗し、バッファーは変更されません。
値が cb バイトを超える場合、 VariantToBuffer は成功し、値を切り捨てます。
例
次の例は、より大きなプログラムの一部として含めるために、 VariantToBuffer を 使用して 、VARIANT に格納されている構造体にアクセスする方法を示しています。
// VARIANT var;
// Assume variable var is initialized and valid.
// The application expects var to hold a WIN32_FIND_DATAW structure
// with sizeof(WIN32_FIND_DATAW) bytes.
HRESULT hr = E_UNEXPECTED;
// Verify that the value length is acceptable before you call VariantToBuffer.
if (VariantGetElementCount(var) == sizeof(WIN32_FIND_DATAW))
{
WIN32_FIND_DATAW wfd;
hr = VariantToBuffer(var, &wfd, sizeof(wfd));
if (SUCCEEDED(hr))
{
// wfd is now initialized.
}
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | WINDOWS XP と SP2、Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 SP1 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | propvarutil.h |
Library | Propsys.lib |
[DLL] | Propsys.dll (バージョン 6.0 以降) |
再頒布可能パッケージ | Windows デスクトップ検索 (WDS) 3.0 |