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.
 
 
 
 
 
 

51 lines
1.3 KiB

#pragma once
#include "InternetGatewayDevice.h"
#include "dispimpl2.h"
#include "resource.h" // main symbols
#include "upnphost.h"
/////////////////////////////////////////////////////////////////////////////
// COSInfoService
class ATL_NO_VTABLE COSInfoService :
public CComObjectRootEx<CComMultiThreadModel>,
public IDelegatingDispImpl<IOSInfoService>,
public IUPnPEventSource
{
public:
DECLARE_REGISTRY_RESOURCEID(IDR_SAMPLE_DEVICE)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(COSInfoService)
COM_INTERFACE_ENTRY(IOSInfoService)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IUPnPEventSource)
END_COM_MAP()
public:
COSInfoService();
// IUPnPEventSource methods
STDMETHODIMP Advise(IUPnPEventSink *pesSubscriber);
STDMETHODIMP Unadvise(IUPnPEventSink *pesSubscriber);
// IOSInfo methods
STDMETHODIMP get_OSMajorVersion(LONG *pOSMajorVersion);
STDMETHODIMP get_OSMinorVersion(LONG *pOSMinorVersion);
STDMETHODIMP get_OSBuildNumber(LONG *pOSBuildNumber);
STDMETHODIMP get_OSMachineName(BSTR* pOSMachineName);
STDMETHODIMP MagicOn( void);
HRESULT FinalConstruct(void);
HRESULT FinalRelease(void);
private:
IUPnPEventSink* m_pEventSink;
VARIANT_BOOL m_vbMagic;
OSVERSIONINFOEX m_OSVersionInfo;
BSTR m_MachineName;
};