次の方法で共有


PropVariantToCLSID 関数 (propvarutil.h)

PROPVARIANT 構造体のクラス識別子 (CLSID) プロパティ値を抽出します。

構文

HRESULT PropVariantToCLSID(
  [in]  REFPROPVARIANT propvar,
  [out] CLSID          *pclsid
);

パラメーター

[in] propvar

型: REFPROPVARIANT

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

[out] pclsid

種類: CLSID*

この関数が返されるときに、抽出されたプロパティ値が存在する場合は 格納されます。

戻り値

型: HRESULT

この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

注釈

このヘルパー関数は、次の型のPROPVARIANT 構造体に対して機能します。

  • VT_CLSID
  • VT_BSTR
  • VT_LPWSTR
  • VT_ARRAY |VT_UI1
これはインライン関数であり、そのソース コードは ヘッダーに用意されています。 .dll または .lib ファイルには含まれません。

PropVariantToCLSID は、呼び出し元のアプリケーションが PROPVARIANT が 1 つの CLSID または GUID 値を保持することを想定している場所で使用されます。 たとえば、プロパティ ストアから値を取得するアプリケーションでは、これを使用して GUID プロパティの CLSID 値を安全に抽出できます。

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

// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};

HRESULT hr = ppropstore->GetValue(PKEY_Sync_HandlerCollectionID, &propvar);
if (SUCCEEDED(hr))
{
        // PKEY_Sync_HandlerCollectionID is expected to produce a VT_CLSID or VT_EMPTY value.
        // PropVariantToCLSID will convert VT_EMPTY to a failure code.
        CLSID clsidCollectionID;

        hr = PropVariantToCLSID(propvar, &clsidCollectionID);
        if (SUCCEEDED(hr))
        {
             // clsidCollectionID is now valid
        }
        else
        {
            // the extraction failed
        }
        PropVariantClear(&propvar);
}

要件

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

こちらもご覧ください

InitPropVariantFromCLSID

PropVariantToGUID

VariantToGUID