Files
wnmj-normal/Servers/全局定义/Macro.h

65 lines
2.1 KiB
C
Raw Normal View History

2026-03-03 13:56:44 +08:00
#ifndef MACRO_HEAD_FILE
#define MACRO_HEAD_FILE
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD>ó<EFBFBD><C3B3><EFBFBD>
//<2F><>Ч<EFBFBD><D0A7>ֵ
#define INVALID_BYTE ((BYTE)(0xFF)) //<2F><>Ч<EFBFBD><D0A7>ֵ
#define INVALID_WORD ((WORD)(0xFFFF)) //<2F><>Ч<EFBFBD><D0A7>ֵ
#define INVALID_DWORD ((DWORD)(0xFFFFFFFF)) //<2F><>Ч<EFBFBD><D0A7>ֵ
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>
#define CountArray(Array) (sizeof(Array)/sizeof(Array[0]))
//<2F><>Ч<EFBFBD><D0A7>ַ
#define INVALID_IP_ADDRESS(IPAddress) (((IPAddress==0L)||(IPAddress==INADDR_NONE)))
//////////////////////////////////////////////////////////////////////////////////
//<2F><EFBFBD><E6B4A2><EFBFBD><EFBFBD>
#ifdef _UNICODE
#define CountStringBuffer CountStringBufferW
#else
#define CountStringBuffer CountStringBufferA
#endif
//<2F><EFBFBD><E6B4A2><EFBFBD><EFBFBD>
#define CountStringBufferA(String) ((UINT)((lstrlenA(String)+1)*sizeof(CHAR)))
#define CountStringBufferW(String) ((UINT)((lstrlenW(String)+1)*sizeof(WCHAR)))
//<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><E9B3A4>
#define CountStringW(sz) (sizeof(sz)>>1)
#define CountStringA(sz) (sizeof(sz))
#ifdef UNICODE
#define CountString CountStringW
#else
#define CountString CountStringA
#endif
//////////////////////////////////////////////////////////////////////////////////
//<2F>ӿ<EFBFBD><D3BF>ͷ<EFBFBD>
#define SafeRelease(pObject) { if (pObject!=NULL) { pObject->Release(); pObject=NULL; } }
//ɾ<><C9BE>ָ<EFBFBD><D6B8>
#define SafeDelete(pData) { try { delete pData; } catch (...) { ASSERT(FALSE); } pData=NULL; }
//<2F>رվ<D8B1><D5BE><EFBFBD>
#define SafeCloseHandle(hHandle) { if (hHandle!=NULL) { CloseHandle(hHandle); hHandle=NULL; } }
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SafeDeleteArray(pData) { try { delete [] pData; } catch (...) { ASSERT(FALSE); } pData=NULL; }
//У<><D0A3><EFBFBD><EFBFBD>
#define VERIFY_RETURN_FALSE(x) {if (!(x)){ ASSERT(0); return false; }}
#define VERIFY_RETURN_TRUE(x) {if (!(x)){ ASSERT(0); return true; }}
#define VERIFY_THROW(x,y) {if (!(x)){ ASSERT(0); throw (y); }}
#define VERIFY_RETURN_VOID(x) {if (!(x)){ ASSERT(0); return; }}
#define VERIFY_RETURN(x,y) {if (!(x)){ ASSERT(0); return (y); }}
//////////////////////////////////////////////////////////////////////////////////
#endif