typedef char CHAR;
typedef [string] CHAR *LPSTR;
typedef [string] const CHAR *LPCSTR;


cpp_quote("#ifndef _WCHAR_DEFINED")
cpp_quote("#define _WCHAR_DEFINED")
typedef wchar_t WCHAR;
typedef WCHAR   TCHAR;
cpp_quote("#endif // !_WCHAR_DEFINED")

typedef [string] WCHAR *LPWSTR;


typedef [string] TCHAR *LPTSTR;

typedef [string] const WCHAR *LPCWSTR;
typedef [string] const TCHAR *LPCTSTR;

typedef short SHORT;
typedef unsigned short USHORT;

typedef unsigned long DWORD;
typedef DWORD LCID;

typedef WCHAR                   OLECHAR;
typedef [string] OLECHAR       *LPOLESTR;
typedef [string] const OLECHAR *LPCOLESTR;

typedef GUID *REFGUID;
typedef IID *REFIID;
typedef CLSID *REFCLSID;

typedef long BOOL;

typedef void *HINSTANCE;
typedef unsigned int WORD;
typedef void *DLGPROC;
typedef DWORD LPARAM;
typedef void *LPFNPSPCALLBACKA;
typedef void* HANDLE;
typedef HANDLE HWND;
typedef HANDLE HICON;
typedef HANDLE HIMAGELIST;
typedef unsigned char BYTE;
typedef unsigned int UINT;

typedef unsigned long ULONG;
typedef long LONG;

typedef unsigned long DWORD_PTR;
typedef unsigned long ULONG;
typedef WORD WPARAM;

typedef struct POINT
{
    LONG   x;
    LONG   y;
} POINT;

typedef struct RECT
{
    LONG    left;
    LONG    top;
    LONG    right;
    LONG    bottom;
} RECT;

void GetCursorPos([out] POINT *lpPoint);

typedef UINT CLIPFORMAT;

typedef struct tagFORMATETC 
{ 
    CLIPFORMAT      cfFormat; 
    /* TODO: The structure isn't complete see MSDN */
}FORMATETC, *LPFORMATETC;

typedef struct tagSTGMEDIUM 
{ 
    DWORD tymed; 
    /* TODO: The structure isn't complete see MSDN */
}STGMEDIUM; 
typedef STGMEDIUM *LPSTGMEDIUM; 
