ReactOS  0.4.14-dev-297-g23e575c
port.c
Go to the documentation of this file.
1 /*
2  * Copyright 2009 Hans Leidekker for CodeWeavers
3  *
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.
8  *
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.
13  *
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
17  */
18 
19 #include <stdarg.h>
20 #include <stdio.h>
21 
22 #define COBJMACROS
23 
24 #include "windef.h"
25 #include "winbase.h"
26 #include "winuser.h"
27 #include "ole2.h"
28 #include "netfw.h"
29 #include "natupnp.h"
30 
31 #include "wine/heap.h"
32 #include "wine/debug.h"
33 #include "hnetcfg_private.h"
34 
36 
37 typedef struct fw_port
38 {
44 } fw_port;
45 
47 {
48  return CONTAINING_RECORD(iface, fw_port, INetFwOpenPort_iface);
49 }
50 
52  INetFwOpenPort *iface )
53 {
55  return InterlockedIncrement( &fw_port->refs );
56 }
57 
59  INetFwOpenPort *iface )
60 {
63  if (!refs)
64  {
65  TRACE("destroying %p\n", fw_port);
68  }
69  return refs;
70 }
71 
73  INetFwOpenPort *iface,
74  REFIID riid,
75  void **ppvObject )
76 {
78 
79  TRACE("%p %s %p\n", This, debugstr_guid( riid ), ppvObject );
80 
81  if ( IsEqualGUID( riid, &IID_INetFwOpenPort ) ||
84  {
85  *ppvObject = iface;
86  }
87  else
88  {
89  FIXME("interface %s not implemented\n", debugstr_guid(riid));
90  return E_NOINTERFACE;
91  }
92  INetFwOpenPort_AddRef( iface );
93  return S_OK;
94 }
95 
97  INetFwOpenPort *iface,
98  UINT *pctinfo )
99 {
101 
102  TRACE("%p %p\n", This, pctinfo);
103  *pctinfo = 1;
104  return S_OK;
105 }
106 
108  INetFwOpenPort *iface,
109  UINT iTInfo,
110  LCID lcid,
111  ITypeInfo **ppTInfo )
112 {
114 
115  TRACE("%p %u %u %p\n", This, iTInfo, lcid, ppTInfo);
116  return get_typeinfo( INetFwOpenPort_tid, ppTInfo );
117 }
118 
120  INetFwOpenPort *iface,
121  REFIID riid,
122  LPOLESTR *rgszNames,
123  UINT cNames,
124  LCID lcid,
125  DISPID *rgDispId )
126 {
129  HRESULT hr;
130 
131  TRACE("%p %s %p %u %u %p\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
132 
134  if (SUCCEEDED(hr))
135  {
136  hr = ITypeInfo_GetIDsOfNames( typeinfo, rgszNames, cNames, rgDispId );
137  ITypeInfo_Release( typeinfo );
138  }
139  return hr;
140 }
141 
143  INetFwOpenPort *iface,
144  DISPID dispIdMember,
145  REFIID riid,
146  LCID lcid,
147  WORD wFlags,
148  DISPPARAMS *pDispParams,
149  VARIANT *pVarResult,
150  EXCEPINFO *pExcepInfo,
151  UINT *puArgErr )
152 {
155  HRESULT hr;
156 
157  TRACE("%p %d %s %d %d %p %p %p %p\n", This, dispIdMember, debugstr_guid(riid),
158  lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
159 
161  if (SUCCEEDED(hr))
162  {
163  hr = ITypeInfo_Invoke( typeinfo, &This->INetFwOpenPort_iface, dispIdMember,
164  wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr );
165  ITypeInfo_Release( typeinfo );
166  }
167  return hr;
168 }
169 
171  INetFwOpenPort *iface,
172  BSTR *name)
173 {
175 
176  FIXME("%p %p\n", This, name);
177  return E_NOTIMPL;
178 }
179 
181  INetFwOpenPort *iface,
182  BSTR name)
183 {
185 
186  TRACE("%p %s\n", This, debugstr_w(name));
187 
188  if (!(name = SysAllocString( name )))
189  return E_OUTOFMEMORY;
190 
191  SysFreeString( This->name );
192  This->name = name;
193  return S_OK;
194 }
195 
197  INetFwOpenPort *iface,
198  NET_FW_IP_VERSION *ipVersion)
199 {
201 
202  FIXME("%p %p\n", This, ipVersion);
203  return E_NOTIMPL;
204 }
205 
207  INetFwOpenPort *iface,
208  NET_FW_IP_VERSION ipVersion)
209 {
211 
212  FIXME("%p %u\n", This, ipVersion);
213  return E_NOTIMPL;
214 }
215 
217  INetFwOpenPort *iface,
218  NET_FW_IP_PROTOCOL *ipProtocol)
219 {
221 
222  FIXME("%p %p\n", This, ipProtocol);
223  return E_NOTIMPL;
224 }
225 
227  INetFwOpenPort *iface,
228  NET_FW_IP_PROTOCOL ipProtocol)
229 {
231 
232  TRACE("%p %u\n", This, ipProtocol);
233 
234  if (ipProtocol != NET_FW_IP_PROTOCOL_TCP && ipProtocol != NET_FW_IP_PROTOCOL_UDP)
235  return E_INVALIDARG;
236 
237  This->protocol = ipProtocol;
238  return S_OK;
239 }
240 
242  INetFwOpenPort *iface,
243  LONG *portNumber)
244 {
246 
247  FIXME("%p %p\n", This, portNumber);
248  return E_NOTIMPL;
249 }
250 
252  INetFwOpenPort *iface,
253  LONG portNumber)
254 {
256 
257  TRACE("%p %d\n", This, portNumber);
258  This->port = portNumber;
259  return S_OK;
260 }
261 
263  INetFwOpenPort *iface,
264  NET_FW_SCOPE *scope)
265 {
267 
268  FIXME("%p %p\n", This, scope);
269  return E_NOTIMPL;
270 }
271 
273  INetFwOpenPort *iface,
274  NET_FW_SCOPE scope)
275 {
277 
278  FIXME("%p %u\n", This, scope);
279  return E_NOTIMPL;
280 }
281 
283  INetFwOpenPort *iface,
284  BSTR *remoteAddrs)
285 {
287 
288  FIXME("%p %p\n", This, remoteAddrs);
289  return E_NOTIMPL;
290 }
291 
293  INetFwOpenPort *iface,
294  BSTR remoteAddrs)
295 {
297 
298  FIXME("%p %s\n", This, debugstr_w(remoteAddrs));
299  return E_NOTIMPL;
300 }
301 
303  INetFwOpenPort *iface,
305 {
307 
308  FIXME("%p %p\n", This, enabled);
309 
310  *enabled = VARIANT_TRUE;
311  return S_OK;
312 }
313 
315  INetFwOpenPort *iface,
317 {
319 
320  FIXME("%p %d\n", This, enabled);
321  return S_OK;
322 }
323 
325  INetFwOpenPort *iface,
326  VARIANT_BOOL *builtIn)
327 {
329 
330  FIXME("%p %p\n", This, builtIn);
331  return E_NOTIMPL;
332 }
333 
334 static const struct INetFwOpenPortVtbl fw_port_vtbl =
335 {
358 };
359 
361 {
362  fw_port *fp;
363 
364  TRACE("(%p,%p)\n", pUnkOuter, ppObj);
365 
366  fp = HeapAlloc( GetProcessHeap(), 0, sizeof(*fp) );
367  if (!fp) return E_OUTOFMEMORY;
368 
369  fp->INetFwOpenPort_iface.lpVtbl = &fw_port_vtbl;
370  fp->refs = 1;
371  fp->name = NULL;
373  fp->port = 0;
374 
375  *ppObj = &fp->INetFwOpenPort_iface;
376 
377  TRACE("returning iface %p\n", *ppObj);
378  return S_OK;
379 }
380 
381 typedef struct fw_ports
382 {
385 } fw_ports;
386 
388 {
389  return CONTAINING_RECORD(iface, fw_ports, INetFwOpenPorts_iface);
390 }
391 
393  INetFwOpenPorts *iface )
394 {
396  return InterlockedIncrement( &fw_ports->refs );
397 }
398 
400  INetFwOpenPorts *iface )
401 {
404  if (!refs)
405  {
406  TRACE("destroying %p\n", fw_ports);
408  }
409  return refs;
410 }
411 
413  INetFwOpenPorts *iface,
414  REFIID riid,
415  void **ppvObject )
416 {
418 
419  TRACE("%p %s %p\n", This, debugstr_guid( riid ), ppvObject );
420 
421  if ( IsEqualGUID( riid, &IID_INetFwOpenPorts ) ||
424  {
425  *ppvObject = iface;
426  }
427  else
428  {
429  FIXME("interface %s not implemented\n", debugstr_guid(riid));
430  return E_NOINTERFACE;
431  }
432  INetFwOpenPorts_AddRef( iface );
433  return S_OK;
434 }
435 
437  INetFwOpenPorts *iface,
438  UINT *pctinfo )
439 {
441 
442  TRACE("%p %p\n", This, pctinfo);
443  *pctinfo = 1;
444  return S_OK;
445 }
446 
448  INetFwOpenPorts *iface,
449  UINT iTInfo,
450  LCID lcid,
451  ITypeInfo **ppTInfo )
452 {
454 
455  TRACE("%p %u %u %p\n", This, iTInfo, lcid, ppTInfo);
456  return get_typeinfo( INetFwOpenPorts_tid, ppTInfo );
457 }
458 
460  INetFwOpenPorts *iface,
461  REFIID riid,
462  LPOLESTR *rgszNames,
463  UINT cNames,
464  LCID lcid,
465  DISPID *rgDispId )
466 {
469  HRESULT hr;
470 
471  TRACE("%p %s %p %u %u %p\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
472 
474  if (SUCCEEDED(hr))
475  {
476  hr = ITypeInfo_GetIDsOfNames( typeinfo, rgszNames, cNames, rgDispId );
477  ITypeInfo_Release( typeinfo );
478  }
479  return hr;
480 }
481 
483  INetFwOpenPorts *iface,
484  DISPID dispIdMember,
485  REFIID riid,
486  LCID lcid,
487  WORD wFlags,
488  DISPPARAMS *pDispParams,
489  VARIANT *pVarResult,
490  EXCEPINFO *pExcepInfo,
491  UINT *puArgErr )
492 {
495  HRESULT hr;
496 
497  TRACE("%p %d %s %d %d %p %p %p %p\n", This, dispIdMember, debugstr_guid(riid),
498  lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
499 
501  if (SUCCEEDED(hr))
502  {
503  hr = ITypeInfo_Invoke( typeinfo, &This->INetFwOpenPorts_iface, dispIdMember,
504  wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr );
505  ITypeInfo_Release( typeinfo );
506  }
507  return hr;
508 }
509 
511  INetFwOpenPorts *iface,
512  LONG *count)
513 {
515 
516  FIXME("%p, %p\n", This, count);
517 
518  *count = 0;
519  return S_OK;
520 }
521 
523  INetFwOpenPorts *iface,
525 {
527 
528  FIXME("%p, %p\n", This, port);
529  return S_OK;
530 }
531 
533  INetFwOpenPorts *iface,
534  LONG portNumber,
535  NET_FW_IP_PROTOCOL ipProtocol)
536 {
538 
539  FIXME("%p, %d, %u\n", This, portNumber, ipProtocol);
540  return E_NOTIMPL;
541 }
542 
544  INetFwOpenPorts *iface,
545  LONG portNumber,
546  NET_FW_IP_PROTOCOL ipProtocol,
547  INetFwOpenPort **openPort)
548 {
549  HRESULT hr;
551 
552  FIXME("%p, %d, %u, %p\n", This, portNumber, ipProtocol, openPort);
553 
554  hr = NetFwOpenPort_create( NULL, (void **)openPort );
555  if (SUCCEEDED(hr))
556  {
557  INetFwOpenPort_put_Protocol( *openPort, ipProtocol );
558  INetFwOpenPort_put_Port( *openPort, portNumber );
559  }
560  return hr;
561 }
562 
564  INetFwOpenPorts *iface,
565  IUnknown **newEnum)
566 {
568 
569  FIXME("%p, %p\n", This, newEnum);
570  return E_NOTIMPL;
571 }
572 
573 static const struct INetFwOpenPortsVtbl fw_ports_vtbl =
574 {
583  fw_ports_Add,
587 };
588 
590 {
591  fw_ports *fp;
592 
593  TRACE("(%p,%p)\n", pUnkOuter, ppObj);
594 
595  fp = HeapAlloc( GetProcessHeap(), 0, sizeof(*fp) );
596  if (!fp) return E_OUTOFMEMORY;
597 
598  fp->INetFwOpenPorts_iface.lpVtbl = &fw_ports_vtbl;
599  fp->refs = 1;
600 
601  *ppObj = &fp->INetFwOpenPorts_iface;
602 
603  TRACE("returning iface %p\n", *ppObj);
604  return S_OK;
605 }
606 
607 typedef struct _upnpnat
608 {
611 } upnpnat;
612 
613 static inline upnpnat *impl_from_IUPnPNAT( IUPnPNAT *iface )
614 {
615  return CONTAINING_RECORD(iface, upnpnat, IUPnPNAT_iface);
616 }
617 
618 static HRESULT WINAPI upnpnat_QueryInterface(IUPnPNAT *iface, REFIID riid, void **object)
619 {
620  upnpnat *This = impl_from_IUPnPNAT( iface );
621 
622  TRACE("%p %s %p\n", This, debugstr_guid( riid ), object );
623 
624  if ( IsEqualGUID( riid, &IID_IUPnPNAT ) ||
627  {
628  *object = iface;
629  }
631  {
632  TRACE("IProvideClassInfo not supported.\n");
633  return E_NOINTERFACE;
634  }
635  else
636  {
637  FIXME("interface %s not implemented\n", debugstr_guid(riid));
638  return E_NOINTERFACE;
639  }
640  IUPnPNAT_AddRef( iface );
641  return S_OK;
642 }
643 
645 {
646  upnpnat *This = impl_from_IUPnPNAT( iface );
647  return InterlockedIncrement( &This->ref );
648 }
649 
651 {
652  upnpnat *This = impl_from_IUPnPNAT( iface );
653  LONG refs = InterlockedDecrement( &This->ref );
654  if (!refs)
655  {
656  heap_free( This );
657  }
658  return refs;
659 }
660 
662 {
663  upnpnat *This = impl_from_IUPnPNAT( iface );
664 
665  TRACE("%p %p\n", This, pctinfo);
666  *pctinfo = 1;
667  return S_OK;
668 }
669 
670 static HRESULT WINAPI upnpnat_GetTypeInfo(IUPnPNAT *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
671 {
672  upnpnat *This = impl_from_IUPnPNAT( iface );
673 
674  TRACE("%p %u %u %p\n", This, iTInfo, lcid, ppTInfo);
675  return get_typeinfo( IUPnPNAT_tid, ppTInfo );
676 }
677 
679  UINT cNames, LCID lcid, DISPID *rgDispId)
680 {
681  upnpnat *This = impl_from_IUPnPNAT( iface );
683  HRESULT hr;
684 
685  TRACE("%p %s %p %u %u %p\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
686 
688  if (SUCCEEDED(hr))
689  {
690  hr = ITypeInfo_GetIDsOfNames( typeinfo, rgszNames, cNames, rgDispId );
691  ITypeInfo_Release( typeinfo );
692  }
693  return hr;
694 }
695 
696 static HRESULT WINAPI upnpnat_Invoke(IUPnPNAT *iface, DISPID dispIdMember, REFIID riid, LCID lcid,
697  WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
698  UINT *puArgErr)
699 {
700  upnpnat *This = impl_from_IUPnPNAT( iface );
702  HRESULT hr;
703 
704  TRACE("%p %d %s %d %d %p %p %p %p\n", This, dispIdMember, debugstr_guid(riid),
705  lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
706 
708  if (SUCCEEDED(hr))
709  {
710  hr = ITypeInfo_Invoke( typeinfo, &This->IUPnPNAT_iface, dispIdMember,
711  wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr );
712  ITypeInfo_Release( typeinfo );
713  }
714  return hr;
715 }
716 
718 {
719  upnpnat *This = impl_from_IUPnPNAT( iface );
720  FIXME("%p, %p\n", This, collection);
721  if(collection)
722  *collection = NULL;
723  return E_NOTIMPL;
724 }
725 
727 {
728  upnpnat *This = impl_from_IUPnPNAT( iface );
729  FIXME("%p, %p\n", This, collection);
730  if(collection)
731  *collection = NULL;
732  return E_NOTIMPL;
733 }
734 
736 {
737  upnpnat *This = impl_from_IUPnPNAT( iface );
738  FIXME("%p, %p\n", This, manager);
739  if(manager)
740  *manager = NULL;
741  return E_NOTIMPL;
742 }
743 
744 static const IUPnPNATVtbl upnpnat_vtbl =
745 {
756 };
757 
758 
759 HRESULT IUPnPNAT_create(IUnknown *outer, void **object)
760 {
761  upnpnat *nat;
762 
763  TRACE("(%p,%p)\n", outer, object);
764 
765  nat = heap_alloc( sizeof(*nat) );
766  if (!nat) return E_OUTOFMEMORY;
767 
768  nat->IUPnPNAT_iface.lpVtbl = &upnpnat_vtbl;
769  nat->ref = 1;
770 
771  *object = &nat->IUPnPNAT_iface;
772 
773  TRACE("returning iface %p\n", *object);
774  return S_OK;
775 }
static HRESULT WINAPI fw_ports_Invoke(INetFwOpenPorts *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: port.c:482
Definition: port.c:607
LONG refs
Definition: port.c:384
static const struct INetFwOpenPortVtbl fw_port_vtbl
Definition: port.c:334
#define REFIID
Definition: guiddef.h:118
static ULONG WINAPI fw_port_Release(INetFwOpenPort *iface)
Definition: port.c:58
#define E_NOINTERFACE
Definition: winerror.h:2364
static HRESULT WINAPI fw_ports_get__NewEnum(INetFwOpenPorts *iface, IUnknown **newEnum)
Definition: port.c:563
HRESULT hr
Definition: shlfolder.c:183
static HRESULT WINAPI fw_port_put_IpVersion(INetFwOpenPort *iface, NET_FW_IP_VERSION ipVersion)
Definition: port.c:206
static HRESULT WINAPI fw_ports_QueryInterface(INetFwOpenPorts *iface, REFIID riid, void **ppvObject)
Definition: port.c:412
REFIID riid
Definition: precomp.h:44
GLuint GLuint GLsizei count
Definition: gl.h:1545
INetFwOpenPorts INetFwOpenPorts_iface
Definition: port.c:383
static HRESULT WINAPI upnpnat_get_DynamicPortMappingCollection(IUPnPNAT *iface, IDynamicPortMappingCollection **collection)
Definition: port.c:726
DWORD LCID
Definition: nls.h:13
static HRESULT WINAPI fw_port_put_Enabled(INetFwOpenPort *iface, VARIANT_BOOL enabled)
Definition: port.c:314
OLECHAR * BSTR
Definition: compat.h:1934
static LPOLESTR
Definition: stg_prop.c:27
struct fw_port fw_port
enum NET_FW_IP_VERSION_ NET_FW_IP_VERSION
HRESULT NetFwOpenPorts_create(IUnknown *pUnkOuter, LPVOID *ppObj)
Definition: port.c:589
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glext.h:7750
short VARIANT_BOOL
Definition: compat.h:1931
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
static HRESULT WINAPI fw_port_QueryInterface(INetFwOpenPort *iface, REFIID riid, void **ppvObject)
Definition: port.c:72
static HRESULT WINAPI upnpnat_Invoke(IUPnPNAT *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: port.c:696
static fw_port * impl_from_INetFwOpenPort(INetFwOpenPort *iface)
Definition: port.c:46
Definition: port.c:37
static HRESULT WINAPI upnpnat_GetTypeInfo(IUPnPNAT *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: port.c:670
static HRESULT WINAPI upnpnat_get_StaticPortMappingCollection(IUPnPNAT *iface, IStaticPortMappingCollection **collection)
Definition: port.c:717
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static HRESULT WINAPI upnpnat_QueryInterface(IUPnPNAT *iface, REFIID riid, void **object)
Definition: port.c:618
static HRESULT WINAPI fw_port_get_IpVersion(INetFwOpenPort *iface, NET_FW_IP_VERSION *ipVersion)
Definition: port.c:196
long LONG
Definition: pedump.c:60
enum NET_FW_IP_PROTOCOL_ NET_FW_IP_PROTOCOL
enum NET_FW_SCOPE_ NET_FW_SCOPE
const GUID IID_IProvideClassInfo
static ULONG WINAPI upnpnat_Release(IUPnPNAT *iface)
Definition: port.c:650
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_INVALIDARG
Definition: ddrawi.h:101
smooth NULL
Definition: ftsmooth.c:416
BSTR name
Definition: port.c:41
static HRESULT WINAPI fw_port_put_Name(INetFwOpenPort *iface, BSTR name)
Definition: port.c:180
Definition: port.c:381
static HRESULT WINAPI fw_port_GetIDsOfNames(INetFwOpenPort *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: port.c:119
static HRESULT WINAPI fw_port_put_Protocol(INetFwOpenPort *iface, NET_FW_IP_PROTOCOL ipProtocol)
Definition: port.c:226
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:241
HRESULT get_typeinfo(enum type_id tid, ITypeInfo **ret)
Definition: apps.c:124
static HRESULT WINAPI fw_ports_Add(INetFwOpenPorts *iface, INetFwOpenPort *port)
Definition: port.c:522
#define debugstr_guid
Definition: kernel32.h:35
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
static HRESULT WINAPI upnpnat_GetTypeInfoCount(IUPnPNAT *iface, UINT *pctinfo)
Definition: port.c:661
struct fw_ports fw_ports
static ULONG WINAPI upnpnat_AddRef(IUPnPNAT *iface)
Definition: port.c:644
#define TRACE(s)
Definition: solgame.cpp:4
static ULONG WINAPI fw_ports_AddRef(INetFwOpenPorts *iface)
Definition: port.c:392
#define GetProcessHeap()
Definition: compat.h:395
static HRESULT WINAPI upnpnat_GetIDsOfNames(IUPnPNAT *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: port.c:678
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
static const struct INetFwOpenPortsVtbl fw_ports_vtbl
Definition: port.c:573
static HRESULT WINAPI fw_ports_GetTypeInfo(INetFwOpenPorts *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: port.c:447
LONG HRESULT
Definition: typedefs.h:77
const GUID IID_IUnknown
static HRESULT WINAPI fw_port_get_Protocol(INetFwOpenPort *iface, NET_FW_IP_PROTOCOL *ipProtocol)
Definition: port.c:216
#define WINAPI
Definition: msvc.h:8
static HRESULT WINAPI fw_port_get_Port(INetFwOpenPort *iface, LONG *portNumber)
Definition: port.c:241
static HRESULT WINAPI fw_port_get_Scope(INetFwOpenPort *iface, NET_FW_SCOPE *scope)
Definition: port.c:262
unsigned short WORD
Definition: ntddk_ex.h:93
static HRESULT WINAPI fw_port_Invoke(INetFwOpenPort *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: port.c:142
WINE_DEFAULT_DEBUG_CHANNEL(dmusic)
static HRESULT WINAPI fw_ports_GetTypeInfoCount(INetFwOpenPorts *iface, UINT *pctinfo)
Definition: port.c:436
LONG ref
Definition: port.c:610
const GUID IID_IDispatch
LONG refs
Definition: port.c:40
NET_FW_IP_PROTOCOL protocol
Definition: port.c:42
static ITypeInfo * typeinfo[last_tid]
Definition: apps.c:109
static HRESULT WINAPI fw_port_GetTypeInfo(INetFwOpenPort *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: port.c:107
static HRESULT WINAPI fw_port_get_Enabled(INetFwOpenPort *iface, VARIANT_BOOL *enabled)
Definition: port.c:302
#define InterlockedDecrement
Definition: armddk.h:52
struct _upnpnat upnpnat
static HRESULT WINAPI fw_port_get_BuiltIn(INetFwOpenPort *iface, VARIANT_BOOL *builtIn)
Definition: port.c:324
REFIID LPVOID * ppvObject
Definition: precomp.h:44
static HRESULT WINAPI fw_port_get_RemoteAddresses(INetFwOpenPort *iface, BSTR *remoteAddrs)
Definition: port.c:282
static HRESULT WINAPI upnpnat_get_NATEventManager(IUPnPNAT *iface, INATEventManager **manager)
Definition: port.c:735
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:519
static HRESULT WINAPI fw_ports_Item(INetFwOpenPorts *iface, LONG portNumber, NET_FW_IP_PROTOCOL ipProtocol, INetFwOpenPort **openPort)
Definition: port.c:543
static HRESULT WINAPI fw_port_GetTypeInfoCount(INetFwOpenPort *iface, UINT *pctinfo)
Definition: port.c:96
static HRESULT WINAPI fw_ports_get_Count(INetFwOpenPorts *iface, LONG *count)
Definition: port.c:510
struct stdole::EXCEPINFO EXCEPINFO
static VARIANTARG static DISPID
Definition: ordinal.c:49
#define S_OK
Definition: intsafe.h:59
#define InterlockedIncrement
Definition: armddk.h:53
static ICollection collection
Definition: typelib.c:184
HRESULT NetFwOpenPort_create(IUnknown *pUnkOuter, LPVOID *ppObj)
Definition: port.c:360
#define E_NOTIMPL
Definition: ddrawi.h:99
LONG port
Definition: port.c:43
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:274
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4112
Definition: name.c:36
struct stdole::DISPPARAMS DISPPARAMS
static HRESULT WINAPI fw_port_put_Port(INetFwOpenPort *iface, LONG portNumber)
Definition: port.c:251
IUPnPNAT IUPnPNAT_iface
Definition: port.c:609
static HRESULT WINAPI fw_ports_Remove(INetFwOpenPorts *iface, LONG portNumber, NET_FW_IP_PROTOCOL ipProtocol)
Definition: port.c:532
unsigned int ULONG
Definition: retypes.h:1
static fw_ports * impl_from_INetFwOpenPorts(INetFwOpenPorts *iface)
Definition: port.c:387
INetFwOpenPort INetFwOpenPort_iface
Definition: port.c:39
static ULONG WINAPI fw_port_AddRef(INetFwOpenPort *iface)
Definition: port.c:51
static upnpnat * impl_from_IUPnPNAT(IUPnPNAT *iface)
Definition: port.c:613
static HRESULT WINAPI fw_port_get_Name(INetFwOpenPort *iface, BSTR *name)
Definition: port.c:170
static const IUPnPNATVtbl upnpnat_vtbl
Definition: port.c:744
USHORT port
Definition: uri.c:227
static HRESULT WINAPI fw_port_put_Scope(INetFwOpenPort *iface, NET_FW_SCOPE scope)
Definition: port.c:272
#define HeapFree(x, y, z)
Definition: compat.h:394
HRESULT IUPnPNAT_create(IUnknown *outer, void **object)
Definition: port.c:759
static HRESULT WINAPI fw_port_put_RemoteAddresses(INetFwOpenPort *iface, BSTR remoteAddrs)
Definition: port.c:292
#define SUCCEEDED(hr)
Definition: intsafe.h:57
static ULONG WINAPI fw_ports_Release(INetFwOpenPorts *iface)
Definition: port.c:399
static HRESULT WINAPI fw_ports_GetIDsOfNames(INetFwOpenPorts *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: port.c:459
static BOOL heap_free(void *mem)
Definition: appwiz.h:75
GLuint const GLchar * name
Definition: glext.h:6031