Metodo ICertManageModule::GetProperty (certmod.h)

Il metodo GetProperty recupera il valore della proprietà di un modulo.

Sintassi

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

Parametri

[in] strConfig

Rappresenta la stringa di configurazione per il server Servizi certificati nel formato COMPUTERNAME\CANAME, dove COMPUTERNAME è il nome di rete del server servizi certificati e CANAME è il nome comune dell'autorità di certificazione (CA) come immesso per la CA durante l'installazione di Servizi certificati. Per informazioni sul nome della stringa di configurazione, vedere ICertConfig.

[in] strStorageLocation

Chiave del Registro di sistema che indica il percorso di archiviazione nel HKEY_LOCAL_MACHINE hive per i valori della proprietà. Questo valore è nel formato seguente:

SYSTEM
   CurrentControlSet
      Services
         CertSvc
            Configuration
               CAName
                  PolicyOrExitModules
                     MyModule.PolicyOrExit

CAName è il nome della stringa di configurazione dell'autorità di certificazione, PolicyOrExitModules sarà "Policy" o "Exit" (a seconda che un modulo Policy o Exit si applichi a questa implementazione di ICertManageModule) e MyModule.PolicyOrExit è l'identificatore specifico dell'applicazione per il modulo. Si noti che CAName è il nome sanificato per l'autorità di certificazione. Per informazioni sul nome sanificato, vedere ICertConfig::GetConfig. L'uso di questa posizione di archiviazione è destinato a un uso futuro.

[in] strPropertyName

Nome della proprietà su cui viene eseguito la query. I moduli criteri e uscita devono supportare le proprietà seguenti.

Valore Significato
Nome
Nome del modulo.
Descrizione
Descrizione del modulo.
Copyright
Copyright relativo al modulo.
Versione file
Versione del file del modulo.
Versione del prodotto
Versione del modulo.

[in] Flags

Questo parametro è riservato e deve essere impostato su zero.

[out, retval] pvarProperty

Puntatore a un valore VARIANT che rappresenta il valore recuperato per la proprietà specificata da strPropertyName.

Valore restituito

C++

Se il metodo ha esito positivo, il metodo restituisce S_OK.

Se il metodo ha esito negativo, restituisce un valore HRESULT che indica l'errore. Per un elenco dei codici di errore comuni, vedere Valori HRESULT comuni.

VB

Il valore restituito è un valore Variant che rappresenta il valore della proprietà denominata strPropertyName.

Commenti

L'implementazione di ICertManageModule consente a Gestione servizi certificati di recuperare le proprietà del modulo chiamando GetProperty. Le proprietà possono quindi essere visualizzate nelle pagine delle proprietà di Gestione servizi certificati per i moduli criteri e di uscita. Gestione servizi certificati passerà la posizione a cui fa riferimento strStorageLocation a questo modulo e nelle versioni future l'implementazione di questo metodo potrà quindi usare questo percorso in base alle esigenze. L'esempio seguente non usa strStorageLocation , ma mantiene invece i valori delle proprietà in memoria.

Esempio

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

Requisiti

Requisito Valore
Client minimo supportato Nessuno supportato
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione certmod.h (include Certsrv.h)
Libreria Certidl.lib

Vedi anche

CCertManageModule

ICertConfig

ICertManageModule

ICertManageModule::SetProperty