Hex Artifact Content

Not logged in

Artifact 2b588d001c37b32393ea77948acf08a35f4544f5:


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                                   );.}.