1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 //! Mappings for the contents of OAIdl.h
7 use shared
::basetsd
::ULONG_PTR
;
8 use shared
::guiddef
::{GUID, IID, REFGUID, REFIID}
;
9 use shared
::minwindef
::{BOOL, BYTE, DWORD, FLOAT, INT, UINT, ULONG, USHORT, WORD}
;
10 use shared
::rpcndr
::byte
;
12 BSTR
, CY
, DATE
, DECIMAL
, VARIANT_BOOL
, VARTYPE
, VT_BSTR
, VT_DISPATCH
, VT_ERROR
,
13 VT_I1
, VT_I2
, VT_I4
, VT_I8
, VT_RECORD
, VT_RESERVED
, VT_UNKNOWN
, VT_VARIANT
,
16 use shared
::wtypesbase
::{
17 BYTE_SIZEDARR
, DOUBLE
, DWORD_SIZEDARR
, HYPER_SIZEDARR
, LPCOLESTR
, LPOLESTR
, SCODE
,
20 use um
::unknwnbase
::{IUnknown, IUnknownVtbl}
;
21 use um
::winnt
::{CHAR, HRESULT, LCID, LONG, LONGLONG, PVOID, SHORT, ULONGLONG}
;
22 pub type CURRENCY
= CY
;
23 STRUCT
!{struct SAFEARRAYBOUND
{
27 pub type LPSAFEARRAYBOUND
= *mut SAFEARRAYBOUND
;
28 pub type wireBRECORD
= *mut _wireBRECORD
;
29 pub type wireVARIANT
= *mut _wireVARIANT
;
30 STRUCT
!{struct SAFEARR_BSTR
{
34 STRUCT
!{struct SAFEARR_UNKNOWN
{
36 apUnknown
: *mut *mut IUnknown
,
38 STRUCT
!{struct SAFEARR_DISPATCH
{
40 apDispatch
: *mut *mut IDispatch
,
42 STRUCT
!{struct SAFEARR_VARIANT
{
44 aVariant
: *mut wireVARIANT
,
46 STRUCT
!{struct SAFEARR_BRECORD
{
48 aRecord
: *mut wireBRECORD
,
50 STRUCT
!{struct SAFEARR_HAVEIID
{
52 apUnknown
: *mut *mut IUnknown
,
62 SF_UNKNOWN
= VT_UNKNOWN
,
63 SF_DISPATCH
= VT_DISPATCH
,
64 SF_VARIANT
= VT_VARIANT
,
65 SF_RECORD
= VT_RECORD
,
66 SF_HAVEIID
= VT_UNKNOWN
| VT_RESERVED
,
68 #[cfg(target_pointer_width = "32")]
69 UNION
!{union __MIDL_IOleAutomationTypes_0001
{
71 BstrStr BstrStr_mut
: SAFEARR_BSTR
,
72 UnknownStr UnknownStr_mut
: SAFEARR_UNKNOWN
,
73 DispatchStr DispatchStr_mut
: SAFEARR_DISPATCH
,
74 VariantStr VariantStr_mut
: SAFEARR_VARIANT
,
75 RecordStr RecordStr_mut
: SAFEARR_BRECORD
,
76 HaveIidStr HaveIidStr_mut
: SAFEARR_HAVEIID
,
77 ByteStr ByteStr_mut
: BYTE_SIZEDARR
,
78 WordStr WordStr_mut
: WORD_SIZEDARR
,
79 LongStr LongStr_mut
: DWORD_SIZEDARR
,
80 HyperStr HyperStr_mut
: HYPER_SIZEDARR
,
82 #[cfg(target_pointer_width = "64")]
83 UNION
!{union __MIDL_IOleAutomationTypes_0001
{
85 BstrStr BstrStr_mut
: SAFEARR_BSTR
,
86 UnknownStr UnknownStr_mut
: SAFEARR_UNKNOWN
,
87 DispatchStr DispatchStr_mut
: SAFEARR_DISPATCH
,
88 VariantStr VariantStr_mut
: SAFEARR_VARIANT
,
89 RecordStr RecordStr_mut
: SAFEARR_BRECORD
,
90 HaveIidStr HaveIidStr_mut
: SAFEARR_HAVEIID
,
91 ByteStr ByteStr_mut
: BYTE_SIZEDARR
,
92 WordStr WordStr_mut
: WORD_SIZEDARR
,
93 LongStr LongStr_mut
: DWORD_SIZEDARR
,
94 HyperStr HyperStr_mut
: HYPER_SIZEDARR
,
96 STRUCT
!{struct SAFEARRAYUNION
{
98 u
: __MIDL_IOleAutomationTypes_0001
,
100 STRUCT
!{struct _wireSAFEARRAY
{
105 uArrayStructs
: SAFEARRAYUNION
,
106 rgsaBound
: [SAFEARRAYBOUND
; 1],
108 pub type wireSAFEARRAY
= *mut _wireSAFEARRAY
;
109 pub type wirePSAFEARRAY
= *mut wireSAFEARRAY
;
110 STRUCT
!{struct SAFEARRAY
{
116 rgsabound
: [SAFEARRAYBOUND
; 1],
118 pub type LPSAFEARRAY
= *mut SAFEARRAY
;
119 pub const FADF_AUTO
: DWORD
= 0x1;
120 pub const FADF_STATIC
: DWORD
= 0x2;
121 pub const FADF_EMBEDDED
: DWORD
= 0x4;
122 pub const FADF_FIXEDSIZE
: DWORD
= 0x10;
123 pub const FADF_RECORD
: DWORD
= 0x20;
124 pub const FADF_HAVEIID
: DWORD
= 0x40;
125 pub const FADF_HAVEVARTYPE
: DWORD
= 0x80;
126 pub const FADF_BSTR
: DWORD
= 0x100;
127 pub const FADF_UNKNOWN
: DWORD
= 0x200;
128 pub const FADF_DISPATCH
: DWORD
= 0x400;
129 pub const FADF_VARIANT
: DWORD
= 0x800;
130 pub const FADF_RESERVED
: DWORD
= 0xf008;
131 STRUCT
!{struct __tagBRECORD
{
133 pRecInfo
: *mut IRecordInfo
,
135 UNION
!{union VARIANT_n3
{
137 llVal llVal_mut
: LONGLONG
,
140 iVal iVal_mut
: SHORT
,
141 fltVal fltVal_mut
: FLOAT
,
142 dblVal dblVal_mut
: DOUBLE
,
143 boolVal boolVal_mut
: VARIANT_BOOL
,
144 scode scode_mut
: SCODE
,
147 bstrVal bstrVal_mut
: BSTR
,
148 punkVal punkVal_mut
: *mut IUnknown
,
149 pdispVal pdispVal_mut
: *mut IDispatch
,
150 parray parray_mut
: *mut SAFEARRAY
,
151 pbVal pbVal_mut
: *mut BYTE
,
152 piVal piVal_mut
: *mut SHORT
,
153 plVal plVal_mut
: *mut LONG
,
154 pllVal pllVal_mut
: *mut LONGLONG
,
155 pfltVal pfltVal_mut
: *mut FLOAT
,
156 pdblVal pdblVal_mut
: *mut DOUBLE
,
157 pboolVal pboolVal_mut
: *mut VARIANT_BOOL
,
158 pscode pscode_mut
: *mut SCODE
,
159 pcyVal pcyVal_mut
: *mut CY
,
160 pdate pdate_mut
: *mut DATE
,
161 pbstrVal pbstrVal_mut
: *mut BSTR
,
162 ppunkVal ppunkVal_mut
: *mut *mut IUnknown
,
163 ppdispVal ppdispVal_mut
: *mut *mut IDispatch
,
164 pparray pparray_mut
: *mut *mut SAFEARRAY
,
165 pvarVal pvarVal_mut
: *mut VARIANT
,
166 byref byref_mut
: PVOID
,
168 uiVal uiVal_mut
: USHORT
,
169 ulVal ulVal_mut
: ULONG
,
170 ullVal ullVal_mut
: ULONGLONG
,
171 intVal intVal_mut
: INT
,
172 uintVal uintVal_mut
: UINT
,
173 pdecVal pdecVal_mut
: *mut DECIMAL
,
174 pcVal pcVal_mut
: *mut CHAR
,
175 puiVal puiVal_mut
: *mut USHORT
,
176 pulVal pulVal_mut
: *mut ULONG
,
177 pullVal pullVal_mut
: *mut ULONGLONG
,
178 pintVal pintVal_mut
: *mut INT
,
179 puintVal puintVal_mut
: *mut UINT
,
180 n4 n4_mut
: __tagBRECORD
,
182 STRUCT
!{struct __tagVARIANT
{
189 UNION
!{union VARIANT_n1
{
191 n2 n2_mut
: __tagVARIANT
,
192 decVal decVal_mut
: DECIMAL
,
194 STRUCT
!{struct VARIANT
{
197 pub type LPVARIANT
= *mut VARIANT
;
198 pub type VARIANTARG
= VARIANT
;
199 pub type LPVARIANTARG
= *mut VARIANT
;
200 pub type REFVARIANT
= *const VARIANT
;
201 STRUCT
!{struct _wireBRECORD
{
204 pRecInfo
: *mut IRecordInfo
,
207 UNION
!{union _wireVARIANT_u
{
209 llVal llVal_mut
: LONGLONG
,
212 iVal iVal_mut
: SHORT
,
213 fltVal fltVal_mut
: FLOAT
,
214 dblVal dblVal_mut
: DOUBLE
,
215 boolVal boolVal_mut
: VARIANT_BOOL
,
216 scode scode_mut
: SCODE
,
219 bstrVal bstrVal_mut
: wireBSTR
,
220 punkVal punkVal_mut
: *mut IUnknown
,
221 pdispVal pdispVal_mut
: *mut IDispatch
,
222 parray parray_mut
: wirePSAFEARRAY
,
223 brecVal brecVal_mut
: wireBRECORD
,
224 pbVal pbVal_mut
: *mut BYTE
,
225 piVal piVal_mut
: *mut SHORT
,
226 plVal plVal_mut
: *mut LONG
,
227 pllVal pllVal_mut
: *mut LONGLONG
,
228 pfltVal pfltVal_mut
: *mut FLOAT
,
229 pdblVal pdblVal_mut
: *mut DOUBLE
,
230 pboolVal pboolVal_mut
: *mut VARIANT_BOOL
,
231 pscode pscode_mut
: *mut SCODE
,
232 pcyVal pcyVal_mut
: *mut CY
,
233 pdate pdate_mut
: *mut DATE
,
234 pbstrVal pbstrVal_mut
: *mut wireBSTR
,
235 ppunkVal ppunkVal_mut
: *mut *mut IUnknown
,
236 ppdispVal ppdispVal_mut
: *mut *mut IDispatch
,
237 pparray pparray_mut
: *mut wirePSAFEARRAY
,
238 pvarVal pvarVal_mut
: *mut wireVARIANT
,
240 uiVal uiVal_mut
: USHORT
,
241 ulVal ulVal_mut
: ULONG
,
242 ullVal ullVal_mut
: ULONGLONG
,
243 intVal intVal_mut
: INT
,
244 uintVal uintVal_mut
: UINT
,
245 decVal decVal_mut
: DECIMAL
,
246 pdecVal pdecVal_mut
: *mut DECIMAL
,
247 pcVal pcVal_mut
: *mut CHAR
,
248 puiVal puiVal_mut
: *mut USHORT
,
249 pulVal pulVal_mut
: *mut ULONG
,
250 pullVal pullVal_mut
: *mut ULONGLONG
,
251 pintVal pintVal_mut
: *mut INT
,
252 puintVal puintVal_mut
: *mut UINT
,
254 STRUCT
!{struct _wireVARIANT
{
263 pub type DISPID
= LONG
;
264 pub type MEMBERID
= DISPID
;
265 pub type HREFTYPE
= DWORD
;
266 ENUM
!{enum TYPEKIND
{
277 UNION
!{union TYPEDESC_u
{
279 lptdesc lptdesc_mut
: *mut TYPEDESC
,
280 lpadesc lpadesc_mut
: *mut ARRAYDESC
,
281 hreftype hreftype_mut
: HREFTYPE
,
283 STRUCT
!{struct TYPEDESC
{
287 STRUCT
!{struct ARRAYDESC
{
290 rgbounds
: [SAFEARRAYBOUND
; 1],
292 STRUCT
!{struct PARAMDESCEX
{
294 varDefaultValue
: VARIANTARG
,
296 pub type LPPARAMDESCEX
= *mut PARAMDESCEX
;
297 STRUCT
!{struct PARAMDESC
{
298 pparamdescex
: LPPARAMDESCEX
,
301 pub type LPPARAMDESC
= *mut PARAMDESC
;
302 pub const PARAMFLAG_NONE
: DWORD
= 0;
303 pub const PARAMFLAG_FIN
: DWORD
= 0x1;
304 pub const PARAMFLAG_FOUT
: DWORD
= 0x2;
305 pub const PARAMFLAG_FLCID
: DWORD
= 0x4;
306 pub const PARAMFLAG_FRETVAL
: DWORD
= 0x8;
307 pub const PARAMFLAG_FOPT
: DWORD
= 0x10;
308 pub const PARAMFLAG_FHASDEFAULT
: DWORD
= 0x20;
309 pub const PARAMFLAG_FHASCUSTDATA
: DWORD
= 0x40;
310 STRUCT
!{struct IDLDESC
{
311 dwReserved
: ULONG_PTR
,
314 pub type LPIDLDESC
= *mut IDLDESC
;
315 pub const IDLFLAG_NONE
: DWORD
= PARAMFLAG_NONE
;
316 pub const IDLFLAG_FIN
: DWORD
= PARAMFLAG_FIN
;
317 pub const IDLFLAG_FOUT
: DWORD
= PARAMFLAG_FOUT
;
318 pub const IDLFLAG_FLCID
: DWORD
= PARAMFLAG_FLCID
;
319 pub const IDLFLAG_FRETVAL
: DWORD
= PARAMFLAG_FRETVAL
;
320 UNION
!{union ELEMDESC_u
{
322 idldesc idldesc_mut
: IDLDESC
,
323 paramdesc paramdesc_mut
: PARAMDESC
,
325 STRUCT
!{struct ELEMDESC
{
329 pub type LPELEMDESC
= *mut ELEMDESC
;
330 STRUCT
!{struct TYPEATTR
{
334 memidConstructor
: MEMBERID
,
335 memidDestructor
: MEMBERID
,
336 lpstrSchema
: LPOLESTR
,
337 cbSizeInstance
: ULONG
,
347 tdescAlias
: TYPEDESC
,
348 idldescType
: IDLDESC
,
350 pub type LPTYPEATTR
= *mut TYPEATTR
;
351 STRUCT
!{struct DISPPARAMS
{
352 rgvarg
: *mut VARIANTARG
,
353 rgdispidNamedArgs
: *mut DISPID
,
357 STRUCT
!{struct EXCEPINFO
{
361 bstrDescription
: BSTR
,
363 dwHelpContext
: DWORD
,
365 pfnDeferredFillIn
: Option
<unsafe extern "system" fn(
366 einfo
: *mut EXCEPINFO
,
370 ENUM
!{enum CALLCONV
{
383 ENUM
!{enum FUNCKIND
{
390 ENUM
!{enum INVOKEKIND
{
392 INVOKE_PROPERTYGET
= 2,
393 INVOKE_PROPERTYPUT
= 4,
394 INVOKE_PROPERTYPUTREF
= 8,
396 STRUCT
!{struct FUNCDESC
{
398 lprgscode
: *mut SCODE
,
399 lprgelemdescParam
: *mut ELEMDESC
,
407 elemdescFunc
: ELEMDESC
,
410 pub type LPFUNCDESC
= *mut FUNCDESC
;
417 pub const IMPLTYPEFLAG_FDEFAULT
: DWORD
= 0x1;
418 pub const IMPLTYPEFLAG_FSOURCE
: DWORD
= 0x2;
419 pub const IMPLTYPEFLAG_FRESTRICTED
: DWORD
= 0x4;
420 pub const IMPLTYPEFLAG_FDEFAULTVTABLE
: DWORD
= 0x8;
421 UNION
!{union VARDESC_u
{
423 oInst oInst_mut
: ULONG
,
424 lpvarValue lpvarValue_mut
: *mut VARIANT
,
426 STRUCT
!{struct VARDESC
{
428 lpstrSchema
: LPOLESTR
,
430 elemdescVar
: ELEMDESC
,
434 pub type LPVARDESC
= *mut VARDESC
;
435 ENUM
!{enum TYPEFLAGS
{
436 TYPEFLAG_FAPPOBJECT
= 0x1,
437 TYPEFLAG_FCANCREATE
= 0x2,
438 TYPEFLAG_FLICENSED
= 0x4,
439 TYPEFLAG_FPREDECLID
= 0x8,
440 TYPEFLAG_FHIDDEN
= 0x10,
441 TYPEFLAG_FCONTROL
= 0x20,
442 TYPEFLAG_FDUAL
= 0x40,
443 TYPEFLAG_FNONEXTENSIBLE
= 0x80,
444 TYPEFLAG_FOLEAUTOMATION
= 0x100,
445 TYPEFLAG_FRESTRICTED
= 0x200,
446 TYPEFLAG_FAGGREGATABLE
= 0x400,
447 TYPEFLAG_FREPLACEABLE
= 0x800,
448 TYPEFLAG_FDISPATCHABLE
= 0x1000,
449 TYPEFLAG_FREVERSEBIND
= 0x2000,
450 TYPEFLAG_FPROXY
= 0x4000,
452 ENUM
!{enum FUNCFLAGS
{
453 FUNCFLAG_FRESTRICTED
= 0x1,
454 FUNCFLAG_FSOURCE
= 0x2,
455 FUNCFLAG_FBINDABLE
= 0x4,
456 FUNCFLAG_FREQUESTEDIT
= 0x8,
457 FUNCFLAG_FDISPLAYBIND
= 0x10,
458 FUNCFLAG_FDEFAULTBIND
= 0x20,
459 FUNCFLAG_FHIDDEN
= 0x40,
460 FUNCFLAG_FUSESGETLASTERROR
= 0x80,
461 FUNCFLAG_FDEFAULTCOLLELEM
= 0x100,
462 FUNCFLAG_FUIDEFAULT
= 0x200,
463 FUNCFLAG_FNONBROWSABLE
= 0x400,
464 FUNCFLAG_FREPLACEABLE
= 0x800,
465 FUNCFLAG_FIMMEDIATEBIND
= 0x1000,
467 ENUM
!{enum VARFLAGS
{
468 VARFLAG_FREADONLY
= 0x1,
469 VARFLAG_FSOURCE
= 0x2,
470 VARFLAG_FBINDABLE
= 0x4,
471 VARFLAG_FREQUESTEDIT
= 0x8,
472 VARFLAG_FDISPLAYBIND
= 0x10,
473 VARFLAG_FDEFAULTBIND
= 0x20,
474 VARFLAG_FHIDDEN
= 0x40,
475 VARFLAG_FRESTRICTED
= 0x80,
476 VARFLAG_FDEFAULTCOLLELEM
= 0x100,
477 VARFLAG_FUIDEFAULT
= 0x200,
478 VARFLAG_FNONBROWSABLE
= 0x400,
479 VARFLAG_FREPLACEABLE
= 0x800,
480 VARFLAG_FIMMEDIATEBIND
= 0x1000,
482 STRUCT
!{struct CLEANLOCALSTORAGE
{
483 pInterface
: *mut IUnknown
,
487 STRUCT
!{struct CUSTDATAITEM
{
489 varValue
: VARIANTARG
,
491 pub type LPCUSTDATAITEM
= *mut CUSTDATAITEM
;
492 STRUCT
!{struct CUSTDATA
{
494 prgCustData
: LPCUSTDATAITEM
,
496 pub type LPCUSTDATA
= *mut CUSTDATA
;
497 pub type LPCREATETYPEINFO
= *mut ICreateTypeInfo
;
498 RIDL
!{#[uuid(0x00020405, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
499 interface
ICreateTypeInfo(ICreateTypeInfoVtbl
): IUnknown(IUnknownVtbl
) {
510 dwHelpContext
: DWORD
,
517 pTInfo
: *mut ITypeInfo
,
521 pFuncDesc
: *mut FUNCDESC
,
531 pStrSchema
: LPOLESTR
,
535 pVarDesc
: *mut VARDESC
,
537 fn SetFuncAndParamNames(
539 rgszNames
: *mut LPOLESTR
,
547 pTDescAlias
: *mut TYPEDESC
,
549 fn DefineFuncAsDllEntry(
552 szProcName
: LPOLESTR
,
556 szDocString
: LPOLESTR
,
560 szDocString
: LPOLESTR
,
562 fn SetFuncHelpContext(
564 dwHelpContext
: DWORD
,
566 fn SetVarHelpContext(
568 dwHelpContext
: DWORD
,
575 pIdlDesc
: *mut IDLDESC
,
577 fn LayOut() -> HRESULT
,
585 pub type LPDISPATCH
= *mut IDispatch
;
586 pub const DISPID_UNKNOWN
: INT
= -1;
587 pub const DISPID_VALUE
: INT
= 0;
588 pub const DISPID_PROPERTYPUT
: INT
= -3;
589 pub const DISPID_NEWENUM
: INT
= -4;
590 pub const DISPID_EVALUATE
: INT
= -5;
591 pub const DISPID_CONSTRUCTOR
: INT
= -6;
592 pub const DISPID_DESTRUCTOR
: INT
= -7;
593 pub const DISPID_COLLECT
: INT
= -8;
594 RIDL
!{#[uuid(0x00020400, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
595 interface
IDispatch(IDispatchVtbl
): IUnknown(IUnknownVtbl
) {
602 ppTInfo
: *mut *mut ITypeInfo
,
606 rgszNames
: *mut LPOLESTR
,
609 rgDispId
: *mut DISPID
,
612 dispIdMember
: DISPID
,
616 pDispParams
: *mut DISPPARAMS
,
617 pVarResult
: *mut VARIANT
,
618 pExcepInfo
: *mut EXCEPINFO
,
622 // IDispatch_RemoteInvoke_Proxy
623 // IDispatch_RemoteInvoke_Stub
626 // IEnumVARIANT_RemoteNext_Proxy
627 // IEnumVARIANT_RemoteNext_Stub
628 RIDL
!{#[uuid(0x0000002F, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
629 interface
IRecordInfo(IRecordInfoVtbl
): IUnknown(IUnknownVtbl
) {
644 pbstrName
: *mut BSTR
,
650 ppTypeInfo
: *mut *mut ITypeInfo
,
654 szFieldName
: LPCOLESTR
,
655 pvarField
: *mut VARIANT
,
659 szFieldName
: LPCOLESTR
,
660 pvarField
: *mut VARIANT
,
661 ppvDataCArray
: *mut PVOID
,
666 szFieldName
: LPCOLESTR
,
667 pvarField
: *mut VARIANT
,
672 szFieldName
: LPCOLESTR
,
673 pvarField
: *mut VARIANT
,
677 rgBstrNames
: *mut BSTR
,
680 pRecordInfo
: *mut IRecordInfo
,
682 fn RecordCreate() -> PVOID
,
691 pub type LPTYPECOMP
= *mut ITypeComp
;
692 ENUM
!{enum DESCKIND
{
694 DESCKIND_FUNCDESC
= DESCKIND_NONE
+ 1,
695 DESCKIND_VARDESC
= DESCKIND_FUNCDESC
+ 1,
696 DESCKIND_TYPECOMP
= DESCKIND_VARDESC
+ 1,
697 DESCKIND_IMPLICITAPPOBJ
= DESCKIND_TYPECOMP
+ 1,
698 DESCKIND_MAX
= DESCKIND_IMPLICITAPPOBJ
+ 1,
700 UNION
!{union BINDPTR
{
702 lpfuncdesc lpfuncdesc_mut
: *mut FUNCDESC
,
703 lpvardesc lpvardesc_mut
: *mut VARDESC
,
704 lptcomp lptcomp_mut
: *mut ITypeComp
,
706 pub type LPBINDPTR
= *mut BINDPTR
;
707 RIDL
!{#[uuid(0x00020403, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
708 interface
ITypeComp(ITypeCompVtbl
): IUnknown(IUnknownVtbl
) {
713 ppTInfo
: *mut *mut ITypeInfo
,
714 pDescKind
: *mut DESCKIND
,
715 pBindPtr
: *mut BINDPTR
,
720 ppTInfo
: *mut *mut ITypeInfo
,
721 ppTComp
: *mut *mut ITypeComp
,
730 STRUCT
!{struct TLIBATTR
{
738 RIDL
!{#[uuid(0x00020402, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
739 interface
ITypeLib(ITypeLibVtbl
): IUnknown(IUnknownVtbl
) {
740 fn GetTypeInfoCount() -> UINT
,
743 ppTInfo
: *mut *mut ITypeInfo
,
747 pTKind
: *mut TYPEKIND
,
749 fn GetTypeInfoOfGuid(
751 ppTInfo
: *mut *mut ITypeInfo
,
754 ppTLibAttr
: *mut *mut TLIBATTR
,
757 ppTComp
: *mut *mut ITypeComp
,
761 pbstrName
: *mut BSTR
,
762 pBstrDocString
: *mut BSTR
,
763 pdwHelpContext
: *mut DWORD
,
764 pBstrHelpFile
: *mut BSTR
,
774 ppTInfo
: *mut *mut ITypeInfo
,
775 rgMemId
: *mut MEMBERID
,
776 pcFound
: *mut USHORT
,
779 pTLibAttr
: *const TLIBATTR
,
782 RIDL
!{#[uuid(0x00020401, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
783 interface
ITypeInfo(ITypeInfoVtbl
): IUnknown(IUnknownVtbl
) {
785 ppTypeAttr
: *mut *mut TYPEATTR
,
788 ppTComp
: *mut *mut ITypeComp
,
792 ppFunDesc
: *mut *mut FUNCDESC
,
796 pPVarDesc
: *mut *mut VARDESC
,
800 rgBstrNames
: *mut BSTR
,
804 fn GetRefTypeOfImplType(
806 pRefType
: *mut HREFTYPE
,
810 pImplTypeFlags
: *mut INT
,
813 rgszNames
: *mut LPOLESTR
,
815 pMemId
: *mut MEMBERID
,
821 pDispParams
: *mut DISPPARAMS
,
822 pVarResult
: *mut VARIANT
,
823 pExcepInfo
: *mut EXCEPINFO
,
828 pBstrName
: *mut BSTR
,
829 pBstrDocString
: *mut BSTR
,
830 pdwHelpContext
: *mut DWORD
,
831 pBstrHelpFile
: *mut BSTR
,
836 pBstrDllName
: *mut BSTR
,
837 pBstrName
: *mut BSTR
,
838 pwOrdinal
: *mut WORD
,
842 ppTInfo
: *mut *mut ITypeInfo
,
850 pUnkOuter
: *mut IUnknown
,
856 pBstrMops
: *mut BSTR
,
858 fn GetContainingTypeLib(
859 ppTLib
: *mut *mut ITypeLib
,
863 pTypeAttr
: *mut TYPEATTR
,
866 pFuncDesc
: *mut FUNCDESC
,
869 pVarDesc
: *mut VARDESC
,
872 RIDL
!{#[uuid(0x1cf2b120, 0x547d, 0x101b, 0x8e, 0x65, 0x08, 0x00, 0x2b, 0x2b, 0xd1, 0x19)]
873 interface
IErrorInfo(IErrorInfoVtbl
): IUnknown(IUnknownVtbl
) {
878 pBstrSource
: *mut BSTR
,
881 pBstrDescription
: *mut BSTR
,
884 pBstrHelpFile
: *mut BSTR
,
887 pdwHelpContext
: *mut DWORD
,
890 RIDL
!{#[uuid(0x22f03340, 0x547d, 0x101b, 0x8e, 0x65, 0x08, 0x00, 0x2b, 0x2b, 0xd1, 0x19)]
891 interface
ICreateErrorInfo(ICreateErrorInfoVtbl
): IUnknown(IUnknownVtbl
) {
899 szDescription
: LPOLESTR
,
902 szHelpFile
: LPOLESTR
,
905 dwHelpContext
: DWORD
,
908 RIDL
!{#[uuid(0x3127ca40, 0x446e, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51)]
909 interface
IErrorLog(IErrorLogVtbl
): IUnknown(IUnknownVtbl
) {
911 pszPropName
: LPCOLESTR
,
912 pExcepInfo
: *const EXCEPINFO
,
915 pub type LPERRORLOG
= *mut IErrorLog
;