#ifndef __RSOP_WIZARD_DLG_H__ #define __RSOP_WIZARD_DLG_H__ //+-------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1994 - 2001. // // File: RSOPWizardDlg.h // // Contents: Definitions for the RSOP Wizard dialog class // // Classes: CRSOPWizardDlg // // Functions: // // History: 08-08-2001 rhynierm Created // //--------------------------------------------------------------------------- #include "RSOPQuery.h" // Forward declaration class CRSOPExtendedProcessing; // // CRSOPWizardDlg class // class CRSOPWizardDlg { public: // // Constructors/destructor // CRSOPWizardDlg( LPRSOP_QUERY pQuery, CRSOPExtendedProcessing* pExtendedProcessing ); ~CRSOPWizardDlg(); VOID FreeUserData(); VOID FreeComputerData(); public: // // Wizard interface // HRESULT ShowWizard( HWND hParent ); HRESULT RunQuery( HWND hParent ); LPRSOP_QUERY_RESULTS GetResults() const { return m_pRSOPQueryResults; } private: // // Static RSOP data generation/manipulation // static INT_PTR CALLBACK InitRsopDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); private: // // Property sheet/dialog box handlers // static INT_PTR CALLBACK RSOPWelcomeDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPChooseModeDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPGetCompDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPGetUserDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPGetTargetDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPGetDCDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPAltDirsDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPAltUserSecDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPAltCompSecDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPWQLUserDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPWQLCompDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPFinishedDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPFinished2DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK RSOPChooseDCDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT CALLBACK DsBrowseCallback (HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData); static INT_PTR CALLBACK BrowseDCDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); private: // // Dialog helper methods // HRESULT SetupFonts(); HRESULT FillUserList (HWND hList, BOOL* pbCurrentUserFound, BOOL* pbFixedUserFound); VOID EscapeString (LPTSTR *lpString); VOID InitializeSitesInfo (HWND hDlg); BOOL IsComputerRSoPEnabled(LPTSTR lpDCName); BOOL TestAndValidateComputer(HWND hDlg); VOID InitializeDCInfo (HWND hDlg); DWORD GetDefaultGroupCount(); VOID AddDefaultGroups (HWND hLB); HRESULT BuildMembershipList (HWND hLB, IDirectoryObject * pDSObj, DWORD* pdwCount, LPTSTR** paszSecGrps, DWORD** padwSecGrpAttr); VOID GetPrimaryGroup (HWND hLB, IDirectoryObject * pDSObj); HRESULT SaveSecurityGroups (HWND hLB, DWORD* pdwCount, LPTSTR** paszSecGrps, DWORD** padwSecGrpAttr); VOID FillListFromSecurityGroups(HWND hLB, DWORD dwCount, LPTSTR* aszSecurityGroups, DWORD* adwSecGrpAttr); VOID FillListFromWQLFilters( HWND hLB, DWORD dwCount, LPTSTR* aszNames, LPTSTR* aszFilters ); VOID AddSiteToDlg (HWND hDlg, LPWSTR szSitePath); VOID BuildWQLFilterList (HWND hDlg, BOOL bUser, DWORD* pdwCount, LPTSTR** paszNames, LPTSTR** paszFilters ); HRESULT SaveWQLFilters (HWND hLB, DWORD* pdwCount, LPTSTR** paszNames, LPTSTR**paszFilters ); BOOL CompareStringLists( DWORD dwCountA, LPTSTR* aszListA, DWORD dwCountB, LPTSTR* aszListB ); LPTSTR GetDefaultSOM (LPTSTR lpDNName); HRESULT TestSOM (LPTSTR lpSOM, HWND hDlg); private: BOOL m_bPostXPBuild; DWORD m_dwSkippedFrom; // Dialog fonts HFONT m_BigBoldFont; HFONT m_BoldFont; // Used to prevent the user from cancelling the query BOOL m_bFinalNextClicked; // Final RSOP information LPRSOP_QUERY m_pRSOPQuery; LPRSOP_QUERY_RESULTS m_pRSOPQueryResults; HRESULT m_hrQuery; BOOL m_bNoChooseQuery; // RM: variables that belong only in the dialogs LPTSTR m_szDefaultUserSOM; LPTSTR m_szDefaultComputerSOM; IDirectoryObject* m_pComputerObject; IDirectoryObject * m_pUserObject; BOOL m_bDollarRemoved; BOOL m_bNoCurrentUser; DWORD m_dwDefaultUserSecurityGroupCount; LPTSTR* m_aszDefaultUserSecurityGroups; DWORD* m_adwDefaultUserSecurityGroupsAttr; DWORD m_dwDefaultUserWQLFilterCount; LPTSTR* m_aszDefaultUserWQLFilterNames; LPTSTR* m_aszDefaultUserWQLFilters; DWORD m_dwDefaultComputerSecurityGroupCount; LPTSTR* m_aszDefaultComputerSecurityGroups; DWORD* m_adwDefaultComputerSecurityGroupsAttr; DWORD m_dwDefaultComputerWQLFilterCount; LPTSTR* m_aszDefaultComputerWQLFilterNames; LPTSTR* m_aszDefaultComputerWQLFilters; CRSOPExtendedProcessing* m_pExtendedProcessing; LONG m_lPlanningFinishedPage; LONG m_lLoggingFinishedPage; }; #endif