PropVariantToDoubleVector 関数 (propvarutil.h)
PROPVARIANT 構造体から double のベクターを抽出します。
構文
PSSTDAPI PropVariantToDoubleVector(
[in] REFPROPVARIANT propvar,
[out] DOUBLE *prgn,
[in] ULONG crgn,
[out] ULONG *pcElem
);
パラメーター
[in] propvar
型: REFPROPVARIANT
ソース PROPVARIANT 構造体への参照。
[out] prgn
種類: DOUBLE*
crgn DOUBLE 値を含むバッファーを指します。 この関数が戻ると、バッファーは、ソース PROPVARIANT 構造体から抽出された pcElem double 要素で初期化されています。
[in] crgn
種類: ULONG
prgn が指すバッファーの要素のサイズ。
[out] pcElem
種類: ULONG*
この関数が戻るとき、 には、ソース PROPVARIANT 構造体から抽出された二重要素の数が含まれます。
戻り値
種類: HRESULT
この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。
注釈
このヘルパー関数は、呼び出し元アプリケーションが PROPVARIANT で固定数の要素を持つ二重ベクトル値を保持することを想定している場所で使用されます。
ソース PROPVARIANT の型が VT_VECTOR の場合 |VT_R8またはVT_ARRAY |VT_R8、このヘルパー関数は、最大 crgn の二重値を抽出し、 prgn が指すバッファーに配置します。 PROPVARIANT に prgn バッファーに収まるより多くの要素が含まれている場合、この関数はエラーを返し、pcElem を 0 に設定します。
例
// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_GPS_DestLongitude, &propvar);
if (SUCCEEDED(hr))
{
// PKEY_GPS_DestLongitude is expected to produce a VT_VECTOR | VT_R8 with three values, or VT_EMPTY
// PropVariantToDoubleVector will return an error for VT_EMPTY
DOUBLE rgLongitude[3];
ULONG cElem;
hr = PropVariantToDoubleVector(propvar, &rgLongitude, ARRAYSIZE(rgLongitude), &cElem);
if (SUCCEEDED(hr))
{
if (cElem == ARRAYSIZE(rgLongitude))
{
// rgLongitude contains 3 doubles representing the degrees, minutes, and seconds of longitude
}
else
{
// The first cElem doubles from propvar are stored in the first 3 elements of rgLongitude
}
else
{
// propvar either is VT_EMPTY, or contains something other than a vector of 3 doubles
}
PropVariantClear(&propvar);
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | WINDOWS XP と SP2、Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 SP1 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | propvarutil.h |
Library | Propsys.lib |
[DLL] | Propsys.dll (バージョン 6.0 以降) |
再頒布可能パッケージ | Windows デスクトップ検索 (WDS) 3.0 |
こちらもご覧ください
InitPropVariantFromDoubleVector