Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#pragma once
#include "InternetGatewayDevice.h"
#include "dispimpl2.h"
#include "resource.h" // main symbols
#include "upnphost.h"
#include "hnetcfg.h"
class ATL_NO_VTABLE CNATDynamicPortMappingService : public CComObjectRootEx<CComMultiThreadModel>, public IDelegatingDispImpl<INATDynamicPortMappingService>, public IUPnPEventSource { public:
DECLARE_REGISTRY_RESOURCEID(IDR_SAMPLE_DEVICE) DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CNATDynamicPortMappingService) COM_INTERFACE_ENTRY(INATDynamicPortMappingService) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(IUPnPEventSource) END_COM_MAP()
CNATDynamicPortMappingService();
// IUPnPEventSource methods
STDMETHODIMP Advise(IUPnPEventSink* pesSubscriber); STDMETHODIMP Unadvise(IUPnPEventSink* pesSubscriber);
// INATDynamicPortMappingService
STDMETHODIMP get_DynamicPublicIP(BSTR* pDynamicPublicIP); STDMETHODIMP get_DynamicPort(ULONG* pulDynamicPort); STDMETHODIMP get_DynamicProtocol(BSTR* pDynamicProtocol); STDMETHODIMP get_DynamicPrivateIP(BSTR* pDynamicPrivateIP); STDMETHODIMP get_DynamicLeaseDuration(ULONG* pulDynamicLeaseDuration); STDMETHODIMP CreateDynamicPortMapping(BSTR DynamicPublicIP, ULONG ulDynamicPort, BSTR DynamicProtocol, BSTR DynamicPrivateIP, BSTR DynamicLeaseDuration); STDMETHODIMP DeleteDynamicPortMapping(BSTR DynamicPublicIP, ULONG ulDynamicPort, BSTR DynamicProtocol); STDMETHODIMP ExtendDynamicPortMapping(BSTR DynamicPublicIP, ULONG ulDynamicPort, BSTR DynamicProtocol, ULONG ulDynamicLeaseDuration);
HRESULT FinalConstruct(); HRESULT FinalRelease(); HRESULT Initialize(IHNetConnection* pHNetConnection);
private:
IUPnPEventSink* m_pEventSink; IHNetConnection* m_pHNetConnection; };
|