次の方法で共有


IDirect3DDevice9::TestCooperativeLevel メソッド

IDirect3DDevice9::TestCooperativeLevel メソッド

ウィンドウ アプリケーションまたはフルスクリーン アプリケーションに対する Microsoft® Direct3D® デバイスの現在の協調レベル ステータスを報告する。

構文

HRESULT TestCooperativeLevel(VOID);

戻り値

成功した場合は、D3D_OK を返す。この戻り値は、デバイスが動作しており、呼び出し側アプリケーションが続行できることを示す。

失敗した場合は、次のいずれかの値を返す (「注意」を参照)。

D3DERR_DEVICELOST デバイスは、消失しているが、現在リセットできない。したがって、レンダリングは不可能である。
D3DERR_DEVICENOTRESET デバイスは、消失しているが、現在リセットできる。

注意

デバイスが失われたにもかかわらず、現時点で復元できない場合、IDirect3DDevice9::TestCooperativeLevelD3DERR_DEVICELOST 戻りコードを返す。たとえば、フルスクリーン デバイスがフォーカスを失ったような場合である。アプリケーションで消失したデバイスを検出した場合、アプリケーションは一時停止して IDirect3DDevice9::TestCooperativeLevel を定期的に呼び出し、戻り値 D3DERR_DEVICENOTRESET を受け取るまで待機する必要がある。その後で、IDirect3DDevice9::Reset を呼び出してデバイスをリセットする。これに成功した場合は、必要なリソースを復元し、通常の処理を再開する。デバイスの状態が "消失" または "非リセット" のいずれかの場合は、IDirect3DDevice9::Present は D3DERR_DEVICELOST を返すことに注意する。

リセットするデバイスを作成したスレッドとは別のスレッドで IDirect3DDevice9::TestCooperativeLevel を呼び出すと、この呼び出しは失敗する。