Win32 API 日本語リファレンス
ホームGraphics.DirectDraw › IDirectDrawClipper

IDirectDrawClipper

COM
IID6c14db85-a733-11ce-a521-0020af0be560継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

アプリケーションは、IDirectDrawClipper インターフェイスのメソッドを使用してクリップリストを管理します。このセクションは、このインターフェイスのメソッドのリファレンスです。

解説(Remarks)

IDirectDrawClipper インターフェイスのメソッドは、次のグループに分類できます。

グループ メソッド
メモリの割り当て Initialize
クリップリスト GetClipList, IsClipListChanged, SetClipList, および SetHWnd
ハンドル GetHWnd

LPDIRECTDRAWCLIPPER データ型を使用して、IDirectDrawClipper インターフェイスへのポインターを格納する変数を宣言できます。Ddraw.h ヘッダーファイルは、次のコードでこのデータ型を宣言しています。


typedef struct IDirectDrawClipper    FAR *LPDIRECTDRAWCLIPPER;

メソッド 6

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetClipList(RECT* param0, RGNDATA* param1, DWORD* param2)

DirectDrawClipper オブジェクトに関連付けられているクリップリストのコピーを取得します。クリップリストのサブセットを選択するには、クリップリストをクリップする矩形を渡すことができます。

param0RECT*inoutクリップ領域と交差させる境界矩形へのポインタである。NULLで全体となる。
param1RGNDATA*inoutクリップ矩形リストを受け取るRGNDATAバッファへのポインタである。NULLでサイズ取得となる。
param2DWORD*inoutバッファサイズを入出力するポインタ。必要バイト数を受け取る。

戻り値

メソッドが成功した場合、戻り値は DD_OK です。

失敗した場合、メソッドは次のいずれかのエラー値を返すことがあります。

vtbl 4 HRESULT GetHWnd(HWND* param0)

IDirectDrawClipper::SetHWnd メソッドによって、この DirectDrawClipper オブジェクトに以前関連付けられたウィンドウハンドルを取得します。

param0HWND*inoutこのクリッパーに関連付けられたウィンドウハンドルを受け取る出力ポインタである。

戻り値

メソッドが成功した場合、戻り値は DD_OK です。

失敗した場合、メソッドは次のいずれかのエラー値を返すことがあります。

vtbl 5 HRESULT Initialize(IDirectDraw* param0, DWORD param1)

CoCreateInstance COM 関数を使用して作成された DirectDrawClipper オブジェクトを初期化します。

param0IDirectDraw*inこのクリッパーを関連付けるIDirectDrawオブジェクトへのポインタである。NULL可。
param1DWORDin初期化フラグ。現状は予約で0を指定する。

戻り値

メソッドが成功した場合、戻り値は DD_OK です。

失敗した場合、メソッドは次のいずれかのエラー値を返すことがあります。

解説(Remarks)

IDirectDrawClipper::Initialize メソッドは、コンポーネントオブジェクトモデル (COM) への準拠のために用意されています。DirectDrawClipper オブジェクトの作成に DirectDrawCreateClipper 関数または IDirectDraw7::CreateClipper メソッドを使用した場合、IDirectDrawClipper::Initialize メソッドは DDERR_ALREADYINITIALIZED を返します。

vtbl 6 HRESULT IsClipListChanged(BOOL* param0)

ウィンドウハンドルが DirectDrawClipper オブジェクトに関連付けられている場合に、クリップリストの状態を取得します。

param0BOOL*inoutクリップリストが変更されたか(TRUE/FALSE)を受け取る出力ポインタである。

戻り値

メソッドが成功した場合、戻り値は DD_OK です。

失敗した場合、メソッドは次のいずれかのエラー値を返すことがあります。

vtbl 7 HRESULT SetClipList(RGNDATA* param0, DWORD param1)

親 DirectDrawClipper オブジェクトがアタッチされているサーフェスで、IDirectDrawSurface7::Blt、IDirectDrawSurface7::BltBatch、および IDirectDrawSurface7::UpdateOverlay メソッドによって使用されるクリップリストを設定または削除します。

param0RGNDATA*inout設定するクリップ矩形リストを格納したRGNDATAへのポインタ。NULLでリスト削除となる。
param1DWORDin設定フラグ。現状は予約で0を指定する。

戻り値

メソッドが成功した場合、戻り値は DD_OK です。

失敗した場合、メソッドは次のいずれかのエラー値を返すことがあります。

解説(Remarks)

ウィンドウハンドルが既に DirectDrawClipper オブジェクトに関連付けられている場合、クリップリストを設定することはできません。

IDirectDrawSurface7::BltFast メソッドはクリップを行えません。アタッチされたクリッパーを持つサーフェスに対して IDirectDrawSurface7::BltFast を呼び出すと、DDERR_UNSUPPORTED が返されます。

vtbl 8 HRESULT SetHWnd(DWORD param0, HWND param1)

クリッパーオブジェクトがクリッピング情報を取得するために使用するウィンドウハンドルを設定します。

param0DWORDin設定フラグ。現状は予約で0を指定する。
param1HWNDinクリップ領域をウィンドウに連動させる対象ウィンドウハンドルである。

戻り値

メソッドが成功した場合、戻り値は DD_OK です。

失敗した場合、メソッドは次のいずれかのエラー値を返すことがあります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDirectDrawClipper "{6C14DB85-A733-11CE-A521-0020AF0BE560}"
#usecom global IDirectDrawClipper IID_IDirectDrawClipper "{593817A0-7DB3-11CF-A2DE-00AA00B93356}"
#comfunc global IDirectDrawClipper_GetClipList        3 var,var,var
#comfunc global IDirectDrawClipper_GetHWnd            4 sptr
#comfunc global IDirectDrawClipper_Initialize         5 sptr,int
#comfunc global IDirectDrawClipper_IsClipListChanged  6 var
#comfunc global IDirectDrawClipper_SetClipList        7 var,int
#comfunc global IDirectDrawClipper_SetHWnd            8 int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。