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

ICEnroll3

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDc28c2d95-b7de-11d2-a421-00c04f79fe8e継承元ICEnroll2呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl69

メソッド 14

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

vtbl 69 HRESULT InstallPKCS7(LPWSTR PKCS7)
PKCS7LPWSTRinインストールする PKCS #7 証明書応答を Base64 文字列として渡す。
vtbl 70 HRESULT Reset()
vtbl 71 HRESULT GetSupportedKeySpec(INT* pdwKeySpec)
pdwKeySpecINT*outプロバイダーがサポートするキー仕様を受け取る INT へのポインタである。
vtbl 72 HRESULT GetKeyLen(BOOL fMin, BOOL fExchange, INT* pdwKeySize)
fMinBOOLin最小キー長を取得する場合は TRUE、最大キー長を取得する場合は FALSE を指定する。
fExchangeBOOLin鍵交換キーの長さを取得する場合は TRUE、署名キーの長さを取得する場合は FALSE を指定する。
pdwKeySizeINT*out取得したキー長(ビット数)を受け取る INT へのポインタである。
vtbl 73 HRESULT EnumAlgs(INT dwIndex, INT algClass, INT* pdwAlgID)
dwIndexINTin列挙するアルゴリズムの 0 始まりのインデックスを指定する。
algClassINTin列挙対象とするアルゴリズムのクラス(署名、ハッシュなど)を指定する。
pdwAlgIDINT*out指定インデックスのアルゴリズム ID を受け取る INT へのポインタである。
vtbl 74 HRESULT GetAlgName(INT algID, LPWSTR* pbstr)
algIDINTin名前を取得するアルゴリズムの ID を指定する。
pbstrLPWSTR*out指定アルゴリズム ID に対応する名前を受け取る LPWSTR へのポインタである。
vtbl 75 HRESULT put_ReuseHardwareKeyIfUnableToGenNew(BOOL fReuseHardwareKeyIfUnableToGenNew)
fReuseHardwareKeyIfUnableToGenNewBOOLin新規キーを生成できない場合に既存のハードウェアキーを再利用するかどうかを指定する BOOL 値を渡す。
vtbl 76 HRESULT get_ReuseHardwareKeyIfUnableToGenNew(BOOL* fReuseHardwareKeyIfUnableToGenNew)
fReuseHardwareKeyIfUnableToGenNewBOOL*out新規キーを生成できない場合に既存のハードウェアキーを再利用するかどうかを受け取る BOOL へのポインタである。
vtbl 77 HRESULT put_HashAlgID(INT hashAlgID)
hashAlgIDINTin使用するハッシュアルゴリズムの ID を渡す。
vtbl 78 HRESULT get_HashAlgID(INT* hashAlgID)
hashAlgIDINT*out現在のハッシュアルゴリズム ID を受け取る INT へのポインタである。
vtbl 79 HRESULT put_LimitExchangeKeyToEncipherment(BOOL fLimitExchangeKeyToEncipherment)
fLimitExchangeKeyToEnciphermentBOOLin鍵交換キーの用途を暗号化のみに制限するかどうかを指定する BOOL 値を渡す。
vtbl 80 HRESULT get_LimitExchangeKeyToEncipherment(BOOL* fLimitExchangeKeyToEncipherment)
fLimitExchangeKeyToEnciphermentBOOL*out鍵交換キーの用途を暗号化のみに制限するかどうかを受け取る BOOL へのポインタである。
vtbl 81 HRESULT put_EnableSMIMECapabilities(BOOL fEnableSMIMECapabilities)
fEnableSMIMECapabilitiesBOOLinS/MIME 機能属性を要求に含めるかどうかを指定する BOOL 値を渡す。
vtbl 82 HRESULT get_EnableSMIMECapabilities(BOOL* fEnableSMIMECapabilities)
fEnableSMIMECapabilitiesBOOL*outS/MIME 機能属性を要求に含めるかどうかを受け取る BOOL へのポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_ICEnroll3 "{C28C2D95-B7DE-11D2-A421-00C04F79FE8E}"
#usecom global ICEnroll3 IID_ICEnroll3 "{43F8F289-7A20-11D0-8F06-00C04FC295E1}"
#comfunc global ICEnroll3_InstallPKCS7                          69 wstr
#comfunc global ICEnroll3_Reset                                 70
#comfunc global ICEnroll3_GetSupportedKeySpec                   71 var
#comfunc global ICEnroll3_GetKeyLen                             72 int,int,var
#comfunc global ICEnroll3_EnumAlgs                              73 int,int,var
#comfunc global ICEnroll3_GetAlgName                            74 int,var
#comfunc global ICEnroll3_put_ReuseHardwareKeyIfUnableToGenNew  75 int
#comfunc global ICEnroll3_get_ReuseHardwareKeyIfUnableToGenNew  76 var
#comfunc global ICEnroll3_put_HashAlgID                         77 int
#comfunc global ICEnroll3_get_HashAlgID                         78 var
#comfunc global ICEnroll3_put_LimitExchangeKeyToEncipherment    79 int
#comfunc global ICEnroll3_get_LimitExchangeKeyToEncipherment    80 var
#comfunc global ICEnroll3_put_EnableSMIMECapabilities           81 int
#comfunc global ICEnroll3_get_EnableSMIMECapabilities           82 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。