共用方式為


propVariantToCLSID 函式 (propvarutil.h)

擷取類別標識碼 (CLSID) PROPVARIANT 結構的屬性值。

語法

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 保留單一 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