MyMacro

#define SAFE_RELEASE(x) { if (x) x->Release(); x = NULL; }
#define JIF(x) if (FAILED(hr=(x))) /
    {Msg(TEXT("FAILED(hr=0x%x) in ") TEXT(#x) TEXT("/n"), hr); return FALSE;}

inline void Msg(char *szFormat, ...)
{
    TCHAR szBuffer[512];  // Large buffer for very long filenames (like with HTTP)

    va_list pArgs;
    va_start(pArgs, szFormat);
    vsprintf(szBuffer, szFormat, pArgs);
    va_end(pArgs);
    MessageBox(NULL, szBuffer, "CVideoRenderer", MB_OK);
}

 

#define SAFE_DELETE(p)  { if (p) { delete (p);     (p)=NULL; } }
#define SAFE_RELEASE(p) { if (p) { (p)->Release(); (p)=NULL; } }

#define SAFE_RELEASE_DELETE(p) { if (p) { (p)->Release(); delete (p); (p)=NULL; } }
#define ERMSG(x) MessageBox(hWnd, x, "DirectDraw Samplee", MB_OK);
#define ERR_MSG(err, msg) {if (err==hr) {AfxMessageBox(msg);}}
#define ERR_TRACE(err, msg) {if (err==hr) {TRACE("/r/n");TRACE(msg);}}
#define TRACE_POINT(pt, name) {CString strMsg; strMsg.Format("/r/n%sPT = (%d,%d)", name, pt.x, pt.y);TRACE(strMsg);};
#define TRACE_RECT(rc, name) {CString strMsg; strMsg.Format("/r/n%sRECT<t=%d,l=%d,b=%d,r=%d>", name, rc.top, rc.left, rc.bottom, rc.right);TRACE(strMsg);};

#define TRACE_DWORD(d, name)  {CString strMsg; strMsg.Format("/r/n%sPT = %d", name, d);TRACE(strMsg);};
#define NUM_PROTECT(num, minl, maxl) {if (num>maxl){num=maxl;} if (num<minl){num=minl;} };

#define PUSHHANDLE m_vecHandle.push_back(m_pCurHandle);
#define DC_FHANDLE(pDC, hDC) {CMainFrame *pFrame = (CMainFrame *)AfxGetApp()->GetMainWnd(); pDC = CDC::FromHandle(pFrame->hDC);}

#define XYWH int x, int y, int nWidth, int Height
#define SAFE_DELETE(p) {if (p!=NULL){delete p; p=NULL;}}

#define PUSHHANDLE(ph) {m_pCurHandle = ph;m_vecHandle.push_back(m_pCurHandle);}

 

//  02

#define TRACE_DWORD02(d)  CString TRACE_DWORD02_OUTPUT; {TRACE_DWORD02_OUTPUT += _T("/r/n"); CString strMsg; strMsg=#d; TRACE_DWORD02_OUTPUT += strMsg; strMsg.Format(_T(" = %d"), d); TRACE_DWORD02_OUTPUT += strMsg; TRACE(TRACE_DWORD02_OUTPUT);}

 

// 数学运算代码宏

#define PI 3.1415926535
#define RADIAN(angle) ((angle)*PI/180.0) //角度到弧度转化的宏

 

// windows 操作代码宏

//取应用程序主窗口句柄  需要先定义 HWND ParentWnd, glhTargetWnd;并对 glhTargetWnd 赋值,ParentWnd就是程序主窗口句柄
#define GET_EXE_MAIN_HWND(ParentWnd, glhTargetWnd) /
 {            /
  ParentWnd=glhTargetWnd;    /
  while (ParentWnd !=NULL)                    /
  {                                           /
   glhTargetWnd=ParentWnd;                 /
   ParentWnd=GetParent(glhTargetWnd);      /
  }                                           /
 }                                               /

 

#ifndef LASTMSGBOXINFOLIBAPI
#define LASTMSGBOXINFOLIBAPI extern "C" __declspec(dllimport)
#endif

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值