ICertManageModule::GetProperty メソッド (certmod.h)
GetProperty メソッドは、モジュールのプロパティ値を取得します。
構文
HRESULT GetProperty(
[in] const BSTR strConfig,
[in] BSTR strStorageLocation,
[in] BSTR strPropertyName,
[in] LONG Flags,
[out, retval] VARIANT *pvarProperty
);
パラメーター
[in] strConfig
COMPUTERNAME\CANAME 形式の証明書サービス サーバーの構成文字列を表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名で、CANAME は証明書サービスのセットアップ時に CA に対して入力された 証明機関 (CA) の共通名です。 構成文字列名の詳細については、「 ICertConfig」を参照してください。
[in] strStorageLocation
プロパティ値の HKEY_LOCAL_MACHINE ハイブ内のストレージの場所を示すレジストリ キー。 この値は次の形式です。
SYSTEM CurrentControlSet Services CertSvc Configuration CAName PolicyOrExitModules MyModule.PolicyOrExit
CAName は証明機関の構成文字列の名前で、PolicyOrExitModules は "Policy" または "Exit" のいずれかになります (Policy モジュールと Exit モジュールが ICertManageModule のこの実装に適用されるかどうかに応じて)。MyModule.PolicyOrExit はモジュールのアプリケーション固有の識別子です。 CAName は証明機関のサニタイズされた名前であることに注意してください。 サニタイズされた名前の詳細については、「 ICertConfig::GetConfig」を参照してください。 このストレージの場所の使用は、将来使用するために使用されます。
[in] strPropertyName
クエリ対象のプロパティの名前。 ポリシー モジュールと終了モジュールでは、次のプロパティをサポートする必要があります。
値 | 説明 |
---|---|
|
モジュールの名前です。 |
|
モジュールの説明。 |
|
モジュールに関連する著作権。 |
|
モジュール ファイルのバージョン。 |
|
モジュールのバージョン。 |
[in] Flags
このパラメーターは予約済みであり、0 に設定する必要があります。
[out, retval] pvarProperty
strPropertyName で指定されたプロパティの取得された値である VARIANT へのポインター。
戻り値
C++
メソッドが成功した場合、メソッドは S_OKを返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。 一般的なエラー コードの一覧については、「 共通 HRESULT 値」を参照してください。
VB
戻り値は、strPropertyName という名前のプロパティの値を表すバリアント型 (Variant) の値です。注釈
ICertManageModule を実装すると、Certificate Services Manager は GetProperty を呼び出してモジュールのプロパティを取得できます。 その後、ポリシー モジュールと終了モジュールの Certificate Services Manager プロパティ ページにプロパティを表示できます。 Certificate Services Manager は strStorageLocation によって参照される場所をこのモジュールに渡し、今後のバージョンでは、このメソッドの実装で必要に応じてこの場所を使用できます。 次の例では strStorageLocation を使用せず、代わりにプロパティ値をメモリ内に保持します。
例
#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;
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートなし |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | certmod.h (Certsrv.h を含む) |
Library | Certidl.lib |
こちらもご覧ください
CCertManageModule