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

IAssemblyCacheItem

COM
IID9e3aaeb4-d1cd-11d2-bab9-00c04f8eceae継承元IUnknown自前メソッド開始 vtbl3

メソッド 3

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

vtbl 3 HRESULT CreateStream(DWORD dwFlags, LPWSTR pszStreamName, DWORD dwFormat, DWORD dwFormatFlags, IStream** ppIStream, ULONGLONG* puliMaxSize)
dwFlagsDWORDinストリーム作成の動作を制御するフラグを指定する。
pszStreamNameLPWSTRin作成するストリーム (アセンブリ内ファイル) の名前文字列へのポインタである。
dwFormatDWORDinストリームの格納形式を指定する。
dwFormatFlagsDWORDin格納形式に関する追加フラグを指定する。
ppIStreamIStream**out書き込み用に作成された IStream を受け取るポインタへのポインタである。
puliMaxSizeULONGLONG*inoutストリームに書き込む予定の最大バイト数を指定する変数へのポインタである。
vtbl 4 HRESULT Commit(DWORD dwFlags, DWORD* pulDisposition)
dwFlagsDWORDinコミット動作を制御するフラグを指定する。
pulDispositionDWORD*inoutコミットの結果 (新規インストールか更新か等) を受け取る変数へのポインタである。
vtbl 5 HRESULT AbortItem()

HSP用 COM定義

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

出力引数:
#define global IID_IAssemblyCacheItem "{9E3AAEB4-D1CD-11D2-BAB9-00C04F8ECEAE}"
#usecom global IAssemblyCacheItem IID_IAssemblyCacheItem "{}"
#comfunc global IAssemblyCacheItem_CreateStream  3 int,wstr,int,int,sptr,var
#comfunc global IAssemblyCacheItem_Commit        4 int,var
#comfunc global IAssemblyCacheItem_AbortItem     5
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。