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

IX509AttributeCspProvider

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

メソッド 5

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

vtbl 10 HRESULT InitializeEncode(X509KeySpec KeySpec, LPWSTR strProviderName, EncodingType Encoding, LPWSTR strSignature)
KeySpecX509KeySpecinキーの用途 (署名用または鍵交換用) を示す X509KeySpec 値である。
strProviderNameLPWSTRin使用する暗号化サービス プロバイダ (CSP) の名前を指定する文字列である。
EncodingEncodingTypeinstrSignature のエンコード形式を指定する EncodingType 値である。
strSignatureLPWSTRinプロバイダ情報に付与する署名をエンコードした文字列である。
vtbl 11 HRESULT InitializeDecode(EncodingType Encoding, LPWSTR strEncodedData)
EncodingEncodingTypeinstrEncodedData のエンコード形式を指定する EncodingType 値である。
strEncodedDataLPWSTRinデコード対象となるエンコード済みの CSP プロバイダ属性データを格納した文字列である。
vtbl 12 HRESULT get_KeySpec(X509KeySpec* pValue)
pValueX509KeySpec*outキーの用途を示す X509KeySpec 値を受け取る出力先である。
vtbl 13 HRESULT get_ProviderName(LPWSTR* pValue)
pValueLPWSTR*out暗号化サービス プロバイダ (CSP) の名前を受け取る出力先である。
vtbl 14 HRESULT get_Signature(EncodingType Encoding, LPWSTR* pValue)
EncodingEncodingTypein出力する pValue の希望するエンコード形式を指定する EncodingType 値である。
pValueLPWSTR*outプロバイダ情報の署名を指定エンコード形式で受け取る出力先である。

HSP用 COM定義

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

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