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