[DDK]
[reactos.git] / include / psdk / dispex.idl
1 /*
2 * Copyright 2004 Kevin Koltzau
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #ifndef DO_NO_IMPORTS
20 import "ocidl.idl";
21 import "oleidl.idl";
22 import "oaidl.idl";
23 import "servprov.idl";
24 #endif
25
26 cpp_quote("DEFINE_GUID(SID_VariantConversion, 0x1f101481,0xbccd,0x11d0,0x93,0x36,0x00,0xa0,0xc9,0xd,0xca,0xa9);")
27 cpp_quote("DEFINE_GUID(SID_GetCaller, 0x4717cc40,0xbcb9,0x11d0,0x93,0x36,0x00,0xa0,0xc9,0xd,0xca,0xa9);")
28
29 cpp_quote("#define fdexNameCaseSensitive 0x00000001L")
30 cpp_quote("#define fdexNameEnsure 0x00000002L")
31 cpp_quote("#define fdexNameImplicit 0x00000004L")
32 cpp_quote("#define fdexNameCaseInsensitive 0x00000008L")
33 cpp_quote("#define fdexNameInternal 0x00000010L")
34 cpp_quote("#define fdexNameNoDynamicProperties 0x00000020L")
35
36 cpp_quote("#define fdexPropCanGet 0x00000001L")
37 cpp_quote("#define fdexPropCannotGet 0x00000002L")
38 cpp_quote("#define fdexPropCanPut 0x00000004L")
39 cpp_quote("#define fdexPropCannotPut 0x00000008L")
40 cpp_quote("#define fdexPropCanPutRef 0x00000010L")
41 cpp_quote("#define fdexPropCannotPutRef 0x00000020L")
42 cpp_quote("#define fdexPropNoSideEffects 0x00000040L")
43 cpp_quote("#define fdexPropDynamicType 0x00000080L")
44 cpp_quote("#define fdexPropCanCall 0x00000100L")
45 cpp_quote("#define fdexPropCannotCall 0x00000200L")
46 cpp_quote("#define fdexPropCanConstruct 0x00000400L")
47 cpp_quote("#define fdexPropCannotConstruct 0x00000800L")
48 cpp_quote("#define fdexPropCanSourceEvents 0x00001000L")
49 cpp_quote("#define fdexPropCannotSourceEvents 0x00002000L")
50
51 cpp_quote("#define fdexEnumDefault 0x00000001L")
52 cpp_quote("#define fdexEnumAll 0x00000002L")
53
54 cpp_quote("#define grfdexPropCanAll \\")
55 cpp_quote(" (fdexPropCanGet | fdexPropCanPut | fdexPropCanPutRef | \\")
56 cpp_quote(" fdexPropCanCall | fdexPropCanConstruct | fdexPropCanSourceEvents)")
57 cpp_quote("#define grfdexPropCannotAll \\")
58 cpp_quote(" (fdexPropCannotGet | fdexPropCannotPut | fdexPropCannotPutRef | \\")
59 cpp_quote(" fdexPropCannotCall | fdexPropCannotConstruct | fdexPropCannotSourceEvents)")
60 cpp_quote("#define grfdexPropExtraAll \\")
61 cpp_quote(" (fdexPropNoSideEffects | fdexPropDynamicType)")
62 cpp_quote("#define grfdexPropAll \\")
63 cpp_quote(" (grfdexPropCanAll | grfdexPropCannotAll | grfdexPropExtraAll)")
64
65 cpp_quote("#define DISPATCH_CONSTRUCT 0x4000")
66
67 cpp_quote("#define DISPID_THIS (-613)")
68 cpp_quote("#define DISPID_STARTENUM DISPID_UNKNOWN")
69
70 [
71 object,
72 uuid(A6EF9860-C720-11d0-9337-00A0C90DCAA9),
73 pointer_default(unique)
74 ]
75 interface IDispatchEx : IDispatch
76 {
77 HRESULT GetDispID(
78 [in] BSTR bstrName,
79 [in] DWORD grfdex,
80 [out] DISPID *pid);
81
82 [local]
83 HRESULT InvokeEx(
84 [in, annotation("__in")] DISPID id,
85 [in, annotation("__in")] LCID lcid,
86 [in, annotation("__in")] WORD wFlags,
87 [in, annotation("__in")] DISPPARAMS *pdp,
88 [out, annotation("__out_opt")] VARIANT *pvarRes,
89 [out, annotation("__out_opt")] EXCEPINFO *pei,
90 [in, unique, annotation("__in_opt")] IServiceProvider *pspCaller);
91
92 [call_as(InvokeEx)]
93 HRESULT RemoteInvokeEx(
94 [in] DISPID id,
95 [in] LCID lcid,
96 [in] DWORD dwFlags,
97 [in] DISPPARAMS *pdp,
98 [out] VARIANT *pvarRes,
99 [out] EXCEPINFO *pei,
100 [in, unique] IServiceProvider *pspCaller,
101 [in] UINT cvarRefArg,
102 [in, size_is(cvarRefArg)] UINT *rgiRefArg,
103 [in, out, size_is(cvarRefArg)] VARIANT *rgvarRefArg);
104
105 HRESULT DeleteMemberByName(
106 [in] BSTR bstrName,
107 [in] DWORD grfdex);
108
109 HRESULT DeleteMemberByDispID(
110 [in] DISPID id);
111
112 HRESULT GetMemberProperties(
113 [in] DISPID id,
114 [in] DWORD grfdexFetch,
115 [out] DWORD *pgrfdex);
116
117 HRESULT GetMemberName(
118 [in] DISPID id,
119 [out] BSTR *pbstrName);
120
121 HRESULT GetNextDispID(
122 [in] DWORD grfdex,
123 [in] DISPID id,
124 [out] DISPID *pid);
125
126 HRESULT GetNameSpaceParent([out] IUnknown **ppunk);
127 }
128
129 [
130 object,
131 uuid(A6EF9861-C720-11d0-9337-00A0C90DCAA9),
132 pointer_default(unique)
133 ]
134 interface IDispError : IUnknown
135 {
136 HRESULT QueryErrorInfo(
137 [in] GUID guidErrorType,
138 [out] IDispError **ppde);
139
140 HRESULT GetNext(
141 [out] IDispError **ppde);
142
143 HRESULT GetHresult(
144 [out] HRESULT *phr);
145
146 HRESULT GetSource(
147 [out] BSTR *pbstrSource);
148
149 HRESULT GetHelpInfo(
150 [out] BSTR *pbstrFileName,
151 [out] DWORD *pdwContext);
152
153 HRESULT GetDescription(
154 [out] BSTR *pbstrDescription);
155 }
156
157 [
158 object,
159 uuid(A6EF9862-C720-11d0-9337-00A0C90DCAA9),
160 pointer_default(unique)
161 ]
162 interface IVariantChangeType : IUnknown
163 {
164 HRESULT ChangeType(
165 [in, out, unique] VARIANT *pvarDst,
166 [in, unique] VARIANT *pvarSrc,
167 [in] LCID lcid,
168 [in] VARTYPE vtNew);
169 }
170
171
172 [
173 object,
174 uuid(CA04B7E6-0D21-11d1-8CC5-00C04FC2B085),
175 pointer_default(unique)
176 ]
177 interface IObjectIdentity : IUnknown
178 {
179 HRESULT IsEqualObject(
180 [in] IUnknown *punk);
181 }
182
183 [
184 object,
185 uuid(c5598e60-b307-11d1-b27d-006008c3fbfb),
186 pointer_default(unique)
187 ]
188 interface ICanHandleException : IUnknown
189 {
190 HRESULT CanHandleException(
191 [in] EXCEPINFO *pExcepInfo,
192 [in] VARIANT *pvar);
193 }
194
195 [
196 object,
197 uuid(10e2414a-ec59-49d2-bc51-5add2c36febc),
198 pointer_default(unique)
199 ]
200 interface IProvideRuntimeContext : IUnknown
201 {
202 HRESULT GetCurrentSourceContext(
203 [out] DWORD_PTR *pdwContext,
204 [out] VARIANT_BOOL *pfExecutingGlobalCode);
205 }