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

IAssemblyName

COM
IIDcd193bc0-b4bc-11d2-9833-00c04fc31d2e継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IAssemblyName インターフェイスは、Side-by-Side アセンブリ名を表します。

メソッド 9

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

vtbl 3 HRESULT SetProperty(DWORD PropertyId, void* pvProperty, DWORD cbProperty)

SetProperty メソッドは、Side-by-Side アセンブリ名に名前と値のペアを追加します。このメソッドは、既存の名前と値のペアの値を変更または削除することもできます。

PropertyIdDWORDin名前と値のペアを表すプロパティ ID です。有効なプロパティ ID は ASM_NAME 列挙型の値です。
pvPropertyvoid*inout名前と値のペアの値を格納するバッファーへのポインターです。
cbPropertyDWORDinpvProperty で指定されたバッファーのサイズ(バイト単位)です。このパラメーターの値を 0 に設定すると、アセンブリ名から名前と値のペアが削除されます。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
S_FALSE
メソッドが成功しませんでした。
E_UNEXPECTED
メソッドが成功しませんでした。SetProperty メソッドが Finalize メソッドの後に呼び出されました。
vtbl 4 HRESULT GetProperty(DWORD PropertyId, void* pvProperty, DWORD* pcbProperty)

GetProperty メソッドは、アセンブリ名内の名前と値のペアの値を取得します。

PropertyIdDWORDin名前と値のペアを表すプロパティ ID です。有効なプロパティ ID は ASM_NAME 列挙型の値です。
pvPropertyvoid*inout名前と値のペアの値を受け取るバッファーへのポインターです。
pcbPropertyDWORD*inoutpvProperty で指定されたバッファーのサイズ(バイト単位)です。このプロパティが設定されていない場合、値は 0 になります。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
S_FALSE
メソッドが成功しませんでした。
vtbl 5 HRESULT Finalize()

Finalize メソッドは、Side-by-Side アセンブリ名が変更されないようにします。Finalize を呼び出した後は、SetProperty をさらに呼び出すと E_UNEXPECTED が返されます。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
S_FALSE
メソッドが成功しませんでした。
vtbl 6 HRESULT GetDisplayName(LPWSTR szDisplayName, DWORD* pccDisplayName, DWORD dwDisplayFlags)

GetDisplayName メソッドは、Side-by-Side アセンブリ名の文字列表現を取得します。

szDisplayNameLPWSTRoutoptionalアセンブリ名を格納する文字列値を受け取るバッファーへのポインターです。
pccDisplayNameDWORD*inoutこのメソッドを呼び出すときは、このパラメーターを szDisplayName で指定されたバッファーのサイズに設定します。サイズは文字数で指定し、null 終端文字を含めます。メソッドが返るとき、pccDisplayName の値は返された名前のサイズになります。
dwDisplayFlagsDWORDinアセンブリ名の文字列表現に含めるアセンブリ名の部分を指定する、ASM_DISPLAY_FLAGS 列挙型のオプションの 1 つ以上です。dwDisplayFlags の既定値は 0 で、アセンブリの表示名のすべての部分を返します。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
S_FALSE
メソッドが成功しませんでした。
vtbl 7 HRESULT Reserved(GUID* refIID, IUnknown* pUnkReserved1, IUnknown* pUnkReserved2, LPWSTR szReserved, LONGLONG llReserved, void* pvReserved, DWORD cbReserved, void** ppReserved)
refIIDGUID*in予約済みのインターフェイス ID へのポインタである。
pUnkReserved1IUnknown*in予約済みのインターフェイスポインタである。
pUnkReserved2IUnknown*in予約済みのインターフェイスポインタである。
szReservedLPWSTRin予約済みの文字列へのポインタである。
llReservedLONGLONGin予約済みの 64 ビット値を指定する。
pvReservedvoid*inout予約済みのデータへのポインタである。
cbReservedDWORDin予約済みのサイズ値を指定する。
ppReservedvoid**inout予約済みの出力ポインタへのポインタである。
vtbl 8 HRESULT GetName(DWORD* lpcwBuffer, LPWSTR pwzName)

GetName メソッドは、アセンブリ名の名前部分を返します。

lpcwBufferDWORD*inoutこのメソッドを呼び出すときは、このパラメーターを pwzName で指定されたバッファーのサイズに設定します。サイズは文字数で指定し、null 終端文字を含めます。メソッドが返るとき、lpcwBuffer の値は返された名前のサイズになります。
pwzNameLPWSTRoutoptional名前を受け取る文字列値へのポインターです。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
S_FALSE
メソッドが成功しませんでした。

解説(Remarks)

このメソッドは、PropertyIdASM_NAMEASM_NAME_NAME オプションに設定して GetProperty メソッドを使用することと同等です。ASM_NAME_NAME が設定されていない場合、lpcwBuffer によって返されるバッファーのサイズは 0 になり、pwzName の内容は未定義になります。

vtbl 9 HRESULT GetVersion(DWORD* pdwVersionHi, DWORD* pdwVersionLow)
pdwVersionHiDWORD*inoutアセンブリバージョンの上位 32 ビット (メジャー・マイナー) を受け取る変数へのポインタである。
pdwVersionLowDWORD*inoutアセンブリバージョンの下位 32 ビット (ビルド・リビジョン) を受け取る変数へのポインタである。
vtbl 10 HRESULT IsEqual(IAssemblyName* pName, DWORD dwCmpFlags)

IsEqual メソッドは、現在のアセンブリ名を別のアセンブリ名と比較します。

pNameIAssemblyName*in現在のアセンブリと比較する別の IAssemblyName インスタンスへのポインターです。
dwCmpFlagsDWORDinアセンブリ名のどの部分を比較するかを示します。この値には、ASM_CMP_FLAGS 列挙型のオプションの 1 つを指定できます。

戻り値

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

戻り値 説明
S_OK
指定された名前の部分が一致します。
S_FALSE
指定された名前の部分が一致しません。
vtbl 11 HRESULT Clone(IAssemblyName** pName)

Clone メソッドは、現在の Side-by-Side アセンブリ名を IAssemblyName の新しいインスタンスにコピーします。

pNameIAssemblyName**outIAssemblyName の新しいインスタンスへのポインターを格納する場所へのポインターです。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
S_FALSE
メソッドが成功しませんでした。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IAssemblyName "{CD193BC0-B4BC-11D2-9833-00C04FC31D2E}"
#usecom global IAssemblyName IID_IAssemblyName "{}"
#comfunc global IAssemblyName_SetProperty     3 int,sptr,int
#comfunc global IAssemblyName_GetProperty     4 int,sptr,var
#comfunc global IAssemblyName_Finalize        5
#comfunc global IAssemblyName_GetDisplayName  6 var,var,int
#comfunc global IAssemblyName_Reserved        7 var,sptr,sptr,wstr,int64,sptr,int,sptr
#comfunc global IAssemblyName_GetName         8 var,var
#comfunc global IAssemblyName_GetVersion      9 var,var
#comfunc global IAssemblyName_IsEqual         10 sptr,int
#comfunc global IAssemblyName_Clone           11 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。