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.
 
 
 
 
 
 

97 lines
3.5 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2000.
//
// File: S A M P L E D E V I C E . H
//
// Contents: UPnP Device Host Sample Device
//
// Notes:
//
// Author: mbend 26 Sep 2000
//
//----------------------------------------------------------------------------
#pragma once
#include "InternetGatewayDevice.h"
#include "dispimpl2.h"
#include "resource.h" // main symbols
#include "upnphost.h"
#include "hnetcfg.h"
#include "upnpp.h"
#include "CWANIPConnectionService.h"
#include "CWANPPPConnectionService.h"
#include "CWANPOTSLinkConfigService.h"
/////////////////////////////////////////////////////////////////////////////
// CInternetGatewayDevice
class ATL_NO_VTABLE CWANCommonInterfaceConfigService :
public CComObjectRootEx<CComMultiThreadModel>,
public IDelegatingDispImpl<ICommonInterfaceConfigService>,
public IUPnPEventSource
{
public:
CWANCommonInterfaceConfigService();
DECLARE_REGISTRY_RESOURCEID(IDR_SAMPLE_DEVICE)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CWANCommonInterfaceConfigService)
COM_INTERFACE_ENTRY(ICommonInterfaceConfigService)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IUPnPEventSource)
END_COM_MAP()
public:
// IUPnPEventSource methods
STDMETHOD(Advise)(
/*[in]*/ IUPnPEventSink *pesSubscriber);
STDMETHOD(Unadvise)(
/*[in]*/ IUPnPEventSink *pesSubscriber);
// ICommonInterfaceConfigService methods
STDMETHODIMP get_WANAccessType(BSTR *pWANAccessType);
STDMETHODIMP get_Layer1UpstreamMaxBitRate(ULONG *pLayer1UpstreamMaxBitRate);
STDMETHODIMP get_Layer1DownstreamMaxBitRate(ULONG *pLayer1DownstreamMaxBitRate);
STDMETHODIMP get_PhysicalLinkStatus(BSTR *pPhysicalLinkStatus);
STDMETHODIMP get_TotalBytesSent(ULONG *pTotalBytesSent);
STDMETHODIMP get_TotalBytesReceived(ULONG *pTotalBytesReceived);
STDMETHODIMP get_TotalPacketsSent(ULONG *pTotalPacketsSent);
STDMETHODIMP get_TotalPacketsReceived(ULONG *pTotalPacketsReceived);
STDMETHODIMP get_WANAccessProvider(BSTR *pWANAccessProvider);
STDMETHODIMP get_MaximumActiveConnections(USHORT *pMaximumActiveConnections);
STDMETHODIMP get_X_PersonalFirewallEnabled(VARIANT_BOOL *pPersonalFirewallEnabled);
STDMETHODIMP get_X_Uptime(ULONG* pUptime);
STDMETHODIMP GetCommonLinkProperties(BSTR* pWANAccessType, ULONG* pLayer1UpstreamMaxBitRate, ULONG *pLayer1DownstreamMaxBitRate, BSTR *pPhysicalLinkStatus);
STDMETHODIMP GetTotalBytesSent(ULONG *pTotalBytesSent);
STDMETHODIMP GetTotalBytesReceived(ULONG *pTotalBytesReceived);
STDMETHODIMP GetTotalPacketsSent(ULONG *pTotalPacketsSent);
STDMETHODIMP GetTotalPacketsReceived(ULONG *pTotalPacketsReceived);
STDMETHODIMP X_GetICSStatistics(ULONG *pTotalBytesSent, ULONG *pTotalBytesReceived, ULONG *pTotalPacketsSent, ULONG *pTotalPacketsReceived, ULONG *pSpeed, ULONG *pUptime);
HRESULT FinalConstruct(void);
HRESULT FinalRelease(void);
CComObject<CWANIPConnectionService>* m_pWANIPConnectionService;
CComObject<CWANPPPConnectionService>* m_pWANPPPConnectionService;
CComObject<CWANPOTSLinkConfigService>* m_pWANPOTSLinkConfigService;
NETCON_MEDIATYPE m_MediaType;
private:
HRESULT GetConnections(IHNetConnection** ppPublicConnection, IHNetConnection** ppPrivateConnection);
IUPnPEventSink* m_pEventSink;
IUPnPDeviceHostICSSupport* m_pICSSupport;
BOOL m_bFirewalled;
IStatisticsProvider* m_pStatisticsProvider;
};