Partager via


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

La méthode GetProperty récupère la valeur de propriété d’un module.

Syntaxe

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

Paramètres

[in] strConfig

Représente la chaîne de configuration du serveur des services de certificats sous la forme COMPUTERNAME\CANAME, où COMPUTERNAME est le nom réseau du serveur des services de certificat et CANAME est le nom commun de l’autorité de certification (CA) telle qu’entrée pour l’autorité de certification lors de l’installation des services de certificat. Pour plus d’informations sur le nom de la chaîne de configuration, consultez ICertConfig.

[in] strStorageLocation

Clé de Registre qui indique l’emplacement de stockage dans le HKEY_LOCAL_MACHINE ruche pour les valeurs de propriété. Cette valeur se présente sous la forme suivante :

SYSTEM
   CurrentControlSet
      Services
         CertSvc
            Configuration
               CAName
                  PolicyOrExitModules
                     MyModule.PolicyOrExit

CaName est le nom de la chaîne de configuration de l’autorité de certification, PolicyOrExitModules sera « Policy » ou « Exit » (selon qu’un module Policy ou Exit s’applique à cette implémentation d’ICertManageModule), et MyModule.PolicyOrExit est l’identificateur spécifique de l’application pour le module. Notez que CAName est le nom aseptisé de l’autorité de certification. Pour plus d’informations sur le nom aseptisé, consultez ICertConfig ::GetConfig. L’utilisation de cet emplacement de stockage est destinée à une utilisation ultérieure.

[in] strPropertyName

Nom de la propriété interrogée. Les modules de stratégie et de sortie doivent prendre en charge les propriétés suivantes.

Valeur Signification
Nom
Nom du module.
Description
Description du module.
Copyright
Copyright relatif au module.
Version de fichier
Version du fichier de module.
Version du produit
Version du module.

[in] Flags

Ce paramètre est réservé et doit être défini sur zéro.

[out, retval] pvarProperty

Pointeur vers un VARIANT qui est la valeur récupérée pour la propriété spécifiée par strPropertyName.

Valeur retournée

C++

Si la méthode réussit, la méthode retourne S_OK.

Si la méthode échoue, elle retourne une valeur HRESULT qui indique l’erreur. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

VB

La valeur de retour est un variant qui représente la valeur de la propriété nommée strPropertyName.

Remarques

L’implémentation d’ICertManageModule permet au Gestionnaire des services de certificat de récupérer les propriétés du module en appelant GetProperty. Les propriétés peuvent ensuite être affichées dans les pages de propriétés du Gestionnaire des services de certificat pour les modules de stratégie et de sortie. Le Gestionnaire des services de certificats transmet l’emplacement référencé par strStorageLocation à ce module et, dans les versions ultérieures, l’implémentation de cette méthode peut ensuite utiliser cet emplacement si nécessaire. L’exemple suivant n’utilise pas strStorageLocation , mais conserve les valeurs de propriété en mémoire.

Exemples

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Aucun pris en charge
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête certmod.h (include Certsrv.h)
Bibliothèque Certidl.lib

Voir aussi

CCertManageModule

ICertConfig

ICertManageModule

ICertManageModule ::SetProperty