次の方法で共有


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

次の値のいずれか。

リターン コード 説明
S_OK
データが正常に抽出されました。
E_INVALIDARG
VARIANT が VT_ARRRAY 型ではありません |VT_UI1。
E_FAIL
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

こちらもご覧ください

InitVariantFromBuffer

PropVariantToBuffer