ICertEncodeCRLDistInfo
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
証明書拡張で使用される証明書失効リスト (CRL) 配布情報配列を処理するためのメソッドを提供します。
メソッド 9
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
Abstract Syntax Notation One (ASN.1) でエンコードされた証明書失効リスト (CRL) 配布情報拡張をデコードし、結果の配列を COM オブジェクトに格納します。
| strBinary | LPWSTR | in | ASN.1 でエンコードされた CRL 配布情報拡張。 |
戻り値
VB
メソッドが成功した場合、S_OK を返します。メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
解説(Remarks)
このメソッドは、strBinary のデコードされた内容をオブジェクトの CRL 配布情報ポイントの配列に格納します。オブジェクトの配列に既にデータが含まれている場合、その既存の内容は解放され、配列にはデコードされた値が読み込まれます。
例
Decode メソッドを使用する例については、ICertEncodeCRLDistInfo::Encode メソッドを参照してください。
CRL 配布情報配列内の証明書失効リスト (CRL) 配布ポイントの数を返します。
| pDistPointCount | INT* | out | 配列内の CRL 配布ポイントの数を表す LONG へのポインター。 |
戻り値
C++
メソッドが成功した場合、S_OK を返します。メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
VB
戻り値は、配列内の CRL 配布ポイントの数です。証明書失効リスト (CRL) 配布ポイント内の名前の数を返します。
| DistPointIndex | INT | in | 名前の数を取得する配布ポイントのインデックスを指定します。 |
| pNameCount | INT* | out | CRL 配布ポイントに含まれる名前値の数を表す Long へのポインター。 |
戻り値
C++
メソッドが成功した場合、S_OK を返します。メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
VB
戻り値は、CRL 配布ポイント内の名前の数です。証明書失効リスト (CRL) 配布情報ポイントの指定されたインデックスにある名前選択 (name choice) を返します。
| DistPointIndex | INT | in | 名前選択を取得する配布ポイントのインデックスを指定します。最初の値はインデックス 0 にあります。 |
| NameIndex | INT | in | 取得する名前選択エントリのインデックスを指定します。最初の値はインデックス 0 にあります。 |
| pNameChoice | INT* | out | 名前選択を表す Long へのポインター。 |
戻り値
C++
メソッドが成功した場合、S_OK を返します。メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
VB
戻り値は、指定されたインデックスにある名前選択です。名前選択は名前の型を示し、正しく使用できるようにします。名前選択は次のいずれかの値でなければなりません。| 戻りコード | 説明 |
|---|---|
| 名前はメールアドレスです。 | |
| 名前は、Host.Entity.Domain の形式の DNS (Domain Name System) 名を含む IA5 文字列です。 | |
| 名前は、Service://HostName/Path の形式の URL を含む IA5 文字列です。 | |
| 名前は登録された オブジェクト識別子 (OID) です。 |
証明書失効リスト (CRL) 配布情報ポイントの指定されたインデックスにある名前を返します。
| DistPointIndex | INT | in | 名前を取得する配布ポイントのインデックスを指定します。最初の値はインデックス 0 にあります。 |
| NameIndex | INT | in | 取得する名前エントリのインデックスを指定します。最初の値はインデックス 0 にあります。 |
| pstrName | LPWSTR* | out | 名前値を表す BSTR へのポインター。BSTR の使用が終わったら、SysFreeString 関数を呼び出して解放してください。 |
戻り値
C++
メソッドが成功した場合、S_OK を返します。メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
VB
戻り値は、指定された配布ポイントの指定されたインデックスにある名前です。戻り値は Unicode 文字列です。証明書失効リスト (CRL) 配布情報配列を、指定された数の配布ポイント構造体にリセットします。
| DistPointCount | INT | in | CRL 配布情報配列内の CRL 配布ポイントの数を指定します。 |
戻り値
VB
メソッドが成功した場合、S_OK を返します。メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
証明書失効リスト (CRL) 配布情報配列内の指定された配布ポイントの名前数を設定します。
| DistPointIndex | INT | in | 名前数を設定する配布ポイントのインデックスを指定します。 |
| NameCount | INT | in | 名前数を指定します。 |
戻り値
VB
メソッドが成功した場合、S_OK を返します。メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
証明書失効リスト (CRL) 配布情報配列内の配布ポイントの指定されたインデックスに名前を設定します。
| DistPointIndex | INT | in | 名前を設定する CRL 配布ポイントのインデックスを指定します。最初の値はインデックス 0 にあります。 | ||||||||||
| NameIndex | INT | in | 設定する名前エントリのインデックスを指定します。最初の値はインデックス 0 にあります。 | ||||||||||
| NameChoice | CERT_ALT_NAME | in | 設定する名前の名前選択を指定します。名前選択は名前の型を示し、正しく使用できるようにします。名前選択は次のいずれかの値でなければなりません。
| ||||||||||
| strName | LPWSTR | in | 名前を指定します。 |
戻り値
VB
メソッドが成功した場合、S_OK を返します。メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
COM オブジェクトに格納された証明書失効リスト (CRL) 配布情報配列に対して Abstract Syntax Notation One (ASN.1) エンコードを実行し、ASN.1 でエンコードされた拡張を返します。
| pstrBinary | LPWSTR* | out | エンコードされた CRL 配布情報拡張を格納する BSTR へのポインター。BSTR の使用が終わったら、SysFreeString 関数を呼び出して解放してください。 |
戻り値
C++
メソッドが成功した場合、S_OK を返します。メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
VB
戻り値は、CRL 配布情報配列を表す ASN.1 でエンコードされた文字列です。Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ICertEncodeCRLDistInfo "{01958640-BBFF-11D0-8825-00A0C903B83C}" #usecom global ICertEncodeCRLDistInfo IID_ICertEncodeCRLDistInfo "{}" #comfunc global ICertEncodeCRLDistInfo_Decode 7 wstr #comfunc global ICertEncodeCRLDistInfo_GetDistPointCount 8 var #comfunc global ICertEncodeCRLDistInfo_GetNameCount 9 int,var #comfunc global ICertEncodeCRLDistInfo_GetNameChoice 10 int,int,var #comfunc global ICertEncodeCRLDistInfo_GetName 11 int,int,var #comfunc global ICertEncodeCRLDistInfo_Reset 12 int #comfunc global ICertEncodeCRLDistInfo_SetNameCount 13 int,int #comfunc global ICertEncodeCRLDistInfo_SetNameEntry 14 int,int,int,wstr #comfunc global ICertEncodeCRLDistInfo_Encode 15 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_ICertEncodeCRLDistInfo "{01958640-BBFF-11D0-8825-00A0C903B83C}" #usecom global ICertEncodeCRLDistInfo IID_ICertEncodeCRLDistInfo "{}" #comfunc global ICertEncodeCRLDistInfo_Decode 7 wstr #comfunc global ICertEncodeCRLDistInfo_GetDistPointCount 8 sptr #comfunc global ICertEncodeCRLDistInfo_GetNameCount 9 int,sptr #comfunc global ICertEncodeCRLDistInfo_GetNameChoice 10 int,int,sptr #comfunc global ICertEncodeCRLDistInfo_GetName 11 int,int,sptr #comfunc global ICertEncodeCRLDistInfo_Reset 12 int #comfunc global ICertEncodeCRLDistInfo_SetNameCount 13 int,int #comfunc global ICertEncodeCRLDistInfo_SetNameEntry 14 int,int,int,wstr #comfunc global ICertEncodeCRLDistInfo_Encode 15 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。