[PSDK] Update mmreg.h and rpcndr.h. CORE-13762
[reactos.git] / sdk / include / psdk / stdole32.idl
1 /*
2 * Copyright (C) 2003 Robert Shearman
3 * 2005 Huw Davies
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 *
19 */
20
21 #if 0
22 #pragma makedep install
23 #pragma makedep typelib
24 #endif
25
26 [
27 uuid(00020430-0000-0000-C000-000000000046),
28 restricted,
29 version(1.0),
30 helpstring("OLE Automation")
31 ]
32 library stdole
33 {
34 /* typedefs aren't stored in the type library.
35 These type names are known by the type compiler so it
36 doesn't really matter what we define them as. */
37
38 typedef void *VARIANT;
39 typedef wchar_t *BSTR;
40 typedef unsigned long SCODE;
41 typedef unsigned long HRESULT;
42
43 typedef struct GUID {
44 unsigned long Data1;
45 unsigned short Data2;
46 unsigned short Data3;
47 unsigned char Data4[ 8 ];
48 } GUID;
49
50 typedef struct DISPPARAMS {
51 VARIANT *rgvarg;
52 long *rgdispidNamedArgs;
53 unsigned int cArgs;
54 unsigned int cNamedArgs;
55 } DISPPARAMS;
56
57 typedef struct EXCEPINFO {
58 unsigned short wCode;
59 unsigned short wReserved;
60 BSTR bstrSource;
61 BSTR bstrDescription;
62 BSTR bstrHelpFile;
63 unsigned long dwHelpContext;
64 void *pvReserved;
65 void *pfnDeferredFillIn;
66 SCODE scode;
67 } EXCEPINFO;
68
69 [
70 odl,
71 uuid(00000000-0000-0000-C000-000000000046)
72 ]
73 interface IUnknown
74 {
75 [restricted]
76 HRESULT QueryInterface(
77 [in] GUID *riid,
78 [out] void **ppvObj);
79
80 [restricted]
81 unsigned long AddRef();
82
83 [restricted]
84 unsigned long Release();
85 }
86
87 [
88 odl,
89 uuid(00020400-0000-0000-C000-000000000046)
90 ]
91 interface IDispatch : IUnknown
92 {
93 [restricted]
94 HRESULT GetTypeInfoCount(
95 [out] unsigned int *pctinfo);
96
97 [restricted]
98 HRESULT GetTypeInfo(
99 [in] unsigned int itinfo,
100 [in] unsigned long lcid,
101 [out] void **pptinfo);
102
103 [restricted]
104 HRESULT GetIDsOfNames(
105 [in] GUID *riid,
106 [in] char **rgszNames,
107 [in] unsigned int cNames,
108 [in] unsigned long lcid,
109 [out] long *rgdispid);
110
111 [restricted]
112 HRESULT Invoke(
113 [in] long dispidMember,
114 [in] GUID *riid,
115 [in] unsigned long lcid,
116 [in] unsigned short wFlags,
117 [in] DISPPARAMS *pdispparams,
118 [out] VARIANT *pvarResult,
119 [out] EXCEPINFO *pexcepinfo,
120 [out] unsigned int *puArgErr);
121
122 }
123
124 [
125 odl,
126 uuid(00020404-0000-0000-C000-000000000046)
127 ]
128 interface IEnumVARIANT : IUnknown
129 {
130 HRESULT Next(
131 [in] unsigned long celt,
132 [in] VARIANT *rgvar,
133 [out] unsigned long *pceltFetched);
134
135 HRESULT Skip(
136 [in] unsigned long celt);
137
138 HRESULT Reset();
139
140 HRESULT Clone(
141 [out] IEnumVARIANT **ppenum);
142 }
143 };