Metode ICertServerExit::EnumerateExtensions (certif.h)
Metode EnumerateExtensions mengembalikan string pengidentifikasi objek (OID) (juga dikenal sebagai nama ekstensi) dari ekstensi sertifikat berikutnya yang akan dijumlahkan, lalu menambah penunjuk internal ke ekstensi berikut.
Sebelum memanggil EnumerateExtensions, aplikasi memanggil ICertServerExit::EnumerateExtensionsSetup. Setelah selesai menghitung, aplikasi memanggil ICertServerExit::EnumerateExtensionsClose.
Sintaks
HRESULT EnumerateExtensions(
[out] BSTR *pstrExtensionName
);
Parameter
[out] pstrExtensionName
Penunjuk ke nama ekstensi yang dijumlahkan.
Menampilkan nilai
C++
Jika metode berhasil, metode mengembalikan S_OK, dan *pstrExtensionName diatur ke BSTR yang berisi nama ekstensi yang dijumlahkan. Nilai S_FALSE dikembalikan jika ekstensi terakhir sudah dijumlahkan.Untuk menggunakan metode ini, buat variabel jenis BSTR , atur variabel yang sama dengan NULL, dan teruskan alamat variabel ini sebagai pstrExtensionName.
Setelah Anda selesai menggunakan BSTR, bebaskan dengan memanggil fungsi SysFreeString .
Jika metode gagal, metode mengembalikan nilai HRESULT yang menunjukkan kesalahan. Untuk daftar kode kesalahan umum, lihat Nilai HRESULT Umum.
VB
Mengembalikan string yang berisi nama ekstensi enumerasi, atau string kosong jika ekstensi terakhir sudah dijumlahkan.Keterangan
Metode ini menghitung ekstensi sertifikat yang dicatat dalam database, bahkan yang dinonaktifkan dan tidak muncul dalam sertifikat. Untuk menentukan apakah ekstensi dinonaktifkan, gunakan ICertServerExit::GetCertificateExtensionFlags untuk menguji bit EXTENSION_DISABLE_FLAG ekstensi.
Contoh
BSTR bstrExt = NULL;
VARIANT varExt;
LONG ExtFlags;
HRESULT hr;
VariantInit(&varExt);
// Enumerate the extensions.
while (S_OK ==
(hr = pCertServerExit->EnumerateExtensions(&bstrExt)))
{
// Retrieve the extension data.
if (FAILED(pCertServerExit->GetCertificateExtension(
bstrExt,
PROPTYPE_BINARY,
&varExt)))
printf("Failed GetCertificateExtension\n");
else
{
// Retrieve the extension flags.
if (FAILED(pCertServerExit->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);
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tidak ada yang didukung |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | certif.h (termasuk Certsrv.h) |
Pustaka | Certidl.lib |
DLL | Certcli.dll |
Lihat juga
ICertServerExit::EnumerateExtensionsClose
ICertServerExit::EnumerateExtensionsSetup