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

IAssemblyName

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

メソッド 9

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

vtbl 3 HRESULT SetProperty(DWORD PropertyId, void* pvProperty, DWORD cbProperty)
PropertyIdDWORDin設定するアセンブリ名プロパティの ID (ASM_NAME 列挙値) を指定する。
pvPropertyvoid*inout設定する値が格納されたバッファへのポインタである。
cbPropertyDWORDinpvProperty が指す値のバイト数を指定する。
vtbl 4 HRESULT GetProperty(DWORD PropertyId, void* pvProperty, DWORD* pcbProperty)
PropertyIdDWORDin取得するアセンブリ名プロパティの ID を指定する。
pvPropertyvoid*inout取得した値を格納するバッファへのポインタである。
pcbPropertyDWORD*inout入力ではバッファのサイズを、出力では実際に必要なバイト数を受け取る変数へのポインタである。
vtbl 5 HRESULT Finalize()
vtbl 6 HRESULT GetDisplayName(LPWSTR szDisplayName, DWORD* pccDisplayName, DWORD dwDisplayFlags)
szDisplayNameLPWSTRoutoptionalアセンブリの表示名を受け取るバッファへのポインタである。
pccDisplayNameDWORD*inout入力ではバッファの文字数を、出力では必要な文字数を受け取る変数へのポインタである。
dwDisplayFlagsDWORDin表示名に含める情報を制御するフラグ (ASM_DISPLAY_FLAGS) を指定する。
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)
lpcwBufferDWORD*inout入力では pwzName バッファの文字数を、出力では必要な文字数を受け取る変数へのポインタである。
pwzNameLPWSTRoutoptionalアセンブリの単純名を受け取るバッファへのポインタである。
vtbl 9 HRESULT GetVersion(DWORD* pdwVersionHi, DWORD* pdwVersionLow)
pdwVersionHiDWORD*inoutアセンブリバージョンの上位 32 ビット (メジャー・マイナー) を受け取る変数へのポインタである。
pdwVersionLowDWORD*inoutアセンブリバージョンの下位 32 ビット (ビルド・リビジョン) を受け取る変数へのポインタである。
vtbl 10 HRESULT IsEqual(IAssemblyName* pName, DWORD dwCmpFlags)
pNameIAssemblyName*in比較対象のアセンブリ名を表す IAssemblyName へのポインタである。
dwCmpFlagsDWORDin比較に用いる名前部分を指定するフラグ (ASM_CMP_FLAGS) を指定する。
vtbl 11 HRESULT Clone(IAssemblyName** pName)
pNameIAssemblyName**out現在のアセンブリ名の複製を表す IAssemblyName を受け取るポインタへのポインタである。

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 指定が可能。