efc7c8970124d20b77953daaa36024f14a67489d
[reactos.git] / rostests / winetests / oleaut32 / test_reg.idl
1 /*
2 * A typelib to test registration.
3 *
4 * Copyright 2010 Huw Davies
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21 #pragma makedep ident
22 #pragma makedep typelib
23
24 import "oaidl.idl"; /* needed by widl */
25
26 [
27 uuid(a2cfdbd3-2bbf-4b1c-a414-5a5904e634c9),
28 version(1.0)
29 ]
30 library register_test
31 {
32 importlib("stdole2.tlb");
33
34 [
35 uuid(06c1f5f0-ea49-44f9-8e3b-4be00c7a0689)
36 ]
37 interface Inon_ole : IUnknown
38 {
39 HRESULT test();
40 }
41
42 [
43 uuid(06c1f5f1-ea49-44f9-8e3b-4be00c7a0689)
44 ]
45 interface Inon_ole_from_disp : IDispatch
46 {
47 HRESULT test();
48 }
49
50 [
51 uuid(06c1f5f2-ea49-44f9-8e3b-4be00c7a0689),
52 oleautomation
53 ]
54 interface Iole : IUnknown
55 {
56 HRESULT test();
57 }
58
59 [
60 uuid(06c1f5f3-ea49-44f9-8e3b-4be00c7a0689),
61 oleautomation
62 ]
63 interface Iole_from_disp : IDispatch
64 {
65 HRESULT test();
66 }
67
68 [
69 uuid(06c1f5f4-ea49-44f9-8e3b-4be00c7a0689),
70 dual
71 ]
72 interface Inon_ole_dual : IUnknown
73 {
74 HRESULT test();
75 }
76
77 [
78 uuid(06c1f5f5-ea49-44f9-8e3b-4be00c7a0689),
79 oleautomation,
80 dual
81 ]
82 interface Iole_dual : IUnknown
83 {
84 HRESULT test();
85 }
86
87 [
88 uuid(06c1f5f6-ea49-44f9-8e3b-4be00c7a0689),
89 dual
90 ]
91 interface Inon_ole_dual_from_disp : IDispatch
92 {
93 HRESULT test();
94 }
95
96 [
97 uuid(06c1f5f7-ea49-44f9-8e3b-4be00c7a0689),
98 oleautomation,
99 dual
100 ]
101 interface Iole_dual_from_disp : IDispatch
102 {
103 HRESULT test();
104 }
105
106 /* oleautomation not allowed with dispinterfaces */
107 [
108 uuid(06c1f5f8-ea49-44f9-8e3b-4be00c7a0689)
109 ]
110 dispinterface Idisp
111 {
112 properties:
113 [id(0x0)] BSTR Name;
114 methods:
115 }
116
117 [
118 uuid(06c1f5f9-ea49-44f9-8e3b-4be00c7a0689)
119 ]
120 dispinterface Idisp_from_non_ole_iface
121 {
122 interface Inon_ole;
123 }
124
125 [
126 uuid(06c1f5fa-ea49-44f9-8e3b-4be00c7a0689)
127 ]
128 dispinterface Idisp_from_ole_from_disp_iface
129 {
130 interface Iole_from_disp;
131 }
132
133 [
134 uuid(f1b68c3b-02a3-4110-bc4c-cf9bc7e7f177)
135 ]
136 interface IInvokeTest : IDispatch
137 {
138 [propget, id(DISPID_VALUE)]
139 LONG test([in] LONG i);
140 [propputref, id(1)]
141 LONG testprop([in] LONG *i);
142 [propputref, id(2)]
143 LONG testprop2([in] IUnknown *i);
144 }
145
146 /* uuid is same as for test_struct2 in test_tlb.idl, fields are different */
147 [uuid(4029f190-ca4a-4611-aeb9-673983cb96de)]
148 struct test_struct3
149 {
150 UINT32 field;
151 HRESULT hr;
152 };
153 }