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

El método GetProperty recupera el valor de propiedad de un módulo.

Sintaxis

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

Parámetros

[in] strConfig

Representa la cadena de configuración del servidor de Servicios de certificados con el formato COMPUTERNAME\CANAME, donde COMPUTERNAME es el nombre de red del servidor de Servicios de certificados y CANAME es el nombre común de la entidad de certificación (CA) tal como se especifica para la ENTIDAD de certificación durante la configuración de Servicios de certificados. Para obtener información sobre el nombre de la cadena de configuración, vea ICertConfig.

[in] strStorageLocation

Clave del Registro que indica la ubicación de almacenamiento en el subárbol HKEY_LOCAL_MACHINE para los valores de propiedad. Este valor tiene el siguiente formato:

SYSTEM
   CurrentControlSet
      Services
         CertSvc
            Configuration
               CAName
                  PolicyOrExitModules
                     MyModule.PolicyOrExit

CaName es el nombre de la cadena de configuración de la entidad de certificación, PolicyOrExitModules será "Policy" o "Exit" (dependiendo de si un módulo Policy o Exit se aplica a esta implementación de ICertManageModule) y MyModule.PolicyOrExit es el identificador específico de la aplicación para el módulo. Tenga en cuenta que CAName es el nombre saneado de la entidad de certificación. Para obtener información sobre el nombre saneado, vea ICertConfig::GetConfig. El uso de esta ubicación de almacenamiento es para su uso futuro.

[in] strPropertyName

Nombre de la propiedad que se está consultando. Los módulos de directiva y salida deben admitir las siguientes propiedades.

Valor Significado
Nombre
Nombre del módulo.
Descripción
Descripción del módulo.
Copyright
Derechos de autor relativos al módulo.
Versión del archivo
Versión del archivo de módulo.
Versión del producto
Versión del módulo.

[in] Flags

Este parámetro está reservado y debe establecerse en cero.

[out, retval] pvarProperty

Puntero a un valor VARIANT que es el valor recuperado de la propiedad especificada por strPropertyName.

Valor devuelto

C++

Si el método se realiza correctamente, el método devuelve S_OK.

Si se produce un error en el método, devuelve un valor HRESULT que indica el error. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

VB

El valor devuelto es un valor Variant que representa el valor de la propiedad denominada strPropertyName.

Comentarios

La implementación de ICertManageModule permite al Administrador de servicios de certificados recuperar las propiedades del módulo mediante una llamada a GetProperty. A continuación, las propiedades se pueden mostrar en las páginas de propiedades del Administrador de servicios de certificados para los módulos de directiva y salida. El Administrador de servicios de certificados pasará la ubicación a la que hace referencia strStorageLocation a este módulo y, en versiones futuras, la implementación de este método puede usar esta ubicación según sea necesario. En el ejemplo siguiente no se usa strStorageLocation , sino que se mantienen los valores de propiedad en la memoria.

Ejemplos

#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 Value
Cliente mínimo compatible No se admite ninguno
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certmod.h (incluya Certsrv.h)
Library Certidl.lib

Consulte también

CCertManageModule

ICertConfig

ICertManageModule

ICertManageModule::SetProperty