Macro.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef MACRO_HEAD_FILE
  2. #define MACRO_HEAD_FILE
  3. //////////////////////////////////////////////////////////////////////////////////
  4. //常用常量
  5. //无效数值
  6. #define INVALID_BYTE ((BYTE)(0xFF)) //无效数值
  7. #define INVALID_WORD ((WORD)(0xFFFF)) //无效数值
  8. #define INVALID_DWORD ((DWORD)(0xFFFFFFFF)) //无效数值
  9. //////////////////////////////////////////////////////////////////////////////////
  10. //数组维数
  11. #define CountArray(Array) (sizeof(Array)/sizeof(Array[0]))
  12. //无效地址
  13. #define INVALID_IP_ADDRESS(IPAddress) (((IPAddress==0L)||(IPAddress==INADDR_NONE)))
  14. //////////////////////////////////////////////////////////////////////////////////
  15. //存储长度
  16. #ifdef _UNICODE
  17. #define CountStringBuffer CountStringBufferW
  18. #else
  19. #define CountStringBuffer CountStringBufferA
  20. #endif
  21. //存储长度
  22. #define CountStringBufferA(String) ((UINT)((lstrlenA(String)+1)*sizeof(CHAR)))
  23. #define CountStringBufferW(String) ((UINT)((lstrlenW(String)+1)*sizeof(WCHAR)))
  24. //////////////////////////////////////////////////////////////////////////////////
  25. //////////////////////////////////////////////////////////////////////////
  26. //接口释放
  27. #define SafeRelease(pObject) { if (pObject!=NULL) { pObject->Release(); pObject=NULL; } }
  28. //删除指针
  29. #define SafeDelete(pData) { try { delete pData; } catch (...) { ASSERT(FALSE); } pData=NULL; }
  30. //关闭句柄
  31. #define SafeCloseHandle(hHandle) { if (hHandle!=NULL) { CloseHandle(hHandle); hHandle=NULL; } }
  32. //删除数组
  33. #define SafeDeleteArray(pData) { try { delete [] pData; } catch (...) { ASSERT(FALSE); } pData=NULL; }
  34. //////////////////////////////////////////////////////////////////////////////////
  35. //打开链接
  36. #define OpenLink(String) ShellExecute(NULL, TEXT("open"), String, NULL, NULL, SW_SHOWNORMAL);
  37. #endif