Win32 API 日本語リファレンス
ホームSystem.ClrHosting › ICLRStrongName3

ICLRStrongName3

COM
IID22c7089b-bbd3-414a-b698-210f263f1fed継承元IUnknown自前メソッド開始 vtbl3

メソッド 3

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

vtbl 3 HRESULT StrongNameDigestGenerate(LPWSTR wszFilePath, BYTE** ppbDigestBlob, DWORD* pcbDigestBlob, DWORD dwFlags)
wszFilePathLPWSTRinダイジェストを生成する対象アセンブリファイルのパスを指定する。
ppbDigestBlobBYTE**out生成されたダイジェストブロブを受け取るバッファへのポインタである。不要になったら解放する。
pcbDigestBlobDWORD*out返されるダイジェストブロブのサイズをバイト単位で受け取る。
dwFlagsDWORDinダイジェスト生成の動作を制御するフラグを指定する。
vtbl 4 HRESULT StrongNameDigestSign(LPWSTR wszKeyContainer, BYTE* pbKeyBlob, DWORD cbKeyBlob, BYTE* pbDigestBlob, DWORD cbDigestBlob, DWORD hashAlgId, BYTE** ppbSignatureBlob, DWORD* pcbSignatureBlob, DWORD dwFlags)
wszKeyContainerLPWSTRin署名に使用するキーペアを保持するキーコンテナ名を指定する。pbKeyBlob を指定する場合は NULL でよい。
pbKeyBlobBYTE*in署名に使用する鍵ペアを格納したブロブへのポインタである。wszKeyContainer を指定する場合は NULL でよい。
cbKeyBlobDWORDinpbKeyBlob が指すブロブのサイズをバイト単位で指定する。
pbDigestBlobBYTE*in署名対象となるダイジェストブロブへのポインタである。
cbDigestBlobDWORDinpbDigestBlob が指すダイジェストブロブのサイズをバイト単位で指定する。
hashAlgIdDWORDin署名生成に使用するハッシュアルゴリズムの識別子を指定する。
ppbSignatureBlobBYTE**out生成された署名ブロブを受け取るバッファへのポインタである。不要になったら解放する。
pcbSignatureBlobDWORD*out返される署名ブロブのサイズをバイト単位で受け取る。
dwFlagsDWORDin署名処理の動作を制御するフラグを指定する。
vtbl 5 HRESULT StrongNameDigestEmbed(LPWSTR wszFilePath, BYTE* pbSignatureBlob, DWORD cbSignatureBlob)
wszFilePathLPWSTRin署名を埋め込む対象アセンブリファイルのパスを指定する。
pbSignatureBlobBYTE*inファイルに埋め込む署名ブロブへのポインタである。
cbSignatureBlobDWORDinpbSignatureBlob が指す署名ブロブのサイズをバイト単位で指定する。

HSP用 COM定義

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

出力引数:
#define global IID_ICLRStrongName3 "{22C7089B-BBD3-414A-B698-210F263F1FED}"
#usecom global ICLRStrongName3 IID_ICLRStrongName3 "{}"
#comfunc global ICLRStrongName3_StrongNameDigestGenerate  3 wstr,var,var,int
#comfunc global ICLRStrongName3_StrongNameDigestSign      4 wstr,var,int,var,int,int,var,var,int
#comfunc global ICLRStrongName3_StrongNameDigestEmbed     5 wstr,var,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。