Tidy up UpdateTexture and add support for updating cube textures.
[wine] / tools / widl / widltypes.h
index a5722c1..dea60bb 100644 (file)
@@ -22,8 +22,6 @@
 #define __WIDL_WIDLTYPES_H
 
 #include <stdarg.h>
-#include "windef.h"
-#include "winbase.h"
 #include "guiddef.h"
 #include "wine/rpcfc.h"
 
@@ -32,6 +30,9 @@
 typedef GUID UUID;
 #endif
 
+#define TRUE 1
+#define FALSE 0
+
 typedef struct _attr_t attr_t;
 typedef struct _expr_t expr_t;
 typedef struct _type_t type_t;
@@ -40,6 +41,8 @@ typedef struct _var_t var_t;
 typedef struct _func_t func_t;
 typedef struct _ifref_t ifref_t;
 typedef struct _class_t class_t;
+typedef struct _typelib_entry_t typelib_entry_t;
+typedef struct _typelib_t typelib_t;
 
 #define DECL_LINK(type) \
   type *l_next; \
@@ -54,41 +57,63 @@ typedef struct _class_t class_t;
 enum attr_type
 {
     ATTR_ASYNC,
+    ATTR_AUTO_HANDLE,
     ATTR_CALLAS,
     ATTR_CASE,
     ATTR_CONTEXTHANDLE,
+    ATTR_CONTROL,
     ATTR_DEFAULT,
+    ATTR_DEFAULTVALUE_EXPR,
+    ATTR_DEFAULTVALUE_STRING,
+    ATTR_DISPINTERFACE,
     ATTR_DLLNAME,
     ATTR_DUAL,
-    ATTR_ENTRY_STRING,
+    ATTR_ENDPOINT,
     ATTR_ENTRY_ORDINAL,
+    ATTR_ENTRY_STRING,
+    ATTR_EXPLICIT_HANDLE,
     ATTR_HANDLE,
+    ATTR_HELPCONTEXT,
+    ATTR_HELPFILE,
     ATTR_HELPSTRING,
+    ATTR_HELPSTRINGCONTEXT,
+    ATTR_HELPSTRINGDLL,
+    ATTR_HIDDEN,
     ATTR_ID,
     ATTR_IDEMPOTENT,
     ATTR_IIDIS,
+    ATTR_IMPLICIT_HANDLE,
     ATTR_IN,
     ATTR_INPUTSYNC,
     ATTR_LENGTHIS,
     ATTR_LOCAL,
+    ATTR_NONCREATABLE,
     ATTR_OBJECT,
     ATTR_ODL,
     ATTR_OLEAUTOMATION,
+    ATTR_OPTIONAL,
     ATTR_OUT,
     ATTR_POINTERDEFAULT,
     ATTR_POINTERTYPE,
+    ATTR_PROPGET,
+    ATTR_PROPPUT,
+    ATTR_PROPPUTREF,
     ATTR_PUBLIC,
+    ATTR_RANGE,
     ATTR_READONLY,
+    ATTR_RESTRICTED,
     ATTR_RETVAL,
     ATTR_SIZEIS,
     ATTR_SOURCE,
     ATTR_STRING,
     ATTR_SWITCHIS,
     ATTR_SWITCHTYPE,
+    ATTR_TRANSMITAS,
     ATTR_UUID,
     ATTR_V1ENUM,
+    ATTR_VARARG,
     ATTR_VERSION,
-    ATTR_WIREMARSHAL,
+    ATTR_WIREMARSHAL
 };
 
 enum expr_type
@@ -113,10 +138,23 @@ enum expr_type
     EXPR_COND,
 };
 
+enum type_kind
+{
+    TKIND_ENUM = 0,
+    TKIND_RECORD,
+    TKIND_MODULE,
+    TKIND_INTERFACE,
+    TKIND_DISPATCH,
+    TKIND_COCLASS,
+    TKIND_ALIAS,
+    TKIND_UNION,
+    TKIND_MAX
+};
+   
 struct _attr_t {
   enum attr_type type;
   union {
-    DWORD ival;
+    unsigned long ival;
     void *pval;
   } u;
   /* parser-internal */
@@ -141,15 +179,15 @@ struct _expr_t {
 
 struct _type_t {
   char *name;
-  BYTE type;
+  unsigned char type;
   struct _type_t *ref;
   char *rname;
   attr_t *attrs;
   func_t *funcs;
   var_t *fields;
   int ignore, is_const, sign;
-  int defined, written;
-
+  int defined, written, user_types_registered;
+  int typelib_idx;
   /* parser-internal */
   DECL_LINK(type_t)
 };
@@ -201,4 +239,24 @@ struct _class_t {
   DECL_LINK(class_t)
 };
 
+struct _typelib_entry_t {
+    enum type_kind kind;
+    union {
+        class_t *class;
+        type_t *interface;
+        type_t *module;
+        type_t *structure;
+        type_t *enumeration;
+        var_t *tdef;
+    } u;
+    DECL_LINK(typelib_entry_t)
+};
+
+struct _typelib_t {
+    char *name;
+    char *filename;
+    attr_t *attrs;
+    typelib_entry_t *entry;
+};
+
 #endif