#define __WIDL_WIDLTYPES_H
#include <stdarg.h>
-#include "windef.h"
-#include "winbase.h"
#include "guiddef.h"
#include "wine/rpcfc.h"
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;
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; \
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
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 */
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)
};
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