00001 /****************************************************************************** 00002 00003 Header File: Profile Property Sheet.H 00004 00005 This defines the classes used to implement the profile management property 00006 sheet as defined in the ICM 2.0 shell extension functional specification. 00007 00008 This class supplies one of two basic dialogs, depending upon whether or not 00009 the profile has already been installed. We use the C++ profile class to 00010 hide any details of that knowledge from this code. 00011 00012 All structures needed by any of the individual pages or resulting dialogs 00013 are kept here. This allows us to easily handle the final Install/Don't 00014 Install/Associate/Don't Associate decisions. 00015 00016 Copyright (c) 1996 by Microsoft Corporation 00017 00018 A Pretty Penny Enterprises Production 00019 00020 Change History: 00021 00022 11-01-96 [email protected] original version 00023 00024 ******************************************************************************/ 00025 00026 #if !defined(PROFILE_PROPSHEET) 00027 00028 #define PROFILE_PROPSHEET 00029 00030 #include "Profile.H" 00031 #include "Dialog.H" 00032 00033 // class CProfilePropertySheet - cpps 00034 00035 class CProfilePropertySheet : public CDialog { 00036 00037 CProfile& m_cpTarget; 00038 CDialog *m_pcdPage[2]; 00039 RECT m_rcTab; // Client area of tab Control 00040 BOOL m_bDelete; 00041 CUintArray m_cuaAdd; // Device associatins to be added 00042 CUintArray m_cuaDelete; // Device associations to zap 00043 CUintArray m_cuaAssociate; // Tentative list of associated devices 00044 00045 void ConstructAssociations(); 00046 00047 public: 00048 00049 CProfilePropertySheet(HINSTANCE hiWhere, CProfile& cpTarget); 00050 00051 ~CProfilePropertySheet(); 00052 00053 HWND Window() const { return m_hwnd; } 00054 HINSTANCE Instance() const { return m_hiWhere; } 00055 CProfile& Profile() { return m_cpTarget; } 00056 BOOL DeleteIsOK() const { return m_bDelete; } 00057 unsigned AssociationCount() const { 00058 return m_cuaAssociate.Count(); 00059 } 00060 00061 unsigned Association(unsigned u) { return m_cuaAssociate[u]; } 00062 00063 LPCTSTR DisplayName(unsigned u) { 00064 return m_cpTarget.DisplayName(m_cuaAssociate[u]); 00065 } 00066 00067 void DeleteOnUninstall(BOOL bOn) { 00068 m_bDelete = bOn; 00069 } 00070 00071 void Associate(unsigned u); 00072 void Dissociate(unsigned u); 00073 00074 virtual BOOL OnInit(); 00075 virtual BOOL OnNotify(int idCtrl, LPNMHDR pnmh); 00076 virtual BOOL OnCommand(WORD wNotifyCode, WORD wid, HWND hwndControl); 00077 }; 00078 00079 #endif 00080