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();
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | ウィンドウズ |
ヘッダー | ddraw.h |
ライブラリ | Ddraw.lib |
DLL | Ddraw.dll |
関連項目
IDirectDraw7 を する