wtypes.idl patch

Ove Kaaven ovehk at ping.uio.no
Tue Dec 3 07:03:52 CST 2002


Enough types to parse oaidl.idl, it seems. Since the VARENUM type now gets
defined in wtypes.h, I commented it out of wine/obj_oleaut.h.

You need to regenerate wtypes.h (and it's best to apply my latest widl
patch first). Should regenerated .h files be part of submitted patches in
the future?

Log:
Ove Kaaven <ovek at transgaming.com>
Added more types to wtypes.idl.

Index: include/wtypes.idl
===================================================================
RCS file: /home/wine/wine/include/wtypes.idl,v
retrieving revision 1.3
diff -u -r1.3 wtypes.idl
--- include/wtypes.idl	30 Nov 2002 01:49:20 -0000	1.3
+++ include/wtypes.idl	3 Dec 2002 12:56:22 -0000
@@ -73,6 +73,12 @@
 #define DECLARE_HANDLE(name) typedef void *name
 #define DECLARE_WIREM_HANDLE(name) typedef [wire_marshal(wire##name)] void*name
 
+DECLARE_HANDLE(HMODULE);
+DECLARE_HANDLE(HINSTANCE);
+DECLARE_HANDLE(HRGN);
+DECLARE_HANDLE(HTASK);
+DECLARE_HANDLE(HKEY);
+
 typedef double DATE;
 typedef LONG HRESULT;
 typedef DWORD LCID;
@@ -81,6 +87,14 @@
 typedef __int64 LONGLONG;
 typedef unsigned __int64 ULONGLONG;
 
+typedef struct _LARGE_INTEGER {
+  LONGLONG QuadPart;
+} LARGE_INTEGER;
+
+typedef struct _ULARGE_INTEGER {
+  ULONGLONG QuadPart;
+} ULARGE_INTEGER;
+
 typedef struct _SID_IDENTIFIER_AUTHORITY {
   UCHAR Value[6];
 } SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;
@@ -115,6 +129,26 @@
 
 cpp_quote("#endif /* winnt.h */")
 
+cpp_quote("#ifndef _PALETTEENTRY_DEFINED")
+cpp_quote("#define _PALETTEENTRY_DEFINED")
+typedef struct tagPALETTEENTRY {
+  BYTE peRed;
+  BYTE peGreen;
+  BYTE peBlue;
+  BYTE peFlags;
+} PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
+cpp_quote("#endif")
+
+cpp_quote("#ifndef _LOGPALETTE_DEFINED")
+cpp_quote("#define _LOGPALETTE_DEFINED")
+typedef struct tagLOGPALETTE
+{
+  WORD palVersion;
+  WORD palNumEntries;
+  [size_is(palNumEntries)] PALETTEENTRY palPalEntry[*];
+} LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
+cpp_quote("#endif")
+
 cpp_quote("#ifndef _FILETIME_")
 cpp_quote("#define _FILETIME_")
 typedef struct _FILETIME {
@@ -168,8 +202,7 @@
 cpp_quote("#define ROTFLAGS_ALLOWANYCLIENT 0x2")
 cpp_quote("#endif")
 
-typedef enum tagCLSCTX
-{
+typedef enum tagCLSCTX {
   CLSCTX_INPROC_SERVER        = 0x1,
   CLSCTX_INPROC_HANDLER       = 0x2,
   CLSCTX_LOCAL_SERVER         = 0x4,
@@ -192,16 +225,14 @@
 cpp_quote("#define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)")
 cpp_quote("#define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)")
 
-typedef enum tagMSHLFLAGS
-{
+typedef enum tagMSHLFLAGS {
   MSHLFLAGS_NORMAL      = 0,
   MSHLFLAGS_TABLESTRONG = 1,
   MSHLFLAGS_TABLEWEAK   = 2,
   MSHLFLAGS_NOPING      = 4
 } MSHLFLAGS;
 
-typedef enum tagMSHCTX
-{
+typedef enum tagMSHCTX {
   MSHCTX_LOCAL            = 0,
   MSHCTX_NOSHAREDMEM      = 1,
   MSHCTX_DIFFERENTMACHINE = 2,
@@ -217,6 +248,13 @@
 } BYTE_BLOB;
 typedef [unique] BYTE_BLOB *UP_BYTE_BLOB;
 
+typedef struct _FLAGGED_BYTE_BLOB {
+  unsigned long fFlags;
+  unsigned long clSize;
+  [size_is(clSize)] byte abData[];
+} FLAGGED_BYTE_BLOB;
+typedef [unique] FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB;
+
 typedef struct _FLAGGED_WORD_BLOB {
   unsigned long fFlags;
   unsigned long clSize;
@@ -224,6 +262,26 @@
 } FLAGGED_WORD_BLOB;
 typedef [unique] FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB;
 
+typedef struct _BYTE_SIZEDARR {
+  unsigned long clSize;
+  [size_is(clSize)] byte *pData;
+} BYTE_SIZEDARR;
+
+typedef struct _SHORT_SIZEDARR {
+  unsigned long clSize;
+  [size_is(clSize)] unsigned short *pData;
+} WORD_SIZEDARR;
+
+typedef struct _LONG_SIZEDARR {
+  unsigned long clSize;
+  [size_is(clSize)] unsigned long *pData;
+} DWORD_SIZEDARR;
+
+typedef struct _HYPER_SIZEDARR {
+  unsigned long clSize;
+  [size_is(clSize)] hyper *pData;
+} HYPER_SIZEDARR;
+
 /******************** GDI TYPES ********************/
 
 const unsigned long WDT_INPROC_CALL = 0x48746457;
@@ -231,12 +289,26 @@
 
 typedef union _userCLIPFORMAT switch(long fContext) u {
   case WDT_INPROC_CALL: DWORD dwValue;
-  case WDT_REMOTE_CALL: [string] WCHAR *pwszName;
+  case WDT_REMOTE_CALL: LPWSTR pwszName;
 } userCLIPFORMAT;
 
 typedef [unique] userCLIPFORMAT *wireCLIPFORMAT;
 typedef [wire_marshal(wireCLIPFORMAT)] WORD CLIPFORMAT;
 
+typedef struct tagRemHGLOBAL {
+  long fNullHGlobal;
+  unsigned long cbData;
+  [size_is(cbData)] byte data[];
+} RemHGLOBAL;
+
+typedef union _userHGLOBAL switch(long fContext) u {
+  case WDT_INPROC_CALL: long               hInproc;
+  case WDT_REMOTE_CALL: FLAGGED_BYTE_BLOB *hRemote;
+  default:              long               hGlobal;
+} userHGLOBAL;
+
+typedef [unique] userHGLOBAL *wireHGLOBAL;
+
 typedef struct tagRemHMETAFILEPICT {
   long mm;
   long xExt;
@@ -268,7 +340,69 @@
 
 typedef [unique] userHMETAFILEPICT *wireHMETAFILEPICT;
 
+typedef struct tagRemHENHMETAFILE {
+  unsigned long cbData;
+  [size_is(cbData)] byte data[];
+} RemHENHMETAFILE;
+
+typedef union _userHENHMETAFILE switch(long fContext) u {
+  case WDT_INPROC_CALL: long       hInproc;
+  case WDT_REMOTE_CALL: BYTE_BLOB *hRemote;
+  default:              long       hGlobal;
+} userHENHMETAFILE;
+
+typedef [unique] userHENHMETAFILE *wireHENHMETAFILE;
+
+typedef struct tagRemHBITMAP
+{
+  unsigned long cbData;
+  [size_is(cbData)] byte data[];
+} RemHBITMAP;
+
+typedef struct _userBITMAP {
+  LONG bmType;
+  LONG bmWidth;
+  LONG bmHeight;
+  LONG bmWidthBytes;
+  WORD bmPlanes;
+  WORD bmBitsPixel;
+  ULONG cbSize;
+  [size_is(cbSize)] byte pBuffer[];
+} userBITMAP;
+
+typedef union _userHBITMAP switch(long fContext) u {
+  case WDT_INPROC_CALL: long        hInproc;
+  case WDT_REMOTE_CALL: userBITMAP *hRemote;
+  default:              long        hGlobal;
+} userHBITMAP;
+
+typedef [unique] userHBITMAP *wireHBITMAP;
+
+typedef struct tagRemHPALETTE {
+  unsigned long cbData;
+  [size_is(cbData)] byte data[];
+} RemHPALETTE;
+
+typedef struct tagrpcLOGPALETTE {
+  WORD palVersion;
+  WORD palNumEntries;
+  [size_is(palNumEntries)] PALETTEENTRY palPalEntry[];
+} rpcLOGPALETTE;
+
+typedef union _userHPALETTE switch(long fContext) u {
+  case WDT_INPROC_CALL: long           hInproc;
+  case WDT_REMOTE_CALL: rpcLOGPALETTE *hRemote;
+  default:              long           hGlobal;
+} userHPALETTE;
+
+typedef [unique] userHPALETTE *wireHPALETTE;
+
 cpp_quote("#if 0")
+DECLARE_WIREM_HANDLE(HGLOBAL);
+typedef HGLOBAL HLOCAL;
+DECLARE_WIREM_HANDLE(HBITMAP);
+DECLARE_WIREM_HANDLE(HPALETTE);
+DECLARE_WIREM_HANDLE(HENHMETAFILE);
 DECLARE_WIREM_HANDLE(HMETAFILE);
 cpp_quote("#endif")
 DECLARE_WIREM_HANDLE(HMETAFILEPICT);
@@ -287,39 +421,45 @@
 
 cpp_quote("#if 0 /* guiddef.h */")
 typedef GUID *LPGUID;
+
 typedef GUID IID;
 typedef IID *LPIID;
 
+typedef GUID CLSID;
+typedef CLSID *LPCLSID;
+
+typedef GUID FMTID;
+typedef FMTID *LPFMTID;
+
 cpp_quote("#if 0") /* for IDL only (C/C++ defs are in guiddef.h) */
 typedef GUID *REFGUID;
 typedef IID *REFIID;
+typedef CLSID *REFCLSID;
+typedef FMTID *REFFMTID;
 cpp_quote("#endif")
 
 cpp_quote("#endif /* guiddef.h */")
 
 /******************** MISC TYPES ********************/
 
-typedef enum tagDVASPECT
-{
+typedef enum tagDVASPECT {
   DVASPECT_CONTENT   = 1,
   DVASPECT_THUMBNAIL = 2,
   DVASPECT_ICON      = 4,
   DVASPECT_DOCPRINT  = 8
 } DVASPECT;
 
-typedef enum tagSTGC
-{
-  STGC_DEFAULT = 0,
-  STGC_OVERWRITE = 1,
+typedef enum tagSTGC {
+  STGC_DEFAULT       = 0,
+  STGC_OVERWRITE     = 1,
   STGC_ONLYIFCURRENT = 2,
   STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
-  STGC_CONSOLIDATE = 8
+  STGC_CONSOLIDATE   = 8
 } STGC;
 
-typedef enum tagSTGMOVE
-{
-  STGMOVE_MOVE = 0,
-  STGMOVE_COPY = 1,
+typedef enum tagSTGMOVE {
+  STGMOVE_MOVE        = 0,
+  STGMOVE_COPY        = 1,
   STGMOVE_SHALLOWCOPY = 2
 } STGMOVE;
 
@@ -364,6 +504,11 @@
 cpp_quote("#define VARIANT_TRUE  ((VARIANT_BOOL)0xFFFF)")
 cpp_quote("#define VARIANT_FALSE ((VARIANT_BOOL)0x0000)")
 
+typedef struct tagBSTRBLOB {
+  ULONG cbSize;
+  [size_is(cbSize)] BYTE *pData;
+} BSTRBLOB, *LPBSTRBLOB;
+
 typedef struct tagBLOB {
   ULONG cbSize;
   [size_is(cbSize)] BYTE *pBlobData;
@@ -372,7 +517,7 @@
 typedef struct tagCLIPDATA {
   ULONG cbSize;
   long ulClipFmt;
-  [size_is(cbSize-4)] BYTE *pClipData;
+  [size_is(cbSize-sizeof(long))] BYTE *pClipData;
 } CLIPDATA;
 cpp_quote("#define CBPCLIPDATA(cb) ((cb).cbSize - sizeof((cb).ulClipFmt))")
 
@@ -381,6 +526,56 @@
 /******************** VARTYPE ********************/
 
 typedef unsigned short VARTYPE;
-/* FIXME: enum VARENUM */
+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_RECORD          = 36,
+  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
+};
 
 } /* interface IWinTypes */
Index: include/wine/obj_oleaut.h
===================================================================
RCS file: /home/wine/wine/include/wine/obj_oleaut.h,v
retrieving revision 1.34
diff -u -r1.34 obj_oleaut.h
--- include/wine/obj_oleaut.h	31 May 2002 23:06:50 -0000	1.34
+++ include/wine/obj_oleaut.h	3 Dec 2002 12:56:22 -0000
@@ -495,6 +495,7 @@
  * Data types for Variants.
  */
 
+#if 0
 enum VARENUM {
 	VT_EMPTY = 0,
 	VT_NULL = 1,
@@ -545,6 +546,7 @@
 	VT_ILLEGALMASKED  = 0xfff,
 	VT_TYPEMASK = 0xfff
 };
+#endif
 
 /* the largest valide type
  */




More information about the wine-patches mailing list