#ifndef   _MDESK_H
#define   _MDESK_H

#include "MdMChar.h"


//:Ignore

struct Mdesk
{
    typedef mxint8       Int8;
    typedef mxint16      Int16;
    typedef long         Int32;
	typedef mxint64      Int64;

    typedef mxuint8			UInt8;
    typedef mxuint16		UInt16;
    typedef mxuint32      UInt32;

    typedef unsigned char  uchar;
    typedef unsigned short ushort;
    typedef unsigned int   uint;
    typedef unsigned long  ulong;

 

    typedef bool       Boolean;
    enum           { kFalse = false, kTrue = true };

#ifdef _MX_UNIX_KERNEL
	typedef long long           LongPtr;
	typedef unsigned long long  ULongPtr;
	//
	typedef long long           IntPtr;
	typedef unsigned long long  UIntPtr;
#else
#ifndef _WIN64

	typedef __w64 long          LongPtr;
	typedef __w64 unsigned long ULongPtr;
	//
	typedef __w64 int           IntPtr;
	typedef __w64 unsigned int  UIntPtr;
#else  
	typedef __int64             LongPtr;

	typedef unsigned __int64    ULongPtr;
	typedef __int64             IntPtr;
	typedef unsigned __int64    UIntPtr;
#endif

#ifdef _WIN64
    typedef unsigned __int64    Size_t;
    typedef __int64             SSize_t;
#else
    typedef unsigned long       Size_t;
    typedef long                SSize_t;
#endif
#endif
    typedef IntPtr GsMarker;
	
	typedef MxObjectId IntDbId;
	
};

#ifndef NULL
#define NULL 0
#endif

#ifdef _MX_USE_PUSH_POP
#pragma pack (pop)
#endif

typedef          char         LEGACY_CHAR;
typedef          char*        LEGACY_STRING;
typedef const    char*        LEGACY_STRING_CONST;
typedef       unsigned short  WIDE_CHAR;          // UTF-16 format
typedef       unsigned short* WIDE_STRING;        // UTF-16 format
typedef const unsigned short* WIDE_STRING_CONST;  // UTF-16 format

typedef          char*   MEMORY_POINTER;
typedef const    char*   MEMORY_POINTER_CONST;

typedef unsigned char    MC_BYTE;

#define MDESK_NO_VTABLE __declspec(novtable)
#define MDESK_STDCALL   __stdcall
#define MDESK_DEPRECATED __declspec(deprecated)
//:End Ignore

#endif
