widl: Add support for function parameter flags to SLTG typelib generator.
[wine.git] / include / comsvcs.idl
blob902c78b05c8409de97d4b35e948586475925eb5e
1 /*
2 * Copyright (C) 2017 Alistair Leslie-Hughes
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 import "unknwn.idl";
19 import "objidl.idl";
20 import "oaidl.idl";
22 #ifndef __WIDL__
23 #define threading(model)
24 #endif
26 typedef DWORD_PTR INSTID;
27 typedef DWORD_PTR RESID;
28 typedef DWORD RESOURCERATING;
29 typedef DWORD_PTR RESTYPID;
30 typedef LPOLESTR SRESID;
31 typedef long TIMEINSECS;
32 typedef DWORD_PTR TRANSID;
35 uuid(2a005c00-a5de-11cf-9e66-00aa00a3f464),
36 version(1.0)
38 library COMSVCSLib
40 importlib("stdole2.tlb");
43 object,
44 hidden,
45 local,
46 uuid(bf6a1850-2b45-11cf-be10-00aa00a2fa25),
47 pointer_default(unique)
49 interface IHolder : IUnknown
51 HRESULT AllocResource([in] const RESTYPID typeid, [out] RESID *resid);
52 HRESULT FreeResource([in] const RESID _resid);
53 HRESULT TrackResource([in] const RESID resid);
54 HRESULT TrackResourceS([in] const SRESID resid);
55 HRESULT UntrackResource([in] const RESID resid, [in] const BOOL value);
56 HRESULT UntrackResourceS([in] const SRESID resid, [in] const BOOL value);
57 HRESULT Close(void);
58 HRESULT RequestDestroyResource([in] const RESID resid);
62 object,
63 hidden,
64 local,
65 uuid(208b3651-2b48-11cf-be10-00aa00a2fa25),
66 pointer_default(unique)
68 interface IDispenserDriver : IUnknown
70 HRESULT CreateResource([in] const RESTYPID restypid, [out] RESID *resid, [out] TIMEINSECS *destroy);
71 HRESULT RateResource([in] const RESTYPID restypid, [in] const RESID resid,
72 [in] const BOOL requires, [out] RESOURCERATING *rating);
73 HRESULT EnlistResource([in] const RESID resid, [in] const TRANSID transid);
74 HRESULT ResetResource([in] const RESID resid);
75 HRESULT DestroyResource([in] const RESID resid);
76 HRESULT DestroyResourceS([in] const SRESID resid);
80 object,
81 hidden,
82 local,
83 uuid(5cb31e10-2b5f-11cf-be10-00aa00a2fa25),
84 pointer_default(unique)
86 interface IDispenserManager : IUnknown
88 HRESULT RegisterDispenser([in] IDispenserDriver *driver, [in] LPCOLESTR name, [out] IHolder **dispenser);
89 HRESULT GetContext([out] INSTID *id, [out] TRANSID *transid);
93 uuid(ecabb0c0-7f19-11d2-978e-0000f8757e2a),
94 hidden,
95 threading(both)
97 coclass DispenserManager
99 [default] interface IDispenserManager;
103 object,
104 hidden,
105 local,
106 uuid(2a005c01-a5de-11cf-9e66-00aa00a3f464),
107 pointer_default(unique)
109 interface ISharedProperty : IDispatch
111 [id(DISPID_VALUE), propget] HRESULT Value([out, retval] VARIANT *value);
112 [id(DISPID_VALUE), propput] HRESULT Value([in] VARIANT value);
116 object,
117 hidden,
118 local,
119 uuid(2a005c07-a5de-11cf-9e66-00aa00a3f464),
120 pointer_default(unique)
122 interface ISharedPropertyGroup : IDispatch
124 [id(0x00000001)]
125 HRESULT CreatePropertyByPosition([in] int index, [out] VARIANT_BOOL *exists, [out, retval] ISharedProperty **property);
126 [id(0x00000002), propget]
127 HRESULT PropertyByPosition([in] int index, [out, retval] ISharedProperty **property);
128 [id(0x00000003)]
129 HRESULT CreateProperty([in] BSTR name, [out] VARIANT_BOOL *exists, [out, retval] ISharedProperty **property);
130 [id(0x00000004), propget]
131 HRESULT Property([in] BSTR name, [out, retval] ISharedProperty **property);
135 object,
136 hidden,
137 local,
138 uuid(2a005c0d-a5de-11cf-9e66-00aa00a3f464),
139 pointer_default(unique)
141 interface ISharedPropertyGroupManager : IDispatch
143 [id(0x00000001)]
144 HRESULT CreatePropertyGroup([in] BSTR name, [in, out] LONG *isolation, [in, out] LONG *release,
145 [out] VARIANT_BOOL *exists, [out, retval] ISharedPropertyGroup **group);
146 [id(0x00000002), propget]
147 HRESULT Group([in] BSTR name, [out, retval] ISharedPropertyGroup **group);
148 [id(DISPID_NEWENUM), propget]
149 HRESULT _NewEnum([out, retval] IUnknown **retval);
153 uuid(2a005c11-a5de-11cf-9e66-00aa00a3f464),
154 progid("MTxSpm.SharedPropertyGroupManager.1"),
155 vi_progid("MTxSpm.SharedPropertyGroupManager"),
156 threading(both)
158 coclass SharedPropertyGroupManager
160 [default] interface ISharedPropertyGroupManager;