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
23 #define threading
(model
)
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
),
40 importlib
("stdole2.tlb");
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
);
58 HRESULT RequestDestroyResource
([in] const RESID resid
);
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
);
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
),
97 coclass DispenserManager
99 [default] interface IDispenserManager
;
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
);
119 uuid(2a005c07
-a5de
-11cf
-9e66
-00aa00a3f464
),
120 pointer_default(unique)
122 interface ISharedPropertyGroup
: IDispatch
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
);
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
);
138 uuid(2a005c0d
-a5de
-11cf
-9e66
-00aa00a3f464
),
139 pointer_default(unique)
141 interface ISharedPropertyGroupManager
: IDispatch
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"),
158 coclass SharedPropertyGroupManager
160 [default] interface ISharedPropertyGroupManager
;