IDirectDrawClipper接口
IDirectDrawClipper接口
返回上级
- IDirectDrawClipper::GetClipList
回到目录
- IDirectDrawClipper::GetHWnd
- IDirectDrawClipper::Initialize
回到目录
- IDirectDrawClipper::IsClipListChanged
回到目录
- IDirectDrawClipper::SetClipList
回到目录
- IDirectDrawClipper::SetHWnd
回到目录
应用程序使用IDirectDrawClipper接口的函数来管理裁剪表。这部分是关于该接口函数的参考。IDirectDraw2接口的函数可以分为以下几组:
分配内存 | Initialize |
裁剪表 | GetClipList |
IsClipListChanged | |
SetClipList | |
SetHWnd | |
窗口句柄 | GetHWnd |
和所有COM接口一样,IDirectDrawClipper接口由IUnknown接口衍生而来。IUnknown接口支持以下三种方法:
AddRef
QueryInterface
Release
你可以使用LPDIRECTDRAWCLIPPER数据类型来声明一个指向IDirectDrawClipper接口的指针变量。在Ddraw.h头文件中,用如下代码声明了这种数据类型。
typedef struct IDirectDrawClipper FAR *LPDIRECTDRAWCLIPPER;
获得与一个DirectDrawClipper对象相关联的裁剪表的复件。也可以提供一个矩形来裁剪裁剪表,以获得裁剪表的一个子集。
HRESULT GetClipList(
LPRECT lpRect,
LPRGNDATA lpClipList,
LPDWORD lpdwSize
);
参数:
lpRect
一个RECT结构的地址,被用来裁剪裁剪表。该参数可以是NULL,以获得整个裁剪表。
lpClipList
一个RGNDATA结构的地址,将获得裁剪表的复件。如果该参数为NULL,则该函数把要容纳整个裁剪表所需要的缓冲区容量值(按字节数)返回给lpdwSize。
lpdwSize
裁剪表缓冲区容量的长度值(按字节数)。当lpClipList参数不为NULL,则应赋予该参数lpClipList的缓冲区容量(即lpClipList的长度,按字节数)。当lpClipList为NULL,则该参数将获得要容纳整个裁剪表所需要的缓冲区容量值。
返回值:
如果函数调用成功,返回DD_OK。
如果函数调用失败,返回值可能是下列错误值之一:
DDERR_GENERIC
DDERR_INVALIDCLIPLIST
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_NOCLIPLIST
DDERR_REGIONTOOSMALL
备注:
该函数使用的RGNDATA结构的定义如下。
typedef struct _RGNDATA {
RGNDATAHEADER rdh;
char Buffer[1];
} RGNDATA;
RGNDATA结构的rdh成员是一个RGNDATAHEADER结构,它的定义如下:
typedef struct _RGNDATAHEADER {
DWORD dwSize;
DWORD iType;
DWORD nCount;
DWORD nRgnSize;
RECT rcBound;
} RGNDATAHEADER;
要得到更多的关于这些结构的资料,请参阅SDK中的帮助文档。
快速信息:
Windows NT:适用于4.0或更新版
Windows:适用于Windows 95或更新版
Windows CE:不支持
头文件:ddraw.h
库文件:ddraw.lib
请参阅:
IDirectDrawClipper::SetClipList
获得由先前调用IDirectDrawClipper::SetHWnd函数与该DirectDrawClipper对象关联上的窗口的句柄。
HRESULT GetHWnd(
HWND FAR *lphWnd
);
参数:
lphWnd
窗口句柄的地址,该窗口是由先前调用IDirectDrawClipper::SetHWnd函数与该DirectDrawClipper对象关联上的。
返回值:
如果函数调用成功,返回DD_OK。
如果函数调用失败,返回值可能是下列错误值之一:
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
快速信息:
Windows NT:适用于4.0或更新版
Windows:适用于Windows 95或更新版
Windows CE:不支持
头文件:ddraw.h
库文件:ddraw.lib
请参阅:
IDirectDrawClipper::SetHWnd
初始化一个DirectDrawClipper对象,该对象是由调用CoCreateInstance COM函数创建的。
HRESULT Initialize(
LPDIRECTDRAW lpDD,
DWORD dwFlags
);
参数:
lpDD
一个DirectDraw结构的地址,代表DirectDraw对象。如果该参数设为NULL,将创建一个独立的DirectDrawClipper对象(该对象同样可以调用DirectDrawClipper接口的函数)。
dwFlags
该参数尚未使用,只能设为0。
返回值:
如果函数调用成功,返回DD_OK。
如果函数调用失败,返回值可能是下列错误值之一:
DDERR_ALREADYINITIALIZED
DDERR_INVALIDPARAMS
提供这个函数是为了与部件对象模型(COM)的协议保持一致性。如果已经调用DirectDrawCreateClipper或IDirectDraw2::CreateClipper创建了该DirectDrawClipper对象,该函数将返回DDERR_ALREADYINITIALIZED。
备注:
要得到更多关于如何与CoCreateInstance 一起使用IDirectDrawClipper::Initialize的资料,请参阅“用CoCreateInstance创建DirectDrawClipper对象”。
快速信息:
Windows NT:适用于4.0或更新版
Windows:适用于Windows 95或更新版
Windows CE:不支持
头文件:ddraw.h
库文件:ddraw.lib
请参阅:
IUnknown::AddRef, IUnknown::QueryInterface, IUnknown::Release, IDirectDraw2::CreateClipper
如果一个窗口句柄与DirectDrawClipper对象关联上,该函数用来监控裁剪表的状态。
HRESULT IsClipListChanged(
BOOL FAR *lpbChanged
);
参数:
lpbChanged
一个BOOL变量的地址,如果裁剪表已经改变,则返回TRUE。
返回值:
如果函数调用成功,返回DD_OK。
如果函数调用失败,返回值可能是下列错误值之一:
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
快速信息:
Windows NT:适用于4.0或更新版
Windows:适用于Windows 95或更新版
Windows CE:不支持
头文件:ddraw.h
库文件:ddraw.lib
设置或删除与DirectDrawClipper对象相关联的裁剪表,该裁剪表被用于页面的IDirectDrawSurface3::Blt,IDirectDrawSurface3::BltBatch,和IDirectDrawSurface3::UpdateOverlay操作。
HRESULT SetClipList(
LPRGNDATA lpClipList,
DWORD dwFlags
);
参数:
lpClipList
一个合法的RGNDATA结构的地址或NULL。如果已经存在一个裁剪表与DirectDrawClipper对象相关联并且该参数被设为NULL,则裁剪表被删除。
dwFlags
该参数尚未使用,必须设为0。
返回值:
如果函数调用成功,返回DD_OK。
如果函数调用失败,返回值可能是下列错误值之一:
DDERR_CLIPPERISUSINGHWND
DDERR_INVALIDCLIPLIST
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_OUTOFMEMORY
备注:
如果已经有一个窗口句柄与DirectDrawClipper对象相关联,裁剪表将不能被设置。应注意的是:IDirectDrawSurface3::BltFast函数不支持裁剪。
该函数使用的RGNDATA结构的定义如下。
typedef struct _RGNDATA {
RGNDATAHEADER rdh;
char Buffer[1];
} RGNDATA;
RGNDATA结构的rdh成员是一个RGNDATAHEADER结构,它的定义如下:
typedef struct _RGNDATAHEADER {
DWORD dwSize;
DWORD iType;
DWORD nCount;
DWORD nRgnSize;
RECT rcBound;
} RGNDATAHEADER;
要得到更多的关于这些结构的资料,请参阅SDK中的帮助文档。
快速信息:
Windows NT:适用于4.0或更新版
Windows:适用于Windows 95或更新版
Windows CE:不支持
头文件:ddraw.h
库文件:ddraw.lib
请参阅:
IDirectDrawClipper::GetClipList,IDirectDrawSurface3::Blt,IDirectDrawSurface3::BltFast,IDirectDrawSurface3::BltBatch,IDirectDrawSurface3::UpdateOverlay
将一个窗口的客户区与裁剪表关联上。
HRESULT SetHWnd(
DWORD dwFlags,
HWND hWnd
);
参数:
dwFlags
该参数尚未使用,只能设为0。
hWnd
包含了裁剪信息的窗口句柄。
返回值:
如果函数调用成功,返回DD_OK。
如果函数调用失败,返回值可能是下列错误值之一:
DDERR_INVALIDCLIPLIST
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_OUTOFMEMORY
快速信息:
Windows NT:适用于4.0或更新版
Windows:适用于Windows 95或更新版
Windows CE:不支持
头文件:ddraw.h
库文件:ddraw.lib
请参阅:
IDirectDrawClipper::GetHWnd