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

IEnroll4

COM
IIDf8053fe5-78f4-448f-a0db-41d61b73446b継承元IEnroll2自前メソッド開始 vtbl91

公式ドキュメント

IEnroll4 インターフェイスは Certificate Enrollment Control(証明書登録(エンロール)コントロール)を表し、主に証明書要求の生成に使用します。

メソッド 32

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 91 HRESULT put_ThumbPrintWStr(CRYPT_INTEGER_BLOB thumbPrintBlob)

証明書データのハッシュを設定または取得します。thumbprint は保留中の証明書を指し示すために使用されます。(Put)

thumbPrintBlobCRYPT_INTEGER_BLOBin保留中要求を識別する証明書のサムプリント(拇印)のバイナリを保持する CRYPT_INTEGER_BLOB を渡す。
vtbl 92 HRESULT get_ThumbPrintWStr(CRYPT_INTEGER_BLOB* thumbPrintBlob)

証明書データのハッシュを設定または取得します。thumbprint は保留中の証明書を指し示すために使用されます。(Get)

thumbPrintBlobCRYPT_INTEGER_BLOB*inout現在設定されている証明書のサムプリントのバイナリを受け取る CRYPT_INTEGER_BLOB へのポインタである。
vtbl 93 HRESULT SetPrivateKeyArchiveCertificate(CERT_CONTEXT* pPrivateKeyArchiveCert)

SetPrivateKeyArchiveCertificate メソッドは、秘密キーをアーカイブするために使用する証明書を指定します。このメソッドは IEnroll4 インターフェイスで初めて定義されました。

pPrivateKeyArchiveCertCERT_CONTEXT*in秘密キーをアーカイブするために使用する証明書を指定する CERT_CONTEXT 構造体へのポインター。

戻り値

戻り値は HRESULT です。S_OK は成功を示します。

vtbl 94 CERT_CONTEXT* GetPrivateKeyArchiveCertificate()

GetPrivateKeyArchiveCertificate メソッドは、秘密キーをアーカイブするために使用する証明書を取得します。このメソッドは IEnroll4 インターフェイスで初めて定義されました。

戻り値

秘密キーをアーカイブするために使用する証明書を表す CERT_CONTEXT 構造体へのポインター。エラーが発生した場合は NULL

vtbl 95 HRESULT binaryBlobToString(INT Flags, CRYPT_INTEGER_BLOB* pblobBinary, LPWSTR* ppwszString)

バイナリデータ BLOB を文字列に変換します。このメソッドは変換の実行に CryptBinaryToString 関数を使用します。このメソッドは IEnroll4 インターフェイスで初めて定義されました。

FlagsINTinCryptBinaryToString 関数の dwFlags パラメーターに渡される値。指定可能な値の説明については、 CryptBinaryToString を参照してください。
pblobBinaryCRYPT_INTEGER_BLOB*inout文字列に変換するバイナリ BLOB を表す CRYPT_DATA_BLOB へのポインター。
ppwszStringLPWSTR*inoutエンコードされたデータを受け取る LPWSTR へのポインター。

戻り値

メソッドが成功した場合、S_OK を返します。

メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。

vtbl 96 HRESULT stringToBinaryBlob(INT Flags, LPWSTR pwszString, CRYPT_INTEGER_BLOB* pblobBinary, INT* pdwSkip, INT* pdwFlags)

エンコードされた文字列をバイナリデータ BLOB に変換します。

FlagsINTinCryptStringToBinary 関数の dwFlags パラメーターに渡される値。有効な値については、 CryptStringToBinary を参照してください。
pwszStringLPWSTRinバイナリデータ BLOB に変換するエンコードされた文字列。
pblobBinaryCRYPT_INTEGER_BLOB*inoutバイナリデータを受け取る CRYPT_DATA_BLOB 構造体へのポインター。
pdwSkipINT*inout実際の base64 文字列または 16 進文字列の先頭までにスキップされた文字列の文字数を受け取る LONG へのポインター。
pdwFlagsINT*inout変換で使用された実際の形式を受け取る LONG へのポインター。
vtbl 97 HRESULT addExtensionToRequestWStr(INT Flags, LPWSTR pwszName, CRYPT_INTEGER_BLOB* pblobValue)

要求に拡張を追加します。

FlagsINTin拡張がクリティカルかどうかを指定します。 TRUE の場合、追加される拡張はクリティカルです。FALSE の場合はクリティカルではありません。
pwszNameLPWSTRin拡張名のオブジェクト識別子(OID)を表す null で終わるワイド文字列へのポインター。
pblobValueCRYPT_INTEGER_BLOB*inout拡張値を表す CRYPT_DATA_BLOB 構造体へのポインター。

戻り値

戻り値は HRESULT です。呼び出しが成功した場合は S_OK が返されます。

vtbl 98 HRESULT addAttributeToRequestWStr(INT Flags, LPWSTR pwszName, CRYPT_INTEGER_BLOB* pblobValue)

証明書要求に属性を追加します。

FlagsINTinこのパラメーターは将来の使用のために予約されており、ゼロに設定する必要があります。
pwszNameLPWSTRin属性名のオブジェクト識別子(OID)を表す null で終わるワイド文字列へのポインター。
pblobValueCRYPT_INTEGER_BLOB*inout属性値を表す CRYPT_DATA_BLOB 構造体へのポインター。
vtbl 99 HRESULT addNameValuePairToRequestWStr(INT Flags, LPWSTR pwszName, LPWSTR pwszValue)

認証されていない名前と値の文字列ペアを要求に追加します。

FlagsINTinこのパラメーターは将来の使用のために予約されており、ゼロに設定する必要があります。
pwszNameLPWSTRin名前と値のペアの名前部分を表す null で終わるワイド文字列へのポインター。
pwszValueLPWSTRin名前と値のペアの値部分を表す null で終わるワイド文字列へのポインター。
vtbl 100 HRESULT resetExtensions()

要求からすべての拡張を削除します。

vtbl 101 HRESULT resetAttributes()

要求からすべての属性を削除します。

vtbl 102 HRESULT createRequestWStr(CERT_CREATE_REQUEST_FLAGS Flags, LPWSTR pwszDNName, LPWSTR pwszUsage, CRYPT_INTEGER_BLOB* pblobRequest)

PKCS を作成します (IEnroll4.createRequestWStr)

FlagsCERT_CREATE_REQUEST_FLAGSin

作成する証明書要求の種類を指定する値。次のいずれかの値を指定します。

意味
XECR_CMC
完全な CMC
XECR_PKCS10_V1_5
PKCS #10
XECR_PKCS10_V2_0
PKCS #10 バージョン 2
XECR_PKCS7
PKCS #7
pwszDNNameLPWSTRin要求の対象となるエンティティの識別名(DN)を含む null で終わる Unicode 文字列へのポインター。DN 名は X.500 の命名規則に従う必要があります。たとえば "CN=User, O=Microsoft" のようになります。2 文字のプレフィックスが存在しない場合は、代わりにオブジェクト識別子(OID)を指定できます。このパラメーターは NULL でもかまいません。
pwszUsageLPWSTRin生成される証明書の目的を表す OID を含む null で終わる Unicode 文字列へのポインター。たとえば、個人用または商用の Authenticode 証明書やクライアント認証などです。複数の OID をカンマ区切りで指定することもできます。
pblobRequestCRYPT_INTEGER_BLOB*inout

要求を受け取る CRYPT_DATA_BLOB 構造体へのポインター。

このメモリの使用が終わったら、この構造体の pbData メンバーを CoTaskMemFree 関数に渡して解放してください。

戻り値

メソッドが成功した場合、S_OK を返します。

メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

vtbl 103 HRESULT createFileRequestWStr(CERT_CREATE_REQUEST_FLAGS Flags, LPWSTR pwszDNName, LPWSTR pwszUsage, LPWSTR pwszRequestFileName)

PKCS を作成します (IEnroll4.createFileRequestWStr)

FlagsCERT_CREATE_REQUEST_FLAGSin

作成する証明書要求の種類を指定する値。次のいずれかの値を指定します。

意味
XECR_CMC
完全な CMC
XECR_PKCS10_V1_5
PKCS #10
XECR_PKCS10_V2_0
PKCS #10 バージョン 2
XECR_PKCS7
PKCS #7
pwszDNNameLPWSTRin要求の対象となるエンティティの識別名(DN)を表す null で終わるワイド文字列へのポインター。DN 名は X.500 の命名規則に従う必要があります。たとえば "CN=User, O=Microsoft" のようになります。2 文字のプレフィックスが存在しない場合は、代わりにオブジェクト識別子(OID)を指定できます。このパラメーターは NULL でもかまいません。
pwszUsageLPWSTRin生成される証明書の目的を表す OID を格納する null で終わるワイド文字列へのポインター。たとえば、個人用または商用の Authenticode 証明書やクライアント認証などです。複数の OID をカンマ区切りで指定することもできます。
pwszRequestFileNameLPWSTRin要求を受け取るファイルの名前を含む null で終わるワイド文字列へのポインター。

戻り値

メソッドが成功した場合、S_OK を返します。

メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。

vtbl 104 HRESULT acceptResponseBlob(CRYPT_INTEGER_BLOB* pblobResponse)

先の createRequestWStr の呼び出しに応じて発行された資格情報の配信を受け入れ、その資格情報を適切なストアに格納します。

pblobResponseCRYPT_INTEGER_BLOB*inout応答を表す CRYPT_DATA_BLOB 構造体へのポインター。

解説(Remarks)

応答には証明書がちょうど 1 つだけ含まれている必要があります。子証明書を含めることはできません。

応答は PKCS #7 または完全な CMC 応答のいずれかです。ただし、完全な CMC 応答を受け入れるには、暗号化サービスプロバイダーが CMC 構造の Abstract Syntax Notation One(ASN.1)エンコードをサポートしている必要があります。

vtbl 105 HRESULT acceptFileResponseWStr(LPWSTR pwszResponseFileName)

先の createFileRequestWStr の呼び出しに応じて発行された資格情報の配信を受け入れ、その資格情報を適切なストアに格納します。

pwszResponseFileNameLPWSTRin応答を含むファイルの名前を表す null で終わるワイド文字列へのポインター。

解説(Remarks)

pwszResponseFileName パラメーターで指定されるファイル内の応答には、証明書がちょうど 1 つだけ含まれている必要があります。子証明書を含めることはできません。

応答は PKCS #7 または完全な CMC 応答のいずれかです。ただし、完全な CMC 応答を受け入れるには、暗号化サービスプロバイダーが CMC 構造の Abstract Syntax Notation One(ASN.1)エンコードをサポートしている必要があります。

vtbl 106 HRESULT getCertContextFromResponseBlob(CRYPT_INTEGER_BLOB* pblobResponse, CERT_CONTEXT** ppCertContext)

証明機関(CA)の応答から証明書を取得します。

pblobResponseCRYPT_INTEGER_BLOB*inout応答を表す CRYPT_DATA_BLOB 構造体へのポインター。
ppCertContextCERT_CONTEXT**inout応答から取得した証明書を受け取る CERT_CONTEXT 構造体へのポインターへのポインター。

解説(Remarks)

pblobResponse に含まれる応答には、証明書がちょうど 1 つだけ含まれている必要があります。子証明書を含めることはできません。

応答は PKCS #7 または完全な Certificate Management over CMS(CMC)応答のいずれかです。ただし、完全な CMC 応答を受け入れるには、暗号化サービスプロバイダーが CMC 構造の Abstract Syntax Notation One(ASN.1)エンコードをサポートしている必要があります。

vtbl 107 HRESULT getCertContextFromFileResponseWStr(LPWSTR pwszResponseFileName, CERT_CONTEXT** ppCertContext)

証明機関(CA)からの応答を含むファイルから証明書を取得します。

pwszResponseFileNameLPWSTRin応答を含むファイルの名前を表す null で終わるワイド文字列へのポインター。
ppCertContextCERT_CONTEXT**inout応答から取得した証明書を受け取る CERT_CONTEXT 構造体へのポインターへのポインター。

解説(Remarks)

pwszResponseFileName に含まれる応答には、証明書がちょうど 1 つだけ含まれている必要があります。子証明書を含めることはできません。

応答は PKCS #7 または完全な Certificate Management over CMS(CMC)応答のいずれかです。ただし、完全な CMC 応答を受け入れるには、暗号化サービスプロバイダーが CMC 構造の Abstract Syntax Notation One(ASN.1)エンコードをサポートしている必要があります。

vtbl 108 HRESULT createPFXWStr(LPWSTR pwszPassword, CRYPT_INTEGER_BLOB* pblobPFX)

受け入れた証明書チェーンと秘密キーを Personal Information Exchange(PFX)形式の文字列に保存します。PFX 形式は PKCS とも呼ばれます (IEnroll4.createPFXWStr)

pwszPasswordLPWSTRinPFX 形式のメッセージのパスワードを表す null で終わる Unicode 文字列へのポインター。パスワードを使用しないことを示すために、この値は空または NULL でもかまいません。パスワードの使用が終わったら、SecureZeroMemory を呼び出して機密情報をメモリから削除してください。パスワードの保護の詳細については、Handling Passwords を参照してください。
pblobPFXCRYPT_INTEGER_BLOB*inout

base64 エンコードされた PFX 形式の証明書情報を受け取る CRYPT_DATA_BLOB 構造体へのポインター。

このメモリの使用が終わったら、この構造体の pbData メンバーを CoTaskMemFree 関数に渡して解放してください。

戻り値

メソッドが成功した場合、S_OK を返します。

メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

vtbl 109 HRESULT createFilePFXWStr(LPWSTR pwszPassword, LPWSTR pwszPFXFileName)

受け入れた証明書チェーンと秘密キーを Personal Information Exchange(PFX)形式のファイルに保存します。

pwszPasswordLPWSTRinPFX 形式のメッセージのパスワードを表す null で終わるワイド文字列へのポインター。パスワードを使用しないことを示すために、この値は空または NULL でもかまいません。パスワードの使用が終わったら、SecureZeroMemory を呼び出して機密情報をメモリから削除してください。パスワードの保護の詳細については、Handling Passwords を参照してください。
pwszPFXFileNameLPWSTRinbase64 エンコードされた PFX データを受け取るファイルの名前を含む null で終わるワイド文字列へのポインター。
vtbl 110 HRESULT setPendingRequestInfoWStr(INT lRequestID, LPWSTR pwszCADNS, LPWSTR pwszCAName, LPWSTR pwszFriendlyName)

保留中の要求のプロパティを設定します。

lRequestIDINTin証明機関(CA)によって割り当てられた要求の識別子。
pwszCADNSLPWSTRinCA の Domain Name System(DNS)名を表す null で終わるワイド文字列へのポインター。このパラメーターを null にすることはできません。
pwszCANameLPWSTRinCA の名前を表す null で終わるワイド文字列へのポインター。このパラメーターを null にすることはできません。
pwszFriendlyNameLPWSTRinCA の表示名を表す null で終わるワイド文字列へのポインター。このパラメーターは null でもかまいません。
vtbl 111 HRESULT enumPendingRequestWStr(INT lIndex, PENDING_REQUEST_DESIRED_PROPERTY lDesiredProperty, void* ppProperty)

保留中の証明書要求を列挙し、各要求から指定されたプロパティを取得します。

lIndexINTinプロパティを取得する保留中の要求の序数位置を指定します。最初の要求にはゼロを指定します。
lDesiredPropertyPENDING_REQUEST_DESIRED_PROPERTYin

取得するプロパティの識別子。次のいずれかの値を指定します。

意味
XEPR_CADNS
証明機関(CA)の DNS 名。
XEPR_CAFRIENDLYNAME
CA の表示名。
XEPR_CANAME
CA の名前。
XEPR_HASH
要求のハッシュ値。
XEPR_REQUESTID
証明書要求 ID。
ppPropertyvoid*inout取得されたプロパティの値を受け取る VOID へのポインター。

戻り値

メソッドが成功した場合、S_OK を返します。

メソッドが失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

lDesiredProperty に次の値を指定した場合、このメソッドは E_NOTIMPL を返します。

lDesiredProperty にその他の値を指定した場合、このメソッドは E_INVALIDARG を返します。

vtbl 112 HRESULT removePendingRequestWStr(CRYPT_INTEGER_BLOB thumbPrintBlob)

クライアントの要求ストアから保留中の要求を削除します。

thumbPrintBlobCRYPT_INTEGER_BLOBin証明書データの thumbprint(ハッシュ)を表す CRYPT_DATA_BLOB 構造体。
vtbl 113 HRESULT GetKeyLenEx(XEKL_KEYSIZE lSizeSpec, XEKL_KEYSPEC lKeySpec, INT* pdwKeySize)

署名キーと交換キーのサイズ情報を取得します。

lSizeSpecXEKL_KEYSIZEin

取得するサイズ情報の種類を示す値。次のいずれかの値を指定します。

意味
XEKL_KEYSIZE_MIN
最小キーサイズ。
XEKL_KEYSIZE_MAX
最大キーサイズ。
XEKL_KEYSIZE_INC
キーの増分サイズ。詳細については、「解説」を参照してください。
lKeySpecXEKL_KEYSPECin

サイズ情報を返すキーを指定します。次のいずれかの値を指定します。

意味
XEKL_KEYSPEC_KEYX
交換キー
XEKL_KEYSPEC_SIG
署名キー
pdwKeySizeINT*inoutキーサイズ情報をビット単位で受け取る LONG へのポインター。

解説(Remarks)

暗号化サービスプロバイダーがこのメソッドをサポートしていない場合、エラーが返されます。

XEKL_KEYSIZE_INC 値の詳細については、 CryptGetProvParam リファレンスページの PP_SIG_KEYSIZE_INC の使用方法を参照してください。

vtbl 114 HRESULT InstallPKCS7BlobEx(CRYPT_INTEGER_BLOB* pBlobPKCS7, INT* plCertInstalled)

InstallPKCS7Blob と同じですが、ローカルストアに実際にインストールされた証明書の数を返す点が異なります。

pBlobPKCS7CRYPT_INTEGER_BLOB*inout証明書または証明書チェーンを含む CRYPT_DATA_BLOB 構造体へのポインター。
plCertInstalledINT*inoutローカルストアにインストールされた証明書の数を返します。

戻り値

戻り値は HRESULT です。S_OK は成功を示します。

vtbl 115 HRESULT AddCertTypeToRequestWStrEx(ADDED_CERT_TYPE lType, LPWSTR pwszOIDOrName, INT lMajorVersion, BOOL fMinorVersion, INT lMinorVersion)

証明書テンプレート(証明書の種類とも呼ばれます)を要求に追加します。

lTypeADDED_CERT_TYPEin

テンプレート拡張のバージョンの種類を示します。次のいずれかの値を指定できます。

意味
XECT_EXTENSION_V1
バージョン 1 の拡張を使用します
XECT_EXTENSION_V2
バージョン 2 の拡張を使用します
pwszOIDOrNameLPWSTRin証明書要求に追加される証明書テンプレートの完全修飾名を表す null で終わる文字列へのポインター。この値は証明機関によって解釈されます。
lMajorVersionINTinテンプレートのメジャーバージョンを指定する値。lTypeXECT_EXTENSION_V1 の場合、このパラメーターは無視されます。
fMinorVersionBOOLinテンプレートのマイナーバージョンを使用するかどうかを指定する値。lTypeXECT_EXTENSION_V1 の場合、このパラメーターは無視されます。
lMinorVersionINTinテンプレートのマイナーバージョンを指定する値。lTypeXECT_EXTENSION_V1 の場合、または fMinorVersionFALSE の場合、このパラメーターは無視されます。

戻り値

戻り値は HRESULT です。呼び出しが成功した場合は S_OK が返されます。

解説(Remarks)

このメソッドは、新しい要求メソッドである createRequestWStr のみをサポートします。 createPKCS10WStr メソッドはサポートしていません。

このメソッドを複数回呼び出すことで、要求に対して複数の証明書テンプレートを設定できます。

vtbl 116 HRESULT getProviderTypeWStr(LPWSTR pwszProvName, INT* plProvType)

指定された暗号化サービスプロバイダー(CSP)の種類を取得します。

pwszProvNameLPWSTRin種類を要求する CSP の名前を含む null で終わるワイド文字列へのポインター。このメソッドは IEnroll4 インターフェイスで初めて定義されました。
plProvTypeINT*inout

CSP の種類を受け取る LONG 値へのポインター。CSP の種類は次のいずれかの値です。

vtbl 117 HRESULT addBlobPropertyToCertificateWStr(INT lPropertyId, INT lReserved, CRYPT_INTEGER_BLOB* pBlobProperty)

IEnroll4::addBlobPropertyToCertificateWStr メソッドは、証明書に BLOB プロパティを追加します。

lPropertyIdINTin証明書に追加する BLOB プロパティの識別子。
lReservedINTinこのパラメーターは予約されています。ゼロにする必要があります。
pBlobPropertyCRYPT_INTEGER_BLOB*inoutBLOB プロパティのデータを表す CRYPT_DATA_BLOB 構造体へのポインター。
vtbl 118 HRESULT SetSignerCertificate(CERT_CONTEXT* pSignerCert)

SetSignerCertificate メソッドは、署名者の証明書を指定します。このメソッドは IEnroll4 インターフェイスで初めて定義されました。

pSignerCertCERT_CONTEXT*in署名者の証明書を表す CERT_CONTEXT 構造体へのポインター。

戻り値

戻り値は HRESULT です。S_OK は成功を示します。

vtbl 119 HRESULT put_ClientId(INT lClientId)

ClientId プロパティは、クライアント ID 要求属性を設定または取得します。クライアント ID 要求属性は、証明書要求の発生元を示します。このプロパティは IEnroll4 インターフェイスで初めて定義されました。(Put)

lClientIdINTin登録要求を発行するクライアントを識別するクライアント ID を渡す。
vtbl 120 HRESULT get_ClientId(INT* plClientId)

ClientId プロパティは、クライアント ID 要求属性を設定または取得します。クライアント ID 要求属性は、証明書要求の発生元を示します。このプロパティは IEnroll4 インターフェイスで初めて定義されました。(Get)

plClientIdINT*inout現在のクライアント ID を受け取る INT へのポインタである。
vtbl 121 HRESULT put_IncludeSubjectKeyID(BOOL fInclude)

IEnroll4 の IncludeSubjectKeyID プロパティは、生成される証明書要求にサブジェクトキー ID 拡張を追加するかどうかを決定します。(Put)

fIncludeBOOLin要求にサブジェクトキー識別子(Subject Key ID)を含めるかどうかを指定する BOOL 値を渡す。
vtbl 122 HRESULT get_IncludeSubjectKeyID(BOOL* pfInclude)

IEnroll4 の IncludeSubjectKeyID プロパティは、生成される証明書要求にサブジェクトキー ID 拡張を追加するかどうかを決定します。(Get)

pfIncludeBOOL*inout要求にサブジェクトキー識別子を含めるかどうかを受け取る BOOL へのポインタである。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IEnroll4 "{F8053FE5-78F4-448F-A0DB-41D61B73446B}"
#usecom global IEnroll4 IID_IEnroll4 "{}"
#comfunc global IEnroll4_put_ThumbPrintWStr                  91 int
#comfunc global IEnroll4_get_ThumbPrintWStr                  92 var
#comfunc global IEnroll4_SetPrivateKeyArchiveCertificate     93 var
#comfunc global IEnroll4_GetPrivateKeyArchiveCertificate     94
#comfunc global IEnroll4_binaryBlobToString                  95 int,var,var
#comfunc global IEnroll4_stringToBinaryBlob                  96 int,wstr,var,var,var
#comfunc global IEnroll4_addExtensionToRequestWStr           97 int,wstr,var
#comfunc global IEnroll4_addAttributeToRequestWStr           98 int,wstr,var
#comfunc global IEnroll4_addNameValuePairToRequestWStr       99 int,wstr,wstr
#comfunc global IEnroll4_resetExtensions                     100
#comfunc global IEnroll4_resetAttributes                     101
#comfunc global IEnroll4_createRequestWStr                   102 int,wstr,wstr,var
#comfunc global IEnroll4_createFileRequestWStr               103 int,wstr,wstr,wstr
#comfunc global IEnroll4_acceptResponseBlob                  104 var
#comfunc global IEnroll4_acceptFileResponseWStr              105 wstr
#comfunc global IEnroll4_getCertContextFromResponseBlob      106 var,var
#comfunc global IEnroll4_getCertContextFromFileResponseWStr  107 wstr,var
#comfunc global IEnroll4_createPFXWStr                       108 wstr,var
#comfunc global IEnroll4_createFilePFXWStr                   109 wstr,wstr
#comfunc global IEnroll4_setPendingRequestInfoWStr           110 int,wstr,wstr,wstr
#comfunc global IEnroll4_enumPendingRequestWStr              111 int,int,sptr
#comfunc global IEnroll4_removePendingRequestWStr            112 int
#comfunc global IEnroll4_GetKeyLenEx                         113 int,int,var
#comfunc global IEnroll4_InstallPKCS7BlobEx                  114 var,var
#comfunc global IEnroll4_AddCertTypeToRequestWStrEx          115 int,wstr,int,int,int
#comfunc global IEnroll4_getProviderTypeWStr                 116 wstr,var
#comfunc global IEnroll4_addBlobPropertyToCertificateWStr    117 int,int,var
#comfunc global IEnroll4_SetSignerCertificate                118 var
#comfunc global IEnroll4_put_ClientId                        119 int
#comfunc global IEnroll4_get_ClientId                        120 var
#comfunc global IEnroll4_put_IncludeSubjectKeyID             121 int
#comfunc global IEnroll4_get_IncludeSubjectKeyID             122 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。