Win32 API 日本語リファレンス
ホームSecurity.Cryptography.Certificates › ICertPropertyEnrollment

ICertPropertyEnrollment

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID728ab339-217d-11da-b2a4-000e7bbb2b09継承元ICertProperty呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl14

公式ドキュメント

クライアントが IX509Enrollment インターフェイスの Enroll メソッドを呼び出したときに作成される、証明書および証明機関 (CA) の情報を格納する証明書プロパティを表します。

メソッド 5

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 14 HRESULT Initialize(INT RequestId, LPWSTR strCADnsName, LPWSTR strCAName, LPWSTR strFriendlyName)

証明書要求 ID、証明機関 (CA) の構成文字列、および省略可能な証明書の表示名からプロパティを初期化します。

RequestIdINTin証明書要求 ID を格納する LONG 変数です。要求 ID は登録 (エンロール) プロセスによって作成されます。この値は、IX509Enrollment インターフェイスの RequestId プロパティを呼び出すことで取得できます。
strCADnsNameLPWSTRinCA のドメイン ネーム システム (DNS) 名を格納する BSTR 変数です。これは CADnsName\CAName という CA 構成文字列の最初の名前です。構成文字列は通常、登録 (エンロール) プロセス中に設定されます。DNS 名は、CAConfigString プロパティを呼び出し、文字列を構成要素に分割することで取得できます。
strCANameLPWSTRinCA のサブジェクト共通名 (CN) を格納する BSTR 変数です。これは CADnsName\CAName という CA 構成文字列の 2 番目の名前です。構成文字列は通常、登録 (エンロール) プロセス中に設定されます。CN 名は、CAConfigString プロパティを呼び出し、文字列を構成要素に分割することで取得できます。
strFriendlyNameLPWSTRin証明書の省略可能な表示名を格納する BSTR 変数です。既定値は NULL です。この値は通常、登録 (エンロール) プロセス中に設定されます。CertificateFriendlyName プロパティを呼び出すことで取得できます。

戻り値

関数が成功した場合、関数は S_OK を返します。

関数が失敗した場合は、エラーを示す HRESULT 値を返します。取り得る値には次の表に示すものが含まれますが、これらに限定されません。一般的なエラー コードの一覧については、「Common HRESULT Values」を参照してください。

戻り値 説明
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
オブジェクトは既に初期化されています。

解説(Remarks)

ICertPropertyEnrollment オブジェクトの初期化に使用できる値は、クライアントが IX509Enrollment オブジェクトの Enroll メソッドを呼び出す証明書の登録 (エンロール) プロセス中に設定されます。すなわち、要求 ID を取得するには、IX509Enrollment オブジェクトの RequestId プロパティを呼び出します。証明書の表示名を取得するには、CertificateFriendlyName プロパティを呼び出します。識別名と共通名を取得するには、CAConfigString プロパティを呼び出し、構成文字列を構成要素に分割します。

プロパティを証明書に関連付けるには、SetValueOnCertificate メソッドを呼び出します。また、初期化時に指定された値を取得するために、次のプロパティを呼び出すこともできます。

vtbl 15 HRESULT get_RequestId(INT* pValue)

一意の証明書要求識別子を取得します。

pValueINT*out証明書要求の要求 ID を受け取る出力先である。

解説(Remarks)

RequestId プロパティは、Initialize メソッドを呼び出すことで設定します。要求 ID は登録 (エンロール) プロセス中に作成されます。詳細については、IX509Enrollment インターフェイスの RequestId プロパティを参照してください。

この ID は、その後のクライアントと CA の間の通信で使用できます。たとえば、CA が最初の送信時に要求を保留中としてマークした場合、クライアントは再び CA に接続して証明書応答の取得を試みる際に、要求 ID と構成文字列を使用できます。

また、初期化時に指定されたその他の値を取得するために、次のプロパティを呼び出すこともできます。

vtbl 16 HRESULT get_CADnsName(LPWSTR* pValue)

証明機関 (CA) のドメイン ネーム システム (DNS) 名を取得します。

pValueLPWSTR*out発行 CA の DNS 名を受け取る出力先である。

解説(Remarks)

CADnsName プロパティは、Initialize メソッドを呼び出すことで設定します。DNS 名は登録 (エンロール) プロセス中にクライアントへ返され、CA 構成文字列の一部です。詳細については、IX509Enrollment インターフェイスの CAConfigString プロパティを参照してください。

また、初期化時に指定されたその他の値を取得するために、次のプロパティを呼び出すこともできます。

vtbl 17 HRESULT get_CAName(LPWSTR* pValue)

証明機関 (CA) の共通名 (CN) を取得します。

pValueLPWSTR*out発行 CA の名前を受け取る出力先である。

解説(Remarks)

CAName プロパティは、Initialize メソッドを呼び出すことで設定します。共通名は登録 (エンロール) プロセス中にクライアントへ返され、証明機関の構成文字列の一部です。詳細については、IX509Enrollment インターフェイスの CAConfigString プロパティを参照してください。

また、初期化時に指定されたその他の値を取得するために、次のプロパティを呼び出すこともできます。

vtbl 18 HRESULT get_FriendlyName(LPWSTR* pValue)

証明書の表示名を取得します。(ICertPropertyEnrollment.get_FriendlyName)

pValueLPWSTR*out証明書のフレンドリ名を受け取る出力先である。

解説(Remarks)

FriendlyName プロパティは、Initialize メソッドを呼び出すことで設定します。表示名は登録 (エンロール) プロセス中に指定されます。詳細については、IX509Enrollment インターフェイスの CertificateFriendlyName プロパティを参照してください。

また、初期化時に指定されたその他の値を取得するために、次のプロパティを呼び出すこともできます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ICertPropertyEnrollment "{728AB339-217D-11DA-B2A4-000E7BBB2B09}"
#usecom global ICertPropertyEnrollment IID_ICertPropertyEnrollment "{}"
#comfunc global ICertPropertyEnrollment_Initialize        14 int,wstr,wstr,wstr
#comfunc global ICertPropertyEnrollment_get_RequestId     15 var
#comfunc global ICertPropertyEnrollment_get_CADnsName     16 var
#comfunc global ICertPropertyEnrollment_get_CAName        17 var
#comfunc global ICertPropertyEnrollment_get_FriendlyName  18 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。