ICertAdmin::GetCRL メソッド (certadm.h)
GetCRL メソッドは、証明書サービス証明機関 (CA) の現在の証明書失効リスト (CRL) を取得します。 このメソッドは、最初に ICertAdmin インターフェイスで定義されました。
構文
HRESULT GetCRL(
[in] const BSTR strConfig,
[in] LONG Flags,
[out] BSTR *pstrCRL
);
パラメーター
[in] strConfig
CRL を取得する CA の有効な構成文字列を表します。 この文字列は COMPUTERNAME\CANAME の形式です。COMPUTERNAME は証明書サービス サーバーのネットワーク名で、CANAME は証明書サービスのセットアップ時に入力された CA の共通名です。 構成文字列名の詳細については、「 ICertConfig」を参照してください。
[in] Flags
返される CRL の形式を指定します。 このパラメーターには、次のいずれかのフラグを指定できます。
値 | 意味 |
---|---|
|
開始/終了を含む BASE64 形式。 |
|
開始/終了のない BASE64 形式。 |
|
バイナリ形式。 |
[out] pstrCRL
CRL を受け取る BSTR へのポインター。
このメソッドを使用する場合は、 BSTR 型の変数を作成し、変数を NULL に設定し、 pbstrCRL パラメーターでこの変数のアドレスを渡します。 BSTR 変数の使用が完了したら、SysFreeString 関数を呼び出して解放します。
戻り値
関数が成功した場合、関数はS_OKを返します。
関数が失敗した場合は、エラーを示す HRESULT 値を返します。 有効な値を次の表に示しますが、これ以外にもあります。 一般的なエラー コードの一覧については、「 共通 HRESULT 値」を参照してください。
リターン コード | 説明 |
---|---|
|
strConfig パラメーターを NULL にすることはできません。CRL が見つかりませんでした。 |
注釈
管理タスクでは DCOM を使用します。 以前のバージョンの Certadm.h で定義されているこのインターフェイス メソッドを呼び出すコードは、クライアントとサーバーの両方が同じ Windows オペレーティング システムを実行している限り、Windows ベースのサーバー上で実行されます。
例
次の例では、必要な変数を宣言し、COM を初期化し、 CertAdmin クラスのインスタンスを作成します。 次に 、GetCRL を 呼び出し、成功または失敗を画面に出力します。 最後に、リソースを解放します。
ICertAdmin * pCertAdmin = NULL; // pointer to interface object
BSTR bstrCA = NULL; // variable for machine\CAName
BSTR bstrCRL = NULL; // variable to contain
// the retrieved CRL
HRESULT hr;
// Initialize COM.
hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (FAILED(hr))
{
printf("Failed CoInitializeEx [%x]\n", hr);
goto error;
}
// Create the CertAdmin object
// and get a pointer to its ICertAdmin interface.
hr = CoCreateInstance( CLSID_CCertAdmin,
NULL,
CLSCTX_INPROC_SERVER,
IID_ICertAdmin,
(void **)&pCertAdmin);
if (FAILED(hr))
{
printf("Failed CoCreateInstance pCertAdmin [%x]\n", hr);
goto error;
}
// Note the use of two backslashes (\\)
// in C++ to produce one backslash (\).
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (FAILED(hr))
{
printf("Failed to allocate memory for bstrCA\n");
goto error;
}
// Retrieve the CRL.
hr = pCertAdmin->GetCRL( bstrCA, CR_OUT_BINARY, &bstrCRL );
if (FAILED(hr))
{
printf("Failed GetCRL [%x]\n", hr);
goto error;
}
else
printf("CRL retrieved successfully\n");
// Use the CRL as needed.
// Done processing.
error:
// Free BSTR values.
if (NULL != bstrCA)
SysFreeString(bstrCA);
if (NULL != bstrCRL)
SysFreeString(bstrCRL);
// Clean up object resources.
if (NULL != pCertAdmin)
pCertAdmin->Release();
// Free COM resources.
CoUninitialize();
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートなし |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | certadm.h (Certsrv.h を含む) |
Library | Certidl.lib |
[DLL] | Certadm.dll |
こちらもご覧ください
ICertAdmin2