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 24import "oaidl.idl"; /* needed by widl */ 25 26[ 27 uuid(a2cfdbd3-2bbf-4b1c-a414-5a5904e634c9), 28 version(1.0) 29] 30library 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(fed318b2-c2ed-11e7-abc4-cec278b6b50a) 135 ] 136 interface ICollection : IDispatch 137 { 138 [id(DISPID_VALUE)] 139 HRESULT Item([in] int i, [out, retval] int *p); 140 } 141 142 [ 143 uuid(f1b68c3b-02a3-4110-bc4c-cf9bc7e7f177) 144 ] 145 interface IInvokeTest : IDispatch 146 { 147 [propget, id(DISPID_VALUE)] 148 LONG test([in] LONG i); 149 [propputref, id(1)] 150 LONG testprop([in] LONG *i); 151 [propputref, id(2)] 152 LONG testprop2([in] IUnknown *i); 153 [id(3)] 154 HRESULT testfunc([in] int i, [out, retval] int *p); 155 [propget, id(4)] 156 HRESULT testget([out, retval] ICollection **p); 157 } 158 159 /* uuid is same as for test_struct2 in test_tlb.idl, fields are different */ 160 [uuid(4029f190-ca4a-4611-aeb9-673983cb96de)] 161 struct test_struct3 162 { 163 UINT32 field; 164 HRESULT hr; 165 }; 166} 167