/******************************************************************************* * * (C) COPYRIGHT MICROSOFT CORP., 1993-1995 * TITLE: PROPPAGE.H * VERSION: 1.0 * AUTHOR: jsenior * DATE: 10/28/1998 * ******************************************************************************** * * CHANGE LOG: * * DATE REV DESCRIPTION * ---------- ------- ---------------------------------------------------------- * 10/28/1998 jsenior Original implementation. * *******************************************************************************/ #ifndef _USBPROPERTYPAGE_H #define _USBPROPERTYPAGE_H #define USBWM_NOTIFYREFRESH (WM_USER + 501) #ifndef WINNT #define HELPFILE "windows.hlp" #else #define HELPFILE "devmgr.hlp" #endif //WINNT #include "UsbItem.h" #include "debug.h" extern HINSTANCE gHInst; #define IDH_NOHELP (DWORD(-1)) class UsbPropertyPage { public: UsbPropertyPage(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData); UsbPropertyPage(UsbItem *); UsbPropertyPage(HWND, LPCSTR); virtual ~UsbPropertyPage() { if (rootItem) { DeleteChunk(rootItem); delete rootItem; } } HPROPSHEETPAGE Create(); static void SetHandle(HANDLE HInst) {if (!hInst) hInst = HInst;}; static void DisplayPPSelectedListItem(HWND main, HWND hList); static void DisplayPPSelectedTreeItem(HWND main, HWND hList); VOID CreateAsChild(HWND hWndParent, HWND hCreateOn, UsbItem *item); VOID CreateIndependent(); BOOL DestroyChild(); BOOL SizeWindow(int X, int Y, int W, int H) { return hwnd ? MoveWindow(hwnd, X, Y, W, H, TRUE) : FALSE; } protected: const DWORD *HelpIds; static USBINT_PTR APIENTRY StaticDialogProc(IN HWND hDlg, IN UINT uMessage, IN WPARAM wParam, IN LPARAM lParam); static USBINT_PTR APIENTRY AppletDialogProc(IN HWND hDlg, IN UINT uMessage, IN WPARAM wParam, IN LPARAM lParam); static UINT CALLBACK StaticDialogCallback(HWND Hwnd, UINT Msg, LPPROPSHEETPAGE Page); virtual USBINT_PTR APIENTRY ActualDialogProc(IN HWND hDlg, IN UINT uMessage, IN WPARAM wParam, IN LPARAM lParam) { return FALSE; } // DefDlgProc(hDlg, uMessage, wParam, lParam); } virtual BOOL OnCommand(INT wNotifyCode, INT wID, HWND hCtl) {return 1;} virtual BOOL OnInitDialog() =0; virtual BOOL OnNotify(HWND hDlg, int nID, LPNMHDR pnmh); BOOL OnContextMenu(HWND HwndControl, WORD Xpos, WORD Ypos); void OnHelp(HWND ParentHwnd, LPHELPINFO HelpInfo); static void ShowPropertyPage(HWND parent, UsbItem *usbItem); BOOL GetDeviceName(); static HANDLE hInst; String deviceName; HWND hwnd; HWND hWndParent; UINT dlgResource; PROPSHEETPAGE psp; HDEVINFO deviceInfoSet; PSP_DEVINFO_DATA deviceInfoData; UsbImageList imageList; UsbItem *rootItem; // // This should be null if using as a proppage. This is used when using this // class as a child window in the usbapplet class. // UsbItem *preItem; }; class GenericPage : public UsbPropertyPage { public: GenericPage(UsbItem *item) : UsbPropertyPage(item) {Initialize();} GenericPage(HWND HWndParent, LPCSTR DevName) : UsbPropertyPage(HWndParent, DevName) {Initialize();} GenericPage(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData) : UsbPropertyPage(DeviceInfoSet, DeviceInfoData) {Initialize();} protected: void Refresh(); BOOL OnInitDialog(); VOID Initialize(); UsbItem *rootItem; }; class RootPage : public UsbPropertyPage { public: RootPage(UsbItem *item) : UsbPropertyPage(item) {Initialize();} protected: void Refresh(); BOOL OnInitDialog(); VOID Initialize(); BOOL ErrorCheckingEnabled; BOOL OnCommand(INT wNotifyCode, INT wID, HWND hCtl) ; }; #endif // _USBPROPERTYPAGE_H