共用方式為


ICertManageModule::GetProperty 方法 (certmod.h)

GetProperty 方法會擷取模組的屬性值。

語法

HRESULT GetProperty(
  [in]          const BSTR strConfig,
  [in]          BSTR       strStorageLocation,
  [in]          BSTR       strPropertyName,
  [in]          LONG       Flags,
  [out, retval] VARIANT    *pvarProperty
);

參數

[in] strConfig

代表 COMPUTERNAME\CANAME 格式的憑證服務伺服器的組態字串,其中 COMPUTERNAME 是憑證服務伺服器的網路名稱,CANAME 是 證書頒發機構單位 的一般名稱, (CA) 在憑證服務設定期間為 CA 輸入。 如需組態字串名稱的相關信息,請參閱 ICertConfig

[in] strStorageLocation

登錄機碼,表示屬性值 之HKEY_LOCAL_MACHINE hive 中的儲存位置。 此值格式如下:

SYSTEM
   CurrentControlSet
      Services
         CertSvc
            Configuration
               CAName
                  PolicyOrExitModules
                     MyModule.PolicyOrExit

CAName 是證書頒發機構單位組態字串的名稱,PolicyOrExitModules 將會是“Policy” 或 “Exit” (,視原則或 Exit 模組套用至此 ICertManageModule) 實作而定,而 MyModule.PolicyOrExit 是模組的應用程式特定標識符。 請注意, CAName 是證書頒發機構單位的 清理名稱 。 如需清理名稱的相關信息,請參閱 ICertConfig::GetConfig。 使用此儲存位置是供日後使用。

[in] strPropertyName

要查詢的屬性名稱。 原則和結束模組應該支援下列屬性。

意義
名稱
模組的名稱。
描述
模組的描述。
Copyright (著作權)
與課程模組相關的著作權。
檔案版本
模組檔案的版本。
產品版本
模組的版本。

[in] Flags

此參數是保留的,而且必須設定為零。

[out, retval] pvarProperty

VARIANT 的指標,這是 strPropertyName 所指定之屬性的擷取值。

傳回值

C++

如果方法成功,方法會傳回S_OK。

如果方法失敗,它會傳回 HRESULT 值,指出錯誤。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

VB

傳回值是 Variant ,代表名為 strPropertyName 的屬性值。

備註

實作 ICertManageModule 可讓憑證服務管理員藉由呼叫 GetProperty 來擷取模組的屬性。 然後,您可以在 [原則] 和 [結束模組] 的 [憑證服務管理員] 屬性頁中顯示屬性。 憑證服務管理員會將 strStorageLocation 所參考的位置傳遞至本課程模組,而在未來的版本中,此方法的實作會視需要使用這個位置。 下列範例不會使用 strStorageLocation ,而是會維護記憶體中的屬性值。

範例

#include <windows.h>
#include <Certmod.h>

HRESULT CCertManagePolicyModule::GetProperty(
            /* [in] */ const BSTR strConfig,
            /* [in] */ BSTR strStorageLocation,
            /* [in] */ BSTR strPropertyName,
            /* [in] */ LONG Flags,
            /* [retval][out] */ VARIANT *pvarProperty)
{
    // Array of property Names.
    // These values are defined in Certmod.h.
    wchar_t const * awszPropName[] =
    {
        wszCMM_PROP_NAME,
        wszCMM_PROP_DESCRIPTION,
        wszCMM_PROP_COPYRIGHT,
        wszCMM_PROP_FILEVER,
        wszCMM_PROP_PRODUCTVER
    };

    // Array of property Values.
    // These values are module-specific, and
    // correspond to the property names in    
    // awszPropName (same index).
    wchar_t const * awszPropValue[] = 
   {
        L"MyModule",                      // NAME
        L"Description of MyModule",       // DESCRIPTION
        L"Copyright 1998",                // COPYRIGHT
        L"1.0",                           // FILE VERSION
        L"1.0"                            // PRODUCT VERSION
    };
    int     i;
    bool    bFound = FALSE;
    HRESULT hr;

    // Return appropriate error if strPropertyName is NULL.
    if (NULL == strPropertyName)
        return E_INVALIDARG;

    // Return appropriate error if pvarProperty is NULL.
    if (NULL == pvarProperty)
        return E_POINTER;
    // Determine whether the requested property is in the Name array.
    for (i=0; i<sizeof(awszPropName)/sizeof(wchar_t *); i++)
        if (!wcscmp( strPropertyName, awszPropName[i]))        
        {
            bFound = TRUE;  // Found the index for the property.
            break;
        }
    if ( !bFound )
        return S_FALSE;     // Requested property not found.

    // Allocate storage for the property value.
    pvarProperty->bstrVal = SysAllocString(awszPropValue[i]);
    if (NULL == pvarProperty->bstrVal)
        return E_OUTOFMEMORY;   

    pvarProperty->vt = VT_BSTR;

    return S_OK;
}

規格需求

需求
最低支援的用戶端 都不支援
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 certmod.h (包含 Certsrv.h)
程式庫 Certidl.lib

另請參閱

CCertManageModule

ICertConfig

ICertManageModule

ICertManageModule::SetProperty