ホーム › System.Mmc › IMMCVersionInfo
IMMCVersionInfo
COM公式ドキュメント
IMMCVersionInfo インターフェイスは、インストールされている MMC アプリケーションのバージョン情報を提供します。
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
GetMMCVersion メソッドは、MMC アプリケーションのバージョン情報を取得します。
| pVersionMajor | INT* | out | バージョンのメジャー番号。たとえば *pVersionMajor が 2 を返した場合、MMC バージョン 2.x が実行されています。 |
| pVersionMinor | INT* | out | バージョンのマイナー番号。たとえば *pVersionMinor が 0 を返した場合、MMC バージョン x.0 が実行されています。 |
戻り値
成功した場合、戻り値は S_OK です。それ以外の戻り値はエラーコードを示します。
解説(Remarks)
IMMCVersionInfo インターフェイスは MMC 2.0 で導入されました。MMC 1.x がインストールされている場合に MMC のバージョンを判別する方法については、 MMC バージョン番号の検出 を参照してください。
例
IMMCVersionInfo * pVersionInfo = NULL;
HRESULT hr;
// MMCVersionInfo クラスのオブジェクトを作成します。
hr = CoCreateInstance(CLSID_MMCVersionInfo,
NULL,
CLSCTX_INPROC_SERVER,
IID_IMMCVersionInfo,
(void**)&pVersionInfo);
if (S_OK != hr)
{
// エラーが発生しました。
// システムが MMCVersionInfo をサポートしていない場合は、その旨を報告します。
// これはシステムが MMC 1.x を実行している場合に発生します。
if (REGDB_E_CLASSNOTREG == hr)
OutputDebugString(_T("MMCVersionInfo is not registered\n"));
else
// 別のエラーが発生しました。
OutputDebugString(_T("Failed call to CoCreateInstance\n"));
}
else
{
// GetMMCVersion メソッドを呼び出します。
long lMajor, lMinor;
hr = pVersionInfo->GetMMCVersion(&lMajor,
&lMinor);
if (S_OK != hr)
OutputDebugString(_T("Failed call to GetMMCVersion\n"));
else
{
OutputDebugString(_T("Success in GetMMCVersion\n"));
// 必要に応じてメジャーおよびマイナーのバージョン情報を使用します。
// ...
}
}
// インターフェイスポインターを解放します。
if (NULL != pVersionInfo)
{
pVersionInfo->Release();
pVersionInfo = NULL;
}
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IMMCVersionInfo "{A8D2C5FE-CDCB-4B9D-BDE5-A27343FF54BC}" #usecom global IMMCVersionInfo IID_IMMCVersionInfo "{D6FEDB1D-CF21-4BD9-AF3B-C5468E9C6684}" #comfunc global IMMCVersionInfo_GetMMCVersion 3 var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IMMCVersionInfo "{A8D2C5FE-CDCB-4B9D-BDE5-A27343FF54BC}" #usecom global IMMCVersionInfo IID_IMMCVersionInfo "{D6FEDB1D-CF21-4BD9-AF3B-C5468E9C6684}" #comfunc global IMMCVersionInfo_GetMMCVersion 3 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。