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.
|
|
// devpopg.h : header file
//
#ifndef __DEVPOPG_H__
#define __DEVPOPG_H__
/*++
Copyright (C) 1997-1999 Microsoft Corporation
Module Name:
devpopg.h
Abstract:
header file for devpopg.cpp
Author:
William Hsieh (williamh) created
Revision History:
--*/
#include "proppage.h"
#include "wmium.h"
#include "wdmguid.h"
#include "ndisguid.h"
//
// help topic ids
//
#define IDH_DISABLEHELP (DWORD(-1))
#define IDH_DEVMGR_PWRMGR_WAKEENABLE 2003170
#define IDH_DEVMGR_PWRMGR_MGMT_WAKEENABLE 2003185
#define IDH_DEVMGR_PWRMGR_DEVICEENABLE 2003180
typedef struct tagPowerTimeouts { ULONG ConservationIdleTime; ULONG PerformanceIdleTime; } DM_POWER_DEVICE_TIMEOUTS, *PDM_POWER_DEVICE_TIMEOUTS;
class CPowerEnable {
public: CPowerEnable(const GUID& wmiGuid, ULONG DataBlockSize) : m_hWmiBlock(INVALID_HANDLE_VALUE), m_WmiInstDataSize(0), m_pWmiInstData(NULL), m_DataBlockSize(DataBlockSize) { m_wmiGuid = wmiGuid; m_DevInstId[0] = _T('\0'); }
virtual ~CPowerEnable() { Close(); } BOOL IsOpened() { return INVALID_HANDLE_VALUE != m_hWmiBlock; } BOOL Get(BOOLEAN& fEnabled); BOOL Set(BOOLEAN fEnable); BOOL Open(LPCTSTR DeviceId); BOOL Close() { if (INVALID_HANDLE_VALUE != m_hWmiBlock) { WmiCloseBlock(m_hWmiBlock); }
m_hWmiBlock = INVALID_HANDLE_VALUE; m_DevInstId[0] = _T('\0');
if (m_pWmiInstData) {
delete [] m_pWmiInstData; m_pWmiInstData = NULL; }
m_WmiInstDataSize = 0;
return TRUE; } operator GUID&() { return m_wmiGuid; }
protected: WMIHANDLE m_hWmiBlock; ULONG m_Version; GUID m_wmiGuid; ULONG m_WmiInstDataSize; BYTE* m_pWmiInstData; ULONG m_DataBlockSize; TCHAR m_DevInstId[MAX_DEVICE_ID_LEN + 2]; };
class CPowerShutdownEnable : public CPowerEnable { public: CPowerShutdownEnable() : CPowerEnable(GUID_POWER_DEVICE_ENABLE, sizeof(BOOLEAN)) {} // override dtor is not necessary
};
class CPowerWakeEnable : public CPowerEnable { public: CPowerWakeEnable() : CPowerEnable(GUID_POWER_DEVICE_WAKE_ENABLE, sizeof(BOOLEAN)) {} // override dtor is not necessary
};
class CPowerWakeMgmtEnable : public CPowerEnable { public: CPowerWakeMgmtEnable() : CPowerEnable(GUID_NDIS_WAKE_ON_MAGIC_PACKET_ONLY, sizeof(BOOLEAN)) {} // override dtor is not necessary
};
class CDevicePowerMgmtPage : public CPropSheetPage { public: CDevicePowerMgmtPage() : m_pDevice(NULL), CPropSheetPage(g_hInstance, IDD_DEVPOWER_PAGE) {} ~CDevicePowerMgmtPage() {} HPROPSHEETPAGE Create(CDevice* pDevice) { ASSERT(pDevice); m_pDevice = pDevice; // override PROPSHEETPAGE structure here...
m_psp.lParam = (LPARAM)this; return CreatePage(); }
protected: virtual BOOL OnInitDialog(LPPROPSHEETPAGE ppsp); virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); virtual BOOL OnApply(); virtual void UpdateControls(LPARAM lParam = 0); virtual BOOL OnHelp(LPHELPINFO pHelpInfo); virtual BOOL OnContextMenu(HWND hWnd, WORD xPos, WORD yPos); private: CDevice* m_pDevice; CPowerShutdownEnable m_poShutdownEnable; CPowerWakeEnable m_poWakeEnable; CPowerWakeMgmtEnable m_poWakeMgmtEnable; };
#endif // _DEVPOPG_H__
|