DirectDrawCreateEx 函数是用于创建一个 IDirectDraw7 接口的函数,它是 DirectDraw 的扩展版本。以下是 DirectDrawCreateEx 函数的基本信息:
HRESULT DirectDrawCreateEx(
  GUID             *lpGuid,
  LPVOID           *lplpDD,
  REFIID           iid,
  IUnknown         *pUnkOuter
);

  •  lpGuid: 指向设备的GUID。如果为 NULL,则表示使用默认的设备。通常,应用程序将其设置为 NULL。

  •  lplpDD: 指向 LPVOID 类型指针的指针,该指针在成功调用后将包含 IDirectDraw7 接口的指针。

  •  iid: 被请求的接口的标识符,通常为 IID_IDirectDraw7。

  •  pUnkOuter: 用于聚合对象的 IUnknown 接口指针。通常,应用程序将其设置为 NULL。


返回值是一个 HRESULT,表示函数调用的结果。如果函数成功,返回 DD_OK,否则返回一个错误代码。

以下是一个简单的示例代码,演示如何使用 DirectDrawCreateEx 函数创建 IDirectDraw7 对象:
#include <Windows.h>
#include <ddraw.h>

int main() {
    LPVOID lpDD = NULL;
    HRESULT hr;

    // 创建 DirectDraw7 对象
    hr = DirectDrawCreateEx(NULL, (LPVOID*)&lpDD, IID_IDirectDraw7, NULL);
    if (FAILED(hr)) {
        // 处理错误
        return 1;
    }

    // 对 DirectDraw7 对象进行操作,如设置显示模式等

    // 释放 DirectDraw7 对象
    ((IDirectDraw7*)lpDD)->Release();

    return 0;
}

请注意,DirectDraw 是一个过时的图形 API,而且自 Windows 8 开始不再被支持。如果您在进行新的图形开发,建议考虑使用更现代的图形 API,如 Direct2D 或 Direct3D。


转载请注明出处:http://www.zyzy.cn/article/detail/26506/Win32 API/Ddraw.h/DirectDrawCreateEx