65 lines
2.1 KiB
C
65 lines
2.1 KiB
C
|
|
#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
|