[STDOLE32.TLB]
[reactos.git] / reactos / dll / win32 / stdole32.tlb / std_ole_v1.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 [
22 uuid(00020430-0000-0000-C000-000000000046),
23 restricted,
24 version(1.0),
25 helpstring("OLE Automation")
26 ]
27 library stdole
28 {
29 /* typedefs aren't stored in the type library.
30 These type names are known by the type compiler so it
31 doesn't really matter what we define them as. */
32
33 typedef void *VARIANT;
34 typedef wchar_t *BSTR;
35 typedef unsigned long SCODE;
36 typedef unsigned long HRESULT;
37
38 typedef struct GUID {
39 unsigned long Data1;
40 unsigned short Data2;
41 unsigned short Data3;
42 unsigned char Data4[ 8 ];
43 } GUID;
44
45 typedef struct DISPPARAMS {
46 VARIANT *rgvarg;
47 long *rgdispidNamedArgs;
48 unsigned int cArgs;
49 unsigned int cNamedArgs;
50 } DISPPARAMS;
51
52 typedef struct EXCEPINFO {
53 unsigned short wCode;
54 unsigned short wReserved;
55 BSTR bstrSource;
56 BSTR bstrDescription;
57 BSTR bstrHelpFile;
58 unsigned long dwHelpContext;
59 void *pvReserved;
60 void *pfnDeferredFillIn;
61 SCODE scode;
62 } EXCEPINFO;
63
64 #ifdef __WIDL__
65 [
66 odl,
67 uuid(00000000-0000-0000-C000-000000000046)
68 ]
69 interface IUnknown
70 {
71 [restricted]
72 HRESULT QueryInterface(
73 [in] GUID *riid,
74 [out] void **ppvObj);
75
76 [restricted]
77 unsigned long AddRef();
78
79 [restricted]
80 unsigned long Release();
81 }
82
83 [
84 odl,
85 uuid(00020400-0000-0000-C000-000000000046)
86 ]
87 interface IDispatch : IUnknown
88 {
89 [restricted]
90 HRESULT GetTypeInfoCount(
91 [out] unsigned int *pctinfo);
92
93 [restricted]
94 HRESULT GetTypeInfo(
95 [in] unsigned int itinfo,
96 [in] unsigned long lcid,
97 [out] void **pptinfo);
98
99 [restricted]
100 HRESULT GetIDsOfNames(
101 [in] GUID *riid,
102 [in] char **rgszNames,
103 [in] unsigned int cNames,
104 [in] unsigned long lcid,
105 [out] long *rgdispid);
106
107 [restricted]
108 HRESULT Invoke(
109 [in] long dispidMember,
110 [in] GUID *riid,
111 [in] unsigned long lcid,
112 [in] unsigned short wFlags,
113 [in] DISPPARAMS *pdispparams,
114 [out] VARIANT *pvarResult,
115 [out] EXCEPINFO *pexcepinfo,
116 [out] unsigned int *puArgErr);
117
118 }
119
120 [
121 odl,
122 uuid(00020404-0000-0000-C000-000000000046)
123 ]
124 interface IEnumVARIANT : IUnknown
125 {
126 HRESULT Next(
127 [in] unsigned long celt,
128 [in] VARIANT *rgvar,
129 [out] unsigned long *pceltFetched);
130
131 HRESULT Skip(
132 [in] unsigned long celt);
133
134 HRESULT Reset();
135
136 HRESULT Clone(
137 [out] IEnumVARIANT **ppenum);
138 }
139 #endif
140 };