创建DirectDraw对象的三种方法

第一种:

LPDIRECTDRAW lpdd = NULL; // pointer to IDirectDraw (temporary)

LPDIRECTDRAW7 lpdd7 = NULL; // pointer to IDirectDraw7 (what we want)

// get the IDirectDraw interface pointer

if (FAILED(DirectDrawCreate(NULL, &lpdd, NULL)))      //这里给出对DirectDraw错误处理放法

{

// error-handling code here

}

// query for IDirectDraw7 pointer

if (FAILED(lpdd->QueryInterface(IID_IDirectDraw7, (void**)&lpdd7)))

{

// error-handling code here

}

else

{

// success! release IDirectDraw since we don't need it anymore

    lpdd->Release();

    lpdd = NULL;

}

第二种:

直接使用COM方法

LPDIRECTDRAW7 lpdd7; // interface pointer

// initialize COM

CoInitialize(NULL);

// create the object

CoCreateInstance(CLSID_DirectDraw, NULL, CLSCTX_ALL, IID_IDirectDraw7, (void**)&lpdd7);

// initialize the object

 

第三种:

DirectDrawCreateEx(

GUID FAR *lpGuid,

LPVOID *lplpDD,

REFIID iid,

IUnknown FAR *pUnkOuter

);

 

lpdd7->Initialize(NULL);

 

详细介绍参见:http://www.cnblogs.com/EmbeddedBoy/archive/2011/09/12/2173853.html

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值