IDirectDraw7::SetCooperativeLevel メソッド (ddraw.h)
アプリケーションの最上位の動作を決定します。
構文
HRESULT SetCooperativeLevel(
[in] HWND unnamedParam1,
[in] DWORD unnamedParam2
);
パラメーター
[in] unnamedParam1
アプリケーションに使用されるウィンドウ ハンドル。 を呼び出し元のアプリケーションの最上位ウィンドウ ハンドルに設定します (最上位ウィンドウによって作成された子ウィンドウのハンドルではありません)。 dwFlags パラメーターでDDSCL_NORMAL フラグが指定されている場合、このパラメーターは NULL にすることができます。
[in] unnamedParam2
この値は、次のフラグの 1 つ以上で構成されます。
DDSCL_ALLOWMODEX
モード X 表示モードを使用できます。 このフラグは、DDSCL_EXCLUSIVEフラグとDDSCL_FULLSCREENフラグが存在する場合にのみ使用できます。
DDSCL_ALLOWREBOOT
Ctrl + Alt + DEL を排他 (全画面表示) モードで機能できるようにします。
DDSCL_CREATEDEVICEWINDOW
このフラグは、Windows 98 および Windows 2000 でのみサポートされています。 DirectDraw がこの DirectDraw オブジェクトの既定のデバイス ウィンドウを作成および管理することを示します。
DDSCL_EXCLUSIVE
排他レベルを要求します。 このフラグは、DDSCL_FULLSCREEN フラグと共に使用する必要があります。
DDSCL_FPUPRESERVE
呼び出し元のアプリケーションは FPU 状態を気にし、Direct3D がアプリケーションに表示される方法で変更することを望んでいません。 このモードでは、Direct3D は FPU 状態を変更する必要があるたびに FPU 状態を保存および復元します。
DDSCL_FPUSETUP
呼び出し元のアプリケーションでは、最適な Direct3D パフォーマンス (単精度と例外が無効) のために FPU の設定が維持される可能性が高いので、Direct3D は毎回 FPU を明示的に設定する必要はありません。 これが既定の状態です。
DDSCL_FULLSCREEN
排他モードの所有者は、プライマリ サーフェス全体を担当します。 GDI は無視できます。 このフラグは、DDSCL_EXCLUSIVE フラグと共に使用する必要があります。
DDSCL_MULTITHREADED
マルチスレッドセーフな DirectDraw 動作を要求します。 これにより、Direct3D はグローバル クリティカル セクションをより頻繁に受け取ります。
DDSCL_NORMAL
アプリケーションは、一般的な Windows アプリケーションとして機能します。 このフラグは、DDSCL_ALLOWMODEX、DDSCL_EXCLUSIVE、またはDDSCL_FULLSCREENフラグでは使用できません。
DDSCL_NOWINDOWCHANGES
DirectDraw では、アクティブ化時にアプリケーション ウィンドウを最小化または復元することはできません。
DDSCL_SETDEVICEWINDOW
このフラグは、Windows 98 および Windows 2000 でのみサポートされています。 hWnd パラメーターがこの DirectDraw オブジェクトのデバイス ウィンドウのウィンドウ ハンドルであることを示します。 このフラグは、DDSCL_SETFOCUSWINDOW フラグでは使用できません。
DDSCL_SETFOCUSWINDOW
このフラグは、Windows 98 および Windows 2000 でのみサポートされています。 hWnd パラメーターがこの DirectDraw オブジェクトのフォーカス ウィンドウのウィンドウ ハンドルであることを示します。 このフラグは、DDSCL_SETDEVICEWINDOW フラグでは使用できません。
戻り値
メソッドが成功した場合、戻り値はDD_OK。
失敗した場合、メソッドは次のいずれかのエラー値を返すことができます。
- DDERR_EXCLUSIVEMODEALREADYSET
- DDERR_HWNDALREADYSET
- DDERR_HWNDSUBCLASSED
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_OUTOFMEMORY
注釈
このメソッドは、アプリケーション ウィンドウを作成したのと同じスレッドによって呼び出される必要があります。
アプリケーションでは、DDSCL_EXCLUSIVE または DDSCL_NORMAL フラグを設定する必要があります。
他のアプリケーションのパフォーマンスに悪影響を与える可能性がある関数を呼び出すには、DDSCL_EXCLUSIVE フラグを設定する必要があります。
このメソッドと IDirectDraw7::SetDisplayMode メソッドの相互作用は、対応する IDirectDraw メソッドとは異なります。
Microsoft Foundation Classes (MFC) を使用する場合、このメソッドに渡されるウィンドウ ハンドルは、派生子ウィンドウではなく、アプリケーションの最上位ウィンドウを識別する必要があります。 MFC アプリケーションの最上位ウィンドウ ハンドルを取得するには、次のコードを使用できます。
HWND hwndTop = AfxGetMainWnd()->GetSafeHwnd();
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | ddraw.h |
Library | Ddraw.lib |
[DLL] | Ddraw.dll |