xref: /reactos/sdk/include/psdk/dispex.idl (revision 40462c92)
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// HACK
19#define annotation(x)
20
21#ifndef DO_NO_IMPORTS
22import "ocidl.idl";
23import "oleidl.idl";
24import "oaidl.idl";
25import "servprov.idl";
26#endif
27
28cpp_quote("DEFINE_GUID(SID_VariantConversion, 0x1f101481,0xbccd,0x11d0,0x93,0x36,0x00,0xa0,0xc9,0xd,0xca,0xa9);")
29cpp_quote("DEFINE_GUID(SID_GetCaller, 0x4717cc40,0xbcb9,0x11d0,0x93,0x36,0x00,0xa0,0xc9,0xd,0xca,0xa9);")
30
31cpp_quote("#define fdexNameCaseSensitive       0x00000001L")
32cpp_quote("#define fdexNameEnsure              0x00000002L")
33cpp_quote("#define fdexNameImplicit            0x00000004L")
34cpp_quote("#define fdexNameCaseInsensitive     0x00000008L")
35cpp_quote("#define fdexNameInternal            0x00000010L")
36cpp_quote("#define fdexNameNoDynamicProperties 0x00000020L")
37
38cpp_quote("#define fdexPropCanGet              0x00000001L")
39cpp_quote("#define fdexPropCannotGet           0x00000002L")
40cpp_quote("#define fdexPropCanPut              0x00000004L")
41cpp_quote("#define fdexPropCannotPut           0x00000008L")
42cpp_quote("#define fdexPropCanPutRef           0x00000010L")
43cpp_quote("#define fdexPropCannotPutRef        0x00000020L")
44cpp_quote("#define fdexPropNoSideEffects       0x00000040L")
45cpp_quote("#define fdexPropDynamicType         0x00000080L")
46cpp_quote("#define fdexPropCanCall             0x00000100L")
47cpp_quote("#define fdexPropCannotCall          0x00000200L")
48cpp_quote("#define fdexPropCanConstruct        0x00000400L")
49cpp_quote("#define fdexPropCannotConstruct     0x00000800L")
50cpp_quote("#define fdexPropCanSourceEvents     0x00001000L")
51cpp_quote("#define fdexPropCannotSourceEvents  0x00002000L")
52
53cpp_quote("#define fdexEnumDefault             0x00000001L")
54cpp_quote("#define fdexEnumAll                 0x00000002L")
55
56cpp_quote("#define grfdexPropCanAll \\")
57cpp_quote("       (fdexPropCanGet | fdexPropCanPut | fdexPropCanPutRef | \\")
58cpp_quote("        fdexPropCanCall | fdexPropCanConstruct | fdexPropCanSourceEvents)")
59cpp_quote("#define grfdexPropCannotAll \\")
60cpp_quote("       (fdexPropCannotGet | fdexPropCannotPut | fdexPropCannotPutRef | \\")
61cpp_quote("        fdexPropCannotCall | fdexPropCannotConstruct | fdexPropCannotSourceEvents)")
62cpp_quote("#define grfdexPropExtraAll \\")
63cpp_quote("       (fdexPropNoSideEffects | fdexPropDynamicType)")
64cpp_quote("#define grfdexPropAll \\")
65cpp_quote("       (grfdexPropCanAll | grfdexPropCannotAll | grfdexPropExtraAll)")
66
67cpp_quote("#define DISPATCH_CONSTRUCT 0x4000")
68
69cpp_quote("#define DISPID_THIS (-613)")
70cpp_quote("#define DISPID_STARTENUM DISPID_UNKNOWN")
71
72[
73object,
74uuid(A6EF9860-C720-11d0-9337-00A0C90DCAA9),
75pointer_default(unique)
76]
77interface IDispatchEx : IDispatch
78{
79    HRESULT GetDispID(
80            [in] BSTR bstrName,
81            [in] DWORD grfdex,
82            [out] DISPID *pid);
83
84    [local]
85    HRESULT InvokeEx(
86            [in, annotation("__in")] DISPID id,
87            [in, annotation("__in")] LCID lcid,
88            [in, annotation("__in")] WORD wFlags,
89            [in, annotation("__in")] DISPPARAMS *pdp,
90            [out, annotation("__out_opt")] VARIANT *pvarRes,
91            [out, annotation("__out_opt")] EXCEPINFO *pei,
92            [in, unique, annotation("__in_opt")] IServiceProvider *pspCaller);
93
94    [call_as(InvokeEx)]
95    HRESULT RemoteInvokeEx(
96            [in] DISPID id,
97            [in] LCID lcid,
98            [in] DWORD dwFlags,
99            [in] DISPPARAMS *pdp,
100            [out] VARIANT *pvarRes,
101            [out] EXCEPINFO *pei,
102            [in, unique] IServiceProvider *pspCaller,
103            [in] UINT cvarRefArg,
104            [in, size_is(cvarRefArg)] UINT *rgiRefArg,
105            [in, out, size_is(cvarRefArg)] VARIANT *rgvarRefArg);
106
107    HRESULT DeleteMemberByName(
108            [in] BSTR bstrName,
109            [in] DWORD grfdex);
110
111    HRESULT DeleteMemberByDispID(
112            [in] DISPID id);
113
114    HRESULT GetMemberProperties(
115            [in] DISPID id,
116            [in] DWORD grfdexFetch,
117            [out] DWORD *pgrfdex);
118
119    HRESULT GetMemberName(
120            [in] DISPID id,
121            [out] BSTR *pbstrName);
122
123    HRESULT GetNextDispID(
124            [in] DWORD grfdex,
125            [in] DISPID id,
126            [out] DISPID *pid);
127
128    HRESULT GetNameSpaceParent([out] IUnknown **ppunk);
129}
130
131[
132object,
133uuid(A6EF9861-C720-11d0-9337-00A0C90DCAA9),
134pointer_default(unique)
135]
136interface IDispError : IUnknown
137{
138    HRESULT QueryErrorInfo(
139            [in] GUID guidErrorType,
140            [out] IDispError **ppde);
141
142    HRESULT GetNext(
143            [out] IDispError **ppde);
144
145    HRESULT GetHresult(
146            [out] HRESULT *phr);
147
148    HRESULT GetSource(
149            [out] BSTR *pbstrSource);
150
151    HRESULT GetHelpInfo(
152            [out] BSTR *pbstrFileName,
153            [out] DWORD *pdwContext);
154
155    HRESULT GetDescription(
156            [out] BSTR *pbstrDescription);
157}
158
159[
160object,
161uuid(A6EF9862-C720-11d0-9337-00A0C90DCAA9),
162pointer_default(unique)
163]
164interface IVariantChangeType : IUnknown
165{
166    HRESULT ChangeType(
167            [in, out, unique] VARIANT *pvarDst,
168            [in, unique] VARIANT *pvarSrc,
169            [in] LCID lcid,
170            [in] VARTYPE vtNew);
171}
172
173
174[
175object,
176uuid(CA04B7E6-0D21-11d1-8CC5-00C04FC2B085),
177pointer_default(unique)
178]
179interface IObjectIdentity : IUnknown
180{
181    HRESULT IsEqualObject(
182            [in] IUnknown *punk);
183}
184
185[
186    object,
187    uuid(c5598e60-b307-11d1-b27d-006008c3fbfb),
188    pointer_default(unique)
189]
190interface ICanHandleException : IUnknown
191{
192    HRESULT CanHandleException(
193            [in] EXCEPINFO *pExcepInfo,
194            [in] VARIANT *pvar);
195}
196
197[
198    object,
199    uuid(10e2414a-ec59-49d2-bc51-5add2c36febc),
200    pointer_default(unique)
201]
202interface IProvideRuntimeContext : IUnknown
203{
204    HRESULT GetCurrentSourceContext(
205            [out] DWORD_PTR *pdwContext,
206            [out] VARIANT_BOOL *pfExecutingGlobalCode);
207}
208