VerifyVersionInfoW 関数 (winbase.h)
オペレーティング システムのバージョン要件のセットと、現在実行中のバージョンのシステムの対応する値を比較します。この関数は、マニフェストベースの動作の対象となります。 詳細については、「解説」セクションを参照してください。
注: この関数は、Windows 10 では非推奨になりました。 詳細については、Windows のアプリケーションを対象とする
構文
BOOL VerifyVersionInfoW(
[in] LPOSVERSIONINFOEXW lpVersionInformation,
[in] DWORD dwTypeMask,
[in] DWORDLONG dwlConditionMask
);
パラメーター
[in] lpVersionInformation
比較するオペレーティング システムのバージョン要件を含む OSVERSIONINFOEX 構造体へのポインター。 dwTypeMask パラメーターは、比較する情報を含むこの構造体のメンバーを示します。
この構造体の dwOSVersionInfoSize メンバーを sizeof(OSVERSIONINFOEX)
に設定する必要があります。 また、dwTypeMaskで示されるメンバーの有効なデータを指定する必要があります。 この関数は、対応する dwTypeMask ビットが設定されていない構造体メンバーを無視します。
[in] dwTypeMask
テストする OSVERSIONINFOEX 構造体のメンバーを示すマスク。 このパラメーターには、次の値のうち 1 つ以上を指定できます。
[in] dwlConditionMask
比較される各 lpVersionInfo メンバーに使用する比較の種類。 この値をビルドするには、比較対象の OSVERSIONINFOEX メンバーごとに、
戻り値
現在実行中のオペレーティング システムが指定された要件を満たしている場合、戻り値は 0 以外の値になります。
現在のシステムが要件を満たしていない場合、戻り値は 0 で、GetLastError
関数が失敗した場合、戻り値は 0 で、GetLastError
備考
VerifyVersionInfo 関数は、現在実行中のオペレーティング システムに関するバージョン情報を取得し、lpVersionInfo 構造体の有効なメンバーと比較します。 これにより、オペレーティング システムのバージョン条件の必要なセットの存在を簡単に判断できます。
通常、VerifyVersionInfo
この関数は、メジャー バージョン、マイナー バージョン、Service Pack バージョンの順にこれらの値をテストします。 関数は、値が等しい間、値のテストを続行し、値の 1 つが指定された条件を満たしていない場合に停止します。 たとえば、バージョン 5.1 Service Pack 1 以上のシステムをテストする場合、現在のバージョンが 6.0 の場合、テストは成功します。 (メジャー バージョンが指定されたバージョンより大きいので、テストは停止します)。同様に、バージョン 5.1 Service Pack 1 以上のシステムをテストする場合、現在のバージョンが 5.2 の場合、テストは成功します。 (マイナー バージョンが指定されたバージョンより大きいので、テストは停止します)。ただし、バージョン 5.1 Service Pack 1 以上のシステムをテストする場合、現在のバージョンが 5.0 Service Pack 2 の場合、テストは失敗します。 (マイナー バージョンが指定されたバージョンより大きくないので、テストは停止します)。
システム バージョンの範囲を確認するには、VerifyVersionInfo を 2 回呼び出す必要があります。 たとえば、システム バージョンが 5.0 より大きいが 5.1 以下であることを確認するには、最初に VerifyVersionInfo
現在のオペレーティング システムを特定することは、通常、特定のオペレーティング システム機能が存在するかどうかを判断する最適な方法ではありません。 これは、オペレーティング システムに再頒布可能 DLL に新機能が追加された可能性があるためです。
GetVersionEx を使用してオペレーティング システムのプラットフォームまたはバージョン番号を確認するのではなく、機能自体が存在するかどうかをテストします。 詳細については、「オペレーティング システムのバージョンを
現在のオペレーティング システムが Media Center または Tablet PC バージョンの Windows かどうかを確認するには、GetSystemMetrics
Windows 10: VerifyVersionInfo は、現在のオペレーティング システム バージョンが Windows 8.1 または Windows 10 の場合でも、windows 8.1 または Windows 10 を指定するように lpVersionInfo パラメーターが設定されている場合、Windows 8.1 または Windows 10 の互換性マニフェストがないアプリケーションによって呼び出されると false を返します。 具体的には、VerifyVersionInfo
- アプリケーションにマニフェストがない場合、VerifyVersionInfo は、オペレーティング システムのバージョンが Windows 8 (6.2) であるかのように動作します。
- アプリケーションに Windows 8.1 に対応する GUID を含むマニフェストがある場合、VerifyVersionInfo は、オペレーティング システムのバージョンが Windows 8.1 (6.3) であるかのように動作します。
- アプリケーションに Windows 10 に対応する GUID を含むマニフェストがある場合、VerifyVersionInfo は、オペレーティング システムのバージョンが Windows 10 (10.0) であるかのように動作します。
Windows 8.1 または Windows 10 用のアプリケーションをマニフェストするには、「Windowsのアプリケーションをターゲットにする」を参照してください。
例
例については、「システム バージョンの確認」を参照してください。
手記
winbase.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして VerifyVersionInfo を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winbase.h (Windows.h を含む) |
ライブラリ | Kernel32.lib |
DLL | Kernel32.dll |
関連項目
GetVersionEx を
OSVERSIONINFOEX の