次の方法で共有


VariantToDoubleArray 関数 (propvarutil.h)

VARIANT 構造体から DOUBLE 値の配列を抽出します。

構文

PSSTDAPI VariantToDoubleArray(
  [in]  REFVARIANT var,
  [out] DOUBLE     *prgn,
  [in]  ULONG      crgn,
  [out] ULONG      *pcElem
);

パラメーター

[in] var

型: REFVARIANT

ソース VARIANT 構造体への参照。

[out] prgn

種類: DOUBLE*

crgnDOUBLE 値を含むバッファーへのポインター。 この関数が戻ると、バッファーはソース VARIANT 構造体から抽出された *pcElemDOUBLE 要素で初期化されています。

[in] crgn

種類: ULONG

prgn が指すバッファー内の要素の数。

[out] pcElem

種類: ULONG*

この関数が戻るとき、 には、ソース VARIANT 構造体から抽出された DOUBLE 要素の数が含まれます。

戻り値

種類: HRESULT

成功 した場合はS_OK を返し、それ以外の場合は次のようなエラー値を返します。

リターン コード 説明
TYPE_E_BUFFERTOOSMALL
ソース VARIANTcrgn 値を超える値が含まれていました。
E_INVALIDARG
VARIANT が適切な型ではありません。

注釈

このヘルパー関数は、呼び出し元のアプリケーションが VARIANT が、固定数の DOUBLE 値で構成される配列を保持することを想定している場合に使用されます。

ソース VARIANT の型が VT_ARRAY の場合 |VT_DOUBLE、この関数は最大 crgnDOUBLE 値を抽出し、 prgn が指すバッファーに配置します。

VARIANTprgn バッファーに収まるより多くの要素が含まれている場合、この関数はエラーを返し、*pcElem を 0 に設定します。

大規模なプログラムの一部として含める次の例では、VariantToDoubleArray を使用して VARIANT に格納されている DOUBLE 配列にアクセスする方法を示します。

// VARIANT var;
// Assume variable var is initialized and valid.
DOUBLE rgDoubles[4]; // The application expects var to hold 4 DOUBLEs in an array.
ULONG cDoubles;

HRESULT hr = VariantToDoubleArray(var, rgDoubles, ARRAYSIZE(rgDoubles), &cFlags);

if (SUCCEEDED(hr))
{
    if (cFlags == ARRAYSIZE(rgDoubles))
    {
        // The application got 4 DOUBLEs which are now stored in rgDoubles.
    }
    else
    {
        // The application got *pcElem DOUBLEs which are stored in the first 
        // *pcElem elements of rgDoubles.
    }
}

要件

要件
サポートされている最小のクライアント WINDOWS XP と SP2、Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 SP1 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー propvarutil.h
Library Propsys.lib
[DLL] Propsys.dll (バージョン 6.0 以降)
再頒布可能パッケージ Windows デスクトップ検索 (WDS) 3.0

こちらもご覧ください

InitVariantFromDoubleArray

PropVariantToDoubleVector

VariantGetDoubleElem

VariantToDouble

VariantToDoubleArrayAlloc