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.
 
 
 
 
 
 

55 lines
1.6 KiB

#ifndef _HWDEV_H
#define _HWDEV_H
#include "namellst.h"
#include "cmmn.h"
#include "misc.h"
///////////////////////////////////////////////////////////////////////////////
//
// This will enumerate all the Device that we're interested in and create
// additionnal objects to do specialized work
//
///////////////////////////////////////////////////////////////////////////////
class CHWDeviceInst //: public CDeviceElem
{
public:
// CHWDeviceInst
HRESULT Init(DEVINST devinst);
HRESULT InitInterfaceGUID(const GUID* pguidInterface);
HRESULT GetPnpID(LPWSTR pszPnpID, DWORD cchPnpID);
HRESULT GetDeviceInstance(DEVINST* pdevinst);
HRESULT GetPnpInstID(LPWSTR pszPnpInstID, DWORD cchPnpInstID);
HRESULT GetInterfaceGUID(GUID* pguidInterface);
HRESULT IsRemovableDevice(BOOL* pfRemovable);
HRESULT ShouldAutoplayOnSpecialInterface(const GUID* pguidInterface,
BOOL* pfShouldAutoplay);
public:
CHWDeviceInst();
~CHWDeviceInst();
private:
HRESULT _GetPnpIDRecurs(DEVINST devinst, LPWSTR pszPnpID,
DWORD cchPnpID);
HRESULT _InitFriendlyName();
HRESULT _InitPnpInfo();
HRESULT _InitPnpIDAndPnpInstID();
private:
DEVINST _devinst;
// For now MAX_SURPRISEREMOVALFN
WCHAR _szFriendlyName[MAX_SURPRISEREMOVALFN];
WCHAR _szPnpID[MAX_PNPID];
WCHAR _szPnpInstID[MAX_PNPINSTID];
GUID _guidInterface;
BOOL _fFriendlyNameInited;
};
#endif //_HWDEV_H