55 lines
1.6 KiB
C
55 lines
1.6 KiB
C
|
#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
|