当前位置: 首页 > 文档资料 > DirectX 中文教程 >

全局函数

优质
小牛编辑
120浏览
2023-12-01

全局函数

返回上级

      DirectDrawCreate

      DirectDrawCreateClipper

      DirectDrawEnumerate

      DirectDrawEnumerateEx

    1. DirectDrawCreate

      返回目录

    2. 创建一个DirectDraw对象的实例。

      HRESULT WINAPI DirectDrawCreate(
      GUID FAR *lpGUID,
      LPDIRECTDRAW FAR *lplpDD,
      IUnknown FAR *pUnkOuter
      );

      参数:

      lpGUID
      全局唯一标志符(GUID)的地址,代表了要创建的驱动类型。该参数可以是NULL,代表当前所使用的显示驱动;你也可以指定其为下列值之一,以限制当前显示驱动的行为能力,为调试所用。

      DDCREATE_EMULATIONONLY
      该DirectDraw对象只使用软件仿真的方式实现所有的特性;它将不会从硬件加速中获得任何好处。

      DDCREATE_HARDWAREONLY
      该DirectDraw对象只使用硬件支持的加速特性;对于那些硬件不支持的特性,也绝不会使用软件仿真的方式来完成,而且将返回DDERR_UNSUPPORTED的错误值。

      lplpDD
      如果函数调用成功,该参数将为指向一合法的DirectDraw对象的指针的地址。

      pUnkOuter
      该参数将允许与今后的COM集合特性相兼容。目前,只要这个参数不是NULL,该函数将返回一个错误。

      返回值:

      如果函数调用成功,返回DD_OK。
      如果函数调用失败,返回值可能是下列错误值之一:

      DDERR_DIRECTDRAWALREADYCREATED
      DDERR_GENERIC
      DDERR_INVALIDDIRECTDRAWGUID
      DDERR_INVALIDPARAMS
      DDERR_NODIRECTDRAWHW
      DDERR_OUTOFMEMORY

      备注:

      该函数试图初始化一个DirectDraw对象,如果成功则返回一个指向该对象的指针。

      在多显示器的系统上,当设置协作模式为普通,并给lpGUID指定了NULL将导致DirectDraw对象运行于仿真的模式。要在这些系统上获得硬件加速特性,你必须指定设备的GUID。要得到更多的资料,请参阅“多显示器系统上的设备和加速”(DirectX基本概念.doc)。

      快速信息:

      Windows NT:适用于4.0或更新版
      Windows:适用于Windows 95或更新版
      Windows CE:不支持
      头文件:ddraw.h
      库文件:ddraw.lib

    3. DirectDrawCreateClipper

      返回目录

    4. 创建一个与任何DirectDraw对象都无关的DirectDrawClipper对象的实例。

      HRESULT WINAPI DirectDrawCreateClipper(
      DWORD dwFlags,
      LPDIRECTDRAWCLIPPER FAR *lplpDDClipper,
      IUnknown FAR *pUnkOuter
      );

      参数:

      dwFlags
      该参数尚未使用,只能设为0。

      lplpDDClipper
      一个指向新的DirectDrawClipper对象的指针的地址。

      pUnkOuter
      该参数将允许与今后的COM集合特性相兼容。目前,只要这个参数不是NULL,该函数将返回一个错误。

      返回值:

      如果函数调用成功,返回DD_OK。
      如果函数调用失败,返回值可能是下列错误值之一:

      DDERR_INVALIDPARAMS
      DDERR_OUTOFMEMORY

      备注:

      该函数可以在所有DirectDraw对象被创建之前调用。因为这些DirectDrawClipper对象不被任何DirectDraw对象所拥有,所以在应用程序对象被释放的时候,它们不会自动的被释放。应用程序应该在结束前明确的释放这些DirectDrawClipper对象。

      要创建一个被某特定的DirectDraw对象所拥有的DirectDrawClipper对象,应使用IDirectDraw2::CreateClipper函数。

      快速信息:

      Windows NT:适用于4.0或更新版
      Windows:适用于Windows 95或更新版
      Windows CE:不支持
      头文件:ddraw.h
      库文件:ddraw.lib

      请参阅:

      IDirectDraw2::CreateClipper

    5. DirectDrawEnumerate

      返回目录

    6. 列举出主要的DirectDraw显示设备或一个非显示设备(比如一个不带2-D特性的3-D加速卡)。NULL入口通常指定了与GDI共享的主显示设备。

      HRESULT WINAPI DirectDrawEnumerate(
      LPDDENUMCALLBACK lpCallback,
      LPVOID lpContext
      );

      参数:

      lpCallback
      DDEnumCallback回调函数的地址,每列举出一个模式的时候,将执行该函数,并且传递一个DirectDraw HAL的描述。

      lpContext
      一个应用程序定义的结构的地址,用来传递给列举的回调函数。

      返回值:

      如果函数调用成功,返回DD_OK。
      如果函数调用失败,返回DDERR_INVALIDPARAMS。

      快速信息:

      Windows NT:适用于4.0或更新版
      Windows:适用于Windows 95或更新版
      Windows CE:不支持
      头文件:ddraw.h
      库文件:ddraw.lib

      请参阅:

      DirectDrawEnumerateEx

    7. DirectDrawEnumerateEx

      返回目录

列举已安装的所有DirectDraw设备。NULL入口通常指定与GDI共享的主显示设备。

HRESULT WINAPI DirectDrawEnumerateEx(
LPDDENUMCALLBACKEX lpCallback,
LPVOID lpContext,
DWORD dwFlags
);

参数:

lpCallback
DDEnumCallbackEx回调函数的地址,每列举出一个模式的时候,将执行该函数,并且传递一个DirectDraw HAL的描述。

lpContext
一个应用程序定义的结构的地址,用来传递给列举的回调函数。

dwFlags
指定列举的范围。该参数可以是0或下列标志的组合:

0

该函数将只列举出主显示设备和一个已安装的非显示设备。

DDENUM_ATTACHEDSECONDARYDEVICES

该函数将列举出主设备,和任何隶属于桌面的显示设备。

DDENUM_DETACHEDSECONDARYDEVICES

该函数将列举出主设备,和任何不隶属于桌面的显示设备。

DDENUM_NONDISPLAYDEVICES

该函数将列举出非显示设备,比如不带2-D特性的3-D加速卡。

返回值:

如果函数调用成功,返回DD_OK。
如果函数调用失败,返回DDERR_INVALIDPARAMS。

备注:

在多显示器系统上,该函数列举出多显示设备。要得到更多资料,请参阅“多显示器系统”。

该函数只被Windows98和Windows NT 5.0支持。调用GetProcAddress Win32函数(指定"DirectDrawEnumerateExA" (ANSI)或"DirectDrawEnumerateExW" (Unicode) 过程名称字符串)可以从Ddraw.dll动态连接库获得DirectDrawEnumerateEx函数的地址。如果失败,则表明安装的操作系统的版本不支持多显示器。要得到更多的资料,请参阅“在多显示器系统上列举设备”。

快速信息:

Windows NT:适用于5.0或更新版
Windows:适用于Windows 98或更新版
Windows CE:不支持
头文件:ddraw.h
库文件:ddraw.lib

返回目录