ReactOS 0.4.16-dev-1946-g52006dd
widltypes.h
Go to the documentation of this file.
1/*
2 * IDL Compiler
3 *
4 * Copyright 2002 Ove Kaaven
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#ifndef __WIDL_WIDLTYPES_H
22#define __WIDL_WIDLTYPES_H
23
24#include <stdarg.h>
25#include <stdbool.h>
26#include <assert.h>
27#include "ndrtypes.h"
28#include "wine/list.h"
29
30struct uuid
31{
32 unsigned int Data1;
33 unsigned short Data2;
34 unsigned short Data3;
35 unsigned char Data4[8];
36};
37
38#define TRUE 1
39#define FALSE 0
40
41typedef struct _attr_t attr_t;
43typedef struct _expr_t expr_t;
44typedef struct _type_t type_t;
45typedef struct _var_t var_t;
48typedef struct _typeref_t typeref_t;
52typedef struct _typelib_t typelib_t;
57typedef struct _warning_t warning_t;
58
59typedef struct list attr_list_t;
60typedef struct list str_list_t;
61typedef struct list expr_list_t;
62typedef struct list var_list_t;
63typedef struct list declarator_list_t;
64typedef struct list typeref_list_t;
65typedef struct list user_type_list_t;
68typedef struct list statement_list_t;
69typedef struct list warning_list_t;
70
72{
84 ATTR_CALLCONV, /* calling convention pseudo-attribute */
189
191{
229};
230
232{
244
246{
251};
252
254{
256};
257
259{
261};
262
264{
276
278{
285
287{
292};
293
295{
311};
312
313#define TYPE_BASIC_MAX TYPE_BASIC_HANDLE
314#define TYPE_BASIC_INT_MIN TYPE_BASIC_INT8
315#define TYPE_BASIC_INT_MAX TYPE_BASIC_HYPER
316
317struct location
318{
319 const char *input_name;
324};
325
327{
328 char *str;
329 struct list entry;
330};
331
333{
338};
339
340struct _attr_t {
342 union {
343 unsigned int ival;
344 void *pval;
345 } u;
346 /* parser-internal */
347 struct list entry;
349};
350
352{
353 int value;
357};
358
359struct _expr_t {
361 const expr_t *ref;
362 union {
364 double dval;
365 const char *sval;
366 const expr_t *ext;
368 } u;
369 const expr_t *ext2;
371 int cval;
372 /* parser-internal */
373 struct list entry;
374};
375
377 struct uuid id;
379};
380
382{
384};
385
387{
389};
390
392{
394 struct _var_t *retval;
395};
396
398{
405 typeref_list_t *requires;
406};
407
409{
411};
412
414{
418 unsigned int dim;
419 unsigned char declptr; /* if declared as a pointer */
420 unsigned short ptr_tfsoff; /* offset of pointer definition for declptr */
421};
422
424{
426};
427
429{
431 int sign;
432};
433
435{
437};
438
440{
441 struct _type_t *field;
442 const expr_t *bits;
443};
444
446{
448};
449
451{
453};
454
456{
459};
460
462{
464};
465
466#define HASHMAX 64
467
468struct namespace {
469 const char *name;
471 struct list entry;
473 struct rtype *type_hash[HASHMAX];
474};
475
477{
479 TYPE_BASIC, /* ints, floats and handles */
497};
498
499struct _type_t {
500 const char *name; /* C++ name with parameters in brackets */
501 struct namespace *namespace;
504 union
505 {
521 const char *c_name; /* mangled C name, with namespaces and parameters */
522 const char *signature;
523 const char *qualified_name; /* C++ fully qualified name */
524 const char *impl_name; /* C++ parameterized types impl base class name */
525 const char *param_name; /* used to build c_name of a parameterized type, when used as a parameter */
526 const char *short_name; /* widl specific short name */
527 unsigned int typestring_offset;
528 unsigned int ptrdesc; /* used for complex structs */
531 unsigned int ignore : 1;
532 unsigned int defined : 1;
533 unsigned int defined_in_import : 1;
534 unsigned int written : 1;
535 unsigned int user_types_registered : 1;
536 unsigned int tfswrite : 1; /* if the type needs to be written to the TFS */
537 unsigned int checked : 1;
538};
539
540struct _var_t {
541 char *name;
545
546 unsigned int typestring_offset;
547
548 /* fields specific to functions */
550
552
553 /* Should we define the UDT in this var, when writing a header? */
554 unsigned int is_defined : 1;
555
556 /* parser-internal */
557 struct list entry;
558};
559
565
566 /* parser-internal */
567 struct list entry;
568};
569
573
574 /* parser-internal */
575 struct list entry;
576};
577
580 struct list entry;
581};
582
585 struct uuid guid;
586 int flags;
587 int id;
588
589 char *name;
590
592};
593
596 char *name;
597
599 struct uuid guid;
600
603
605
606 struct list entry;
607};
608
610 char *name;
614
616 unsigned int reg_iface_count;
617};
618
620 struct list entry;
621 const char *name;
622};
623
624struct _statement_t {
625 struct list entry;
627 union
628 {
630 const char *str;
634 } u;
635 /* For STMT_TYPE and STMT_TYPEDEF, should we define the UDT in this
636 * statement, when writing a header? */
637 unsigned int is_defined : 1;
638};
639
641 int num;
642 struct list entry;
643};
644
645typedef enum {
651
656
657void init_types(void);
661
662#define tsENUM 1
663#define tsSTRUCT 2
664#define tsUNION 3
665
666var_t *find_const(const char *name, int f);
667type_t *find_type(const char *name, struct namespace *namespace, int t);
669type_t *get_type(enum type_type type, char *name, struct namespace *namespace, int t);
670type_t *reg_type(type_t *type, const char *name, struct namespace *namespace, int t);
671
674
675char *format_namespace(struct namespace *namespace, const char *prefix, const char *separator, const char *suffix,
676 const char *abi_prefix);
678
680{
681 return type->type_type;
682}
683
684#define STATEMENTS_FOR_EACH_FUNC(stmt, stmts) \
685 if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, statement_t, entry ) \
686 if (stmt->type == STMT_DECLARATION && stmt->u.var->declspec.stgclass == STG_NONE && \
687 type_get_type_detect_alias(stmt->u.var->declspec.type) == TYPE_FUNCTION)
688
689static inline int statements_has_func(const statement_list_t *stmts)
690{
691 const statement_t *stmt;
692 int has_func = 0;
693 STATEMENTS_FOR_EACH_FUNC(stmt, stmts)
694 {
695 has_func = 1;
696 break;
697 }
698 return has_func;
699}
700
701static inline int is_global_namespace(const struct namespace *namespace)
702{
703 return !namespace->name;
704}
705
707{
708 declspec->type = type;
709 declspec->stgclass = STG_NONE;
710 declspec->qualifier = 0;
711 declspec->func_specifier = 0;
712
713 return declspec;
714}
715
716#endif
Definition: list.h:37
static const WCHAR separator[]
Definition: asmname.c:65
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLdouble GLdouble t
Definition: gl.h:2047
GLsizei const GLvoid * pointer
Definition: glext.h:5848
GLfloat f
Definition: glext.h:7540
GLenum const GLfloat * params
Definition: glext.h:5645
GLuint GLfloat * val
Definition: glext.h:7180
GLuint id
Definition: glext.h:5910
Definition: msctf.idl:532
unsigned short Data3
Definition: widltypes.h:34
unsigned int Data1
Definition: widltypes.h:32
unsigned char Data4[8]
Definition: widltypes.h:35
unsigned short Data2
Definition: widltypes.h:33
const char * var
Definition: shader.c:5666
expr_t * pval
Definition: widltypes.h:378
union _attr_t::@5355 u
void * pval
Definition: widltypes.h:344
struct list entry
Definition: widltypes.h:347
unsigned int ival
Definition: widltypes.h:343
enum attr_type type
Definition: widltypes.h:341
struct location where
Definition: widltypes.h:348
enum function_specifier func_specifier
Definition: widltypes.h:337
enum type_qualifier qualifier
Definition: widltypes.h:336
type_t * type
Definition: widltypes.h:334
enum storage_class stgclass
Definition: widltypes.h:335
type_t * type
Definition: widltypes.h:562
enum type_qualifier qualifier
Definition: widltypes.h:563
var_t * var
Definition: widltypes.h:561
expr_t * bits
Definition: widltypes.h:564
struct list entry
Definition: widltypes.h:567
double dval
Definition: widltypes.h:364
const expr_t * ext2
Definition: widltypes.h:369
struct list entry
Definition: widltypes.h:373
decl_spec_t tref
Definition: widltypes.h:367
const char * sval
Definition: widltypes.h:365
enum expr_type type
Definition: widltypes.h:360
int is_const
Definition: widltypes.h:370
const expr_t * ext
Definition: widltypes.h:366
union _expr_t::@5356 u
const expr_t * ref
Definition: widltypes.h:361
int cval
Definition: widltypes.h:371
char * name
Definition: widltypes.h:589
importlib_t * importlib
Definition: widltypes.h:591
struct uuid guid
Definition: widltypes.h:585
struct list entry
Definition: widltypes.h:606
struct uuid guid
Definition: widltypes.h:599
importinfo_t * importinfos
Definition: widltypes.h:601
int ntypeinfos
Definition: widltypes.h:602
char * name
Definition: widltypes.h:596
enum statement_type type
Definition: widltypes.h:626
typelib_t * lib
Definition: widltypes.h:632
unsigned int is_defined
Definition: widltypes.h:637
type_t * type
Definition: widltypes.h:629
const char * str
Definition: widltypes.h:630
struct list entry
Definition: widltypes.h:625
var_t * var
Definition: widltypes.h:631
typeref_list_t * type_list
Definition: widltypes.h:633
union _statement_t::@5358 u
struct bitfield_details bitfield
Definition: widltypes.h:515
const char * param_name
Definition: widltypes.h:525
attr_list_t * attrs
Definition: widltypes.h:503
struct parameterized_details parameterized
Definition: widltypes.h:518
union _type_t::@5357 details
const char * c_name
Definition: widltypes.h:521
unsigned int user_types_registered
Definition: widltypes.h:535
struct func_details * function
Definition: widltypes.h:508
int typelib_idx
Definition: widltypes.h:529
struct coclass_details coclass
Definition: widltypes.h:512
unsigned int ptrdesc
Definition: widltypes.h:528
const char * short_name
Definition: widltypes.h:526
struct alias_details alias
Definition: widltypes.h:516
struct location where
Definition: widltypes.h:530
enum type_type type_type
Definition: widltypes.h:502
const char * qualified_name
Definition: widltypes.h:523
unsigned int typestring_offset
Definition: widltypes.h:527
struct delegate_details delegate
Definition: widltypes.h:519
unsigned int ignore
Definition: widltypes.h:531
struct iface_details * iface
Definition: widltypes.h:509
unsigned int defined
Definition: widltypes.h:532
const char * impl_name
Definition: widltypes.h:524
const char * signature
Definition: widltypes.h:522
const char * name
Definition: widltypes.h:500
unsigned int written
Definition: widltypes.h:534
unsigned int defined_in_import
Definition: widltypes.h:533
unsigned int checked
Definition: widltypes.h:537
struct runtimeclass_details runtimeclass
Definition: widltypes.h:517
struct enumeration_details * enumeration
Definition: widltypes.h:507
unsigned int tfswrite
Definition: widltypes.h:536
struct basic_details basic
Definition: widltypes.h:513
struct module_details * module
Definition: widltypes.h:510
struct struct_details * structure
Definition: widltypes.h:506
Definition: widltypes.h:578
type_t * type
Definition: widltypes.h:579
struct list entry
Definition: widltypes.h:580
type_t ** reg_ifaces
Definition: widltypes.h:615
statement_list_t * stmts
Definition: widltypes.h:613
struct list importlibs
Definition: widltypes.h:612
const attr_list_t * attrs
Definition: widltypes.h:611
unsigned int reg_iface_count
Definition: widltypes.h:616
char * name
Definition: widltypes.h:610
attr_list_t * attrs
Definition: widltypes.h:572
struct list entry
Definition: widltypes.h:575
type_t * type
Definition: widltypes.h:571
struct list entry
Definition: widltypes.h:620
const char * name
Definition: widltypes.h:621
struct list entry
Definition: widltypes.h:557
char * name
Definition: widltypes.h:541
unsigned int is_defined
Definition: widltypes.h:554
unsigned int procstring_offset
Definition: widltypes.h:549
attr_list_t * attrs
Definition: widltypes.h:543
unsigned int typestring_offset
Definition: widltypes.h:546
decl_spec_t declspec
Definition: widltypes.h:542
expr_t * eval
Definition: widltypes.h:544
unsigned int func_idx
Definition: widltypes.h:549
struct location where
Definition: widltypes.h:551
struct list entry
Definition: widltypes.h:642
struct _decl_spec_t aliasee
Definition: widltypes.h:447
unsigned int dim
Definition: widltypes.h:418
unsigned char declptr
Definition: widltypes.h:419
struct _decl_spec_t elem
Definition: widltypes.h:417
expr_t * size_is
Definition: widltypes.h:415
expr_t * length_is
Definition: widltypes.h:416
unsigned short ptr_tfsoff
Definition: widltypes.h:420
enum type_basic_type type
Definition: widltypes.h:430
const expr_t * bits
Definition: widltypes.h:442
struct _type_t * field
Definition: widltypes.h:441
typeref_list_t * ifaces
Definition: widltypes.h:425
type_t * iface
Definition: widltypes.h:463
var_list_t * enums
Definition: widltypes.h:388
var_list_t * args
Definition: widltypes.h:393
struct _var_t * retval
Definition: widltypes.h:394
struct _type_t * inherit
Definition: widltypes.h:402
var_list_t * disp_methods
Definition: widltypes.h:400
struct _type_t * disp_inherit
Definition: widltypes.h:403
struct _type_t * async_iface
Definition: widltypes.h:404
var_list_t * disp_props
Definition: widltypes.h:401
statement_list_t * stmts
Definition: widltypes.h:399
int is_hex
Definition: widltypes.h:356
int is_long
Definition: widltypes.h:355
int value
Definition: widltypes.h:353
int is_unsigned
Definition: widltypes.h:354
int last_column
Definition: widltypes.h:323
const char * input_name
Definition: widltypes.h:319
int first_column
Definition: widltypes.h:322
int last_line
Definition: widltypes.h:321
int first_line
Definition: widltypes.h:320
statement_list_t * stmts
Definition: widltypes.h:410
Definition: name.c:39
struct namespace * parent
Definition: widltypes.h:470
struct list entry
Definition: widltypes.h:471
struct rtype * type_hash[HASHMAX]
Definition: widltypes.h:473
const char * name
Definition: widltypes.h:469
struct list children
Definition: widltypes.h:472
typeref_list_t * params
Definition: widltypes.h:458
Definition: send.c:48
typeref_list_t * ifaces
Definition: widltypes.h:452
Definition: widltypes.h:327
struct list entry
Definition: widltypes.h:329
char * str
Definition: widltypes.h:328
var_list_t * fields
Definition: widltypes.h:383
Character const *const prefix
Definition: tempnam.cpp:195
expr_type
void check_for_additional_prototype_types(type_t *type)
Definition: header.c:667
var_list_t * append_var(var_list_t *list, var_t *var)
context_handle_list_t context_handle_list
Definition: header.c:40
type_t * alloc_type(void)
void set_all_tfswrite(int val)
char * format_namespace(struct namespace *namespace, const char *prefix, const char *separator, const char *suffix, const char *abi_prefix)
Definition: typetree.c:279
type_type
Definition: widltypes.h:477
@ TYPE_PARAMETER
Definition: widltypes.h:495
@ TYPE_ENUM
Definition: widltypes.h:480
@ TYPE_BITFIELD
Definition: widltypes.h:491
@ TYPE_BASIC
Definition: widltypes.h:479
@ TYPE_UNION
Definition: widltypes.h:483
@ TYPE_ALIAS
Definition: widltypes.h:484
@ TYPE_PARAMETERIZED_TYPE
Definition: widltypes.h:494
@ TYPE_POINTER
Definition: widltypes.h:489
@ TYPE_VOID
Definition: widltypes.h:478
@ TYPE_ENCAPSULATED_UNION
Definition: widltypes.h:482
@ TYPE_COCLASS
Definition: widltypes.h:486
@ TYPE_STRUCT
Definition: widltypes.h:481
@ TYPE_MODULE
Definition: widltypes.h:485
@ TYPE_DELEGATE
Definition: widltypes.h:496
@ TYPE_RUNTIMECLASS
Definition: widltypes.h:493
@ TYPE_INTERFACE
Definition: widltypes.h:488
@ TYPE_ARRAY
Definition: widltypes.h:490
@ TYPE_FUNCTION
Definition: widltypes.h:487
@ TYPE_APICONTRACT
Definition: widltypes.h:492
expr_type
Definition: widltypes.h:191
@ EXPR_MEMBER
Definition: widltypes.h:212
@ EXPR_LESS
Definition: widltypes.h:221
@ EXPR_CAST
Definition: widltypes.h:199
@ EXPR_ARRAY
Definition: widltypes.h:213
@ EXPR_MOD
Definition: widltypes.h:214
@ EXPR_LOGOR
Definition: widltypes.h:215
@ EXPR_LOGAND
Definition: widltypes.h:216
@ EXPR_DOUBLE
Definition: widltypes.h:194
@ EXPR_TRUEFALSE
Definition: widltypes.h:210
@ EXPR_CHARCONST
Definition: widltypes.h:228
@ EXPR_VOID
Definition: widltypes.h:192
@ EXPR_IDENTIFIER
Definition: widltypes.h:195
@ EXPR_SHR
Definition: widltypes.h:202
@ EXPR_LOGNOT
Definition: widltypes.h:224
@ EXPR_NEG
Definition: widltypes.h:196
@ EXPR_SHL
Definition: widltypes.h:201
@ EXPR_DIV
Definition: widltypes.h:204
@ EXPR_ADD
Definition: widltypes.h:205
@ EXPR_GTR
Definition: widltypes.h:220
@ EXPR_EQUALITY
Definition: widltypes.h:218
@ EXPR_INEQUALITY
Definition: widltypes.h:219
@ EXPR_POS
Definition: widltypes.h:225
@ EXPR_NOT
Definition: widltypes.h:197
@ EXPR_LESSEQL
Definition: widltypes.h:223
@ EXPR_MUL
Definition: widltypes.h:203
@ EXPR_COND
Definition: widltypes.h:209
@ EXPR_WSTRLIT
Definition: widltypes.h:227
@ EXPR_OR
Definition: widltypes.h:208
@ EXPR_STRLIT
Definition: widltypes.h:226
@ EXPR_NUM
Definition: widltypes.h:193
@ EXPR_PPTR
Definition: widltypes.h:198
@ EXPR_SIZEOF
Definition: widltypes.h:200
@ EXPR_SUB
Definition: widltypes.h:206
@ EXPR_XOR
Definition: widltypes.h:217
@ EXPR_GTREQL
Definition: widltypes.h:222
@ EXPR_AND
Definition: widltypes.h:207
@ EXPR_ADDRESSOF
Definition: widltypes.h:211
storage_class
Definition: widltypes.h:246
@ STG_REGISTER
Definition: widltypes.h:250
@ STG_NONE
Definition: widltypes.h:247
@ STG_EXTERN
Definition: widltypes.h:249
@ STG_STATIC
Definition: widltypes.h:248
type_kind
Definition: widltypes.h:232
@ TKIND_MODULE
Definition: widltypes.h:236
@ TKIND_COCLASS
Definition: widltypes.h:239
@ TKIND_RECORD
Definition: widltypes.h:235
@ TKIND_MAX
Definition: widltypes.h:242
@ TKIND_ENUM
Definition: widltypes.h:234
@ TKIND_UNION
Definition: widltypes.h:241
@ TKIND_ALIAS
Definition: widltypes.h:240
@ TKIND_DISPATCH
Definition: widltypes.h:238
@ TKIND_INTERFACE
Definition: widltypes.h:237
@ TKIND_PRIMITIVE
Definition: widltypes.h:233
type_qualifier
Definition: widltypes.h:254
@ TYPE_QUALIFIER_CONST
Definition: widltypes.h:255
#define HASHMAX
Definition: widltypes.h:466
void clear_all_offsets(void)
static int statements_has_func(const statement_list_t *stmts)
Definition: widltypes.h:689
static decl_spec_t * init_declspec(decl_spec_t *declspec, type_t *type)
Definition: widltypes.h:706
threading_type
Definition: widltypes.h:278
@ THREADING_APARTMENT
Definition: widltypes.h:279
@ THREADING_BOTH
Definition: widltypes.h:283
@ THREADING_SINGLE
Definition: widltypes.h:281
@ THREADING_FREE
Definition: widltypes.h:282
@ THREADING_NEUTRAL
Definition: widltypes.h:280
syskind_t
Definition: widltypes.h:645
@ SYS_WIN16
Definition: widltypes.h:646
@ SYS_WIN32
Definition: widltypes.h:647
@ SYS_WIN64
Definition: widltypes.h:649
@ SYS_MAC
Definition: widltypes.h:648
var_t * find_const(const char *name, int f)
attr_type
Definition: widltypes.h:72
@ ATTR_BROADCAST
Definition: widltypes.h:82
@ ATTR_IN
Definition: widltypes.h:131
@ ATTR_SIZEIS
Definition: widltypes.h:170
@ ATTR_VIPROGID
Definition: widltypes.h:186
@ ATTR_REPRESENTAS
Definition: widltypes.h:166
@ ATTR_PARTIALIGNORE
Definition: widltypes.h:154
@ ATTR_APPOBJECT
Definition: widltypes.h:77
@ ATTR_POINTERTYPE
Definition: widltypes.h:156
@ ATTR_PROTECTED
Definition: widltypes.h:161
@ ATTR_OLEAUTOMATION
Definition: widltypes.h:148
@ ATTR_SWITCHTYPE
Definition: widltypes.h:176
@ ATTR_RETVAL
Definition: widltypes.h:169
@ ATTR_ACTIVATABLE
Definition: widltypes.h:73
@ ATTR_ENABLEALLOCATE
Definition: widltypes.h:107
@ ATTR_DEPRECATED
Definition: widltypes.h:101
@ ATTR_AUTO_HANDLE
Definition: widltypes.h:80
@ ATTR_CONTEXTHANDLE
Definition: widltypes.h:89
@ ATTR_READONLY
Definition: widltypes.h:165
@ ATTR_DECODE
Definition: widltypes.h:94
@ ATTR_EVENTREMOVE
Definition: widltypes.h:112
@ ATTR_PROPPUT
Definition: widltypes.h:159
@ ATTR_FORCEALLOCATE
Definition: widltypes.h:117
@ ATTR_EXPLICIT_HANDLE
Definition: widltypes.h:114
@ ATTR_ASYNC
Definition: widltypes.h:78
@ ATTR_INPUTSYNC
Definition: widltypes.h:132
@ ATTR_DLLNAME
Definition: widltypes.h:105
@ ATTR_DEFAULT_OVERLOAD
Definition: widltypes.h:96
@ ATTR_DEFAULTBIND
Definition: widltypes.h:97
@ ATTR_VARARG
Definition: widltypes.h:184
@ ATTR_CASE
Definition: widltypes.h:85
@ ATTR_NOTIFY
Definition: widltypes.h:144
@ ATTR_ENCODE
Definition: widltypes.h:108
@ ATTR_CONTRACTVERSION
Definition: widltypes.h:91
@ ATTR_UUID
Definition: widltypes.h:182
@ ATTR_DEFAULT
Definition: widltypes.h:95
@ ATTR_TRANSMITAS
Definition: widltypes.h:178
@ ATTR_HELPFILE
Definition: widltypes.h:120
@ ATTR_NOCODE
Definition: widltypes.h:140
@ ATTR_NONEXTENSIBLE
Definition: widltypes.h:143
@ ATTR_EXCLUSIVETO
Definition: widltypes.h:113
@ ATTR_DEFAULTVTABLE
Definition: widltypes.h:100
@ ATTR_PROPPUTREF
Definition: widltypes.h:160
@ ATTR_POINTERDEFAULT
Definition: widltypes.h:155
@ ATTR_ANNOTATION
Definition: widltypes.h:76
@ ATTR_HANDLE
Definition: widltypes.h:118
@ ATTR_IMMEDIATEBIND
Definition: widltypes.h:129
@ ATTR_RANGE
Definition: widltypes.h:164
@ ATTR_ALLOCATE
Definition: widltypes.h:75
@ ATTR_MAYBE
Definition: widltypes.h:138
@ ATTR_DEFAULTCOLLELEM
Definition: widltypes.h:98
@ ATTR_THREADING
Definition: widltypes.h:177
@ ATTR_MESSAGE
Definition: widltypes.h:139
@ ATTR_IDEMPOTENT
Definition: widltypes.h:126
@ ATTR_IMPLICIT_HANDLE
Definition: widltypes.h:130
@ ATTR_PROXY
Definition: widltypes.h:162
@ ATTR_ENTRY
Definition: widltypes.h:110
@ ATTR_OBJECT
Definition: widltypes.h:146
@ ATTR_OVERLOAD
Definition: widltypes.h:152
@ ATTR_VERSION
Definition: widltypes.h:185
@ ATTR_REQUESTEDIT
Definition: widltypes.h:167
@ ATTR_CONTROL
Definition: widltypes.h:92
@ ATTR_DISABLECONSISTENCYCHECK
Definition: widltypes.h:102
@ ATTR_HELPSTRINGDLL
Definition: widltypes.h:123
@ ATTR_LIBLCID
Definition: widltypes.h:134
@ ATTR_UIDEFAULT
Definition: widltypes.h:179
@ ATTR_LICENSED
Definition: widltypes.h:135
@ ATTR_LENGTHIS
Definition: widltypes.h:133
@ ATTR_LOCAL
Definition: widltypes.h:136
@ ATTR_IIDIS
Definition: widltypes.h:128
@ ATTR_STRING
Definition: widltypes.h:174
@ ATTR_USERMARSHAL
Definition: widltypes.h:180
@ ATTR_DUAL
Definition: widltypes.h:106
@ ATTR_DISPLAYBIND
Definition: widltypes.h:104
@ ATTR_ODL
Definition: widltypes.h:147
@ ATTR_STATIC
Definition: widltypes.h:172
@ ATTR_NONCREATABLE
Definition: widltypes.h:142
@ ATTR_COMPOSABLE
Definition: widltypes.h:88
@ ATTR_EVENTADD
Definition: widltypes.h:111
@ ATTR_OUT
Definition: widltypes.h:151
@ ATTR_PUBLIC
Definition: widltypes.h:163
@ ATTR_CALLCONV
Definition: widltypes.h:84
@ ATTR_OPTIMIZE
Definition: widltypes.h:149
@ ATTR_STRICTCONTEXTHANDLE
Definition: widltypes.h:173
@ ATTR_PROPGET
Definition: widltypes.h:158
@ ATTR_COMMSTATUS
Definition: widltypes.h:87
@ ATTR_ENDPOINT
Definition: widltypes.h:109
@ ATTR_IGNORE
Definition: widltypes.h:127
@ ATTR_CONTRACT
Definition: widltypes.h:90
@ ATTR_AGGREGATABLE
Definition: widltypes.h:74
@ ATTR_HELPSTRINGCONTEXT
Definition: widltypes.h:122
@ ATTR_BINDABLE
Definition: widltypes.h:81
@ ATTR_OPTIONAL
Definition: widltypes.h:150
@ ATTR_FAULTSTATUS
Definition: widltypes.h:115
@ ATTR_RESTRICTED
Definition: widltypes.h:168
@ ATTR_ID
Definition: widltypes.h:125
@ ATTR_NOTIFYFLAG
Definition: widltypes.h:145
@ ATTR_V1ENUM
Definition: widltypes.h:183
@ ATTR_DISPINTERFACE
Definition: widltypes.h:103
@ ATTR_HIDDEN
Definition: widltypes.h:124
@ ATTR_CODE
Definition: widltypes.h:86
@ ATTR_PROGID
Definition: widltypes.h:157
@ ATTR_HELPCONTEXT
Definition: widltypes.h:119
@ ATTR_HELPSTRING
Definition: widltypes.h:121
@ ATTR_CALLAS
Definition: widltypes.h:83
@ ATTR_PARAMLCID
Definition: widltypes.h:153
@ ATTR_WIREMARSHAL
Definition: widltypes.h:187
@ ATTR_NONBROWSABLE
Definition: widltypes.h:141
@ ATTR_SOURCE
Definition: widltypes.h:171
@ ATTR_MARSHALING_BEHAVIOR
Definition: widltypes.h:137
@ ATTR_CUSTOM
Definition: widltypes.h:93
@ ATTR_DEFAULTVALUE
Definition: widltypes.h:99
@ ATTR_FLAGS
Definition: widltypes.h:116
@ ATTR_SWITCHIS
Definition: widltypes.h:175
@ ATTR_USESGETLASTERROR
Definition: widltypes.h:181
@ ATTR_ASYNCUUID
Definition: widltypes.h:79
type_t * reg_type(type_t *type, const char *name, struct namespace *namespace, int t)
statement_type
Definition: widltypes.h:264
@ STMT_MODULE
Definition: widltypes.h:269
@ STMT_IMPORT
Definition: widltypes.h:271
@ STMT_IMPORTLIB
Definition: widltypes.h:272
@ STMT_TYPE
Definition: widltypes.h:267
@ STMT_DECLARATION
Definition: widltypes.h:266
@ STMT_LIBRARY
Definition: widltypes.h:265
@ STMT_TYPEDEF
Definition: widltypes.h:270
@ STMT_CPPQUOTE
Definition: widltypes.h:274
@ STMT_TYPEREF
Definition: widltypes.h:268
@ STMT_PRAGMA
Definition: widltypes.h:273
generic_handle_list_t generic_handle_list
Definition: header.c:41
marshaling_type
Definition: widltypes.h:287
@ MARSHALING_AGILE
Definition: widltypes.h:290
@ MARSHALING_INVALID
Definition: widltypes.h:288
@ MARSHALING_STANDARD
Definition: widltypes.h:291
@ MARSHALING_NONE
Definition: widltypes.h:289
type_t * get_type(enum type_type type, char *name, struct namespace *namespace, int t)
static enum type_type type_get_type_detect_alias(const type_t *type)
Definition: widltypes.h:679
char * format_parameterized_type_name(type_t *type, typeref_list_t *params)
Definition: typetree.c:287
var_t * make_var(char *name)
void init_types(void)
static int is_global_namespace(const struct namespace *namespace)
Definition: widltypes.h:701
user_type_list_t user_type_list
Definition: header.c:39
type_basic_type
Definition: widltypes.h:295
@ TYPE_BASIC_DOUBLE
Definition: widltypes.h:308
@ TYPE_BASIC_INT32
Definition: widltypes.h:298
@ TYPE_BASIC_ERROR_STATUS_T
Definition: widltypes.h:309
@ TYPE_BASIC_CHAR
Definition: widltypes.h:303
@ TYPE_BASIC_WCHAR
Definition: widltypes.h:306
@ TYPE_BASIC_INT16
Definition: widltypes.h:297
@ TYPE_BASIC_HYPER
Definition: widltypes.h:304
@ TYPE_BASIC_HANDLE
Definition: widltypes.h:310
@ TYPE_BASIC_INT8
Definition: widltypes.h:296
@ TYPE_BASIC_INT3264
Definition: widltypes.h:301
@ TYPE_BASIC_LONG
Definition: widltypes.h:302
@ TYPE_BASIC_INT64
Definition: widltypes.h:299
@ TYPE_BASIC_BYTE
Definition: widltypes.h:305
@ TYPE_BASIC_INT
Definition: widltypes.h:300
@ TYPE_BASIC_FLOAT
Definition: widltypes.h:307
function_specifier
Definition: widltypes.h:259
@ FUNCTION_SPECIFIER_INLINE
Definition: widltypes.h:260
type_t * make_type(enum type_type type)
Definition: typetree.c:48
type_t * find_type(const char *name, struct namespace *namespace, int t)
#define STATEMENTS_FOR_EACH_FUNC(stmt, stmts)
Definition: widltypes.h:684