dinput: Avoid deadlock when CS are acquired in different order.
[wine.git] / include / natupnp.idl
blob83b48a3dc6051283a1e90de2dfe15eb81239dab9
1 /*
2 * Copyright 2018 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 "oaidl.idl";
19 import "ocidl.idl";
21 #if !defined(progid) && !defined(__WIDL__)
22 #define threading(model)
23 #define progid(str)
24 #define vi_progid(str)
25 #endif
28 object,
29 uuid(6F10711F-729B-41E5-93B8-F21D0F818DF1),
30 dual,
31 pointer_default(unique)
33 interface IStaticPortMapping : IDispatch
35 [propget, id(1)]
36 HRESULT ExternalIPAddress ([out, retval] BSTR *value);
38 [propget, id(2)]
39 HRESULT ExternalPort([out, retval] long *value);
41 [propget, id(3)]
42 HRESULT InternalPort([out, retval] long *value);
44 [propget, id(4)]
45 HRESULT Protocol([out, retval] BSTR *value);
47 [propget, id(5)]
48 HRESULT InternalClient([out, retval] BSTR *value);
50 [propget, id(6)]
51 HRESULT Enabled([out, retval] VARIANT_BOOL *value);
53 [propget, id(7)]
54 HRESULT Description([out, retval] BSTR *value);
56 [id(8)]
57 HRESULT EditInternalClient ([in] BSTR client);
59 [id(9)]
60 HRESULT Enable ([in] VARIANT_BOOL enable);
62 [id(10)]
63 HRESULT EditDescription ([in] BSTR description);
65 [id(11)]
66 HRESULT EditInternalPort ([in] long port);
70 object,
71 uuid(cd1f3e77-66d6-4664-82c7-36dbb641d0f1),
72 dual,
73 pointer_default(unique)
75 interface IStaticPortMappingCollection : IDispatch
77 [propget, id(DISPID_NEWENUM), hidden, restricted]
78 HRESULT _NewEnum([out, retval] IUnknown **value);
80 [propget, id(DISPID_VALUE)]
81 HRESULT Item([in] long port, [in] BSTR protocol, [out, retval] IStaticPortMapping **mapping);
83 [propget, id(1)]
84 HRESULT Count([out, retval] long *value);
86 [id(2)]
87 HRESULT Remove([in] long port, [in] BSTR protocol);
89 [id(3)]
90 HRESULT Add([in] long external, [in] BSTR protocol, [in] long internal, [in] BSTR client,
91 [in] VARIANT_BOOL enabled, [in] BSTR description, [out, retval] IStaticPortMapping **mapping);
95 object,
96 uuid(4FC80282-23B6-4378-9A27-CD8F17C9400C),
97 dual,
98 pointer_default(unique)
100 interface IDynamicPortMapping : IDispatch
102 [propget, id(1)]
103 HRESULT ExternalIPAddress ([out, retval] BSTR *value);
105 [propget, id(2)]
106 HRESULT RemoteHost ([out, retval] BSTR *value);
108 [propget, id(3)]
109 HRESULT ExternalPort([out, retval] long *value);
111 [propget, id(4)]
112 HRESULT Protocol([out, retval] BSTR *value);
114 [propget, id(5)]
115 HRESULT InternalPort([out, retval] long *value);
117 [propget, id(6)]
118 HRESULT InternalClient([out, retval] BSTR *value);
120 [propget, id(7)]
121 HRESULT Enabled([out, retval] VARIANT_BOOL *value);
123 [propget, id(8)]
124 HRESULT Description([out, retval] BSTR *value);
126 [propget, id(9)]
127 HRESULT LeaseDuration([out, retval] long *value);
129 [id(10)]
130 HRESULT RenewLease([in] long desired, [out, retval] long *duration);
132 [id(11)]
133 HRESULT EditInternalClient ([in] BSTR client);
135 [id(12)]
136 HRESULT Enable ([in] VARIANT_BOOL enabled);
138 [id(13)]
139 HRESULT EditDescription ([in] BSTR description);
141 [id(14)]
142 HRESULT EditInternalPort ([in] long port);
146 object,
147 uuid(b60de00f-156e-4e8d-9ec1-3a2342c10899),
148 dual,
149 pointer_default(unique)
151 interface IDynamicPortMappingCollection : IDispatch
153 [propget, id(DISPID_NEWENUM), hidden, restricted]
154 HRESULT _NewEnum([out, retval] IUnknown **value);
156 [propget, id(DISPID_VALUE)]
157 HRESULT Item([in] BSTR host, [in] long port, [in] BSTR orotocol,
158 [out, retval] IDynamicPortMapping **mapping);
160 [propget, id(1)]
161 HRESULT Count([out, retval] long *value);
163 [id(2)]
164 HRESULT Remove([in] BSTR host, [in] long port, [in] BSTR protocol);
166 [id(3)]
167 HRESULT Add([in] BSTR host, [in] long port, [in] BSTR protocol, [in] long internal,
168 [in] BSTR client, [in] VARIANT_BOOL enabled, [in] BSTR Description,
169 [in] long duration, [out, retval] IDynamicPortMapping **mapping);
173 object,
174 uuid(624bd588-9060-4109-b0b0-1adbbcac32df),
175 dual,
176 pointer_default(unique)
178 interface INATEventManager : IDispatch
180 [id(1), propput]
181 HRESULT ExternalIPAddressCallback ([in] IUnknown *unk);
183 [id(2), propput]
184 HRESULT NumberOfEntriesCallback ([in] IUnknown *unk);
188 object,
189 uuid(b171c812-cc76-485a-94d8-b6b3a2794e99),
190 dual,
191 pointer_default(unique)
193 interface IUPnPNAT : IDispatch
195 [propget, id(1)]
196 HRESULT StaticPortMappingCollection ([out, retval] IStaticPortMappingCollection **collection);
198 [propget, id(2)]
199 HRESULT DynamicPortMappingCollection ([out, retval] IDynamicPortMappingCollection **collection);
201 [propget, id(3)]
202 HRESULT NATEventManager ([out, retval] INATEventManager **manager);
206 id(2),
207 uuid(1c565858-f302-471e-b409-f180aa4abec6),
208 version(1.0)
210 library NATUPNPLib
212 importlib("stdole2.tlb");
215 vi_progid("HNetCfg.NATUPnP"),
216 progid("HNetCfg.NATUPnP.1"),
217 threading(apartment),
218 uuid(ae1e00aa-3fd5-403c-8a27-2bbdc30cd0e1)
220 coclass UPnPNAT
222 [default] interface IUPnPNAT;