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 use shared
::basetsd
::DWORD_PTR
;
7 use shared
::guiddef
::GUID
;
8 use shared
::minwindef
::{DWORD, WORD}
;
9 use shared
::winerror
::HRESULT
;
10 use shared
::wtypes
::{BSTR, VARIANT_BOOL, VARTYPE}
;
11 use um
::oaidl
::{DISPID, DISPID_UNKNOWN, DISPPARAMS, EXCEPINFO, IDispatch, IDispatchVtbl, VARIANT}
;
12 use um
::servprov
::IServiceProvider
;
13 use um
::unknwnbase
::{IUnknown, IUnknownVtbl}
;
15 DEFINE_GUID
!{IID_IDispatchEx
,
16 0xa6ef9860, 0xc720, 0x11d0, 0x93, 0x37, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9}
17 DEFINE_GUID
!{IID_IDispError
,
18 0xa6ef9861, 0xc720, 0x11d0, 0x93, 0x37, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9}
19 DEFINE_GUID
!{IID_IVariantChangeType
,
20 0xa6ef9862, 0xc720, 0x11d0, 0x93, 0x37, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9}
21 DEFINE_GUID
!{SID_VariantConversion
,
22 0x1f101481, 0xbccd, 0x11d0, 0x93, 0x36, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9}
23 DEFINE_GUID
!{SID_GetCaller
,
24 0x4717cc40, 0xbcb9, 0x11d0, 0x93, 0x36, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9}
25 DEFINE_GUID
!{SID_ProvideRuntimeContext
,
26 0x74a5040c, 0xdd0c, 0x48f0, 0xac, 0x85, 0x19, 0x4c, 0x32, 0x59, 0x18, 0xa}
27 DEFINE_GUID
!{IID_IProvideRuntimeContext
,
28 0x10e2414a, 0xec59, 0x49d2, 0xbc, 0x51, 0x5a, 0xdd, 0x2c, 0x36, 0xfe, 0xbc}
29 DEFINE_GUID
!{IID_IObjectIdentity
,
30 0xca04b7e6, 0xd21, 0x11d1, 0x8c, 0xc5, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85}
31 DEFINE_GUID
!{IID_ICanHandleException
,
32 0xc5598e60, 0xb307, 0x11d1, 0xb2, 0x7d, 0x0, 0x60, 0x08, 0xc3, 0xfb, 0xfb}
33 // pub const SID_GetScriptSite = IID_IActiveScriptSite;
34 pub const fdexNameCaseSensitive
: DWORD
= 0x00000001;
35 pub const fdexNameEnsure
: DWORD
= 0x00000002;
36 pub const fdexNameImplicit
: DWORD
= 0x00000004;
37 pub const fdexNameCaseInsensitive
: DWORD
= 0x00000008;
38 pub const fdexNameInternal
: DWORD
= 0x00000010;
39 pub const fdexNameNoDynamicProperties
: DWORD
= 0x00000020;
40 pub const fdexPropCanGet
: DWORD
= 0x00000001;
41 pub const fdexPropCannotGet
: DWORD
= 0x00000002;
42 pub const fdexPropCanPut
: DWORD
= 0x00000004;
43 pub const fdexPropCannotPut
: DWORD
= 0x00000008;
44 pub const fdexPropCanPutRef
: DWORD
= 0x00000010;
45 pub const fdexPropCannotPutRef
: DWORD
= 0x00000020;
46 pub const fdexPropNoSideEffects
: DWORD
= 0x00000040;
47 pub const fdexPropDynamicType
: DWORD
= 0x00000080;
48 pub const fdexPropCanCall
: DWORD
= 0x00000100;
49 pub const fdexPropCannotCall
: DWORD
= 0x00000200;
50 pub const fdexPropCanConstruct
: DWORD
= 0x00000400;
51 pub const fdexPropCannotConstruct
: DWORD
= 0x00000800;
52 pub const fdexPropCanSourceEvents
: DWORD
= 0x00001000;
53 pub const fdexPropCannotSourceEvents
: DWORD
= 0x00002000;
54 pub const grfdexPropCanAll
: DWORD
= fdexPropCanGet
| fdexPropCanPut
| fdexPropCanPutRef
55 | fdexPropCanCall
| fdexPropCanConstruct
| fdexPropCanSourceEvents
;
56 pub const grfdexPropCannotAll
: DWORD
= fdexPropCannotGet
| fdexPropCannotPut
| fdexPropCannotPutRef
57 | fdexPropCannotCall
| fdexPropCannotConstruct
| fdexPropCannotSourceEvents
;
58 pub const grfdexPropExtraAll
: DWORD
= fdexPropNoSideEffects
| fdexPropDynamicType
;
59 pub const grfdexPropAll
: DWORD
= grfdexPropCanAll
| grfdexPropCannotAll
| grfdexPropExtraAll
;
60 pub const fdexEnumDefault
: DWORD
= 0x00000001;
61 pub const fdexEnumAll
: DWORD
= 0x00000002;
62 pub const DISPATCH_CONSTRUCT
: DWORD
= 0x4000;
63 pub const DISPID_THIS
: DISPID
= -613;
64 pub const DISPID_STARTENUM
: DISPID
= DISPID_UNKNOWN
;
65 // extern RPC_IF_HANDLE __MIDL_itf_dispex_0000_0000_v0_0_c_ifspec;
66 // extern RPC_IF_HANDLE __MIDL_itf_dispex_0000_0000_v0_0_s_ifspec;
67 // EXTERN_C const IID IID_IDispatchEx;
68 RIDL
!{#[uuid(0xa6ef9860, 0xc720, 0x11d0, 0x93, 0x37, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9)]
69 interface
IDispatchEx(IDispatchExVtbl
): IDispatch(IDispatchVtbl
) {
80 pvarRes
: *mut VARIANT
,
82 pspCaller
: *mut IServiceProvider
,
84 fn DeleteMemberByName(
88 fn DeleteMemberByDispID(
91 fn GetMemberProperties(
105 fn GetNameSpaceParent(
106 ppunk
: *mut *mut IUnknown
,
109 // HRESULT STDMETHODCALLTYPE IDispatchEx_RemoteInvokeEx_Proxy(
110 // IDispatchEx * This,
117 // IServiceProvider *pspCaller,
120 // VARIANT *rgvarRefArg);
121 // void __RPC_STUB IDispatchEx_RemoteInvokeEx_Stub(
122 // IRpcStubBuffer *This,
123 // IRpcChannelBuffer *_pRpcChannelBuffer,
124 // PRPC_MESSAGE _pRpcMessage,
125 // DWORD *_pdwStubPhase);
126 // EXTERN_C const IID IID_IDispError;
127 RIDL
!{#[uuid(0xa6ef9861, 0xc720, 0x11d0, 0x93, 0x37, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9)]
128 interface
IDispError(IDispErrorVtbl
): IUnknown(IUnknownVtbl
) {
131 ppde
: *mut *mut IDispError
,
134 ppde
: *mut *mut IDispError
,
140 pbstrSource
: *mut BSTR
,
143 pbstrFileName
: *mut BSTR
,
144 pdwContext
: *mut DWORD
,
147 pbstrDescription
: *mut BSTR
,
150 // EXTERN_C const IID IID_IVariantChangeType;
151 RIDL
!{#[uuid(0xa6ef9862, 0xc720, 0x11d0, 0x93, 0x37, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9)]
152 interface
IVariantChangeType(IVariantChangeTypeVtbl
): IUnknown(IUnknownVtbl
) {
154 pvarDst
: *mut VARIANT
,
155 pvarSrc
: *mut VARIANT
,
160 // EXTERN_C const IID IID_IObjectIdentity;
161 RIDL
!{#[uuid(0xca04b7e6, 0x0d21, 0x11d1, 0x8c, 0xc5, 0x00, 0xc0, 0x4f, 0xc2, 0xb0, 0x85)]
162 interface
IObjectIdentity(IObjectIdentityVtbl
): IUnknown(IUnknownVtbl
) {
167 // EXTERN_C const IID IID_ICanHandleException;
168 RIDL
!{#[uuid(0xc5598e60, 0xb307, 0x11d1, 0xb2, 0x7d, 0x00, 0x60, 0x08, 0xc3, 0xfb, 0xfb)]
169 interface
ICanHandleException(ICanHandleExceptionVtbl
): IUnknown(IUnknownVtbl
) {
170 fn CanHandleException(
171 pExcepInfo
: *mut EXCEPINFO
,
175 // EXTERN_C const IID IID_IProvideRuntimeContext;
176 RIDL
!{#[uuid(0x10e2414a, 0xec59, 0x49d2, 0xbc, 0x51, 0x5a, 0xdd, 0x2c, 0x36, 0xfe, 0xbc)]
177 interface
IProvideRuntimeContext(IProvideRuntimeContextVtbl
): IUnknown(IUnknownVtbl
) {
178 fn GetCurrentSourceContext(
179 pdwContext
: *mut DWORD_PTR
,
180 pfExecutingGlobalCode
: *mut VARIANT_BOOL
,
183 // extern RPC_IF_HANDLE __MIDL_itf_dispex_0000_0006_v0_0_c_ifspec;
184 // extern RPC_IF_HANDLE __MIDL_itf_dispex_0000_0006_v0_0_s_ifspec;
185 // unsigned long __RPC_USER BSTR_UserSize( __RPC__in unsigned long *, unsigned long, __RPC__in BSTR * );
186 // unsigned char * __RPC_USER BSTR_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * );
187 // unsigned char * __RPC_USER BSTR_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * );
188 // void __RPC_USER BSTR_UserFree( __RPC__in unsigned long *, __RPC__in BSTR * );
189 // unsigned long __RPC_USER VARIANT_UserSize( __RPC__in unsigned long *, unsigned long, __RPC__in VARIANT * );
190 // unsigned char * __RPC_USER VARIANT_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in VARIANT * );
191 // unsigned char * __RPC_USER VARIANT_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out VARIANT * );
192 // void __RPC_USER VARIANT_UserFree( __RPC__in unsigned long *, __RPC__in VARIANT * );
193 // unsigned long __RPC_USER BSTR_UserSize64( __RPC__in unsigned long *, unsigned long, __RPC__in BSTR * );
194 // unsigned char * __RPC_USER BSTR_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * );
195 // unsigned char * __RPC_USER BSTR_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * );
196 // void __RPC_USER BSTR_UserFree64( __RPC__in unsigned long *, __RPC__in BSTR * );
197 // unsigned long __RPC_USER VARIANT_UserSize64( __RPC__in unsigned long *, unsigned long, __RPC__in VARIANT * );
198 // unsigned char * __RPC_USER VARIANT_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in VARIANT * );
199 // unsigned char * __RPC_USER VARIANT_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out VARIANT * );
200 // void __RPC_USER VARIANT_UserFree64( __RPC__in unsigned long *, __RPC__in VARIANT * );
201 // HRESULT STDMETHODCALLTYPE IDispatchEx_InvokeEx_Proxy(
202 // IDispatchEx * This,
209 // IServiceProvider *pspCaller);
210 // HRESULT STDMETHODCALLTYPE IDispatchEx_InvokeEx_Stub(
211 // IDispatchEx * This,
218 // IServiceProvider *pspCaller,
221 // VARIANT *rgvarRefArg);