ntdll: Allow NtQueryVolumeInformationFile to make async volume information queries.
[wine.git] / include / comsvcs.idl
blobd64af1f5a8517e1830d5a2921ddcce31b43a033c
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
41 object,
42 hidden,
43 local,
44 uuid(bf6a1850-2b45-11cf-be10-00aa00a2fa25),
45 pointer_default(unique)
47 interface IHolder : IUnknown
49 HRESULT AllocResource([in] const RESTYPID typeid, [out] RESID *resid);
50 HRESULT FreeResource([in] const RESID _resid);
51 HRESULT TrackResource([in] const RESID resid);
52 HRESULT TrackResourceS([in] const SRESID resid);
53 HRESULT UntrackResource([in] const RESID resid, [in] const BOOL value);
54 HRESULT UntrackResourceS([in] const SRESID resid, [in] const BOOL value);
55 HRESULT Close(void);
56 HRESULT RequestDestroyResource([in] const RESID resid);
60 object,
61 hidden,
62 local,
63 uuid(208b3651-2b48-11cf-be10-00aa00a2fa25),
64 pointer_default(unique)
66 interface IDispenserDriver : IUnknown
68 HRESULT CreateResource([in] const RESTYPID restypid, [out] RESID *resid, [out] TIMEINSECS *destroy);
69 HRESULT RateResource([in] const RESTYPID restypid, [in] const RESID resid,
70 [in] const BOOL requires, [out] RESOURCERATING *rating);
71 HRESULT EnlistResource([in] const RESID resid, [in] const TRANSID transid);
72 HRESULT ResetResource([in] const RESID resid);
73 HRESULT DestroyResource([in] const RESID resid);
74 HRESULT DestroyResourceS([in] const SRESID resid);
78 object,
79 hidden,
80 local,
81 uuid(5cb31e10-2b5f-11cf-be10-00aa00a2fa25),
82 pointer_default(unique)
84 interface IDispenserManager : IUnknown
86 HRESULT RegisterDispenser([in] IDispenserDriver *driver, [in] LPCOLESTR name, [out] IHolder **dispenser);
87 HRESULT GetContext([out] INSTID *id, [out] TRANSID *transid);
91 uuid(ecabb0c0-7f19-11d2-978e-0000f8757e2a),
92 hidden,
93 threading(both)
95 coclass DispenserManager
97 [default] interface IDispenserManager;