Метод 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 — общее имя центра сертификации (ЦС), введенное для ЦС во время установки служб сертификации. Сведения об имени строки конфигурации см. в разделе ICertConfig.
[in] strStorageLocation
Раздел реестра, обозначающий расположение хранилища в кусте HKEY_LOCAL_MACHINE для значений свойств. Это значение имеет следующий вид:
SYSTEM CurrentControlSet Services CertSvc Configuration CAName PolicyOrExitModules MyModule.PolicyOrExit
CAName — это имя строки конфигурации центра сертификации, PolicyOrExitModules — "Policy" или "Exit" (в зависимости от того, применяется ли модуль Policy или 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 |
Header | certmod.h (включая Certsrv.h) |
Библиотека | Certidl.lib |
См. также раздел
CCertManageModule