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

IAssemblyCacheItem

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

公式ドキュメント

IAssemblyCacheItem インターフェイスは、ストリームベースのインストールを使用して、side-by-side アセンブリを side-by-side ストアにインストールするために使用できます。

メソッド 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)

CreateStream メソッドは、マニフェストまたはモジュールのソースをストリームにコピーします。

dwFlagsDWORDin予約済みです。
pszStreamNameLPWSTRinマニフェストの名前を含む文字列値へのポインターです。これがストリームの名前になります。
dwFormatDWORDin

このパラメーターは、モジュールとマニフェストのどちらをストリームにコピーするかを指定します。

説明
STREAM_FORMAT_COMPLIB_MODULE
非 Windows アセンブリのモジュールのソースをストリームにコピーします。
STREAM_FORMAT_COMPLIB_MANIFEST
非 Windows アセンブリのマニフェストのソースをストリームにコピーします。
STREAM_FORMAT_WIN32_MODULE
Windows アセンブリのモジュールのソースをストリームにコピーします。
STREAM_FORMAT_WIN32_MANIFEST
Windows アセンブリのマニフェストのソースをストリームにコピーします。
dwFormatFlagsDWORDin予約済みです。
ppIStreamIStream**out情報を受け取る IStream インターフェイスへのポインターが格納されている場所へのポインターです。
puliMaxSizeULONGLONG*inout予約済みです。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
S_OK
メソッドは成功しました。
S_FALSE
メソッドは成功しませんでした。
vtbl 4 HRESULT Commit(DWORD dwFlags, DWORD* pulDisposition)

Commit メソッドは、情報を side-by-side ストアにコピーします。このメソッドが戻ると、アセンブリは side-by-side ストア内で参照可能になります。

dwFlagsDWORDin

このパラメーターは、side-by-side ストア内の既存の情報を、インストール中のアセンブリの情報でどのように置き換えるかを指定します。

説明
IASSEMBLYCACHEITEM_COMMIT_FLAG_REFRESH
アセンブリのバージョンが既存の情報のバージョン以上である場合に、side-by-side ストア内の既存の情報を、インストール中のアセンブリの情報で置き換えます。これが既定のオプションです。
IASSEMBLYCACHEITEM_COMMIT_FLAG_FORCE_REFRESH
side-by-side ストア内の既存の情報を、インストール中のアセンブリの情報で置き換えます。
pulDispositionDWORD*inout
説明
IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_INSTALLED
アセンブリが初めてインストールされます。
IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_REFRESHED
アセンブリが既存のアセンブリを置き換えます。
IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_ALREADY_INSTALLED
アセンブリは side-by-side アセンブリストアに既にインストールされています。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
S_OK
メソッドは成功しました。
S_FALSE
メソッドは成功しませんでした。
vtbl 5 HRESULT AbortItem()
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 指定が可能。