//+-------------------------------------------------------------------------
//
//  Microsoft Windows
//  Copyright (C) Microsoft Corporation, 1992 - 1993.
//
//  File: $(COMMON)\types\wtypes.idl
//
//  Contents: This interface definition contains typedefs for remotable
//            data types.  Most of these data types come from compobj.h.
//
//  History:    07-Apr-93 ShannonC  Added header
//              09-Sep-93 ShannonC  Fixed memory leak in _free_xmit
//      02-May-94 BruceMa   Added spec'd but unimplemeted constant
//
//--------------------------------------------------------------------------

[ uuid(D3980A60-910C-1068-9341-00DD010F2F1C),
  version(0.1), pointer_default(unique) ]

interface IWinTypes
{

// BUGBUG, make sure and verify this before putting in the build.
// TerryRu 04/16/94

//cpp_quote("#include <basetyps.h>")

typedef struct tagRemHGLOBAL
{
        long fNullHGlobal;
        unsigned long cbData;
        [size_is(cbData)] byte data[];
} RemHGLOBAL;

typedef struct tagRemHMETAFILEPICT
{
        long        mm;
        long        xExt;
        long        yExt;
        unsigned long cbData;
        [size_is(cbData)] byte data[];
} RemHMETAFILEPICT;

typedef [transmit_as(RemHMETAFILEPICT)] void * HMETAFILEPICT;

typedef struct tagRemHENHMETAFILE
{
        unsigned long cbData;
        [size_is(cbData)] byte data[];
} RemHENHMETAFILE;

typedef struct tagRemHBITMAP
{
        unsigned long cbData;
        [size_is(cbData)] byte data[];
} RemHBITMAP;

typedef struct tagRemHPALETTE
{
        unsigned long cbData;
        [size_is(cbData)] byte data[];
} RemHPALETTE;

typedef struct tagRemBRUSH
{
        unsigned long cbData;
        [size_is(cbData)] byte data[];
} RemHBRUSH;


cpp_quote("#ifndef WIN32           // The following code is for Win16 only")
cpp_quote("#ifndef WINAPI          // If not included with 3.1 headers... ")

cpp_quote("#define FAR             _far")
cpp_quote("#define PASCAL          _pascal")
cpp_quote("#define CDECL           _cdecl")

cpp_quote("#define VOID            void")
cpp_quote("#define WINAPI      FAR PASCAL")
cpp_quote("#define CALLBACK    FAR PASCAL")



cpp_quote("#ifndef FALSE")
cpp_quote("#define FALSE 0")
cpp_quote("#define TRUE 1")
cpp_quote("#endif // !FALSE")

cpp_quote("#ifndef _BYTE_DEFINED")
cpp_quote("#define _BYTE_DEFINED")
typedef unsigned char BYTE;
cpp_quote("#endif // !_BYTE_DEFINED")

cpp_quote("#ifndef _WORD_DEFINED")
cpp_quote("#define _WORD_DEFINED")
typedef unsigned short WORD;
cpp_quote("#endif // !_WORD_DEFINED")

typedef [transmit_as(unsigned long)] unsigned int UINT;
typedef [transmit_as(long)] int INT;
typedef long BOOL;

cpp_quote("#ifndef _LONG_DEFINED")
cpp_quote("#define _LONG_DEFINED")
typedef long LONG;
cpp_quote("#endif // !_LONG_DEFINED")

cpp_quote("#ifndef _WPARAM_DEFINED")
cpp_quote("#define _WPARAM_DEFINED")
typedef UINT WPARAM;
cpp_quote("#endif // _WPARAM_DEFINED")

cpp_quote("#ifndef _DWORD_DEFINED")
cpp_quote("#define _DWORD_DEFINED")
typedef unsigned long DWORD;
cpp_quote("#endif // !_DWORD_DEFINED")

cpp_quote("#ifndef _LPARAM_DEFINED")
cpp_quote("#define _LPARAM_DEFINED")
typedef LONG LPARAM;//BUGBUG: this should be a discriminated union.
cpp_quote("#endif // !_LPARAM_DEFINED")

cpp_quote("#ifndef _LRESULT_DEFINED")
cpp_quote("#define _LRESULT_DEFINED")
typedef LONG LRESULT;
cpp_quote("#endif // !_LRESULT_DEFINED")

typedef [transmit_as(long)] void *HANDLE;

#define DECLARE_HANDLE(name)    typedef [transmit_as(long)] void * name

DECLARE_HANDLE(HMODULE);
DECLARE_HANDLE(HINSTANCE);
DECLARE_HANDLE(HICON);
DECLARE_HANDLE(HFONT);
typedef [transmit_as(RemHGLOBAL)] void * HGLOBAL;
typedef HGLOBAL HLOCAL;
typedef [transmit_as(RemHBITMAP)] void * HBITMAP;
typedef [transmit_as(RemHPALETTE)] void * HPALETTE;
typedef [transmit_as(RemHBRUSH)] void * HBRUSH;
typedef [transmit_as(RemHENHMETAFILE)] void * HENHMETAFILE;
DECLARE_HANDLE(HDC);
DECLARE_HANDLE(HRGN);
DECLARE_HANDLE(HWND);
DECLARE_HANDLE(HMENU);
DECLARE_HANDLE(HACCEL);
DECLARE_HANDLE(HTASK);
DECLARE_HANDLE(HKEY);

DECLARE_HANDLE(HDESK);
/* DECLARE_HANDLE(HENHMETAFILE); */
DECLARE_HANDLE(HMF);
DECLARE_HANDLE(HEMF);
DECLARE_HANDLE(HMETAFILE);
/* DECLARE_HANDLE(HPALETTE); */
DECLARE_HANDLE(HPEN);
DECLARE_HANDLE(HRSRC);
DECLARE_HANDLE(HSTR);
DECLARE_HANDLE(HWINSTA);
DECLARE_HANDLE(HKL);
DECLARE_HANDLE(HGDIOBJ);

typedef HANDLE HDWP;

cpp_quote("#ifndef _HFILE_DEFINED")
cpp_quote("#define _HFILE_DEFINED")
typedef INT HFILE;      /* Polymorphic with C runtime file handle type */
cpp_quote("#endif // !_HFILE_DEFINED")


cpp_quote("#ifndef _HCURSOR_DEFINED")
cpp_quote("#define _HCURSOR_DEFINED")
typedef HICON HCURSOR;      /* HICONs & HCURSORs are polymorphic */
cpp_quote("#endif // !_HCURSOR_DEFINED")



cpp_quote("#ifndef _LPWORD_DEFINED")
cpp_quote("#define _LPWORD_DEFINED")
typedef WORD *LPWORD;
cpp_quote("#endif // !_LPWORD_DEFINED")


cpp_quote("#ifndef _LPDWORD_DEFINED")
cpp_quote("#define _LPDWORD_DEFINED")
typedef DWORD *LPDWORD;
cpp_quote("#endif // !_LPDWORD_DEFINED")


// LPSTR is a base type of TDL
#if !defined(__MKTYPLIB__)
typedef [string] char *LPSTR;
#endif

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")

// LPWSTR is a TDL base type
#if !defined(__MKTYPLIB__)
typedef [string] WCHAR *LPWSTR;
#endif


typedef [string] TCHAR *LPTSTR;

typedef [string] const WCHAR *LPCWSTR;
typedef [string] const TCHAR *LPCTSTR;


typedef struct tagPALETTEENTRY {
    BYTE        peRed;
    BYTE        peGreen;
    BYTE        peBlue;
    BYTE        peFlags;
} PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;

// Logical Palette
cpp_quote("#if 0")

    typedef struct tagLOGPALETTE {
        WORD        palVersion;
        WORD        palNumEntries;
        [size_is(palNumEntries)] PALETTEENTRY        palPalEntry[];
    } LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;

cpp_quote("#else")
cpp_quote("typedef struct tagLOGPALETTE {")
cpp_quote("    WORD        palVersion;")
cpp_quote("    WORD        palNumEntries;")
cpp_quote("    PALETTEENTRY        palPalEntry[1];")
cpp_quote("} LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;")
cpp_quote("#endif")

cpp_quote("#ifndef _COLORREF_DEFINED")
cpp_quote("#define _COLORREF_DEFINED")
typedef DWORD COLORREF;
cpp_quote("#endif // !_COLORREF_DEFINED")

cpp_quote("#ifndef _LPCOLORREF_DEFINED")
cpp_quote("#define _LPCOLORREF_DEFINED")
typedef DWORD *LPCOLORREF;
cpp_quote("#endif // !_LPCOLORREF_DEFINED")


typedef HANDLE *LPHANDLE;

//typedefs for remotable types from wingdi.h

typedef struct _RECTL
{
    LONG    left;
    LONG    top;
    LONG    right;
    LONG    bottom;
} RECTL, *PRECTL, *LPRECTL;


typedef struct tagPOINT
{
    LONG  x;
    LONG  y;
} POINT, *PPOINT, *LPPOINT;

typedef struct _POINTL
{
    LONG  x;
    LONG  y;
} POINTL, *PPOINTL;



cpp_quote("#ifndef WIN16")
typedef struct tagSIZE
{
    LONG        cx;
    LONG        cy;
} SIZE, *PSIZE, *LPSIZE;
cpp_quote("#else // WIN16")
cpp_quote("typedef struct tagSIZE")
cpp_quote("{")
cpp_quote("    INT cx;")
cpp_quote("    INT cy;")
cpp_quote("} SIZE, *PSIZE, *LPSIZE;")
cpp_quote("#endif // WIN16")


// Message structure

typedef struct tagMSG {
    HWND        hwnd;
    UINT        message;
    WPARAM      wParam;
    LPARAM      lParam;
    DWORD       time;
    POINT       pt;
} MSG, *PMSG, *NPMSG, *LPMSG;



typedef struct tagSIZEL
{
    LONG cx;
    LONG cy;
} SIZEL, *PSIZEL, *LPSIZEL;


cpp_quote("#endif  //WINAPI")
cpp_quote("#endif  //!WIN32")


//
// BUGBUG: review for chicago
//


cpp_quote("#if defined(WIN32) && !defined(OLE2ANSI)")

typedef WCHAR                   OLECHAR;
typedef [string] OLECHAR       *LPOLESTR;
typedef [string] const OLECHAR *LPCOLESTR;
cpp_quote("#define OLESTR(str) L##str")

cpp_quote("#else")

cpp_quote("typedef char      OLECHAR;")
cpp_quote("typedef LPSTR     LPOLESTR;")
cpp_quote("typedef LPCSTR    LPCOLESTR;")
cpp_quote("#define OLESTR(str) str")

cpp_quote("#endif")



typedef const RECTL *LPCRECTL;


// This block contains types that are normally defined by the nt sdk in WINDEF.H
// but we need them here for definitions that follow in this file.  If WINDEF.H
// hasn't been included then we need to define them now so that WTYPES.H
// will compile.
cpp_quote("#ifndef _WINDEF_")
typedef void * PVOID, *LPVOID;
typedef struct tagRECT
{
    LONG    left;
    LONG    top;
    LONG    right;
    LONG    bottom;
} RECT, *PRECT, *LPRECT;
cpp_quote("#endif  //_WINDEF_")







typedef unsigned char  UCHAR;
typedef short SHORT;
typedef unsigned short USHORT;
typedef DWORD ULONG;

cpp_quote("#if 0")
//
// __int64 is only supported by 2.0 and later midl.
// __midl is set by the 2.0 midl and not by 1.0 midl.
//

#if (defined(__midl))
typedef __int64 LONGLONG;
typedef unsigned __int64 ULONGLONG;
#else
typedef double LONGLONG;
typedef double ULONGLONG;
#endif

typedef LONGLONG *PLONGLONG;
typedef ULONGLONG *PULONGLONG;

typedef struct _LARGE_INTEGER {
    LONGLONG QuadPart;
} LARGE_INTEGER;

typedef LARGE_INTEGER *PLARGE_INTEGER;

typedef struct _ULARGE_INTEGER {
    ULONGLONG QuadPart;
} ULARGE_INTEGER;

cpp_quote("#endif // ")


cpp_quote("#ifndef _WINBASE_")

cpp_quote("#ifndef _FILETIME_")
cpp_quote("#define _FILETIME_")
typedef struct _FILETIME
{
    DWORD dwLowDateTime;
    DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;
cpp_quote("#endif // !_FILETIME")

cpp_quote("#ifndef _SYSTEMTIME_")
cpp_quote("#define _SYSTEMTIME_")
typedef struct _SYSTEMTIME {
    WORD wYear;
    WORD wMonth;
    WORD wDayOfWeek;
    WORD wDay;
    WORD wHour;
    WORD wMinute;
    WORD wSecond;
    WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
cpp_quote("#endif // !_SYSTEMTIME")

cpp_quote("#ifndef _SECURITY_ATTRIBUTES_")
cpp_quote("#define _SECURITY_ATTRIBUTES_")
typedef struct _SECURITY_ATTRIBUTES {
    DWORD nLength;
    [size_is(nLength)] LPVOID lpSecurityDescriptor;
    BOOL bInheritHandle;
} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
cpp_quote("#endif // !_SECURITY_ATTRIBUTES_")

cpp_quote("#ifndef SECURITY_DESCRIPTOR_REVISION")

typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;

typedef PVOID PSID;     // winnt

typedef struct _ACL {
    UCHAR AclRevision;
    UCHAR Sbz1;
    USHORT AclSize;
    USHORT AceCount;
    USHORT Sbz2;
} ACL;
typedef ACL *PACL;

typedef struct _SECURITY_DESCRIPTOR {
    UCHAR Revision;
    UCHAR Sbz1;
    SECURITY_DESCRIPTOR_CONTROL Control;
    PSID Owner;
    PSID Group;
    PACL Sacl;
    PACL Dacl;
} SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR;

cpp_quote("#endif // !SECURITY_DESCRIPTOR_REVISION")

cpp_quote("#endif //_WINBASE_")


//
// SCODE, HRESULT
//
//
//  Status values are 32 bit values layed out as follows:
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//  +-+-----------------------------+-------------------------------+
//  |S|       Facility              |               Code            |
//  +-+-----------------------------+-------------------------------+
//
//  where
//
//      S - is the severity code
//
//          0 - Success
//          1 - Error
//
//
//      Facility - is the facility code
//
//      Code - is the facility's status code
//
// SCODE and HRESULT are mktyplib base types.
//
#ifndef __MKTYPLIB__
typedef LONG SCODE;
typedef LONG HRESULT;
#endif // !__MKTYPLIB__

typedef SCODE *PSCODE;


cpp_quote("#ifndef GUID_DEFINED")
cpp_quote("#define GUID_DEFINED")
typedef struct _GUID
{
    DWORD Data1;
    WORD  Data2;
    WORD  Data3;
    BYTE  Data4[8];
} GUID;
cpp_quote("#endif // !GUID_DEFINED")

cpp_quote("#if !defined( __LPGUID_DEFINED__ )")
cpp_quote("#define __LPGUID_DEFINED__")
typedef GUID *LPGUID;
cpp_quote("#endif // !__LPGUID_DEFINED__")

cpp_quote("#ifndef __OBJECTID_DEFINED")
cpp_quote("#define __OBJECTID_DEFINED")
cpp_quote("#define _OBJECTID_DEFINED")
typedef struct _OBJECTID     // NOTE!! Order of structure members is important for OFS
{                            // enumeration.
   GUID Lineage;             // Unique for objects copied from same original and copies of.
   unsigned long Uniquifier; // Random, to provide uniqueness within small set with same
} OBJECTID;                  // lineage id.
cpp_quote("#endif // !_OBJECTID_DEFINED")




cpp_quote("#if !defined( __IID_DEFINED__ )")
cpp_quote("#define __IID_DEFINED__")

// Interface ID are just a kind of GUID
typedef GUID IID;
typedef IID *LPIID;
cpp_quote("#define IID_NULL            GUID_NULL")
cpp_quote("#define IsEqualIID(riid1, riid2) IsEqualGUID(riid1, riid2)")

// Class ID are just a kind of GUID
typedef GUID CLSID;
typedef              CLSID *LPCLSID;
cpp_quote("#define CLSID_NULL          GUID_NULL")
cpp_quote("#define IsEqualCLSID(rclsid1, rclsid2) IsEqualGUID(rclsid1, rclsid2)")

#ifndef __MKTYPLIB__

//The following typedefs are used internally by MIDL.
cpp_quote("#if 0")
#if defined(__midl)
    /* MIDL 2.0 definitions */
    typedef GUID *REFGUID;
    typedef IID *REFIID;
    typedef CLSID *REFCLSID;
#else
    /* MIDL 1.1 definitions */
    typedef GUID REFGUID;
    typedef IID REFIID;
    typedef CLSID REFCLSID;
#endif
cpp_quote("#endif // 0")

cpp_quote("#if defined(__cplusplus)")

cpp_quote("#ifndef _REFGUID_DEFINED")
cpp_quote("#define _REFGUID_DEFINED")
cpp_quote("#define REFGUID             const GUID &")
cpp_quote("#endif // !_REFGUID_DEFINED")

cpp_quote("#ifndef _REFIID_DEFINED")
cpp_quote("#define _REFIID_DEFINED")
cpp_quote("#define REFIID              const IID &")
cpp_quote("#endif // !_REFIID_DEFINED")

cpp_quote("#ifndef _REFCLSID_DEFINED")
cpp_quote("#define _REFCLSID_DEFINED")
cpp_quote("#define REFCLSID            const CLSID &")
cpp_quote("#endif // !_REFCLSID_DEFINED")


cpp_quote("#else // !__cplusplus")

cpp_quote("#ifndef _REFGUID_DEFINED")
cpp_quote("#define _REFGUID_DEFINED")
cpp_quote("#define REFGUID             const GUID * const")
cpp_quote("#endif // !_REFGUID_DEFINED")

cpp_quote("#ifndef _REFIID_DEFINED")
cpp_quote("#define _REFIID_DEFINED")
cpp_quote("#define REFIID              const IID * const")
cpp_quote("#endif // !_REFIID_DEFINED")


cpp_quote("#ifndef _REFCLSID_DEFINED")
cpp_quote("#define _REFCLSID_DEFINED")
cpp_quote("#define REFCLSID            const CLSID * const")
cpp_quote("#endif // !_REFCLSID_DEFINED")

cpp_quote("#endif // !__cplusplus")


#else  // __MKTYPLIB__

typedef GUID   const *REFGUID;
typedef IID    const *REFIID;
typedef CLSID  const *REFCLSID;

#endif   // _MKTYPLIB__

cpp_quote("#endif // !__IID_DEFINED__")

    /************************* Misc types ***********************************/

    // Common typdefs used in API paramaters, gleamed from compobj.h

    // memory context values; passed to CoGetMalloc
    typedef enum tagMEMCTX
    {
        MEMCTX_TASK = 1,            // task (private) memory
        MEMCTX_SHARED = 2,          // shared memory (between processes)
        MEMCTX_MACSYSTEM = 3,       // on the mac, the system heap
        // these are mostly for internal use...
        MEMCTX_UNKNOWN = -1,        // unknown context (when asked about it)
        MEMCTX_SAME = -2,           // same context (as some other pointer)
    } MEMCTX;


// For IRunningObjectTable::Register
cpp_quote("#ifndef _ROTFLAGS_DEFINED")
cpp_quote("#define _ROTFLAGS_DEFINED")
cpp_quote("#define ROTFLAGS_REGISTRATIONKEEPSALIVE 1")
cpp_quote("#endif // !_ROTFLAGS_DEFINED")



    // class context: used to determine what scope and kind of class object to use
    // NOTE: this is a bitwise enum
    typedef enum tagCLSCTX
    {
        CLSCTX_INPROC_SERVER = 1,   // server dll (runs in same process as caller)
        CLSCTX_INPROC_HANDLER = 2,  // handler dll (runs in same process as caller)
        CLSCTX_LOCAL_SERVER = 4,    // server exe (runs on same machine; diff proc)
        CLSCTX_INPROC_SERVER16 = 8  // 16-bit server dll (runs in same process as caller)
    } CLSCTX;


    // marshaling flags; passed to CoMarshalInterface
    typedef enum tagMSHLFLAGS
    {
        MSHLFLAGS_NORMAL = 0,       // normal marshaling via proxy/stub
        MSHLFLAGS_TABLESTRONG = 1,  // keep object alive; must explicitly release
        MSHLFLAGS_TABLEWEAK = 2     // doesn't hold object alive; still must release
    } MSHLFLAGS;

    // marshal context: determines the destination context of the marshal operation
    typedef enum tagMSHCTX
    {
        MSHCTX_LOCAL = 0,           // unmarshal context is local (eg.shared memory)
        MSHCTX_NOSHAREDMEM = 1,     // unmarshal context has no shared memory access
        MSHCTX_DIFFERENTMACHINE = 2,// unmarshal context is on a different machine
    } MSHCTX;




    //
    // Common typedefs for paramaters used in data view API's, gleamed
    // from dvobj.h
    //

    // Data/View aspect; specifies the desired aspect of the object when
    // drawing or getting data.
    typedef enum tagDVASPECT
    {
        DVASPECT_CONTENT = 1,
        DVASPECT_THUMBNAIL = 2,
        DVASPECT_ICON = 4,
        DVASPECT_DOCPRINT = 8
    } DVASPECT;

    /****** Storage types *************************************************/


    /* Storage commit types */
    typedef enum tagSTGC
    {
        STGC_DEFAULT        = 0,
        STGC_OVERWRITE      = 1,
        STGC_ONLYIFCURRENT  = 2,
        STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4
    } STGC;



    typedef enum tagSTGMOVE
    {
        STGMOVE_MOVE    = 0,
        STGMOVE_COPY    = 1
    } STGMOVE;

    typedef enum tagSTATFLAG
    {
        STATFLAG_DEFAULT = 0,
        STATFLAG_NONAME = 1
    } STATFLAG;


typedef [context_handle] void *HCONTEXT;

/****** Critical Section Wrappers ***********************************/


/* if not already picked up from olenls.h */
cpp_quote("#ifndef _LCID_DEFINED")
cpp_quote("#define _LCID_DEFINED")
typedef DWORD LCID;
cpp_quote("#endif // !_LCID_DEFINED")



typedef const RECT *LPCRECT;


cpp_quote("void __RPC_API HGLOBAL_to_xmit (HGLOBAL __RPC_FAR *, RemHGLOBAL __RPC_FAR * __RPC_FAR *);")
cpp_quote("void __RPC_API HGLOBAL_from_xmit (RemHGLOBAL __RPC_FAR *, HGLOBAL __RPC_FAR *);")
cpp_quote("void __RPC_API HGLOBAL_free_inst (HGLOBAL __RPC_FAR *);")
cpp_quote("void __RPC_API HGLOBAL_free_xmit (RemHGLOBAL __RPC_FAR *);")

cpp_quote("void __RPC_API HBITMAP_to_xmit (HBITMAP __RPC_FAR *, RemHBITMAP __RPC_FAR * __RPC_FAR *);")
cpp_quote("void __RPC_API HBITMAP_from_xmit (RemHBITMAP __RPC_FAR *, HBITMAP __RPC_FAR *);")
cpp_quote("void __RPC_API HBITMAP_free_inst (HBITMAP __RPC_FAR *);")
cpp_quote("void __RPC_API HBITMAP_free_xmit (RemHBITMAP __RPC_FAR *);")

cpp_quote("void __RPC_API HPALETTE_to_xmit (HPALETTE __RPC_FAR *, RemHPALETTE __RPC_FAR * __RPC_FAR *);")
cpp_quote("void __RPC_API HPALETTE_from_xmit (RemHPALETTE __RPC_FAR *, HPALETTE __RPC_FAR *);")
cpp_quote("void __RPC_API HPALETTE_free_inst (HPALETTE __RPC_FAR *);")
cpp_quote("void __RPC_API HPALETTE_free_xmit (RemHPALETTE __RPC_FAR *);")

cpp_quote("void __RPC_API HBRUSH_to_xmit (HBRUSH __RPC_FAR *, RemHBRUSH __RPC_FAR * __RPC_FAR *);")
cpp_quote("void __RPC_API HBRUSH_from_xmit (RemHBRUSH __RPC_FAR *, HBRUSH __RPC_FAR *);")
cpp_quote("void __RPC_API HBRUSH_free_inst (HBRUSH __RPC_FAR *);")
cpp_quote("void __RPC_API HBRUSH_free_xmit (RemHBRUSH __RPC_FAR *);")

cpp_quote("void __RPC_API HMETAFILEPICT_to_xmit (HMETAFILEPICT __RPC_FAR *, RemHMETAFILEPICT __RPC_FAR * __RPC_FAR *);")
cpp_quote("void __RPC_API HMETAFILEPICT_from_xmit (RemHMETAFILEPICT __RPC_FAR *, HMETAFILEPICT __RPC_FAR *);")
cpp_quote("void __RPC_API HMETAFILEPICT_free_inst (HMETAFILEPICT __RPC_FAR *);")
cpp_quote("void __RPC_API HMETAFILEPICT_free_xmit (RemHMETAFILEPICT __RPC_FAR *);")

cpp_quote("void __RPC_API HENHMETAFILE_to_xmit (HENHMETAFILE __RPC_FAR *, RemHENHMETAFILE __RPC_FAR * __RPC_FAR *);")
cpp_quote("void __RPC_API HENHMETAFILE_from_xmit (RemHENHMETAFILE __RPC_FAR *, HENHMETAFILE __RPC_FAR *);")
cpp_quote("void __RPC_API HENHMETAFILE_free_inst (HENHMETAFILE __RPC_FAR *);")
cpp_quote("void __RPC_API HENHMETAFILE_free_xmit (RemHENHMETAFILE __RPC_FAR *);")

}
