ICertServerPolicy::EnumerateExtensions メソッド (certif.h)
EnumerateExtensions メソッドは、現在の拡張機能の オブジェクト識別子 (OID) を取得し、内部列挙ポインターを次の拡張機能に移動します。
構文
HRESULT EnumerateExtensions(
[out] BSTR *pstrExtensionName
);
パラメーター
[out] pstrExtensionName
現在の拡張機能の OID を含む BSTR へのポインター。
戻り値
C++
メソッドが成功した場合、メソッドはS_OKを返し、pstrExtensionName パラメーターには現在の拡張機能の OID が含まれます。 最後の拡張機能が既に列挙されている場合は、S_FALSEの値が返されます。このメソッドを使用するには、BSTR 型の変数を作成し、変数 NULLに等しく設定し、この変数のアドレスを pstrExtensionName 渡します。
BSTRの使用が完了したら、SysFreeString 関数を呼び出して解放します。
メソッドが失敗した場合は、エラーを示す HRESULT 値が返されます。 一般的なエラー コードの一覧については、「一般的な HRESULT 値 を参照してください。
VB
拡張機能の OID を含む文字列を返します。最後の拡張機能が既に列挙されている場合は空の文字列を返します。備考
このメソッドは、データベースに記録されている証明書拡張機能を列挙します。無効になっていて、証明書に表示されない拡張機能も含まれます。 拡張機能が無効になっているかどうかを確認するには、GetCertificateExtensionFlags を使用して拡張機能のEXTENSION_DISABLE_FLAG ビットをテストします。
列挙が完了したら、EnumerateExtensionsClose メソッドを呼び出して、列挙呼び出しで使用されるリソースを解放します。
例
#include <windows.h>
#include <stdio.h>
#include <Certif.h>
BSTR bstrExt = NULL;
VARIANT varExt;
LONG ExtFlags;
HRESULT hr;
VariantInit(&varExt);
// Enumerate the extensions.
while (S_OK ==
(hr = pCertServerPol->EnumerateExtensions(&bstrExt)))
{
// Retrieve the extension data.
if (FAILED(pCertServerPol->GetCertificateExtension(
bstrExt,
PROPTYPE_BINARY,
&varExt)))
printf("Failed GetCertificateExtension\n");
else
{
// Retrieve the extension flags.
if (FAILED(pCertServerPol->GetCertificateExtensionFlags(
&ExtFlags)))
printf("Failed GetCertificateExtensionFlags\n");
else
// This sample will display the extension OID string,
// the extension flags (in hex) and
// the length of the BSTR binary ASN-encode extension.
printf("Extension: %ws\tFlags:%x\tLength:%u\n",
bstrExt,
ExtFlags,
SysStringByteLen(varExt.bstrVal));
}
}
// Determine if hr was S_FALSE, meaning the enumeration
// was completed, or some other error.
if (S_FALSE != hr)
printf("Failed EnumerateExtensions - %x\n", hr);
// Free BSTR resource.
if (NULL != bstrExt)
SysFreeString(bstrExt);
// Free VARIANT resource.
VariantClear(&varExt);
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | サポートされていません |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の | ウィンドウズ |
ヘッダー | certif.h (Certsrv.h を含む) |
ライブラリ | Certidl.lib |
DLL | Certcli.dll |
関連項目
EnumerateExtensionsSetup の
GetCertificateExtension を する
GetCertificateExtensionFlags を する
ICertServerPolicy の