次の方法で共有


PropVariantToUInt64WithDefault 関数 (propvarutil.h)

PROPVARIANT 構造体から ULONGLONG 値を抽出します。 値が存在しない場合は、指定された既定値が返されます。

構文

PSSTDAPI_(ULONGLONG) PropVariantToUInt64WithDefault(
  [in] REFPROPVARIANT propvarIn,
  [in] ULONGLONG      ullDefault
);

パラメーター

[in] propvarIn

型: REFPROPVARIANT

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

[in] ullDefault

種類: ULONGLONG

現在値が存在しない場合に使用する既定のプロパティ値を指定します。

戻り値

種類: ULONGLONG

抽出された符号なし LONGLONG 値または既定値を返します。

注釈

このヘルパー関数は、呼び出し元のアプリケーションが PROPVARIANTULONGLONG 値を保持することを想定し、そうでない場合は既定値を使用する場所で使用されます。 たとえば、プロパティ ストアから値を取得するアプリケーションでは、これを使用して、UInt64 プロパティの ULONGLONG 値を安全に抽出できます。

ソース PROPVARIANT型VT_UI8がある場合、このヘルパー関数は ULONGLONG 値を抽出します。 それ以外の場合は、 PROPVARIANT 構造体の値を ULONGLONG に変換しようとします。 ソース PROPVARIANT型VT_EMPTY がある場合、または変換できない場合、 PropVariantToUInt64WithDefaultullDefault によって提供される既定値を返します。 可能な変換の一覧については、「 PropVariantChangeType 」を参照してください。

より大きなプログラムの一部として含める次の例は、PropVariantToUInt64WithDefault を使用して PROPVARIANTULONGLONG 値にアクセスする方法を示しています。

// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_Size, &propvar);
if (SUCCEEDED(hr))
{
     // PKEY_Size is expected to produce a VT_UI8 or VT_EMPTY value.
     // The application developer decided to treat VT_EMPTY or invalid values as 0
     ULONGLONG ullSize = PropVariantToUInt64WithDefault(propvar, 0);
     // ullSize is now valid.
     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