Share via


ICertManageModule::GetProperty-Methode (certmod.h)

Die GetProperty-Methode ruft den Eigenschaftswert eines Moduls ab.

Syntax

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

Parameter

[in] strConfig

Stellt die Konfigurationszeichenfolge für den Zertifikatdiensteserver im Format COMPUTERNAME\CANAME dar, wobei COMPUTERNAME der Netzwerkname des Zertifikatdiensteservers und CANAME der allgemeine Name der Zertifizierungsstelle ist, wie er während der Einrichtung der Zertifikatdienste für die Zertifizierungsstelle eingegeben wurde. Informationen zum Namen der Konfigurationszeichenfolge finden Sie unter ICertConfig.

[in] strStorageLocation

Ein Registrierungsschlüssel, der den Speicherort in der HKEY_LOCAL_MACHINE Struktur für die Eigenschaftswerte angibt. Dieser Wert hat die folgende Form:

SYSTEM
   CurrentControlSet
      Services
         CertSvc
            Configuration
               CAName
                  PolicyOrExitModules
                     MyModule.PolicyOrExit

Der CAName ist der Name der Konfigurationszeichenfolge der Zertifizierungsstelle, PolicyOrExitModules ist entweder "Policy" oder "Exit" (je nachdem, ob ein Policy- oder Exit-Modul für diese Implementierung von ICertManageModule gilt), und MyModule.PolicyOrExit ist der anwendungsspezifische Bezeichner für das Modul. Beachten Sie, dass CAName der sanitisierte Name für die Zertifizierungsstelle ist. Informationen zum sanitisierten Namen finden Sie unter ICertConfig::GetConfig. Die Verwendung dieses Speicherorts ist für die zukünftige Verwendung vorgesehen.

[in] strPropertyName

Der Name der abgefragten Eigenschaft. Richtlinien- und Exitmodule sollten die folgenden Eigenschaften unterstützen.

Wert Bedeutung
Name
Der Name des Moduls.
Beschreibung
Beschreibung des Moduls.
Copyright
Copyright in Bezug auf das Modul.
Dateiversion
Version der Moduldatei.
Produktversion
Version des Moduls.

[in] Flags

Dieser Parameter ist reserviert und muss auf null festgelegt werden.

[out, retval] pvarProperty

Ein Zeiger auf einen VARIANT-Wert , der der abgerufene Wert für die von strPropertyName angegebene Eigenschaft ist.

Rückgabewert

C++

Wenn die Methode erfolgreich ist, gibt die Methode S_OK zurück.

Wenn die Methode fehlschlägt, gibt sie einen HRESULT-Wert zurück, der den Fehler angibt. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.

VB

Der Rückgabewert ist ein Variant-Wert , der den Wert der Eigenschaft mit dem Namen strPropertyName darstellt.

Hinweise

Durch die Implementierung von ICertManageModule kann der Certificate Services Manager die Eigenschaften des Moduls abrufen, indem Er GetProperty aufruft. Die Eigenschaften können dann auf den Eigenschaftenseiten des Zertifikatdienste-Managers für Richtlinien- und Beendigungsmodule angezeigt werden. Der Certificate Services Manager übergibt den Speicherort, auf den von strStorageLocation verwiesen wird, an dieses Modul, und in zukünftigen Versionen kann die Implementierung dieser Methode diesen Speicherort dann bei Bedarf verwenden. Im folgenden Beispiel wird strStorageLocation nicht verwendet, sondern die Eigenschaftswerte im Arbeitsspeicher beibehalten.

Beispiele

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Nicht unterstützt
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile certmod.h (include Certsrv.h)
Bibliothek Certidl.lib

Weitere Informationen

CCertManageModule

ICertConfig

ICertManageModule

ICertManageModule::SetProperty