IVersionInfo
COM公式ドキュメント
アクセシブルな要素のバージョン情報を提供するメソッドを公開します。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
クライアントは IVersionInfo::GetSubcomponentCount を呼び出して、バージョン情報が返されるサブコンポーネントの数を取得します。
| ulSub | DWORD | in | ツリー内でのコンポーネントの序数位置。 |
| ulCount | DWORD* | out | このコンポーネントがバージョン情報を公開するサブコンポーネントの数。 |
戻り値
型: HRESULT
成功した場合は S_OK を返します。失敗した場合は標準の COM エラー コード を返します。
クライアントは IVersionInfo::GetImplementationID を呼び出して、コンポーネントの一意な識別子を取得します。
| ulSub | DWORD | in | ツリー内でのコンポーネントの序数位置。 |
| implid | GUID* | out | コンポーネントの実装識別子。実装識別子はこのコンポーネントに固有であり、コンポーネントの比較にのみ使用されます。 |
戻り値
型: HRESULT
成功した場合は S_OK を返します。失敗した場合は標準の COM エラー コード を返します。
クライアントは IVersionInfo::GetBuildVersion を呼び出して、指定したコンポーネントのビルド情報を取得します。
| ulSub | DWORD | in | ツリー内でのコンポーネントの序数位置。 |
| pdwMajor | DWORD* | out | ulSub で指定したコンポーネントのメジャー ビルド バージョン。 |
| pdwMinor | DWORD* | out | ulSub で指定したコンポーネントのマイナー ビルド バージョン。 |
戻り値
型: HRESULT
成功した場合は S_OK を返します。失敗した場合は標準の COM エラー コード を返します。
クライアントはこのメソッドを呼び出して、コンポーネントの説明を取得します。
| ulSub | DWORD | in | ツリー内でのコンポーネントの序数位置。 |
| pImplStr | LPWSTR* | out | "Company, suite, component, version." という形式の文字列。これは人間が読むためのものであり、解析されることは想定されていません。 |
戻り値
型: HRESULT
成功した場合は S_OK を返します。失敗した場合は標準の COM エラー コード を返します。
クライアントはこのメソッドを呼び出して、インスタンスの説明を取得します。メモ Active Accessibility Text Services は非推奨です。
| ulSub | DWORD | in | ツリー内でのコンポーネントの序数位置。 |
| pImplStr | LPWSTR* | out | 内部のオブジェクト状態など、コンポーネントに関する有用な追加文字列。 |
戻り値
型: HRESULT
成功した場合は S_OK を返します。失敗した場合は標準の COM エラー コード を返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IVersionInfo "{401518EC-DB00-4611-9B29-2A0E4B9AFA85}" #usecom global IVersionInfo IID_IVersionInfo "{}" #comfunc global IVersionInfo_GetSubcomponentCount 3 int,var #comfunc global IVersionInfo_GetImplementationID 4 int,var #comfunc global IVersionInfo_GetBuildVersion 5 int,var,var #comfunc global IVersionInfo_GetComponentDescription 6 int,var #comfunc global IVersionInfo_GetInstanceDescription 7 int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IVersionInfo "{401518EC-DB00-4611-9B29-2A0E4B9AFA85}" #usecom global IVersionInfo IID_IVersionInfo "{}" #comfunc global IVersionInfo_GetSubcomponentCount 3 int,sptr #comfunc global IVersionInfo_GetImplementationID 4 int,sptr #comfunc global IVersionInfo_GetBuildVersion 5 int,sptr,sptr #comfunc global IVersionInfo_GetComponentDescription 6 int,sptr #comfunc global IVersionInfo_GetInstanceDescription 7 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。