Compartilhar via


Método ICertManageModule::GetProperty (certmod.h)

O método GetProperty recupera o valor da propriedade de um módulo.

Sintaxe

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

Parâmetros

[in] strConfig

Representa a cadeia de caracteres de configuração para o servidor dos Serviços de Certificados no formato COMPUTERNAME\CANAME, em que COMPUTERNAME é o nome de rede do servidor de Serviços de Certificados e CANAME é o nome comum da AC (autoridade de certificação ), conforme inserido para a AC durante a instalação dos Serviços de Certificados. Para obter informações sobre o nome da cadeia de caracteres de configuração, consulte ICertConfig.

[in] strStorageLocation

Uma chave do Registro que indica o local de armazenamento no hive HKEY_LOCAL_MACHINE para os valores da propriedade. Esse valor está no seguinte formato:

SYSTEM
   CurrentControlSet
      Services
         CertSvc
            Configuration
               CAName
                  PolicyOrExitModules
                     MyModule.PolicyOrExit

O CAName é o nome da cadeia de caracteres de configuração da autoridade de certificação, PolicyOrExitModules será "Policy" ou "Exit" (dependendo se um módulo Policy ou Exit se aplica a essa implementação de ICertManageModule) e MyModule.PolicyOrExit é o identificador específico do aplicativo para o módulo. Observe que CAName é o nome higienizado para a autoridade de certificação. Para obter informações sobre o nome sanitizado, consulte ICertConfig::GetConfig. O uso desse local de armazenamento é para uso futuro.

[in] strPropertyName

O nome da propriedade que está sendo consultada. Os módulos de política e saída devem dar suporte às propriedades a seguir.

Valor Significado
Nome
Nome do módulo.
Descrição
Descrição do módulo.
Direitos autorais
Direitos autorais relativos ao módulo.
Versão do Arquivo
Versão do arquivo de módulo.
Versão do produto
Versão do módulo.

[in] Flags

Esse parâmetro é reservado e deve ser definido como zero.

[out, retval] pvarProperty

Um ponteiro para um VARIANT que é o valor recuperado para a propriedade especificada por strPropertyName.

Retornar valor

C++

Se o método for bem-sucedido, o método retornará S_OK.

Se o método falhar, ele retornará um valor HRESULT que indica o erro. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

VB

O valor retornado é um Variant que representa o valor da propriedade chamada strPropertyName.

Comentários

Implementar ICertManageModule permite que o Gerenciador de Serviços de Certificados recupere as propriedades do módulo chamando GetProperty. As propriedades podem ser exibidas nas páginas de propriedades do Gerenciador de Serviços de Certificados para Módulos de Política e Saída. O Gerenciador de Serviços de Certificados passará o local referenciado por strStorageLocation para este módulo e, em versões futuras, a implementação desse método poderá usar esse local conforme necessário. O exemplo a seguir não usa strStorageLocation , mas mantém os valores de propriedade na memória.

Exemplos

#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;
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Nenhum compatível
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certmod.h (inclua Certsrv.h)
Biblioteca Certidl.lib

Confira também

CCertManageModule

ICertConfig

ICertManageModule

ICertManageModule::SetProperty