Поделиться через


Метод 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

ICertConfig

ICertManageModule

ICertManageModule::SetProperty