0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0a 2a 20 20 20 20 20 ********\.*
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0060: 20 20 20 20 20 20 20 20 20 20 20 6f 61 69 64 6c oaidl
0070: 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 *.*
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 *.*
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50 Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20 I header module
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 *.*
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0170: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 *.*
0180: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66 Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77 rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20 s headers
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20 *.*
01c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0200: 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 *.*
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6c Pl
0220: 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c 69 63 aced into public
0230: 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 20 20 domain
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a *.
0250: 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a \***************
0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0290: 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 6d 6f 64 75 6c 65 ********/.module
02a0: 20 77 69 6e 33 32 2e 6f 61 69 64 6c 3b 0a 0a 70 win32.oaidl;..p
02b0: 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77 69 rivate import wi
02c0: 6e 33 32 2e 62 61 73 65 74 79 70 73 2c 20 77 69 n32.basetyps, wi
02d0: 6e 33 32 2e 75 6e 6b 6e 77 6e 2c 20 77 69 6e 33 n32.unknwn, win3
02e0: 32 2e 77 69 6e 64 65 66 2c 20 77 69 6e 33 32 2e 2.windef, win32.
02f0: 77 74 79 70 65 73 3b 0a 0a 63 6f 6e 73 74 20 44 wtypes;..const D
0300: 49 53 50 49 44 5f 55 4e 4b 4e 4f 57 4e 20 3d 20 ISPID_UNKNOWN =
0310: 2d 31 3b 0a 63 6f 6e 73 74 20 44 49 53 50 49 44 -1;.const DISPID
0320: 5f 56 41 4c 55 45 20 3d 20 30 3b 0a 63 6f 6e 73 _VALUE = 0;.cons
0330: 74 20 44 49 53 50 49 44 5f 50 52 4f 50 45 52 54 t DISPID_PROPERT
0340: 59 50 55 54 20 3d 20 2d 33 3b 0a 63 6f 6e 73 74 YPUT = -3;.const
0350: 20 44 49 53 50 49 44 5f 4e 45 57 45 4e 55 4d 20 DISPID_NEWENUM
0360: 3d 20 2d 34 3b 0a 63 6f 6e 73 74 20 44 49 53 50 = -4;.const DISP
0370: 49 44 5f 45 56 41 4c 55 41 54 45 20 3d 20 2d 35 ID_EVALUATE = -5
0380: 3b 0a 63 6f 6e 73 74 20 44 49 53 50 49 44 5f 43 ;.const DISPID_C
0390: 4f 4e 53 54 52 55 43 54 4f 52 20 3d 20 2d 36 3b ONSTRUCTOR = -6;
03a0: 0a 63 6f 6e 73 74 20 44 49 53 50 49 44 5f 44 45 .const DISPID_DE
03b0: 53 54 52 55 43 54 4f 52 20 3d 20 2d 37 3b 0a 63 STRUCTOR = -7;.c
03c0: 6f 6e 73 74 20 44 49 53 50 49 44 5f 43 4f 4c 4c onst DISPID_COLL
03d0: 45 43 54 20 3d 20 2d 38 3b 0a 0a 63 6f 6e 73 74 ECT = -8;..const
03e0: 20 46 41 44 46 5f 41 55 54 4f 20 3d 20 31 3b 0a FADF_AUTO = 1;.
03f0: 63 6f 6e 73 74 20 46 41 44 46 5f 53 54 41 54 49 const FADF_STATI
0400: 43 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 46 41 44 C = 2;.const FAD
0410: 46 5f 45 4d 42 45 44 44 45 44 20 3d 20 34 3b 0a F_EMBEDDED = 4;.
0420: 63 6f 6e 73 74 20 46 41 44 46 5f 46 49 58 45 44 const FADF_FIXED
0430: 53 49 5a 45 20 3d 20 31 36 3b 0a 63 6f 6e 73 74 SIZE = 16;.const
0440: 20 46 41 44 46 5f 52 45 43 4f 52 44 20 3d 20 33 FADF_RECORD = 3
0450: 32 3b 0a 63 6f 6e 73 74 20 46 41 44 46 5f 48 41 2;.const FADF_HA
0460: 56 45 49 49 44 20 3d 20 36 34 3b 0a 63 6f 6e 73 VEIID = 64;.cons
0470: 74 20 46 41 44 46 5f 48 41 56 45 56 41 52 54 59 t FADF_HAVEVARTY
0480: 50 45 20 3d 20 31 32 38 3b 0a 63 6f 6e 73 74 20 PE = 128;.const
0490: 46 41 44 46 5f 42 53 54 52 20 3d 20 32 35 36 3b FADF_BSTR = 256;
04a0: 0a 63 6f 6e 73 74 20 46 41 44 46 5f 55 4e 4b 4e .const FADF_UNKN
04b0: 4f 57 4e 20 3d 20 35 31 32 3b 0a 63 6f 6e 73 74 OWN = 512;.const
04c0: 20 46 41 44 46 5f 44 49 53 50 41 54 43 48 20 3d FADF_DISPATCH =
04d0: 20 31 30 32 34 3b 0a 63 6f 6e 73 74 20 46 41 44 1024;.const FAD
04e0: 46 5f 56 41 52 49 41 4e 54 20 3d 20 32 30 34 38 F_VARIANT = 2048
04f0: 3b 0a 63 6f 6e 73 74 20 46 41 44 46 5f 52 45 53 ;.const FADF_RES
0500: 45 52 56 45 44 20 3d 20 30 78 66 30 65 38 3b 0a ERVED = 0xf0e8;.
0510: 63 6f 6e 73 74 20 46 41 44 46 5f 44 41 54 41 44 const FADF_DATAD
0520: 45 4c 45 54 45 44 20 3d 20 30 78 31 30 30 30 3b ELETED = 0x1000;
0530: 0a 63 6f 6e 73 74 20 46 41 44 46 5f 43 52 45 41 .const FADF_CREA
0540: 54 45 56 45 43 54 4f 52 20 3d 20 30 78 32 30 30 TEVECTOR = 0x200
0550: 30 3b 0a 0a 63 6f 6e 73 74 20 50 41 52 41 4d 46 0;..const PARAMF
0560: 4c 41 47 5f 4e 4f 4e 45 20 3d 20 30 3b 0a 63 6f LAG_NONE = 0;.co
0570: 6e 73 74 20 50 41 52 41 4d 46 4c 41 47 5f 46 49 nst PARAMFLAG_FI
0580: 4e 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 50 41 52 N = 1;.const PAR
0590: 41 4d 46 4c 41 47 5f 46 4f 55 54 20 3d 20 32 3b AMFLAG_FOUT = 2;
05a0: 0a 63 6f 6e 73 74 20 50 41 52 41 4d 46 4c 41 47 .const PARAMFLAG
05b0: 5f 46 4c 43 49 44 20 3d 20 34 3b 0a 63 6f 6e 73 _FLCID = 4;.cons
05c0: 74 20 50 41 52 41 4d 46 4c 41 47 5f 46 52 45 54 t PARAMFLAG_FRET
05d0: 56 41 4c 20 3d 20 38 3b 0a 63 6f 6e 73 74 20 50 VAL = 8;.const P
05e0: 41 52 41 4d 46 4c 41 47 5f 46 4f 50 54 20 3d 20 ARAMFLAG_FOPT =
05f0: 31 36 3b 0a 63 6f 6e 73 74 20 50 41 52 41 4d 46 16;.const PARAMF
0600: 4c 41 47 5f 46 48 41 53 44 45 46 41 55 4c 54 20 LAG_FHASDEFAULT
0610: 3d 20 33 32 3b 0a 0a 63 6f 6e 73 74 20 49 44 4c = 32;..const IDL
0620: 46 4c 41 47 5f 4e 4f 4e 45 20 3d 20 50 41 52 41 FLAG_NONE = PARA
0630: 4d 46 4c 41 47 5f 4e 4f 4e 45 3b 0a 63 6f 6e 73 MFLAG_NONE;.cons
0640: 74 20 49 44 4c 46 4c 41 47 5f 46 49 4e 20 3d 20 t IDLFLAG_FIN =
0650: 50 41 52 41 4d 46 4c 41 47 5f 46 49 4e 3b 0a 63 PARAMFLAG_FIN;.c
0660: 6f 6e 73 74 20 49 44 4c 46 4c 41 47 5f 46 4f 55 onst IDLFLAG_FOU
0670: 54 20 3d 20 50 41 52 41 4d 46 4c 41 47 5f 46 4f T = PARAMFLAG_FO
0680: 55 54 3b 0a 63 6f 6e 73 74 20 49 44 4c 46 4c 41 UT;.const IDLFLA
0690: 47 5f 46 4c 43 49 44 20 3d 20 50 41 52 41 4d 46 G_FLCID = PARAMF
06a0: 4c 41 47 5f 46 4c 43 49 44 3b 0a 63 6f 6e 73 74 LAG_FLCID;.const
06b0: 20 49 44 4c 46 4c 41 47 5f 46 52 45 54 56 41 4c IDLFLAG_FRETVAL
06c0: 20 3d 20 50 41 52 41 4d 46 4c 41 47 5f 46 52 45 = PARAMFLAG_FRE
06d0: 54 56 41 4c 3b 0a 0a 63 6f 6e 73 74 20 49 4d 50 TVAL;..const IMP
06e0: 4c 54 59 50 45 46 4c 41 47 5f 46 44 45 46 41 55 LTYPEFLAG_FDEFAU
06f0: 4c 54 20 20 20 20 20 20 20 3d 20 31 3b 0a 63 6f LT = 1;.co
0700: 6e 73 74 20 49 4d 50 4c 54 59 50 45 46 4c 41 47 nst IMPLTYPEFLAG
0710: 5f 46 53 4f 55 52 43 45 20 20 20 20 20 20 20 20 _FSOURCE
0720: 3d 20 32 3b 0a 63 6f 6e 73 74 20 49 4d 50 4c 54 = 2;.const IMPLT
0730: 59 50 45 46 4c 41 47 5f 46 52 45 53 54 52 49 43 YPEFLAG_FRESTRIC
0740: 54 45 44 20 20 20 20 3d 20 34 3b 0a 63 6f 6e 73 TED = 4;.cons
0750: 74 20 49 4d 50 4c 54 59 50 45 46 4c 41 47 5f 46 t IMPLTYPEFLAG_F
0760: 44 45 46 41 55 4c 54 56 54 41 42 4c 45 20 3d 20 DEFAULTVTABLE =
0770: 38 3b 0a 0a 0a 65 6e 75 6d 20 53 59 53 4b 49 4e 8;...enum SYSKIN
0780: 44 20 7b 0a 09 53 59 53 5f 57 49 4e 31 36 2c 0a D {..SYS_WIN16,.
0790: 09 53 59 53 5f 57 49 4e 33 32 2c 0a 09 53 59 53 .SYS_WIN32,..SYS
07a0: 5f 4d 41 43 0a 7d 0a 0a 65 6e 75 6d 20 4c 49 42 _MAC.}..enum LIB
07b0: 46 4c 41 47 53 20 7b 0a 09 4c 49 42 46 4c 41 47 FLAGS {..LIBFLAG
07c0: 5f 46 52 45 53 54 52 49 43 54 45 44 20 20 20 3d _FRESTRICTED =
07d0: 20 31 2c 0a 09 4c 49 42 46 4c 41 47 5f 46 43 4f 1,..LIBFLAG_FCO
07e0: 4e 54 52 4f 4c 20 20 20 20 20 20 3d 20 32 2c 0a NTROL = 2,.
07f0: 09 4c 49 42 46 4c 41 47 5f 46 48 49 44 44 45 4e .LIBFLAG_FHIDDEN
0800: 20 20 20 20 20 20 20 3d 20 34 2c 0a 09 4c 49 42 = 4,..LIB
0810: 46 4c 41 47 5f 46 48 41 53 44 49 53 4b 49 4d 41 FLAG_FHASDISKIMA
0820: 47 45 20 3d 20 38 0a 7d 0a 0a 73 74 72 75 63 74 GE = 8.}..struct
0830: 20 54 4c 49 42 41 54 54 52 20 7b 0a 09 47 55 49 TLIBATTR {..GUI
0840: 44 20 67 75 69 64 3b 0a 09 4c 43 49 44 20 6c 63 D guid;..LCID lc
0850: 69 64 3b 0a 09 53 59 53 4b 49 4e 44 20 73 79 73 id;..SYSKIND sys
0860: 6b 69 6e 64 3b 0a 09 57 4f 52 44 20 77 4d 61 6a kind;..WORD wMaj
0870: 6f 72 56 65 72 4e 75 6d 3b 0a 09 57 4f 52 44 20 orVerNum;..WORD
0880: 77 4d 69 6e 6f 72 56 65 72 4e 75 6d 3b 0a 09 57 wMinorVerNum;..W
0890: 4f 52 44 20 77 4c 69 62 46 6c 61 67 73 3b 0a 7d ORD wLibFlags;.}
08a0: 0a 61 6c 69 61 73 20 54 4c 49 42 41 54 54 52 2a .alias TLIBATTR*
08b0: 20 4c 50 54 4c 49 42 41 54 54 52 3b 0a 0a 61 6c LPTLIBATTR;..al
08c0: 69 61 73 20 43 59 20 43 55 52 52 45 4e 43 59 3b ias CY CURRENCY;
08d0: 0a 0a 73 74 72 75 63 74 20 53 41 46 45 41 52 52 ..struct SAFEARR
08e0: 41 59 42 4f 55 4e 44 20 7b 0a 09 55 4c 4f 4e 47 AYBOUND {..ULONG
08f0: 20 63 45 6c 65 6d 65 6e 74 73 3b 0a 09 4c 4f 4e cElements;..LON
0900: 47 20 6c 4c 62 6f 75 6e 64 3b 0a 7d 0a 61 6c 69 G lLbound;.}.ali
0910: 61 73 20 53 41 46 45 41 52 52 41 59 42 4f 55 4e as SAFEARRAYBOUN
0920: 44 2a 20 4c 50 53 41 46 45 41 52 52 41 59 42 4f D* LPSAFEARRAYBO
0930: 55 4e 44 3b 0a 0a 73 74 72 75 63 74 20 53 41 46 UND;..struct SAF
0940: 45 41 52 52 5f 42 53 54 52 20 7b 0a 09 55 4c 4f EARR_BSTR {..ULO
0950: 4e 47 20 53 69 7a 65 3b 0a 09 77 69 72 65 42 53 NG Size;..wireBS
0960: 54 52 2a 20 61 42 73 74 72 3b 0a 7d 0a 0a 73 74 TR* aBstr;.}..st
0970: 72 75 63 74 20 53 41 46 45 41 52 52 5f 55 4e 4b ruct SAFEARR_UNK
0980: 4e 4f 57 4e 20 7b 0a 09 55 4c 4f 4e 47 20 53 69 NOWN {..ULONG Si
0990: 7a 65 3b 0a 09 49 55 6e 6b 6e 6f 77 6e 2a 2a 20 ze;..IUnknown**
09a0: 61 70 55 6e 6b 6e 6f 77 6e 3b 0a 7d 0a 0a 73 74 apUnknown;.}..st
09b0: 72 75 63 74 20 53 41 46 45 41 52 52 5f 44 49 53 ruct SAFEARR_DIS
09c0: 50 41 54 43 48 20 7b 0a 09 55 4c 4f 4e 47 20 53 PATCH {..ULONG S
09d0: 69 7a 65 3b 0a 09 4c 50 44 49 53 50 41 54 43 48 ize;..LPDISPATCH
09e0: 2a 20 61 70 44 69 73 70 61 74 63 68 3b 0a 7d 0a * apDispatch;.}.
09f0: 0a 73 74 72 75 63 74 20 53 41 46 45 41 52 52 5f .struct SAFEARR_
0a00: 56 41 52 49 41 4e 54 20 7b 0a 09 55 4c 4f 4e 47 VARIANT {..ULONG
0a10: 20 53 69 7a 65 3b 0a 09 5f 77 69 72 65 56 41 52 Size;.._wireVAR
0a20: 49 41 4e 54 2a 20 61 56 61 72 69 61 6e 74 3b 0a IANT* aVariant;.
0a30: 7d 0a 0a 65 6e 75 6d 20 53 46 5f 54 59 50 45 20 }..enum SF_TYPE
0a40: 7b 0a 09 53 46 5f 45 52 52 4f 52 3d 56 41 52 45 {..SF_ERROR=VARE
0a50: 4e 55 4d 2e 56 54 5f 45 52 52 4f 52 2c 0a 09 53 NUM.VT_ERROR,..S
0a60: 46 5f 49 31 3d 56 41 52 45 4e 55 4d 2e 56 54 5f F_I1=VARENUM.VT_
0a70: 49 31 2c 0a 09 53 46 5f 49 32 3d 56 41 52 45 4e I1,..SF_I2=VAREN
0a80: 55 4d 2e 56 54 5f 49 32 2c 0a 09 53 46 5f 49 34 UM.VT_I2,..SF_I4
0a90: 3d 56 41 52 45 4e 55 4d 2e 56 54 5f 49 34 2c 0a =VARENUM.VT_I4,.
0aa0: 09 53 46 5f 49 38 3d 56 41 52 45 4e 55 4d 2e 56 .SF_I8=VARENUM.V
0ab0: 54 5f 49 38 2c 0a 09 53 46 5f 42 53 54 52 3d 56 T_I8,..SF_BSTR=V
0ac0: 41 52 45 4e 55 4d 2e 56 54 5f 42 53 54 52 2c 0a ARENUM.VT_BSTR,.
0ad0: 09 53 46 5f 55 4e 4b 4e 4f 57 4e 3d 56 41 52 45 .SF_UNKNOWN=VARE
0ae0: 4e 55 4d 2e 56 54 5f 55 4e 4b 4e 4f 57 4e 2c 0a NUM.VT_UNKNOWN,.
0af0: 09 53 46 5f 44 49 53 50 41 54 43 48 3d 56 41 52 .SF_DISPATCH=VAR
0b00: 45 4e 55 4d 2e 56 54 5f 44 49 53 50 41 54 43 48 ENUM.VT_DISPATCH
0b10: 2c 0a 09 53 46 5f 56 41 52 49 41 4e 54 3d 56 41 ,..SF_VARIANT=VA
0b20: 52 45 4e 55 4d 2e 56 54 5f 56 41 52 49 41 4e 54 RENUM.VT_VARIANT
0b30: 0a 7d 0a 0a 73 74 72 75 63 74 20 5f 77 69 72 65 .}..struct _wire
0b40: 42 52 45 43 4f 52 44 20 7b 0a 09 55 4c 4f 4e 47 BRECORD {..ULONG
0b50: 20 66 46 6c 61 67 73 3b 0a 09 55 4c 4f 4e 47 20 fFlags;..ULONG
0b60: 63 6c 53 69 7a 65 3b 0a 09 4c 50 52 45 43 4f 52 clSize;..LPRECOR
0b70: 44 49 4e 46 4f 2a 20 70 52 65 63 49 6e 66 6f 3b DINFO* pRecInfo;
0b80: 0a 09 62 79 74 65 2a 20 70 52 65 63 6f 72 64 3b ..byte* pRecord;
0b90: 0a 7d 0a 61 6c 69 61 73 20 5f 77 69 72 65 42 52 .}.alias _wireBR
0ba0: 45 43 4f 52 44 2a 20 77 69 72 65 42 52 45 43 4f ECORD* wireBRECO
0bb0: 52 44 3b 0a 0a 73 74 72 75 63 74 20 53 41 46 45 RD;..struct SAFE
0bc0: 41 52 52 5f 42 52 45 43 4f 52 44 20 7b 0a 09 55 ARR_BRECORD {..U
0bd0: 4c 4f 4e 47 20 53 69 7a 65 3b 0a 09 77 69 72 65 LONG Size;..wire
0be0: 42 52 45 43 4f 52 44 2a 20 61 52 65 63 6f 72 64 BRECORD* aRecord
0bf0: 3b 0a 7d 0a 0a 73 74 72 75 63 74 20 53 41 46 45 ;.}..struct SAFE
0c00: 41 52 52 5f 48 41 56 45 49 49 44 20 7b 0a 09 55 ARR_HAVEIID {..U
0c10: 4c 4f 4e 47 20 53 69 7a 65 3b 0a 09 49 55 6e 6b LONG Size;..IUnk
0c20: 6e 6f 77 6e 2a 2a 20 61 70 55 6e 6b 6e 6f 77 6e nown** apUnknown
0c30: 3b 0a 09 49 49 44 20 69 69 64 3b 0a 7d 0a 0a 73 ;..IID iid;.}..s
0c40: 74 72 75 63 74 20 53 41 46 45 41 52 52 41 59 55 truct SAFEARRAYU
0c50: 4e 49 4f 4e 20 7b 0a 09 55 4c 4f 4e 47 20 73 66 NION {..ULONG sf
0c60: 54 79 70 65 3b 0a 09 75 6e 69 6f 6e 20 5f 75 20 Type;..union _u
0c70: 7b 0a 09 09 53 41 46 45 41 52 52 5f 42 53 54 52 {...SAFEARR_BSTR
0c80: 20 42 73 74 72 53 74 72 3b 0a 09 09 53 41 46 45 BstrStr;...SAFE
0c90: 41 52 52 5f 55 4e 4b 4e 4f 57 4e 20 55 6e 6b 6e ARR_UNKNOWN Unkn
0ca0: 6f 77 6e 53 74 72 3b 0a 09 09 53 41 46 45 41 52 ownStr;...SAFEAR
0cb0: 52 5f 44 49 53 50 41 54 43 48 20 44 69 73 70 61 R_DISPATCH Dispa
0cc0: 74 63 68 53 74 72 3b 0a 09 09 53 41 46 45 41 52 tchStr;...SAFEAR
0cd0: 52 5f 56 41 52 49 41 4e 54 20 56 61 72 69 61 6e R_VARIANT Varian
0ce0: 74 53 74 72 3b 0a 09 09 53 41 46 45 41 52 52 5f tStr;...SAFEARR_
0cf0: 42 52 45 43 4f 52 44 20 52 65 63 6f 72 64 53 74 BRECORD RecordSt
0d00: 72 3b 0a 09 09 53 41 46 45 41 52 52 5f 48 41 56 r;...SAFEARR_HAV
0d10: 45 49 49 44 20 48 61 76 65 49 69 64 53 74 72 3b EIID HaveIidStr;
0d20: 0a 09 09 42 59 54 45 5f 53 49 5a 45 44 41 52 52 ...BYTE_SIZEDARR
0d30: 20 42 79 74 65 53 74 72 3b 0a 09 09 57 4f 52 44 ByteStr;...WORD
0d40: 5f 53 49 5a 45 44 41 52 52 20 57 6f 72 64 53 74 _SIZEDARR WordSt
0d50: 72 3b 0a 09 09 44 57 4f 52 44 5f 53 49 5a 45 44 r;...DWORD_SIZED
0d60: 41 52 52 20 4c 6f 6e 67 53 74 72 3b 0a 09 09 48 ARR LongStr;...H
0d70: 59 50 45 52 5f 53 49 5a 45 44 41 52 52 20 48 79 YPER_SIZEDARR Hy
0d80: 70 65 72 53 74 72 3b 0a 09 7d 0a 09 5f 75 20 75 perStr;..}.._u u
0d90: 3b 09 0a 7d 0a 0a 73 74 72 75 63 74 20 5f 77 69 ;..}..struct _wi
0da0: 72 65 53 41 46 45 41 52 52 41 59 20 7b 0a 09 55 reSAFEARRAY {..U
0db0: 53 48 4f 52 54 20 63 44 69 6d 73 3b 0a 09 55 53 SHORT cDims;..US
0dc0: 48 4f 52 54 20 66 46 65 61 74 75 72 65 73 3b 0a HORT fFeatures;.
0dd0: 09 55 4c 4f 4e 47 20 63 62 45 6c 65 6d 65 6e 74 .ULONG cbElement
0de0: 73 3b 0a 09 55 4c 4f 4e 47 20 63 4c 6f 63 6b 73 s;..ULONG cLocks
0df0: 3b 0a 09 53 41 46 45 41 52 52 41 59 55 4e 49 4f ;..SAFEARRAYUNIO
0e00: 4e 20 75 41 72 72 61 79 53 74 72 75 63 74 73 3b N uArrayStructs;
0e10: 0a 09 53 41 46 45 41 52 52 41 59 42 4f 55 4e 44 ..SAFEARRAYBOUND
0e20: 20 72 67 73 61 62 6f 75 6e 64 5b 31 5d 3b 0a 7d rgsabound[1];.}
0e30: 0a 61 6c 69 61 73 20 5f 77 69 72 65 53 41 46 45 .alias _wireSAFE
0e40: 41 52 52 41 59 2a 20 77 69 72 65 53 41 46 45 41 ARRAY* wireSAFEA
0e50: 52 52 41 59 3b 0a 0a 61 6c 69 61 73 20 77 69 72 RRAY;..alias wir
0e60: 65 53 41 46 45 41 52 52 41 59 2a 20 77 69 72 65 eSAFEARRAY* wire
0e70: 50 53 41 46 45 41 52 52 41 59 3b 0a 0a 73 74 72 PSAFEARRAY;..str
0e80: 75 63 74 20 53 41 46 45 41 52 52 41 59 20 7b 0a uct SAFEARRAY {.
0e90: 09 55 53 48 4f 52 54 20 63 44 69 6d 73 3b 0a 09 .USHORT cDims;..
0ea0: 55 53 48 4f 52 54 20 66 46 65 61 74 75 72 65 73 USHORT fFeatures
0eb0: 3b 0a 09 55 4c 4f 4e 47 20 63 62 45 6c 65 6d 65 ;..ULONG cbEleme
0ec0: 6e 74 73 3b 0a 09 55 4c 4f 4e 47 20 63 4c 6f 63 nts;..ULONG cLoc
0ed0: 6b 73 3b 0a 09 50 56 4f 49 44 20 70 76 44 61 74 ks;..PVOID pvDat
0ee0: 61 3b 0a 09 53 41 46 45 41 52 52 41 59 42 4f 55 a;..SAFEARRAYBOU
0ef0: 4e 44 20 72 67 73 61 62 6f 75 6e 64 5b 31 5d 3b ND rgsabound[1];
0f00: 0a 7d 0a 61 6c 69 61 73 20 53 41 46 45 41 52 52 .}.alias SAFEARR
0f10: 41 59 2a 20 4c 50 53 41 46 45 41 52 52 41 59 3b AY* LPSAFEARRAY;
0f20: 0a 0a 73 74 72 75 63 74 20 56 41 52 49 41 4e 54 ..struct VARIANT
0f30: 20 7b 0a 09 75 6e 69 6f 6e 20 7b 0a 09 09 73 74 {..union {...st
0f40: 72 75 63 74 20 7b 0a 09 09 09 56 41 52 54 59 50 ruct {....VARTYP
0f50: 45 20 76 74 3b 0a 09 09 09 57 4f 52 44 20 77 52 E vt;....WORD wR
0f60: 65 73 65 72 76 65 64 31 3b 0a 09 09 09 57 4f 52 eserved1;....WOR
0f70: 44 20 77 52 65 73 65 72 76 65 64 32 3b 0a 09 09 D wReserved2;...
0f80: 09 57 4f 52 44 20 77 52 65 73 65 72 76 65 64 33 .WORD wReserved3
0f90: 3b 0a 09 09 09 75 6e 69 6f 6e 20 7b 0a 09 09 09 ;....union {....
0fa0: 09 69 6e 74 20 6c 56 61 6c 3b 0a 09 09 09 09 4c .int lVal;.....L
0fb0: 4f 4e 47 4c 4f 4e 47 20 6c 6c 56 61 6c 3b 0a 09 ONGLONG llVal;..
0fc0: 09 09 09 75 62 79 74 65 20 62 56 61 6c 3b 0a 09 ...ubyte bVal;..
0fd0: 09 09 09 73 68 6f 72 74 20 69 56 61 6c 3b 0a 09 ...short iVal;..
0fe0: 09 09 09 66 6c 6f 61 74 20 66 6c 74 56 61 6c 3b ...float fltVal;
0ff0: 0a 09 09 09 09 64 6f 75 62 6c 65 20 64 62 6c 56 .....double dblV
1000: 61 6c 3b 0a 09 09 09 09 56 41 52 49 41 4e 54 5f al;.....VARIANT_
1010: 42 4f 4f 4c 20 20 62 6f 6f 6c 56 61 6c 3b 0a 09 BOOL boolVal;..
1020: 09 09 09 53 43 4f 44 45 20 73 63 6f 64 65 3b 0a ...SCODE scode;.
1030: 09 09 09 09 43 59 20 63 79 56 61 6c 3b 0a 09 09 ....CY cyVal;...
1040: 09 09 44 41 54 45 20 64 61 74 65 3b 0a 09 09 09 ..DATE date;....
1050: 09 42 53 54 52 20 62 73 74 72 56 61 6c 3b 0a 09 .BSTR bstrVal;..
1060: 09 09 09 49 55 6e 6b 6e 6f 77 6e 20 70 75 6e 6b ...IUnknown punk
1070: 56 61 6c 3b 0a 09 09 09 09 49 44 69 73 70 61 74 Val;.....IDispat
1080: 63 68 20 70 64 69 73 70 56 61 6c 3b 0a 09 09 09 ch pdispVal;....
1090: 09 53 41 46 45 41 52 52 41 59 2a 20 70 61 72 72 .SAFEARRAY* parr
10a0: 61 79 3b 0a 09 09 09 09 75 62 79 74 65 2a 20 70 ay;.....ubyte* p
10b0: 62 56 61 6c 3b 0a 09 09 09 09 73 68 6f 72 74 2a bVal;.....short*
10c0: 20 70 69 56 61 6c 3b 0a 09 09 09 09 69 6e 74 2a piVal;.....int*
10d0: 20 70 6c 56 61 6c 3b 0a 09 09 09 09 66 6c 6f 61 plVal;.....floa
10e0: 74 2a 20 70 66 6c 74 56 61 6c 3b 0a 09 09 09 09 t* pfltVal;.....
10f0: 64 6f 75 62 6c 65 2a 20 70 64 62 6c 56 61 6c 3b double* pdblVal;
1100: 0a 09 09 09 09 56 41 52 49 41 4e 54 5f 42 4f 4f .....VARIANT_BOO
1110: 4c 2a 20 70 62 6f 6f 6c 56 61 6c 3b 0a 09 09 09 L* pboolVal;....
1120: 09 5f 56 41 52 49 41 4e 54 5f 42 4f 4f 4c 2a 20 ._VARIANT_BOOL*
1130: 20 70 62 6f 6f 6c 3b 0a 09 09 09 09 53 43 4f 44 pbool;.....SCOD
1140: 45 2a 20 70 73 63 6f 64 65 3b 0a 09 09 09 09 43 E* pscode;.....C
1150: 59 2a 20 70 63 79 56 61 6c 3b 0a 09 09 09 09 44 Y* pcyVal;.....D
1160: 41 54 45 2a 20 70 64 61 74 65 3b 0a 09 09 09 09 ATE* pdate;.....
1170: 42 53 54 52 2a 20 70 62 73 74 72 56 61 6c 3b 0a BSTR* pbstrVal;.
1180: 09 09 09 09 49 55 6e 6b 6e 6f 77 6e 2a 20 70 70 ....IUnknown* pp
1190: 75 6e 6b 56 61 6c 3b 0a 09 09 09 09 49 44 69 73 unkVal;.....IDis
11a0: 70 61 74 63 68 2a 20 70 70 64 69 73 70 56 61 6c patch* ppdispVal
11b0: 3b 0a 09 09 09 09 53 41 46 45 41 52 52 41 59 2a ;.....SAFEARRAY*
11c0: 2a 20 70 70 61 72 72 61 79 3b 0a 09 09 09 09 56 * pparray;.....V
11d0: 41 52 49 41 4e 54 2a 20 70 76 61 72 56 61 6c 3b ARIANT* pvarVal;
11e0: 0a 09 09 09 09 76 6f 69 64 2a 20 62 79 72 65 66 .....void* byref
11f0: 3b 0a 09 09 09 09 43 48 41 52 20 63 56 61 6c 3b ;.....CHAR cVal;
1200: 0a 09 09 09 09 55 53 48 4f 52 54 20 75 69 56 61 .....USHORT uiVa
1210: 6c 3b 0a 09 09 09 09 55 4c 4f 4e 47 20 75 6c 56 l;.....ULONG ulV
1220: 61 6c 3b 0a 09 09 09 09 55 4c 4f 4e 47 4c 4f 4e al;.....ULONGLON
1230: 47 20 75 6c 6c 56 61 6c 3b 0a 09 09 09 09 49 4e G ullVal;.....IN
1240: 54 20 69 6e 74 56 61 6c 3b 0a 09 09 09 09 55 49 T intVal;.....UI
1250: 4e 54 20 75 69 6e 74 56 61 6c 3b 0a 09 09 09 09 NT uintVal;.....
1260: 44 45 43 49 4d 41 4c 2a 20 70 64 65 63 56 61 6c DECIMAL* pdecVal
1270: 3b 0a 09 09 09 09 43 48 41 52 2a 20 20 70 63 56 ;.....CHAR* pcV
1280: 61 6c 3b 0a 09 09 09 09 55 53 48 4f 52 54 2a 20 al;.....USHORT*
1290: 20 70 75 69 56 61 6c 3b 0a 09 09 09 09 55 4c 4f puiVal;.....ULO
12a0: 4e 47 2a 20 20 70 75 6c 56 61 6c 3b 0a 09 09 09 NG* pulVal;....
12b0: 09 49 4e 54 2a 20 20 70 69 6e 74 56 61 6c 3b 0a .INT* pintVal;.
12c0: 09 09 09 09 55 49 4e 54 2a 20 20 70 75 69 6e 74 ....UINT* puint
12d0: 56 61 6c 3b 0a 09 09 09 09 73 74 72 75 63 74 20 Val;.....struct
12e0: 7b 0a 09 09 09 09 09 50 56 4f 49 44 20 70 76 52 {......PVOID pvR
12f0: 65 63 6f 72 64 3b 0a 09 09 09 09 09 49 52 65 63 ecord;......IRec
1300: 6f 72 64 49 6e 66 6f 20 70 52 65 63 49 6e 66 6f ordInfo pRecInfo
1310: 3b 0a 09 09 09 09 7d 0a 09 09 09 7d 0a 09 09 7d ;.....}....}...}
1320: 0a 09 09 44 45 43 49 4d 41 4c 20 64 65 63 56 61 ...DECIMAL decVa
1330: 6c 3b 0a 09 7d 0a 7d 0a 61 6c 69 61 73 20 56 41 l;..}.}.alias VA
1340: 52 49 41 4e 54 2a 20 4c 50 56 41 52 49 41 4e 54 RIANT* LPVARIANT
1350: 3b 0a 0a 61 6c 69 61 73 20 56 41 52 49 41 4e 54 ;..alias VARIANT
1360: 20 56 41 52 49 41 4e 54 41 52 47 3b 0a 61 6c 69 VARIANTARG;.ali
1370: 61 73 20 56 41 52 49 41 4e 54 2a 20 4c 50 56 41 as VARIANT* LPVA
1380: 52 49 41 4e 54 41 52 47 3b 0a 0a 73 74 72 75 63 RIANTARG;..struc
1390: 74 20 5f 77 69 72 65 56 41 52 49 41 4e 54 20 7b t _wireVARIANT {
13a0: 0a 09 44 57 4f 52 44 20 63 6c 53 69 7a 65 3b 0a ..DWORD clSize;.
13b0: 09 44 57 4f 52 44 20 72 70 63 52 65 73 65 72 76 .DWORD rpcReserv
13c0: 65 64 3b 0a 09 55 53 48 4f 52 54 20 76 74 3b 0a ed;..USHORT vt;.
13d0: 09 55 53 48 4f 52 54 20 77 52 65 73 65 72 76 65 .USHORT wReserve
13e0: 64 31 3b 0a 09 55 53 48 4f 52 54 20 77 52 65 73 d1;..USHORT wRes
13f0: 65 72 76 65 64 32 3b 0a 09 55 53 48 4f 52 54 20 erved2;..USHORT
1400: 77 52 65 73 65 72 76 65 64 33 3b 0a 09 75 6e 69 wReserved3;..uni
1410: 6f 6e 20 7b 0a 09 09 4c 4f 4e 47 20 6c 56 61 6c on {...LONG lVal
1420: 3b 0a 09 09 4c 4f 4e 47 4c 4f 4e 47 20 6c 6c 56 ;...LONGLONG llV
1430: 61 6c 3b 0a 09 09 42 59 54 45 20 62 56 61 6c 3b al;...BYTE bVal;
1440: 0a 09 09 53 48 4f 52 54 20 69 56 61 6c 3b 0a 09 ...SHORT iVal;..
1450: 09 46 4c 4f 41 54 20 66 6c 74 56 61 6c 3b 0a 09 .FLOAT fltVal;..
1460: 09 44 4f 55 42 4c 45 20 64 62 6c 56 61 6c 3b 0a .DOUBLE dblVal;.
1470: 09 09 56 41 52 49 41 4e 54 5f 42 4f 4f 4c 20 62 ..VARIANT_BOOL b
1480: 6f 6f 6c 56 61 6c 3b 0a 09 09 53 43 4f 44 45 20 oolVal;...SCODE
1490: 73 63 6f 64 65 3b 0a 09 09 43 59 20 63 79 56 61 scode;...CY cyVa
14a0: 6c 3b 0a 09 09 44 41 54 45 20 64 61 74 65 3b 0a l;...DATE date;.
14b0: 09 09 77 69 72 65 42 53 54 52 20 62 73 74 72 56 ..wireBSTR bstrV
14c0: 61 6c 3b 0a 09 09 49 55 6e 6b 6e 6f 77 6e 2a 20 al;...IUnknown*
14d0: 70 75 6e 6b 56 61 6c 3b 0a 09 09 4c 50 44 49 53 punkVal;...LPDIS
14e0: 50 41 54 43 48 20 70 64 69 73 70 56 61 6c 3b 0a PATCH pdispVal;.
14f0: 09 09 77 69 72 65 50 53 41 46 45 41 52 52 41 59 ..wirePSAFEARRAY
1500: 20 70 61 72 72 61 79 3b 0a 09 09 77 69 72 65 42 parray;...wireB
1510: 52 45 43 4f 52 44 20 62 72 65 63 56 61 6c 3b 0a RECORD brecVal;.
1520: 09 09 42 59 54 45 2a 20 70 62 56 61 6c 3b 0a 09 ..BYTE* pbVal;..
1530: 09 53 48 4f 52 54 2a 20 70 69 56 61 6c 3b 0a 09 .SHORT* piVal;..
1540: 09 4c 4f 4e 47 2a 20 70 6c 56 61 6c 3b 0a 09 09 .LONG* plVal;...
1550: 46 4c 4f 41 54 2a 20 70 66 6c 74 56 61 6c 3b 0a FLOAT* pfltVal;.
1560: 09 09 44 4f 55 42 4c 45 2a 20 70 64 62 6c 56 61 ..DOUBLE* pdblVa
1570: 6c 3b 0a 09 09 56 41 52 49 41 4e 54 5f 42 4f 4f l;...VARIANT_BOO
1580: 4c 2a 20 70 62 6f 6f 6c 56 61 6c 3b 0a 09 09 53 L* pboolVal;...S
1590: 43 4f 44 45 2a 20 70 73 63 6f 64 65 3b 0a 09 09 CODE* pscode;...
15a0: 43 59 2a 20 70 63 79 56 61 6c 3b 0a 09 09 44 41 CY* pcyVal;...DA
15b0: 54 45 2a 20 70 64 61 74 65 3b 0a 09 09 77 69 72 TE* pdate;...wir
15c0: 65 42 53 54 52 2a 20 70 62 73 74 72 56 61 6c 3b eBSTR* pbstrVal;
15d0: 0a 09 09 49 55 6e 6b 6e 6f 77 6e 2a 2a 20 70 70 ...IUnknown** pp
15e0: 75 6e 6b 56 61 6c 3b 0a 09 09 4c 50 44 49 53 50 unkVal;...LPDISP
15f0: 41 54 43 48 2a 20 70 70 64 69 73 70 56 61 6c 3b ATCH* ppdispVal;
1600: 0a 09 09 77 69 72 65 50 53 41 46 45 41 52 52 41 ...wirePSAFEARRA
1610: 59 2a 20 70 70 61 72 72 61 79 3b 0a 09 09 77 69 Y* pparray;...wi
1620: 72 65 56 41 52 49 41 4e 54 2a 20 70 76 61 72 56 reVARIANT* pvarV
1630: 61 6c 3b 0a 09 09 43 48 41 52 20 63 56 61 6c 3b al;...CHAR cVal;
1640: 0a 09 09 55 53 48 4f 52 54 20 75 69 56 61 6c 3b ...USHORT uiVal;
1650: 0a 09 09 55 4c 4f 4e 47 20 75 6c 56 61 6c 3b 0a ...ULONG ulVal;.
1660: 09 09 55 4c 4f 4e 47 4c 4f 4e 47 20 75 6c 6c 56 ..ULONGLONG ullV
1670: 61 6c 3b 0a 09 09 49 4e 54 20 69 6e 74 56 61 6c al;...INT intVal
1680: 3b 0a 09 09 55 49 4e 54 20 75 69 6e 74 56 61 6c ;...UINT uintVal
1690: 3b 0a 09 09 44 45 43 49 4d 41 4c 20 64 65 63 56 ;...DECIMAL decV
16a0: 61 6c 3b 0a 09 09 44 45 43 49 4d 41 4c 2a 20 70 al;...DECIMAL* p
16b0: 64 65 63 56 61 6c 3b 0a 09 09 43 48 41 52 2a 20 decVal;...CHAR*
16c0: 70 63 56 61 6c 3b 0a 09 09 55 53 48 4f 52 54 2a pcVal;...USHORT*
16d0: 20 70 75 69 56 61 6c 3b 0a 09 09 55 4c 4f 4e 47 puiVal;...ULONG
16e0: 2a 20 70 75 6c 56 61 6c 3b 0a 09 09 49 4e 54 2a * pulVal;...INT*
16f0: 20 70 69 6e 74 56 61 6c 3b 0a 09 09 55 49 4e 54 pintVal;...UINT
1700: 2a 20 70 75 69 6e 74 56 61 6c 3b 0a 09 7d 0a 7d * puintVal;..}.}
1710: 0a 61 6c 69 61 73 20 5f 77 69 72 65 56 41 52 49 .alias _wireVARI
1720: 41 4e 54 2a 20 77 69 72 65 56 41 52 49 41 4e 54 ANT* wireVARIANT
1730: 3b 0a 0a 61 6c 69 61 73 20 4c 4f 4e 47 20 44 49 ;..alias LONG DI
1740: 53 50 49 44 3b 0a 61 6c 69 61 73 20 44 49 53 50 SPID;.alias DISP
1750: 49 44 20 4d 45 4d 42 45 52 49 44 3b 0a 61 6c 69 ID MEMBERID;.ali
1760: 61 73 20 44 57 4f 52 44 20 48 52 45 46 54 59 50 as DWORD HREFTYP
1770: 45 3b 0a 0a 65 6e 75 6d 20 54 59 50 45 4b 49 4e E;..enum TYPEKIN
1780: 44 20 7b 0a 09 54 4b 49 4e 44 5f 45 4e 55 4d 2c D {..TKIND_ENUM,
1790: 20 54 4b 49 4e 44 5f 52 45 43 4f 52 44 2c 20 54 TKIND_RECORD, T
17a0: 4b 49 4e 44 5f 4d 4f 44 55 4c 45 2c 20 54 4b 49 KIND_MODULE, TKI
17b0: 4e 44 5f 49 4e 54 45 52 46 41 43 45 2c 20 54 4b ND_INTERFACE, TK
17c0: 49 4e 44 5f 44 49 53 50 41 54 43 48 2c 0a 09 54 IND_DISPATCH,..T
17d0: 4b 49 4e 44 5f 43 4f 43 4c 41 53 53 2c 20 54 4b KIND_COCLASS, TK
17e0: 49 4e 44 5f 41 4c 49 41 53 2c 20 54 4b 49 4e 44 IND_ALIAS, TKIND
17f0: 5f 55 4e 49 4f 4e 2c 20 54 4b 49 4e 44 5f 4d 41 _UNION, TKIND_MA
1800: 58 0a 7d 0a 0a 73 74 72 75 63 74 20 54 59 50 45 X.}..struct TYPE
1810: 44 45 53 43 20 7b 0a 09 75 6e 69 6f 6e 20 7b 0a DESC {..union {.
1820: 09 09 54 59 50 45 44 45 53 43 2a 20 6c 70 74 64 ..TYPEDESC* lptd
1830: 65 73 63 3b 0a 09 09 41 52 52 41 59 44 45 53 43 esc;...ARRAYDESC
1840: 2a 20 6c 70 61 64 65 73 63 3b 0a 09 09 48 52 45 * lpadesc;...HRE
1850: 46 54 59 50 45 20 68 72 65 66 74 79 70 65 3b 0a FTYPE hreftype;.
1860: 09 7d 0a 09 56 41 52 54 59 50 45 20 76 74 3b 0a .}..VARTYPE vt;.
1870: 7d 0a 0a 73 74 72 75 63 74 20 41 52 52 41 59 44 }..struct ARRAYD
1880: 45 53 43 20 7b 0a 09 54 59 50 45 44 45 53 43 20 ESC {..TYPEDESC
1890: 74 64 65 73 63 45 6c 65 6d 3b 0a 09 55 53 48 4f tdescElem;..USHO
18a0: 52 54 20 63 44 69 6d 73 3b 0a 09 53 41 46 45 41 RT cDims;..SAFEA
18b0: 52 52 41 59 42 4f 55 4e 44 20 72 67 62 6f 75 6e RRAYBOUND rgboun
18c0: 64 73 5b 31 5d 3b 0a 7d 0a 0a 73 74 72 75 63 74 ds[1];.}..struct
18d0: 20 50 41 52 41 4d 44 45 53 43 45 58 20 7b 0a 09 PARAMDESCEX {..
18e0: 55 4c 4f 4e 47 20 63 42 79 74 65 73 3b 0a 09 56 ULONG cBytes;..V
18f0: 41 52 49 41 4e 54 41 52 47 20 76 61 72 44 65 66 ARIANTARG varDef
1900: 61 75 6c 74 56 61 6c 75 65 3b 0a 7d 0a 61 6c 69 aultValue;.}.ali
1910: 61 73 20 50 41 52 41 4d 44 45 53 43 45 58 2a 20 as PARAMDESCEX*
1920: 4c 50 50 41 52 41 4d 44 45 53 43 45 58 3b 0a 0a LPPARAMDESCEX;..
1930: 73 74 72 75 63 74 20 50 41 52 41 4d 44 45 53 43 struct PARAMDESC
1940: 20 7b 0a 09 4c 50 50 41 52 41 4d 44 45 53 43 45 {..LPPARAMDESCE
1950: 58 20 70 70 61 72 61 6d 64 65 73 63 65 78 3b 0a X pparamdescex;.
1960: 09 55 53 48 4f 52 54 20 77 50 61 72 61 6d 46 6c .USHORT wParamFl
1970: 61 67 73 3b 0a 7d 0a 61 6c 69 61 73 20 50 41 52 ags;.}.alias PAR
1980: 41 4d 44 45 53 43 2a 20 4c 50 50 41 52 41 4d 44 AMDESC* LPPARAMD
1990: 45 53 43 3b 0a 0a 73 74 72 75 63 74 20 49 44 4c ESC;..struct IDL
19a0: 44 45 53 43 20 7b 0a 09 55 4c 4f 4e 47 20 64 77 DESC {..ULONG dw
19b0: 52 65 73 65 72 76 65 64 3b 0a 09 55 53 48 4f 52 Reserved;..USHOR
19c0: 54 20 77 49 44 4c 46 6c 61 67 73 3b 0a 7d 0a 61 T wIDLFlags;.}.a
19d0: 6c 69 61 73 20 49 44 4c 44 45 53 43 2a 20 4c 50 lias IDLDESC* LP
19e0: 49 44 4c 44 45 53 43 3b 0a 0a 73 74 72 75 63 74 IDLDESC;..struct
19f0: 20 45 4c 45 4d 44 45 53 43 20 7b 0a 09 54 59 50 ELEMDESC {..TYP
1a00: 45 44 45 53 43 20 74 64 65 73 63 3b 0a 09 75 6e EDESC tdesc;..un
1a10: 69 6f 6e 20 7b 0a 09 09 49 44 4c 44 45 53 43 20 ion {...IDLDESC
1a20: 69 64 6c 64 65 73 63 3b 0a 09 09 50 41 52 41 4d idldesc;...PARAM
1a30: 44 45 53 43 20 70 61 72 61 6d 64 65 73 63 3b 0a DESC paramdesc;.
1a40: 09 7d 0a 7d 0a 61 6c 69 61 73 20 45 4c 45 4d 44 .}.}.alias ELEMD
1a50: 45 53 43 2a 20 4c 50 45 4c 45 4d 44 45 53 43 3b ESC* LPELEMDESC;
1a60: 0a 0a 73 74 72 75 63 74 20 54 59 50 45 41 54 54 ..struct TYPEATT
1a70: 52 20 7b 0a 09 47 55 49 44 20 67 75 69 64 3b 0a R {..GUID guid;.
1a80: 09 4c 43 49 44 20 6c 63 69 64 3b 0a 09 44 57 4f .LCID lcid;..DWO
1a90: 52 44 20 64 77 52 65 73 65 72 76 65 64 3b 0a 09 RD dwReserved;..
1aa0: 4d 45 4d 42 45 52 49 44 20 6d 65 6d 69 64 43 6f MEMBERID memidCo
1ab0: 6e 73 74 72 75 63 74 6f 72 3b 0a 09 4d 45 4d 42 nstructor;..MEMB
1ac0: 45 52 49 44 20 6d 65 6d 69 64 44 65 73 74 72 75 ERID memidDestru
1ad0: 63 74 6f 72 3b 0a 09 4c 50 4f 4c 45 53 54 52 20 ctor;..LPOLESTR
1ae0: 6c 70 73 74 72 53 63 68 65 6d 61 3b 0a 09 55 4c lpstrSchema;..UL
1af0: 4f 4e 47 20 63 62 53 69 7a 65 49 6e 73 74 61 6e ONG cbSizeInstan
1b00: 63 65 3b 0a 09 54 59 50 45 4b 49 4e 44 20 74 79 ce;..TYPEKIND ty
1b10: 70 65 6b 69 6e 64 3b 0a 09 57 4f 52 44 20 63 46 pekind;..WORD cF
1b20: 75 6e 63 73 3b 0a 09 57 4f 52 44 20 63 56 61 72 uncs;..WORD cVar
1b30: 73 3b 0a 09 57 4f 52 44 20 63 49 6d 70 6c 54 79 s;..WORD cImplTy
1b40: 70 65 73 3b 0a 09 57 4f 52 44 20 63 62 53 69 7a pes;..WORD cbSiz
1b50: 65 56 66 74 3b 0a 09 57 4f 52 44 20 63 62 41 6c eVft;..WORD cbAl
1b60: 69 67 6e 6d 65 6e 74 3b 0a 09 57 4f 52 44 20 77 ignment;..WORD w
1b70: 54 79 70 65 46 6c 61 67 73 3b 0a 09 57 4f 52 44 TypeFlags;..WORD
1b80: 20 77 4d 61 6a 6f 72 56 65 72 4e 75 6d 3b 0a 09 wMajorVerNum;..
1b90: 57 4f 52 44 20 77 4d 69 6e 6f 72 56 65 72 4e 75 WORD wMinorVerNu
1ba0: 6d 3b 0a 09 54 59 50 45 44 45 53 43 20 74 64 65 m;..TYPEDESC tde
1bb0: 73 63 41 6c 69 61 73 3b 0a 09 49 44 4c 44 45 53 scAlias;..IDLDES
1bc0: 43 20 69 64 6c 64 65 73 63 54 79 70 65 3b 0a 7d C idldescType;.}
1bd0: 0a 61 6c 69 61 73 20 54 59 50 45 41 54 54 52 2a .alias TYPEATTR*
1be0: 20 4c 50 54 59 50 45 41 54 54 52 3b 0a 0a 73 74 LPTYPEATTR;..st
1bf0: 72 75 63 74 20 44 49 53 50 50 41 52 41 4d 53 20 ruct DISPPARAMS
1c00: 7b 0a 09 56 41 52 49 41 4e 54 41 52 47 2a 20 72 {..VARIANTARG* r
1c10: 67 76 61 72 67 3b 0a 09 44 49 53 50 49 44 2a 20 gvarg;..DISPID*
1c20: 72 67 64 69 73 70 69 64 4e 61 6d 65 64 41 72 67 rgdispidNamedArg
1c30: 73 3b 0a 09 55 49 4e 54 20 63 41 72 67 73 3b 0a s;..UINT cArgs;.
1c40: 09 55 49 4e 54 20 63 4e 61 6d 65 64 41 72 67 73 .UINT cNamedArgs
1c50: 3b 0a 7d 0a 0a 73 74 72 75 63 74 20 45 58 43 45 ;.}..struct EXCE
1c60: 50 49 4e 46 4f 20 7b 0a 09 57 4f 52 44 20 77 43 PINFO {..WORD wC
1c70: 6f 64 65 3b 0a 09 57 4f 52 44 20 77 52 65 73 65 ode;..WORD wRese
1c80: 72 76 65 64 3b 0a 09 42 53 54 52 20 62 73 74 72 rved;..BSTR bstr
1c90: 53 6f 75 72 63 65 3b 0a 09 42 53 54 52 20 62 73 Source;..BSTR bs
1ca0: 74 72 44 65 73 63 72 69 70 74 69 6f 6e 3b 0a 09 trDescription;..
1cb0: 42 53 54 52 20 62 73 74 72 48 65 6c 70 46 69 6c BSTR bstrHelpFil
1cc0: 65 3b 0a 09 44 57 4f 52 44 20 64 77 48 65 6c 70 e;..DWORD dwHelp
1cd0: 43 6f 6e 74 65 78 74 3b 0a 09 50 56 4f 49 44 20 Context;..PVOID
1ce0: 70 76 52 65 73 65 72 76 65 64 3b 0a 09 65 78 74 pvReserved;..ext
1cf0: 65 72 6e 20 28 57 69 6e 64 6f 77 73 29 20 7b 0a ern (Windows) {.
1d00: 09 48 52 45 53 55 4c 54 20 66 75 6e 63 74 69 6f .HRESULT functio
1d10: 6e 20 28 45 58 43 45 50 49 4e 46 4f 2a 20 29 20 n (EXCEPINFO* )
1d20: 70 66 6e 44 65 66 65 72 72 65 64 46 69 6c 6c 49 pfnDeferredFillI
1d30: 6e 3b 0a 09 7d 0a 09 53 43 4f 44 45 20 73 63 6f n;..}..SCODE sco
1d40: 64 65 3b 0a 7d 0a 61 6c 69 61 73 20 45 58 43 45 de;.}.alias EXCE
1d50: 50 49 4e 46 4f 2a 20 4c 50 45 58 43 45 50 49 4e PINFO* LPEXCEPIN
1d60: 46 4f 3b 0a 0a 65 6e 75 6d 20 43 41 4c 4c 43 4f FO;..enum CALLCO
1d70: 4e 56 20 7b 0a 09 43 43 5f 46 41 53 54 43 41 4c NV {..CC_FASTCAL
1d80: 4c 2c 0a 09 43 43 5f 43 44 45 43 4c 2c 0a 09 43 L,..CC_CDECL,..C
1d90: 43 5f 4d 53 43 50 41 53 43 41 4c 2c 0a 09 43 43 C_MSCPASCAL,..CC
1da0: 5f 50 41 53 43 41 4c 3d 43 43 5f 4d 53 43 50 41 _PASCAL=CC_MSCPA
1db0: 53 43 41 4c 2c 0a 09 43 43 5f 4d 41 43 50 41 53 SCAL,..CC_MACPAS
1dc0: 43 41 4c 2c 0a 09 43 43 5f 53 54 44 43 41 4c 4c CAL,..CC_STDCALL
1dd0: 2c 0a 09 43 43 5f 46 50 46 41 53 54 43 41 4c 4c ,..CC_FPFASTCALL
1de0: 2c 0a 09 43 43 5f 53 59 53 43 41 4c 4c 2c 0a 09 ,..CC_SYSCALL,..
1df0: 43 43 5f 4d 50 57 43 44 45 43 4c 2c 0a 09 43 43 CC_MPWCDECL,..CC
1e00: 5f 4d 50 57 50 41 53 43 41 4c 2c 0a 09 43 43 5f _MPWPASCAL,..CC_
1e10: 4d 41 58 3d 43 43 5f 4d 50 57 50 41 53 43 41 4c MAX=CC_MPWPASCAL
1e20: 0a 7d 0a 0a 65 6e 75 6d 20 46 55 4e 43 4b 49 4e .}..enum FUNCKIN
1e30: 44 20 7b 0a 09 46 55 4e 43 5f 56 49 52 54 55 41 D {..FUNC_VIRTUA
1e40: 4c 2c 0a 09 46 55 4e 43 5f 50 55 52 45 56 49 52 L,..FUNC_PUREVIR
1e50: 54 55 41 4c 2c 0a 09 46 55 4e 43 5f 4e 4f 4e 56 TUAL,..FUNC_NONV
1e60: 49 52 54 55 41 4c 2c 0a 09 46 55 4e 43 5f 53 54 IRTUAL,..FUNC_ST
1e70: 41 54 49 43 2c 0a 09 46 55 4e 43 5f 44 49 53 50 ATIC,..FUNC_DISP
1e80: 41 54 43 48 0a 7d 0a 0a 65 6e 75 6d 20 49 4e 56 ATCH.}..enum INV
1e90: 4f 4b 45 4b 49 4e 44 20 7b 0a 09 49 4e 56 4f 4b OKEKIND {..INVOK
1ea0: 45 5f 46 55 4e 43 20 20 20 20 20 20 20 20 20 20 E_FUNC
1eb0: 20 3d 20 31 2c 0a 09 49 4e 56 4f 4b 45 5f 50 52 = 1,..INVOKE_PR
1ec0: 4f 50 45 52 54 59 47 45 54 20 20 20 20 3d 20 32 OPERTYGET = 2
1ed0: 2c 0a 09 49 4e 56 4f 4b 45 5f 50 52 4f 50 45 52 ,..INVOKE_PROPER
1ee0: 54 59 50 55 54 20 20 20 20 3d 20 34 2c 0a 09 49 TYPUT = 4,..I
1ef0: 4e 56 4f 4b 45 5f 50 52 4f 50 45 52 54 59 50 55 NVOKE_PROPERTYPU
1f00: 54 52 45 46 20 3d 20 38 0a 7d 0a 0a 73 74 72 75 TREF = 8.}..stru
1f10: 63 74 20 46 55 4e 43 44 45 53 43 20 7b 0a 09 4d ct FUNCDESC {..M
1f20: 45 4d 42 45 52 49 44 20 6d 65 6d 69 64 3b 0a 09 EMBERID memid;..
1f30: 53 43 4f 44 45 2a 20 6c 70 72 67 73 63 6f 64 65 SCODE* lprgscode
1f40: 3b 0a 09 45 4c 45 4d 44 45 53 43 2a 20 6c 70 72 ;..ELEMDESC* lpr
1f50: 67 65 6c 65 6d 64 65 73 63 50 61 72 61 6d 3b 0a gelemdescParam;.
1f60: 09 46 55 4e 43 4b 49 4e 44 20 66 75 6e 63 6b 69 .FUNCKIND funcki
1f70: 6e 64 3b 0a 09 49 4e 56 4f 4b 45 4b 49 4e 44 20 nd;..INVOKEKIND
1f80: 69 6e 76 6b 69 6e 64 3b 0a 09 43 41 4c 4c 43 4f invkind;..CALLCO
1f90: 4e 56 20 63 61 6c 6c 63 6f 6e 76 3b 0a 09 53 48 NV callconv;..SH
1fa0: 4f 52 54 20 63 50 61 72 61 6d 73 3b 0a 09 53 48 ORT cParams;..SH
1fb0: 4f 52 54 20 63 50 61 72 61 6d 73 4f 70 74 3b 0a ORT cParamsOpt;.
1fc0: 09 53 48 4f 52 54 20 6f 56 66 74 3b 0a 09 53 48 .SHORT oVft;..SH
1fd0: 4f 52 54 20 63 53 63 6f 64 65 73 3b 0a 09 45 4c ORT cScodes;..EL
1fe0: 45 4d 44 45 53 43 20 65 6c 65 6d 64 65 73 63 46 EMDESC elemdescF
1ff0: 75 6e 63 3b 0a 09 57 4f 52 44 20 77 46 75 6e 63 unc;..WORD wFunc
2000: 46 6c 61 67 73 3b 0a 7d 0a 61 6c 69 61 73 20 46 Flags;.}.alias F
2010: 55 4e 43 44 45 53 43 2a 20 4c 50 46 55 4e 43 44 UNCDESC* LPFUNCD
2020: 45 53 43 3b 0a 0a 65 6e 75 6d 20 56 41 52 4b 49 ESC;..enum VARKI
2030: 4e 44 20 7b 0a 09 56 41 52 5f 50 45 52 49 4e 53 ND {..VAR_PERINS
2040: 54 41 4e 43 45 2c 20 56 41 52 5f 53 54 41 54 49 TANCE, VAR_STATI
2050: 43 2c 20 56 41 52 5f 43 4f 4e 53 54 2c 20 56 41 C, VAR_CONST, VA
2060: 52 5f 44 49 53 50 41 54 43 48 0a 7d 0a 0a 73 74 R_DISPATCH.}..st
2070: 72 75 63 74 20 56 41 52 44 45 53 43 20 7b 0a 09 ruct VARDESC {..
2080: 4d 45 4d 42 45 52 49 44 20 6d 65 6d 69 64 3b 0a MEMBERID memid;.
2090: 09 4c 50 4f 4c 45 53 54 52 20 6c 70 73 74 72 53 .LPOLESTR lpstrS
20a0: 63 68 65 6d 61 3b 0a 09 75 6e 69 6f 6e 20 7b 0a chema;..union {.
20b0: 09 09 55 4c 4f 4e 47 20 6f 49 6e 73 74 3b 0a 09 ..ULONG oInst;..
20c0: 09 56 41 52 49 41 4e 54 2a 20 6c 70 76 61 72 56 .VARIANT* lpvarV
20d0: 61 6c 75 65 3b 0a 09 7d 0a 09 45 4c 45 4d 44 45 alue;..}..ELEMDE
20e0: 53 43 20 65 6c 65 6d 64 65 73 63 56 61 72 3b 0a SC elemdescVar;.
20f0: 09 57 4f 52 44 20 77 56 61 72 46 6c 61 67 73 3b .WORD wVarFlags;
2100: 0a 09 56 41 52 4b 49 4e 44 20 76 61 72 6b 69 6e ..VARKIND varkin
2110: 64 3b 0a 7d 0a 61 6c 69 61 73 20 56 41 52 44 45 d;.}.alias VARDE
2120: 53 43 2a 20 4c 50 56 41 52 44 45 53 43 3b 0a 0a SC* LPVARDESC;..
2130: 65 6e 75 6d 20 54 59 50 45 46 4c 41 47 53 20 7b enum TYPEFLAGS {
2140: 0a 09 54 59 50 45 46 4c 41 47 5f 46 41 50 50 4f ..TYPEFLAG_FAPPO
2150: 42 4a 45 43 54 20 20 20 20 20 3d 20 31 2c 0a 09 BJECT = 1,..
2160: 54 59 50 45 46 4c 41 47 5f 46 43 41 4e 43 52 45 TYPEFLAG_FCANCRE
2170: 41 54 45 20 20 20 20 20 3d 20 32 2c 0a 09 54 59 ATE = 2,..TY
2180: 50 45 46 4c 41 47 5f 46 4c 49 43 45 4e 53 45 44 PEFLAG_FLICENSED
2190: 20 20 20 20 20 20 3d 20 34 2c 0a 09 54 59 50 45 = 4,..TYPE
21a0: 46 4c 41 47 5f 46 50 52 45 44 45 43 4c 49 44 20 FLAG_FPREDECLID
21b0: 20 20 20 20 3d 20 38 2c 0a 09 54 59 50 45 46 4c = 8,..TYPEFL
21c0: 41 47 5f 46 48 49 44 44 45 4e 20 20 20 20 20 20 AG_FHIDDEN
21d0: 20 20 3d 20 31 36 2c 0a 09 54 59 50 45 46 4c 41 = 16,..TYPEFLA
21e0: 47 5f 46 43 4f 4e 54 52 4f 4c 20 20 20 20 20 20 G_FCONTROL
21f0: 20 3d 20 33 32 2c 0a 09 54 59 50 45 46 4c 41 47 = 32,..TYPEFLAG
2200: 5f 46 44 55 41 4c 20 20 20 20 20 20 20 20 20 20 _FDUAL
2210: 3d 20 36 34 2c 0a 09 54 59 50 45 46 4c 41 47 5f = 64,..TYPEFLAG_
2220: 46 4e 4f 4e 45 58 54 45 4e 53 49 42 4c 45 20 3d FNONEXTENSIBLE =
2230: 20 31 32 38 2c 0a 09 54 59 50 45 46 4c 41 47 5f 128,..TYPEFLAG_
2240: 46 4f 4c 45 41 55 54 4f 4d 41 54 49 4f 4e 20 3d FOLEAUTOMATION =
2250: 20 32 35 36 2c 0a 09 54 59 50 45 46 4c 41 47 5f 256,..TYPEFLAG_
2260: 46 52 45 53 54 52 49 43 54 45 44 20 20 20 20 3d FRESTRICTED =
2270: 20 35 31 32 2c 0a 09 54 59 50 45 46 4c 41 47 5f 512,..TYPEFLAG_
2280: 46 41 47 47 52 45 47 41 54 41 42 4c 45 20 20 3d FAGGREGATABLE =
2290: 20 31 30 32 34 2c 0a 09 54 59 50 45 46 4c 41 47 1024,..TYPEFLAG
22a0: 5f 46 52 45 50 4c 41 43 45 41 42 4c 45 20 20 20 _FREPLACEABLE
22b0: 3d 20 32 30 34 38 2c 0a 09 54 59 50 45 46 4c 41 = 2048,..TYPEFLA
22c0: 47 5f 46 44 49 53 50 41 54 43 48 41 42 4c 45 20 G_FDISPATCHABLE
22d0: 20 3d 20 34 30 39 36 2c 0a 09 54 59 50 45 46 4c = 4096,..TYPEFL
22e0: 41 47 5f 46 52 45 56 45 52 53 45 42 49 4e 44 20 AG_FREVERSEBIND
22f0: 20 20 3d 20 38 31 39 32 0a 7d 0a 0a 65 6e 75 6d = 8192.}..enum
2300: 20 46 55 4e 43 46 4c 41 47 53 20 7b 0a 09 46 55 FUNCFLAGS {..FU
2310: 4e 43 46 4c 41 47 5f 46 52 45 53 54 52 49 43 54 NCFLAG_FRESTRICT
2320: 45 44 20 3d 20 31 2c 0a 09 46 55 4e 43 46 4c 41 ED = 1,..FUNCFLA
2330: 47 5f 46 53 4f 55 52 43 45 20 3d 20 32 2c 0a 09 G_FSOURCE = 2,..
2340: 46 55 4e 43 46 4c 41 47 5f 46 42 49 4e 44 41 42 FUNCFLAG_FBINDAB
2350: 4c 45 20 3d 20 34 2c 0a 09 46 55 4e 43 46 4c 41 LE = 4,..FUNCFLA
2360: 47 5f 46 52 45 51 55 45 53 54 45 44 49 54 20 3d G_FREQUESTEDIT =
2370: 20 38 2c 0a 09 46 55 4e 43 46 4c 41 47 5f 46 44 8,..FUNCFLAG_FD
2380: 49 53 50 4c 41 59 42 49 4e 44 20 3d 20 31 36 2c ISPLAYBIND = 16,
2390: 0a 09 46 55 4e 43 46 4c 41 47 5f 46 44 45 46 41 ..FUNCFLAG_FDEFA
23a0: 55 4c 54 42 49 4e 44 20 3d 20 33 32 2c 0a 09 46 ULTBIND = 32,..F
23b0: 55 4e 43 46 4c 41 47 5f 46 48 49 44 44 45 4e 20 UNCFLAG_FHIDDEN
23c0: 3d 20 36 34 2c 0a 09 46 55 4e 43 46 4c 41 47 5f = 64,..FUNCFLAG_
23d0: 46 55 53 45 53 47 45 54 4c 41 53 54 45 52 52 4f FUSESGETLASTERRO
23e0: 52 20 3d 20 31 32 38 2c 0a 09 46 55 4e 43 46 4c R = 128,..FUNCFL
23f0: 41 47 5f 46 44 45 46 41 55 4c 54 43 4f 4c 4c 45 AG_FDEFAULTCOLLE
2400: 4c 45 4d 20 3d 20 32 35 36 2c 0a 09 46 55 4e 43 LEM = 256,..FUNC
2410: 46 4c 41 47 5f 46 55 49 44 45 46 41 55 4c 54 20 FLAG_FUIDEFAULT
2420: 3d 20 35 31 32 2c 0a 09 46 55 4e 43 46 4c 41 47 = 512,..FUNCFLAG
2430: 5f 46 4e 4f 4e 42 52 4f 57 53 41 42 4c 45 20 3d _FNONBROWSABLE =
2440: 20 31 30 32 34 2c 0a 09 46 55 4e 43 46 4c 41 47 1024,..FUNCFLAG
2450: 5f 46 52 45 50 4c 41 43 45 41 42 4c 45 20 3d 20 _FREPLACEABLE =
2460: 32 30 34 38 2c 0a 09 46 55 4e 43 46 4c 41 47 5f 2048,..FUNCFLAG_
2470: 46 49 4d 4d 45 44 49 41 54 45 42 49 4e 44 20 3d FIMMEDIATEBIND =
2480: 20 34 30 39 36 0a 7d 0a 0a 65 6e 75 6d 20 56 41 4096.}..enum VA
2490: 52 46 4c 41 47 53 20 7b 0a 09 56 41 52 46 4c 41 RFLAGS {..VARFLA
24a0: 47 5f 46 52 45 41 44 4f 4e 4c 59 20 3d 20 31 2c G_FREADONLY = 1,
24b0: 0a 09 56 41 52 46 4c 41 47 5f 46 53 4f 55 52 43 ..VARFLAG_FSOURC
24c0: 45 20 3d 20 32 2c 0a 09 56 41 52 46 4c 41 47 5f E = 2,..VARFLAG_
24d0: 46 42 49 4e 44 41 42 4c 45 20 3d 20 34 2c 0a 09 FBINDABLE = 4,..
24e0: 56 41 52 46 4c 41 47 5f 46 52 45 51 55 45 53 54 VARFLAG_FREQUEST
24f0: 45 44 49 54 20 3d 20 38 2c 0a 09 56 41 52 46 4c EDIT = 8,..VARFL
2500: 41 47 5f 46 44 49 53 50 4c 41 59 42 49 4e 44 20 AG_FDISPLAYBIND
2510: 3d 20 31 36 2c 0a 09 56 41 52 46 4c 41 47 5f 46 = 16,..VARFLAG_F
2520: 44 45 46 41 55 4c 54 42 49 4e 44 20 3d 20 33 32 DEFAULTBIND = 32
2530: 2c 0a 09 56 41 52 46 4c 41 47 5f 46 48 49 44 44 ,..VARFLAG_FHIDD
2540: 45 4e 20 3d 20 36 34 2c 0a 09 56 41 52 46 4c 41 EN = 64,..VARFLA
2550: 47 5f 46 52 45 53 54 52 49 43 54 45 44 20 3d 20 G_FRESTRICTED =
2560: 31 32 38 2c 0a 09 56 41 52 46 4c 41 47 5f 46 44 128,..VARFLAG_FD
2570: 45 46 41 55 4c 54 43 4f 4c 4c 45 4c 45 4d 20 3d EFAULTCOLLELEM =
2580: 20 32 35 36 2c 0a 09 56 41 52 46 4c 41 47 5f 46 256,..VARFLAG_F
2590: 55 49 44 45 46 41 55 4c 54 20 3d 20 35 31 32 2c UIDEFAULT = 512,
25a0: 0a 09 56 41 52 46 4c 41 47 5f 46 4e 4f 4e 42 52 ..VARFLAG_FNONBR
25b0: 4f 57 53 41 42 4c 45 20 3d 20 31 30 32 34 2c 0a OWSABLE = 1024,.
25c0: 09 56 41 52 46 4c 41 47 5f 46 52 45 50 4c 41 43 .VARFLAG_FREPLAC
25d0: 45 41 42 4c 45 20 3d 20 32 30 34 38 2c 0a 09 56 EABLE = 2048,..V
25e0: 41 52 46 4c 41 47 5f 46 49 4d 4d 45 44 49 41 54 ARFLAG_FIMMEDIAT
25f0: 45 42 49 4e 44 20 3d 20 34 30 39 36 0a 7d 0a 0a EBIND = 4096.}..
2600: 73 74 72 75 63 74 20 43 4c 45 41 4e 4c 4f 43 41 struct CLEANLOCA
2610: 4c 53 54 4f 52 41 47 45 20 7b 0a 09 49 55 6e 6b LSTORAGE {..IUnk
2620: 6e 6f 77 6e 2a 20 70 49 6e 74 65 72 66 61 63 65 nown* pInterface
2630: 3b 0a 09 50 56 4f 49 44 20 70 53 74 6f 72 61 67 ;..PVOID pStorag
2640: 65 3b 0a 09 44 57 4f 52 44 20 66 6c 61 67 73 3b e;..DWORD flags;
2650: 0a 7d 0a 0a 73 74 72 75 63 74 20 43 55 53 54 44 .}..struct CUSTD
2660: 41 54 41 49 54 45 4d 20 7b 0a 09 47 55 49 44 20 ATAITEM {..GUID
2670: 67 75 69 64 3b 0a 09 56 41 52 49 41 4e 54 41 52 guid;..VARIANTAR
2680: 47 20 76 61 72 56 61 6c 75 65 3b 0a 7d 0a 61 6c G varValue;.}.al
2690: 69 61 73 20 43 55 53 54 44 41 54 41 49 54 45 4d ias CUSTDATAITEM
26a0: 2a 20 4c 50 43 55 53 54 44 41 54 41 49 54 45 4d * LPCUSTDATAITEM
26b0: 3b 0a 0a 73 74 72 75 63 74 20 43 55 53 54 44 41 ;..struct CUSTDA
26c0: 54 41 20 7b 0a 09 44 57 4f 52 44 20 63 43 75 73 TA {..DWORD cCus
26d0: 74 44 61 74 61 3b 0a 09 4c 50 43 55 53 54 44 41 tData;..LPCUSTDA
26e0: 54 41 49 54 45 4d 20 70 72 67 43 75 73 74 44 61 TAITEM prgCustDa
26f0: 74 61 3b 0a 7d 0a 61 6c 69 61 73 20 43 55 53 54 ta;.}.alias CUST
2700: 44 41 54 41 2a 20 4c 50 43 55 53 54 44 41 54 41 DATA* LPCUSTDATA
2710: 3b 0a 0a 65 6e 75 6d 20 44 45 53 43 4b 49 4e 44 ;..enum DESCKIND
2720: 20 7b 0a 09 44 45 53 43 4b 49 4e 44 5f 4e 4f 4e {..DESCKIND_NON
2730: 45 20 3d 20 30 2c 0a 09 44 45 53 43 4b 49 4e 44 E = 0,..DESCKIND
2740: 5f 46 55 4e 43 44 45 53 43 20 3d 20 44 45 53 43 _FUNCDESC = DESC
2750: 4b 49 4e 44 5f 4e 4f 4e 45 2b 31 2c 0a 09 44 45 KIND_NONE+1,..DE
2760: 53 43 4b 49 4e 44 5f 56 41 52 44 45 53 43 20 3d SCKIND_VARDESC =
2770: 20 44 45 53 43 4b 49 4e 44 5f 46 55 4e 43 44 45 DESCKIND_FUNCDE
2780: 53 43 2b 31 2c 0a 09 44 45 53 43 4b 49 4e 44 5f SC+1,..DESCKIND_
2790: 54 59 50 45 43 4f 4d 50 20 3d 20 44 45 53 43 4b TYPECOMP = DESCK
27a0: 49 4e 44 5f 56 41 52 44 45 53 43 2b 31 2c 0a 09 IND_VARDESC+1,..
27b0: 44 45 53 43 4b 49 4e 44 5f 49 4d 50 4c 49 43 49 DESCKIND_IMPLICI
27c0: 54 41 50 50 4f 42 4a 20 3d 20 44 45 53 43 4b 49 TAPPOBJ = DESCKI
27d0: 4e 44 5f 54 59 50 45 43 4f 4d 50 2b 31 2c 0a 09 ND_TYPECOMP+1,..
27e0: 44 45 53 43 4b 49 4e 44 5f 4d 41 58 20 3d 20 44 DESCKIND_MAX = D
27f0: 45 53 43 4b 49 4e 44 5f 49 4d 50 4c 49 43 49 54 ESCKIND_IMPLICIT
2800: 41 50 50 4f 42 4a 2b 31 0a 7d 0a 0a 75 6e 69 6f APPOBJ+1.}..unio
2810: 6e 20 42 49 4e 44 50 54 52 20 7b 0a 09 4c 50 46 n BINDPTR {..LPF
2820: 55 4e 43 44 45 53 43 20 6c 70 66 75 6e 63 64 65 UNCDESC lpfuncde
2830: 73 63 3b 0a 09 4c 50 56 41 52 44 45 53 43 20 6c sc;..LPVARDESC l
2840: 70 76 61 72 64 65 73 63 3b 0a 09 4c 50 54 59 50 pvardesc;..LPTYP
2850: 45 43 4f 4d 50 20 6c 70 74 63 6f 6d 70 3b 0a 7d ECOMP lptcomp;.}
2860: 0a 61 6c 69 61 73 20 42 49 4e 44 50 54 52 2a 20 .alias BINDPTR*
2870: 4c 50 42 49 4e 44 50 54 52 3b 0a 0a 69 6e 74 65 LPBINDPTR;..inte
2880: 72 66 61 63 65 20 49 44 69 73 70 61 74 63 68 20 rface IDispatch
2890: 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0a 09 48 52 : IUnknown {..HR
28a0: 45 53 55 4c 54 20 47 65 74 54 79 70 65 49 6e 66 ESULT GetTypeInf
28b0: 6f 43 6f 75 6e 74 28 55 49 4e 54 2a 29 3b 0a 09 oCount(UINT*);..
28c0: 48 52 45 53 55 4c 54 20 47 65 74 54 79 70 65 49 HRESULT GetTypeI
28d0: 6e 66 6f 28 55 49 4e 54 2c 20 4c 43 49 44 2c 20 nfo(UINT, LCID,
28e0: 4c 50 54 59 50 45 49 4e 46 4f 2a 29 3b 0a 09 48 LPTYPEINFO*);..H
28f0: 52 45 53 55 4c 54 20 47 65 74 49 44 73 4f 66 4e RESULT GetIDsOfN
2900: 61 6d 65 73 28 52 45 46 49 49 44 2c 20 4c 50 4f ames(REFIID, LPO
2910: 4c 45 53 54 52 2a 2c 20 55 49 4e 54 2c 20 4c 43 LESTR*, UINT, LC
2920: 49 44 2c 20 44 49 53 50 49 44 2a 29 3b 0a 09 48 ID, DISPID*);..H
2930: 52 45 53 55 4c 54 20 49 6e 76 6f 6b 65 28 44 49 RESULT Invoke(DI
2940: 53 50 49 44 2c 20 52 45 46 49 49 44 2c 20 4c 43 SPID, REFIID, LC
2950: 49 44 2c 20 57 4f 52 44 2c 20 44 49 53 50 50 41 ID, WORD, DISPPA
2960: 52 41 4d 53 2a 2c 20 56 41 52 49 41 4e 54 2a 2c RAMS*, VARIANT*,
2970: 20 45 58 43 45 50 49 4e 46 4f 2a 2c 20 55 49 4e EXCEPINFO*, UIN
2980: 54 2a 29 3b 0a 7d 0a 61 6c 69 61 73 20 49 44 69 T*);.}.alias IDi
2990: 73 70 61 74 63 68 20 4c 50 44 49 53 50 41 54 43 spatch LPDISPATC
29a0: 48 3b 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 45 H;..interface IE
29b0: 6e 75 6d 56 41 52 49 41 4e 54 20 3a 20 49 55 6e numVARIANT : IUn
29c0: 6b 6e 6f 77 6e 20 7b 0a 09 48 52 45 53 55 4c 54 known {..HRESULT
29d0: 20 4e 65 78 74 28 55 4c 4f 4e 47 2c 20 56 41 52 Next(ULONG, VAR
29e0: 49 41 4e 54 2a 2c 20 55 4c 4f 4e 47 2a 29 3b 0a IANT*, ULONG*);.
29f0: 09 48 52 45 53 55 4c 54 20 53 6b 69 70 28 55 4c .HRESULT Skip(UL
2a00: 4f 4e 47 29 3b 0a 09 48 52 45 53 55 4c 54 20 52 ONG);..HRESULT R
2a10: 65 73 65 74 28 29 3b 0a 09 48 52 45 53 55 4c 54 eset();..HRESULT
2a20: 20 43 6c 6f 6e 65 28 49 45 6e 75 6d 56 41 52 49 Clone(IEnumVARI
2a30: 41 4e 54 2a 2a 29 3b 0a 7d 0a 61 6c 69 61 73 20 ANT**);.}.alias
2a40: 49 45 6e 75 6d 56 41 52 49 41 4e 54 20 4c 50 45 IEnumVARIANT LPE
2a50: 4e 55 4d 56 41 52 49 41 4e 54 3b 0a 0a 69 6e 74 NUMVARIANT;..int
2a60: 65 72 66 61 63 65 20 49 54 79 70 65 43 6f 6d 70 erface ITypeComp
2a70: 20 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0a 09 48 : IUnknown {..H
2a80: 52 45 53 55 4c 54 20 42 69 6e 64 28 4c 50 4f 4c RESULT Bind(LPOL
2a90: 45 53 54 52 2c 20 55 4c 4f 4e 47 2c 20 57 4f 52 ESTR, ULONG, WOR
2aa0: 44 2c 20 4c 50 54 59 50 45 49 4e 46 4f 2a 2c 20 D, LPTYPEINFO*,
2ab0: 44 45 53 43 4b 49 4e 44 2a 2c 20 4c 50 42 49 4e DESCKIND*, LPBIN
2ac0: 44 50 54 52 29 3b 0a 09 48 52 45 53 55 4c 54 20 DPTR);..HRESULT
2ad0: 42 69 6e 64 54 79 70 65 28 4c 50 4f 4c 45 53 54 BindType(LPOLEST
2ae0: 52 2c 20 55 4c 4f 4e 47 2c 20 4c 50 54 59 50 45 R, ULONG, LPTYPE
2af0: 49 4e 46 4f 2a 2c 20 4c 50 54 59 50 45 43 4f 4d INFO*, LPTYPECOM
2b00: 50 2a 29 3b 0a 7d 0a 61 6c 69 61 73 20 49 54 79 P*);.}.alias ITy
2b10: 70 65 43 6f 6d 70 20 4c 50 54 59 50 45 43 4f 4d peComp LPTYPECOM
2b20: 50 3b 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 54 P;..interface IT
2b30: 79 70 65 49 6e 66 6f 20 3a 20 49 55 6e 6b 6e 6f ypeInfo : IUnkno
2b40: 77 6e 20 7b 0a 09 48 52 45 53 55 4c 54 20 47 65 wn {..HRESULT Ge
2b50: 74 54 79 70 65 41 74 74 72 28 4c 50 54 59 50 45 tTypeAttr(LPTYPE
2b60: 41 54 54 52 2a 29 3b 0a 09 48 52 45 53 55 4c 54 ATTR*);..HRESULT
2b70: 20 47 65 74 54 79 70 65 43 6f 6d 70 28 4c 50 54 GetTypeComp(LPT
2b80: 59 50 45 43 4f 4d 50 2a 29 3b 0a 09 48 52 45 53 YPECOMP*);..HRES
2b90: 55 4c 54 20 47 65 74 46 75 6e 63 44 65 73 63 28 ULT GetFuncDesc(
2ba0: 55 49 4e 54 2c 20 4c 50 46 55 4e 43 44 45 53 43 UINT, LPFUNCDESC
2bb0: 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 47 65 74 *);..HRESULT Get
2bc0: 56 61 72 44 65 73 63 28 55 49 4e 54 2c 20 4c 50 VarDesc(UINT, LP
2bd0: 56 41 52 44 45 53 43 2a 29 3b 0a 09 48 52 45 53 VARDESC*);..HRES
2be0: 55 4c 54 20 47 65 74 4e 61 6d 65 73 28 4d 45 4d ULT GetNames(MEM
2bf0: 42 45 52 49 44 2c 20 42 53 54 52 2a 2c 20 55 49 BERID, BSTR*, UI
2c00: 4e 54 2c 20 55 49 4e 54 2a 29 3b 0a 09 48 52 45 NT, UINT*);..HRE
2c10: 53 55 4c 54 20 47 65 74 52 65 66 54 79 70 65 4f SULT GetRefTypeO
2c20: 66 49 6d 70 6c 54 79 70 65 28 55 49 4e 54 2c 20 fImplType(UINT,
2c30: 48 52 45 46 54 59 50 45 2a 29 3b 0a 09 48 52 45 HREFTYPE*);..HRE
2c40: 53 55 4c 54 20 47 65 74 49 6d 70 6c 54 79 70 65 SULT GetImplType
2c50: 46 6c 61 67 73 28 55 49 4e 54 2c 20 49 4e 54 2a Flags(UINT, INT*
2c60: 29 3b 0a 09 48 52 45 53 55 4c 54 20 47 65 74 49 );..HRESULT GetI
2c70: 44 73 4f 66 4e 61 6d 65 73 28 4c 50 4f 4c 45 53 DsOfNames(LPOLES
2c80: 54 52 2a 2c 20 55 49 4e 54 2c 20 4d 45 4d 42 45 TR*, UINT, MEMBE
2c90: 52 49 44 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 RID*);..HRESULT
2ca0: 49 6e 76 6f 6b 65 28 50 56 4f 49 44 2c 20 4d 45 Invoke(PVOID, ME
2cb0: 4d 42 45 52 49 44 2c 20 57 4f 52 44 2c 20 44 49 MBERID, WORD, DI
2cc0: 53 50 50 41 52 41 4d 53 2a 2c 20 56 41 52 49 41 SPPARAMS*, VARIA
2cd0: 4e 54 2a 2c 20 45 58 43 45 50 49 4e 46 4f 2a 2c NT*, EXCEPINFO*,
2ce0: 0a 09 20 20 55 49 4e 54 2a 29 3b 0a 09 48 52 45 .. UINT*);..HRE
2cf0: 53 55 4c 54 20 47 65 74 44 6f 63 75 6d 65 6e 74 SULT GetDocument
2d00: 61 74 69 6f 6e 28 4d 45 4d 42 45 52 49 44 2c 20 ation(MEMBERID,
2d10: 42 53 54 52 2a 2c 20 42 53 54 52 2a 2c 20 44 57 BSTR*, BSTR*, DW
2d20: 4f 52 44 2a 2c 20 42 53 54 52 2a 29 3b 0a 09 48 ORD*, BSTR*);..H
2d30: 52 45 53 55 4c 54 20 47 65 74 44 6c 6c 45 6e 74 RESULT GetDllEnt
2d40: 72 79 28 4d 45 4d 42 45 52 49 44 2c 20 49 4e 56 ry(MEMBERID, INV
2d50: 4f 4b 45 4b 49 4e 44 2c 20 42 53 54 52 2a 2c 20 OKEKIND, BSTR*,
2d60: 42 53 54 52 2a 2c 20 57 4f 52 44 2a 29 3b 0a 09 BSTR*, WORD*);..
2d70: 48 52 45 53 55 4c 54 20 47 65 74 52 65 66 54 79 HRESULT GetRefTy
2d80: 70 65 49 6e 66 6f 28 48 52 45 46 54 59 50 45 2c peInfo(HREFTYPE,
2d90: 20 4c 50 54 59 50 45 49 4e 46 4f 2a 29 3b 0a 09 LPTYPEINFO*);..
2da0: 48 52 45 53 55 4c 54 20 41 64 64 72 65 73 73 4f HRESULT AddressO
2db0: 66 4d 65 6d 62 65 72 28 4d 45 4d 42 45 52 49 44 fMember(MEMBERID
2dc0: 2c 20 49 4e 56 4f 4b 45 4b 49 4e 44 2c 20 50 56 , INVOKEKIND, PV
2dd0: 4f 49 44 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 OID*);..HRESULT
2de0: 43 72 65 61 74 65 49 6e 73 74 61 6e 63 65 28 4c CreateInstance(L
2df0: 50 55 4e 4b 4e 4f 57 4e 2c 20 52 45 46 49 49 44 PUNKNOWN, REFIID
2e00: 2c 20 50 56 4f 49 44 2a 29 3b 0a 09 48 52 45 53 , PVOID*);..HRES
2e10: 55 4c 54 20 47 65 74 4d 6f 70 73 28 4d 45 4d 42 ULT GetMops(MEMB
2e20: 45 52 49 44 2c 20 42 53 54 52 2a 29 3b 0a 09 48 ERID, BSTR*);..H
2e30: 52 45 53 55 4c 54 20 47 65 74 43 6f 6e 74 61 69 RESULT GetContai
2e40: 6e 69 6e 67 54 79 70 65 4c 69 62 28 4c 50 54 59 ningTypeLib(LPTY
2e50: 50 45 4c 49 42 2a 2c 20 55 49 4e 54 2a 29 3b 0a PELIB*, UINT*);.
2e60: 09 76 6f 69 64 20 52 65 6c 65 61 73 65 54 79 70 .void ReleaseTyp
2e70: 65 41 74 74 72 28 4c 50 54 59 50 45 41 54 54 52 eAttr(LPTYPEATTR
2e80: 29 3b 0a 09 76 6f 69 64 20 52 65 6c 65 61 73 65 );..void Release
2e90: 46 75 6e 63 44 65 73 63 28 4c 50 46 55 4e 43 44 FuncDesc(LPFUNCD
2ea0: 45 53 43 29 3b 0a 09 76 6f 69 64 20 52 65 6c 65 ESC);..void Rele
2eb0: 61 73 65 56 61 72 44 65 73 63 28 4c 50 56 41 52 aseVarDesc(LPVAR
2ec0: 44 45 53 43 29 3b 0a 7d 0a 61 6c 69 61 73 20 49 DESC);.}.alias I
2ed0: 54 79 70 65 49 6e 66 6f 20 4c 50 54 59 50 45 49 TypeInfo LPTYPEI
2ee0: 4e 46 4f 3b 0a 0a 69 6e 74 65 72 66 61 63 65 20 NFO;..interface
2ef0: 49 54 79 70 65 49 6e 66 6f 32 20 3a 20 49 54 79 ITypeInfo2 : ITy
2f00: 70 65 49 6e 66 6f 20 7b 0a 09 48 52 45 53 55 4c peInfo {..HRESUL
2f10: 54 20 47 65 74 54 79 70 65 4b 69 6e 64 28 54 59 T GetTypeKind(TY
2f20: 50 45 4b 49 4e 44 2a 29 3b 0a 09 48 52 45 53 55 PEKIND*);..HRESU
2f30: 4c 54 20 47 65 74 54 79 70 65 46 6c 61 67 73 28 LT GetTypeFlags(
2f40: 55 4c 4f 4e 47 2a 29 3b 0a 09 48 52 45 53 55 4c ULONG*);..HRESUL
2f50: 54 20 47 65 74 46 75 6e 63 49 6e 64 65 78 4f 66 T GetFuncIndexOf
2f60: 4d 65 6d 49 64 28 4d 45 4d 42 45 52 49 44 2c 20 MemId(MEMBERID,
2f70: 49 4e 56 4f 4b 45 4b 49 4e 44 2c 20 55 49 4e 54 INVOKEKIND, UINT
2f80: 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 47 65 74 *);..HRESULT Get
2f90: 56 61 72 49 6e 64 65 78 4f 66 4d 65 6d 49 64 28 VarIndexOfMemId(
2fa0: 4d 45 4d 42 45 52 49 44 2c 20 55 49 4e 54 2a 29 MEMBERID, UINT*)
2fb0: 3b 0a 09 48 52 45 53 55 4c 54 20 47 65 74 43 75 ;..HRESULT GetCu
2fc0: 73 74 44 61 74 61 28 52 45 46 47 55 49 44 2c 20 stData(REFGUID,
2fd0: 56 41 52 49 41 4e 54 2a 29 3b 0a 09 48 52 45 53 VARIANT*);..HRES
2fe0: 55 4c 54 20 47 65 74 46 75 6e 63 43 75 73 74 44 ULT GetFuncCustD
2ff0: 61 74 61 28 55 49 4e 54 2c 20 52 45 46 47 55 49 ata(UINT, REFGUI
3000: 44 2c 20 56 41 52 49 41 4e 54 2a 29 3b 0a 09 48 D, VARIANT*);..H
3010: 52 45 53 55 4c 54 20 47 65 74 50 61 72 61 6d 43 RESULT GetParamC
3020: 75 73 74 44 61 74 61 28 55 49 4e 54 2c 20 55 49 ustData(UINT, UI
3030: 4e 54 2c 20 52 45 46 47 55 49 44 2c 20 56 41 52 NT, REFGUID, VAR
3040: 49 41 4e 54 2a 29 3b 0a 09 48 52 45 53 55 4c 54 IANT*);..HRESULT
3050: 20 47 65 74 56 61 72 43 75 73 74 44 61 74 61 28 GetVarCustData(
3060: 55 49 4e 54 2c 20 52 45 46 47 55 49 44 2c 20 56 UINT, REFGUID, V
3070: 41 52 49 41 4e 54 2a 29 3b 0a 09 48 52 45 53 55 ARIANT*);..HRESU
3080: 4c 54 20 47 65 74 49 6d 70 6c 54 79 70 65 43 75 LT GetImplTypeCu
3090: 73 74 44 61 74 61 28 55 49 4e 54 2c 20 52 45 46 stData(UINT, REF
30a0: 47 55 49 44 2c 20 56 41 52 49 41 4e 54 2a 29 3b GUID, VARIANT*);
30b0: 0a 09 48 52 45 53 55 4c 54 20 47 65 74 44 6f 63 ..HRESULT GetDoc
30c0: 75 6d 65 6e 74 61 74 69 6f 6e 32 28 4d 45 4d 42 umentation2(MEMB
30d0: 45 52 49 44 2c 20 4c 43 49 44 2c 20 42 53 54 52 ERID, LCID, BSTR
30e0: 2a 2c 20 44 57 4f 52 44 2a 2c 20 42 53 54 52 2a *, DWORD*, BSTR*
30f0: 29 3b 0a 09 48 52 45 53 55 4c 54 20 47 65 74 41 );..HRESULT GetA
3100: 6c 6c 43 75 73 74 44 61 74 61 28 43 55 53 54 44 llCustData(CUSTD
3110: 41 54 41 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 ATA*);..HRESULT
3120: 47 65 74 41 6c 6c 46 75 6e 63 43 75 73 74 44 61 GetAllFuncCustDa
3130: 74 61 28 55 49 4e 54 2c 20 43 55 53 54 44 41 54 ta(UINT, CUSTDAT
3140: 41 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 47 65 A*);..HRESULT Ge
3150: 74 41 6c 6c 50 61 72 61 6d 43 75 73 74 44 61 74 tAllParamCustDat
3160: 61 28 55 49 4e 54 2c 20 55 49 4e 54 2c 20 43 55 a(UINT, UINT, CU
3170: 53 54 44 41 54 41 2a 29 3b 0a 09 48 52 45 53 55 STDATA*);..HRESU
3180: 4c 54 20 47 65 74 41 6c 6c 56 61 72 43 75 73 74 LT GetAllVarCust
3190: 44 61 74 61 28 55 49 4e 54 2c 20 43 55 53 54 44 Data(UINT, CUSTD
31a0: 41 54 41 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 ATA*);..HRESULT
31b0: 47 65 74 41 6c 6c 49 6d 70 6c 54 79 70 65 43 75 GetAllImplTypeCu
31c0: 73 74 44 61 74 61 28 55 49 4e 54 2c 20 43 55 53 stData(UINT, CUS
31d0: 54 44 41 54 41 2a 29 3b 0a 7d 0a 61 6c 69 61 73 TDATA*);.}.alias
31e0: 20 49 54 79 70 65 49 6e 66 6f 32 20 4c 50 54 59 ITypeInfo2 LPTY
31f0: 50 45 49 4e 46 4f 32 3b 0a 0a 69 6e 74 65 72 66 PEINFO2;..interf
3200: 61 63 65 20 49 54 79 70 65 4c 69 62 20 3a 20 49 ace ITypeLib : I
3210: 55 6e 6b 6e 6f 77 6e 20 7b 0a 09 55 49 4e 54 20 Unknown {..UINT
3220: 47 65 74 54 79 70 65 49 6e 66 6f 43 6f 75 6e 74 GetTypeInfoCount
3230: 28 29 3b 0a 09 48 52 45 53 55 4c 54 20 47 65 74 ();..HRESULT Get
3240: 54 79 70 65 49 6e 66 6f 28 55 49 4e 54 2c 20 49 TypeInfo(UINT, I
3250: 54 79 70 65 49 6e 66 6f 2a 2a 29 3b 0a 09 48 52 TypeInfo**);..HR
3260: 45 53 55 4c 54 20 47 65 74 54 79 70 65 49 6e 66 ESULT GetTypeInf
3270: 6f 54 79 70 65 28 55 49 4e 54 2c 20 54 59 50 45 oType(UINT, TYPE
3280: 4b 49 4e 44 2a 29 3b 0a 09 48 52 45 53 55 4c 54 KIND*);..HRESULT
3290: 20 47 65 74 54 79 70 65 49 6e 66 6f 4f 66 47 75 GetTypeInfoOfGu
32a0: 69 64 28 52 45 46 47 55 49 44 2c 20 49 54 79 70 id(REFGUID, ITyp
32b0: 65 49 6e 66 6f 2a 2a 29 3b 0a 09 48 52 45 53 55 eInfo**);..HRESU
32c0: 4c 54 20 47 65 74 4c 69 62 41 74 74 72 28 54 4c LT GetLibAttr(TL
32d0: 49 42 41 54 54 52 2a 2a 29 3b 0a 09 48 52 45 53 IBATTR**);..HRES
32e0: 55 4c 54 20 47 65 74 54 79 70 65 43 6f 6d 70 28 ULT GetTypeComp(
32f0: 49 54 79 70 65 43 6f 6d 70 2a 29 3b 0a 09 48 52 ITypeComp*);..HR
3300: 45 53 55 4c 54 20 47 65 74 44 6f 63 75 6d 65 6e ESULT GetDocumen
3310: 74 61 74 69 6f 6e 28 49 4e 54 2c 20 42 53 54 52 tation(INT, BSTR
3320: 2a 2c 20 42 53 54 52 2a 2c 20 44 57 4f 52 44 2a *, BSTR*, DWORD*
3330: 2c 20 42 53 54 52 2a 29 3b 0a 09 48 52 45 53 55 , BSTR*);..HRESU
3340: 4c 54 20 49 73 4e 61 6d 65 28 4c 50 4f 4c 45 53 LT IsName(LPOLES
3350: 54 52 2c 20 55 4c 4f 4e 47 2c 20 42 4f 4f 4c 2a TR, ULONG, BOOL*
3360: 29 3b 0a 09 48 52 45 53 55 4c 54 20 46 69 6e 64 );..HRESULT Find
3370: 4e 61 6d 65 28 4c 50 4f 4c 45 53 54 52 2c 20 55 Name(LPOLESTR, U
3380: 4c 4f 4e 47 2c 20 49 54 79 70 65 49 6e 66 6f 2a LONG, ITypeInfo*
3390: 2a 2c 20 4d 45 4d 42 45 52 49 44 2a 2c 20 55 53 *, MEMBERID*, US
33a0: 48 4f 52 54 2a 29 3b 0a 09 76 6f 69 64 20 52 65 HORT*);..void Re
33b0: 6c 65 61 73 65 54 4c 69 62 41 74 74 72 28 54 4c leaseTLibAttr(TL
33c0: 49 42 41 54 54 52 2a 29 3b 0a 7d 0a 61 6c 69 61 IBATTR*);.}.alia
33d0: 73 20 49 54 79 70 65 4c 69 62 20 4c 50 54 59 50 s ITypeLib LPTYP
33e0: 45 4c 49 42 3b 0a 0a 69 6e 74 65 72 66 61 63 65 ELIB;..interface
33f0: 20 49 54 79 70 65 4c 69 62 32 20 3a 20 49 54 79 ITypeLib2 : ITy
3400: 70 65 4c 69 62 20 7b 0a 09 48 52 45 53 55 4c 54 peLib {..HRESULT
3410: 20 47 65 74 43 75 73 74 44 61 74 61 28 52 45 46 GetCustData(REF
3420: 47 55 49 44 2c 20 56 41 52 49 41 4e 54 2a 29 3b GUID, VARIANT*);
3430: 0a 09 48 52 45 53 55 4c 54 20 47 65 74 4c 69 62 ..HRESULT GetLib
3440: 53 74 61 74 69 73 74 69 63 73 28 55 4c 4f 4e 47 Statistics(ULONG
3450: 2a 2c 20 55 4c 4f 4e 47 2a 29 3b 0a 09 48 52 45 *, ULONG*);..HRE
3460: 53 55 4c 54 20 47 65 74 44 6f 63 75 6d 65 6e 74 SULT GetDocument
3470: 61 74 69 6f 6e 32 28 49 4e 54 2c 20 4c 43 49 44 ation2(INT, LCID
3480: 2c 20 42 53 54 52 2a 2c 20 44 57 4f 52 44 2a 2c , BSTR*, DWORD*,
3490: 20 42 53 54 52 2a 29 3b 0a 09 48 52 45 53 55 4c BSTR*);..HRESUL
34a0: 54 20 47 65 74 41 6c 6c 43 75 73 74 44 61 74 61 T GetAllCustData
34b0: 28 43 55 53 54 44 41 54 41 2a 29 3b 0a 7d 0a 61 (CUSTDATA*);.}.a
34c0: 6c 69 61 73 20 49 54 79 70 65 4c 69 62 32 20 4c lias ITypeLib2 L
34d0: 50 54 59 50 45 4c 49 42 32 3b 0a 0a 69 6e 74 65 PTYPELIB2;..inte
34e0: 72 66 61 63 65 20 49 45 72 72 6f 72 49 6e 66 6f rface IErrorInfo
34f0: 20 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0a 09 48 : IUnknown {..H
3500: 52 45 53 55 4c 54 20 47 65 74 47 55 49 44 28 47 RESULT GetGUID(G
3510: 55 49 44 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 UID*);..HRESULT
3520: 47 65 74 53 6f 75 72 63 65 28 42 53 54 52 2a 29 GetSource(BSTR*)
3530: 3b 0a 09 48 52 45 53 55 4c 54 20 47 65 74 44 65 ;..HRESULT GetDe
3540: 73 63 72 69 70 74 69 6f 6e 28 42 53 54 52 2a 29 scription(BSTR*)
3550: 3b 0a 09 48 52 45 53 55 4c 54 20 47 65 74 48 65 ;..HRESULT GetHe
3560: 6c 70 46 69 6c 65 28 42 53 54 52 2a 29 3b 0a 09 lpFile(BSTR*);..
3570: 48 52 45 53 55 4c 54 20 47 65 74 48 65 6c 70 43 HRESULT GetHelpC
3580: 6f 6e 74 65 78 74 28 44 57 4f 52 44 2a 29 3b 0a ontext(DWORD*);.
3590: 7d 0a 61 6c 69 61 73 20 49 45 72 72 6f 72 49 6e }.alias IErrorIn
35a0: 66 6f 20 4c 50 45 52 52 4f 52 49 4e 46 4f 3b 0a fo LPERRORINFO;.
35b0: 0a 69 6e 74 65 72 66 61 63 65 20 49 43 72 65 61 .interface ICrea
35c0: 74 65 45 72 72 6f 72 49 6e 66 6f 20 3a 20 49 55 teErrorInfo : IU
35d0: 6e 6b 6e 6f 77 6e 20 7b 0a 09 48 52 45 53 55 4c nknown {..HRESUL
35e0: 54 20 53 65 74 47 55 49 44 28 52 45 46 47 55 49 T SetGUID(REFGUI
35f0: 44 29 3b 0a 09 48 52 45 53 55 4c 54 20 53 65 74 D);..HRESULT Set
3600: 53 6f 75 72 63 65 28 4c 50 4f 4c 45 53 54 52 29 Source(LPOLESTR)
3610: 3b 0a 09 48 52 45 53 55 4c 54 20 53 65 74 44 65 ;..HRESULT SetDe
3620: 73 63 72 69 70 74 69 6f 6e 28 4c 50 4f 4c 45 53 scription(LPOLES
3630: 54 52 29 3b 0a 09 48 52 45 53 55 4c 54 20 53 65 TR);..HRESULT Se
3640: 74 48 65 6c 70 46 69 6c 65 28 4c 50 4f 4c 45 53 tHelpFile(LPOLES
3650: 54 52 29 3b 0a 09 48 52 45 53 55 4c 54 20 53 65 TR);..HRESULT Se
3660: 74 48 65 6c 70 43 6f 6e 74 65 78 74 28 44 57 4f tHelpContext(DWO
3670: 52 44 29 3b 0a 7d 0a 61 6c 69 61 73 20 49 43 72 RD);.}.alias ICr
3680: 65 61 74 65 45 72 72 6f 72 49 6e 66 6f 2a 20 4c eateErrorInfo* L
3690: 50 43 52 45 41 54 45 45 52 52 4f 52 49 4e 46 4f PCREATEERRORINFO
36a0: 3b 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 53 75 ;..interface ISu
36b0: 70 70 6f 72 74 45 72 72 6f 72 49 6e 66 6f 20 3a pportErrorInfo :
36c0: 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0a 09 48 52 45 IUnknown {..HRE
36d0: 53 55 4c 54 20 49 6e 74 65 72 66 61 63 65 53 75 SULT InterfaceSu
36e0: 70 70 6f 72 74 73 45 72 72 6f 72 49 6e 66 6f 28 pportsErrorInfo(
36f0: 52 45 46 49 49 44 29 3b 0a 7d 0a 61 6c 69 61 73 REFIID);.}.alias
3700: 20 49 53 75 70 70 6f 72 74 45 72 72 6f 72 49 6e ISupportErrorIn
3710: 66 6f 20 4c 50 53 55 50 50 4f 52 54 45 52 52 4f fo LPSUPPORTERRO
3720: 52 49 4e 46 4f 3b 0a 0a 69 6e 74 65 72 66 61 63 RINFO;..interfac
3730: 65 20 49 52 65 63 6f 72 64 49 6e 66 6f 20 3a 20 e IRecordInfo :
3740: 49 55 6e 6b 6e 6f 77 6e 20 7b 0a 09 48 52 45 53 IUnknown {..HRES
3750: 55 4c 54 20 52 65 63 6f 72 64 49 6e 69 74 28 50 ULT RecordInit(P
3760: 56 4f 49 44 29 3b 0a 09 48 52 45 53 55 4c 54 20 VOID);..HRESULT
3770: 52 65 63 6f 72 64 43 6c 65 61 72 28 50 56 4f 49 RecordClear(PVOI
3780: 44 29 3b 0a 09 48 52 45 53 55 4c 54 20 52 65 63 D);..HRESULT Rec
3790: 6f 72 64 43 6f 70 79 28 50 56 4f 49 44 2c 20 50 ordCopy(PVOID, P
37a0: 56 4f 49 44 29 3b 0a 09 48 52 45 53 55 4c 54 20 VOID);..HRESULT
37b0: 47 65 74 47 75 69 64 28 47 55 49 44 2a 29 3b 0a GetGuid(GUID*);.
37c0: 09 48 52 45 53 55 4c 54 20 47 65 74 4e 61 6d 65 .HRESULT GetName
37d0: 28 42 53 54 52 2a 29 3b 0a 09 48 52 45 53 55 4c (BSTR*);..HRESUL
37e0: 54 20 47 65 74 53 69 7a 65 28 55 4c 4f 4e 47 2a T GetSize(ULONG*
37f0: 29 3b 0a 09 48 52 45 53 55 4c 54 20 47 65 74 54 );..HRESULT GetT
3800: 79 70 65 49 6e 66 6f 28 49 54 79 70 65 49 6e 66 ypeInfo(ITypeInf
3810: 6f 2a 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 47 o**);..HRESULT G
3820: 65 74 46 69 65 6c 64 28 50 56 4f 49 44 2c 20 4c etField(PVOID, L
3830: 50 43 4f 4c 45 53 54 52 2c 20 56 41 52 49 41 4e PCOLESTR, VARIAN
3840: 54 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 47 65 T*);..HRESULT Ge
3850: 74 46 69 65 6c 64 4e 6f 43 6f 70 79 28 50 56 4f tFieldNoCopy(PVO
3860: 49 44 2c 20 4c 50 43 4f 4c 45 53 54 52 2c 20 56 ID, LPCOLESTR, V
3870: 41 52 49 41 4e 54 2a 2c 20 50 56 4f 49 44 2a 29 ARIANT*, PVOID*)
3880: 3b 0a 09 48 52 45 53 55 4c 54 20 50 75 74 46 69 ;..HRESULT PutFi
3890: 65 6c 64 20 28 55 4c 4f 4e 47 2c 20 50 56 4f 49 eld (ULONG, PVOI
38a0: 44 2c 20 4c 50 43 4f 4c 45 53 54 52 2c 20 56 41 D, LPCOLESTR, VA
38b0: 52 49 41 4e 54 2a 29 3b 0a 09 48 52 45 53 55 4c RIANT*);..HRESUL
38c0: 54 20 50 75 74 46 69 65 6c 64 4e 6f 43 6f 70 79 T PutFieldNoCopy
38d0: 28 55 4c 4f 4e 47 2c 20 50 56 4f 49 44 2c 20 4c (ULONG, PVOID, L
38e0: 50 43 4f 4c 45 53 54 52 2c 20 56 41 52 49 41 4e PCOLESTR, VARIAN
38f0: 54 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 47 65 T*);..HRESULT Ge
3900: 74 46 69 65 6c 64 4e 61 6d 65 73 28 55 4c 4f 4e tFieldNames(ULON
3910: 47 2a 2c 20 42 53 54 52 2a 29 3b 0a 09 42 4f 4f G*, BSTR*);..BOO
3920: 4c 20 49 73 4d 61 74 63 68 69 6e 67 54 79 70 65 L IsMatchingType
3930: 28 29 3b 0a 09 50 56 4f 49 44 20 52 65 63 6f 72 ();..PVOID Recor
3940: 64 43 72 65 61 74 65 28 29 3b 0a 09 48 52 45 53 dCreate();..HRES
3950: 55 4c 54 20 52 65 63 6f 72 64 43 72 65 61 74 65 ULT RecordCreate
3960: 43 6f 70 79 28 50 56 4f 49 44 2c 20 50 56 4f 49 Copy(PVOID, PVOI
3970: 44 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 52 65 D*);..HRESULT Re
3980: 63 6f 72 64 44 65 73 74 72 6f 79 20 28 50 56 4f cordDestroy (PVO
3990: 49 44 29 3b 0a 7d 0a 61 6c 69 61 73 20 49 52 65 ID);.}.alias IRe
39a0: 63 6f 72 64 49 6e 66 6f 20 4c 50 52 45 43 4f 52 cordInfo LPRECOR
39b0: 44 49 4e 46 4f 3b 0a 0a 69 6e 74 65 72 66 61 63 DINFO;..interfac
39c0: 65 20 49 54 79 70 65 4d 61 72 73 68 61 6c 20 3a e ITypeMarshal :
39d0: 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0a 09 48 52 45 IUnknown {..HRE
39e0: 53 55 4c 54 20 53 69 7a 65 28 50 56 4f 49 44 2c SULT Size(PVOID,
39f0: 20 44 57 4f 52 44 2c 20 50 56 4f 49 44 2c 20 55 DWORD, PVOID, U
3a00: 4c 4f 4e 47 2a 29 3b 0a 09 48 52 45 53 55 4c 54 LONG*);..HRESULT
3a10: 20 4d 61 72 73 68 61 6c 28 50 56 4f 49 44 2c 20 Marshal(PVOID,
3a20: 44 57 4f 52 44 2c 20 50 56 4f 49 44 2c 20 55 4c DWORD, PVOID, UL
3a30: 4f 4e 47 2c 20 42 59 54 45 2a 2c 20 55 4c 4f 4e ONG, BYTE*, ULON
3a40: 47 2a 29 3b 0a 09 48 52 45 53 55 4c 54 20 55 6e G*);..HRESULT Un
3a50: 6d 61 72 73 68 61 6c 28 50 56 4f 49 44 2c 20 44 marshal(PVOID, D
3a60: 57 4f 52 44 2c 20 55 4c 4f 4e 47 2c 20 42 59 54 WORD, ULONG, BYT
3a70: 45 2a 2c 20 55 4c 4f 4e 47 2a 29 3b 0a 09 48 52 E*, ULONG*);..HR
3a80: 45 53 55 4c 54 20 46 72 65 65 28 50 56 4f 49 44 ESULT Free(PVOID
3a90: 29 3b 0a 7d 0a );.}.