#ifndef __RSOP_WIZARD_H__ #define __RSOP_WIZARD_H__ //+-------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1994 - 2001. // // File: RSOPWizard.h // // Contents: Definitions for the RSOP Wizard classes // // Classes: CRSOPWizard // // Functions: // // History: 08-02-2001 rhynierm Created // //--------------------------------------------------------------------------- #include "RSOPQuery.h" #define RSOP_NEW_QUERY 0x80000000 #define RSOP_90P_ONLY 0x40000000 // // CRSOPExtendedProcessing // class CRSOPExtendedProcessing { public: virtual HRESULT DoProcessing( LPRSOP_QUERY pQuery, LPRSOP_QUERY_RESULTS pResults, BOOL bGetExtendedErrorInfo ) = 0; virtual BOOL GetExtendedErrorInfo() const = 0; }; // // CRSOPWizard class // class CRSOPWizard { friend class CRSOPComponentData; friend class CRSOPWizardDlg; private: // // Constructors/destructor // CRSOPWizard(); ~CRSOPWizard(); public: // // Static RSOP data generation/manipulation // static HRESULT DeleteRSOPData( LPTSTR szNameSpace, LPRSOP_QUERY pQuery ); static HRESULT GenerateRSOPDataEx( HWND hDlg, LPRSOP_QUERY pQuery, LPRSOP_QUERY_RESULTS* ppResults ); static HRESULT GenerateRSOPData( HWND hDlg, LPRSOP_QUERY pQuery, LPTSTR* pszNameSpace, BOOL bSkipCSEs, BOOL bLimitData, BOOL bUser, BOOL bForceCreate, ULONG *pulErrorInfo, BOOL bNoUserData = FALSE, BOOL bNoComputerData = FALSE); static HRESULT CreateSafeArray( DWORD dwCount, LPTSTR* aszStringList, SAFEARRAY** psaList ); private: // // RSOP generation dialog methods // static VOID InitializeResultsList (HWND hLV); static void FillResultsList (HWND hLV, LPRSOP_QUERY pQuery, LPRSOP_QUERY_RESULTS pQueryResults); }; // // IWbemObjectSink implementation // class CCreateSessionSink : public IWbemObjectSink { protected: ULONG m_cRef; HWND m_hProgress; HANDLE m_hEvent; HRESULT m_hrSuccess; BSTR m_pNameSpace; ULONG m_ulErrorInfo; BOOL m_bSendEvent; BOOL m_bLimitProgress; public: CCreateSessionSink(HWND hProgress, HANDLE hEvent, BOOL bLimitProgress); ~CCreateSessionSink(); STDMETHODIMP SendQuitEvent (BOOL bSendQuitMessage); STDMETHODIMP GetResult (HRESULT *hSuccess); STDMETHODIMP GetNamespace (BSTR *pNamespace); STDMETHODIMP GetErrorInfo (ULONG *pulErrorInfo); // IUnknown methods STDMETHODIMP QueryInterface(REFIID, LPVOID FAR *); STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release(); // IWbemObjectSink methods STDMETHODIMP Indicate(LONG lObjectCount, IWbemClassObject **apObjArray); STDMETHODIMP SetStatus(LONG lFlags, HRESULT hResult, BSTR strParam, IWbemClassObject *pObjParam); }; #endif