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
要查詢的屬性名稱。 原則和結束模組應該支援下列屬性。
值 | 意義 |
---|---|
|
模組的名稱。 |
|
模組的描述。 |
|
與課程模組相關的著作權。 |
|
模組檔案的版本。 |
|
模組的版本。 |
[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