
#include <afxtempl.h>
#include <afxmt.h>

//	クリティカルセクション
#define	SCOPE_LOCK()\
	CSingleLock	__scopeLock(&m_scopeLock);\
	__scopeLock.Lock();

//	クリティカルセクション
#define	SCOPE_LOCK_OBJ(x)\
	CSingleLock	__scopeLock(&x);\
	__scopeLock.Lock();

#define	SAFE_DELETE(x)	if(x!=NULL) delete x; x = NULL;
#define	SAFE_CLOSE_HANDLE(x)	if(x!=NULL && x!=INVALID_HANDLE_VALUE) ::CloseHandle(x); x = NULL;


//	エラーチェック
#define	IF_ERR_RET(x) if((x) != 0) return(x);

//	OVERLAPPED構造体初期化
#define	INIT_OVERLAPPED(ovrp, event)\
{\
	ZeroMemory(&ovrp, sizeof(ovrp));\
	::ResetEvent(event);\
	ovrp.hEvent = event;\
}
