windows-nt/Source/XPSP1/NT/net/upnp/host/upnphost/registrar/devicemanager.h
2020-09-26 16:20:57 +08:00

71 lines
1.9 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2000.
//
// File: D E V I C E M A N A G E R . H
//
// Contents: Registrar collection of physical devices and device information
//
// Notes:
//
// Author: mbend 12 Sep 2000
//
//----------------------------------------------------------------------------
#pragma once
#include "uhres.h" // main symbols
#include "upnphost.h"
#include "hostp.h"
#include "UString.h"
#include "ComUtility.h"
#include "Table.h"
#include "RegDef.h"
#include "PhysicalDeviceInfo.h"
// Typedefs
/////////////////////////////////////////////////////////////////////////////
// CDeviceManager
class CDeviceManager
{
public:
CDeviceManager();
~CDeviceManager();
// Lifetime operations
HRESULT HrShutdown();
// Device registration
HRESULT HrAddDevice(
const PhysicalDeviceIdentifier & pdi,
const wchar_t * szProgIdDeviceControlClass,
const wchar_t * szInitString,
const wchar_t * szContainerId,
long nUDNs,
wchar_t ** arszUDNs);
HRESULT HrAddRunningDevice(
const PhysicalDeviceIdentifier & pdi,
IUnknown * pUnkDeviceControl,
const wchar_t * szInitString,
long nUDNs,
wchar_t ** arszUDNs);
HRESULT HrRemoveDevice(const PhysicalDeviceIdentifier & pdi);
HRESULT HrGetService(
const wchar_t * szUDN,
const wchar_t * szServiceId,
CServiceInfo ** ppServiceInfo);
BOOL FHasDevice(const PhysicalDeviceIdentifier & pdi);
private:
CDeviceManager(const CDeviceManager &);
CDeviceManager & operator=(const CDeviceManager &);
typedef CTable<PhysicalDeviceIdentifier, CPhysicalDeviceInfo> PhysicalDeviceTable;
typedef CTable<UDN, PhysicalDeviceIdentifier> UDNMappingTable;
PhysicalDeviceTable m_physicalDeviceTable;
UDNMappingTable m_udnMappingTable;
};