#ifndef __TYPEDEF_H_
#define __TYPEDEF_H_

class NissObjectSoundEvent;
class NissObjectVisualState;
class NissObjectTypeInfo;
class NissObject;

#define CMapStringToNissObject				CMap<CString, LPCTSTR, NissObject*, NissObject*>
#define CMapStringToMapStringToNissObject	CMap<CString, LPCTSTR, CMapStringToNissObject*, CMapStringToNissObject*>
#define CMapStringToNissObjectTypeInfo		CMap<CString, LPCTSTR, NissObjectTypeInfo*, NissObjectTypeInfo*>
#define CVisualStatesArray					CArray<NissObjectVisualState*, NissObjectVisualState*>
#define CSoundEventsArray					CArray<NissObjectSoundEvent*, NissObjectSoundEvent*>

#define CMapStringToStringArray				CMap<CString, LPCTSTR, CStringArray*, CStringArray*>
#define CMapStringToCMapStringToStringArray	CMap<CString, LPCTSTR, CMapStringToStringArray*, CMapStringToStringArray*>

class ListeningSocket;
class ClientSocket;
class ServerTransport;

#define CMapUINTToString			CMap<UINT, UINT, CString, LPCTSTR>
#define CMapStringToUINT			CMap<CString, LPCTSTR, UINT, UINT>
#define CMapUINTToListeningSocket	CMap<UINT, UINT, ListeningSocket*, ListeningSocket*>
#define CMapStringToClientSocket	CMap<CString, LPCTSTR, ClientSocket*, ClientSocket*>
#define CMapStringToServerTransport	CMap<CString, LPCTSTR, ServerTransport*, ServerTransport*>

#define WM_POSTEVENT (WM_USER+0x1000)
#define WM_ENDINIT   (WM_USER+0x1001)
#define WM_POSTREACT (WM_USER+0x1002)

#endif