Platform SDK: DirectX |
IDirectDraw7::GetSurfaceFromDC メソッドを呼び出すことにより、サーフェスに対するデバイス コンテキストからサーフェスの IDirectDrawSurface7 インターフェイスへのポインタを取得できる。この機能は、コンポーネント アプリケーションや ActiveX® コントロールで非常に役立つ。この場合、実行時に描画するためのデバイス コンテキストを一般的に与えられるが、IDirectDrawSurface7 インターフェイスで明らかにされる機能を利用することができる。
デバイス コンテキストは、DirectDraw オブジェクトと関係のないメモリを識別する可能性がある。また、デバイス コンテキストは、他の DirectDraw オブジェクトすべてに対するサーフェスを識別する可能性もある。後者の場合は、複数のモニタを使用するシステムで発生しやすい。デバイス コンテキストが DirectDraw オブジェクトで作成しなかったサーフェスを識別しない場合、メソッドは DDERR_NOTFOUND を返して失敗する。
次のサンプルコードで、非常に簡単な場合を説明する。
// この例では、hdc 変数がビデオ メモリ デバイス コンテキストに // 対する有効なハンドルとなる。 // lpDD 変数は、有効な IDirectDraw7 インターフェイス ポインタである。 LPDIRECTDRAWSURFACE7 lpDDS; HRESULT hr; hr = lpDD->GetSurfaceFromDC(hdc, &lpDDS); if(SUCCEEDED(hr)) { // このサーフェスのインターフェイスを使用する。 } else if(DDERR_NOTFOUND == hr) { OutputDebugString("HDC not from this DirectDraw surface\n"); }
DirectDraw7.GetSurfaceFromDC メソッドを呼び出すことにより、サーフェスに対するデバイス コンテキストからサーフェスの DirectDrawSurface7 オブジェクトを取得できる。この機能は、コンポーネント アプリケーションや ActiveX® コントロールで非常に役立つ。この場合、実行時に描画するためのデバイス コンテキストを一般的に与えられるが、DirectDrawSurface7 オブジェクトで明らかにされる機能を利用することができる。
デバイス コンテキストは、DirectDraw オブジェクトと関係のないメモリを識別する可能性がある。また、デバイス コンテキストは、他の DirectDraw オブジェクトすべてに対するサーフェスを識別する可能性もある。デバイス コンテキストが DirectDraw オブジェクトで作成しなかったサーフェスを識別しない場合、メソッドは DDERR_NOTFOUND を返して失敗する。
次のサンプルコードで、非常に簡単な場合を説明する。
' この例では、hdc 変数がビデオ メモリ デバイス コンテキストに ' 対する有効なハンドルとなる。 ' DD 変数は有効な DirectDraw7 オブジェクトである。 Dim dds As DirectDrawSurface7 Set dds = dd.GetSurfaceFromDC(hDC) If Err.Number = DDERR_NOTFOUND Then MsgBox "hDC not from this DirectDraw surface" End If