packages feed

hdirect-0.21.0: comlib/StdTypes.idl

//
// Some common 
module StdTypes {

cpp_quote("#ifdef __MINGW32__")
cpp_quote("#define __need_wchar_t")
cpp_quote("#include <stddef.h>")
cpp_quote("#endif")

typedef unsigned int UINT;
typedef int INT;
typedef long BOOL;
typedef unsigned char BYTE;
typedef long LONG;
typedef unsigned long ULONG;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef unsigned short VARTYPE;
typedef unsigned short USHORT;

typedef DWORD LCID;
typedef LONG SCODE;
typedef short           SHORT;

typedef wchar_t WCHAR;
typedef WCHAR   TCHAR;
typedef WCHAR                   OLECHAR;
typedef [string] OLECHAR       *LPOLESTR;
typedef [string] const OLECHAR *LPCOLESTR;

typedef void * PVOID, * LPVOID;
typedef float   FLOAT;

// 
// Annotate GUID, IID and CLSID with [ignore] - don't want
// to generate stubs/types for them. (they're provided by Com.)
// 
typedef [ignore]struct _GUID
{
    DWORD Data1;
    WORD  Data2;
    WORD  Data3;
    BYTE  Data4[8];
} GUID;
cpp_quote("typedef struct _GUID {")
cpp_quote("DWORD Data1;")
cpp_quote("WORD  Data2;")
cpp_quote("WORD  Data3;")
cpp_quote("BYTE  Data4[8];")
cpp_quote("} GUID;")

typedef [ignore]GUID IID;
cpp_quote("typedef GUID IID;")
typedef IID *LPIID;
typedef [ignore]GUID CLSID;
cpp_quote("typedef GUID CLSID;")
typedef              CLSID *LPCLSID;
typedef GUID FMTID;
typedef              FMTID *LPFMTID;

typedef [ptr]void*   HWND;
typedef [ptr]void*   HMENU;
typedef [ptr]void*   HANDLE;

typedef [ref]GUID *REFGUID;
typedef [ref]IID *REFIID;
typedef [ref]CLSID *REFCLSID;
typedef [ref]FMTID *REFFMTID;

enum VARENUM
{
    VT_EMPTY           = 0,
    VT_NULL            = 1,
    VT_I2              = 2,
    VT_I4              = 3,
    VT_R4              = 4,
    VT_R8              = 5,
    VT_CY              = 6,
    VT_DATE            = 7,
    VT_BSTR            = 8,
    VT_DISPATCH        = 9,
    VT_ERROR           = 10,
    VT_BOOL            = 11,
    VT_VARIANT         = 12,
    VT_UNKNOWN         = 13,
    VT_DECIMAL         = 14,

    VT_I1              = 16,
    VT_UI1             = 17,
    VT_UI2             = 18,
    VT_UI4             = 19,
    VT_I8              = 20,
    VT_UI8             = 21,
    VT_INT             = 22,
    VT_UINT            = 23,
    VT_VOID            = 24,
    VT_HRESULT         = 25,
    VT_PTR             = 26,
    VT_SAFEARRAY       = 27,
    VT_CARRAY          = 28,
    VT_USERDEFINED     = 29,
    VT_LPSTR           = 30,
    VT_LPWSTR          = 31,

    VT_FILETIME        = 64,
    VT_BLOB            = 65,
    VT_STREAM          = 66,
    VT_STORAGE         = 67,
    VT_STREAMED_OBJECT = 68,
    VT_STORED_OBJECT   = 69,
    VT_BLOB_OBJECT     = 70,
    VT_CF              = 71,
    VT_CLSID           = 72,

    VT_BSTR_BLOB       = 0x0fff,

    VT_VECTOR          = 0x1000,
    VT_ARRAY           = 0x2000,
    VT_BYREF           = 0x4000,
    VT_RESERVED        = 0x8000,

    VT_ILLEGAL         = 0xffff,
    VT_ILLEGALMASKED   = 0x0fff,
    VT_TYPEMASK        = 0x0fff
};

}