Leaked source code of windows server 2003
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.

119 lines
3.5 KiB

  1. #ifndef __RSOP_WIZARD_H__
  2. #define __RSOP_WIZARD_H__
  3. //+--------------------------------------------------------------------------
  4. //
  5. // Microsoft Windows
  6. // Copyright (C) Microsoft Corporation, 1994 - 2001.
  7. //
  8. // File: RSOPWizard.h
  9. //
  10. // Contents: Definitions for the RSOP Wizard classes
  11. //
  12. // Classes: CRSOPWizard
  13. //
  14. // Functions:
  15. //
  16. // History: 08-02-2001 rhynierm Created
  17. //
  18. //---------------------------------------------------------------------------
  19. #include "RSOPQuery.h"
  20. #define RSOP_NEW_QUERY 0x80000000
  21. #define RSOP_90P_ONLY 0x40000000
  22. //
  23. // CRSOPExtendedProcessing
  24. //
  25. class CRSOPExtendedProcessing
  26. {
  27. public:
  28. virtual HRESULT DoProcessing( LPRSOP_QUERY pQuery, LPRSOP_QUERY_RESULTS pResults, BOOL bGetExtendedErrorInfo ) = 0;
  29. virtual BOOL GetExtendedErrorInfo() const = 0;
  30. };
  31. //
  32. // CRSOPWizard class
  33. //
  34. class CRSOPWizard
  35. {
  36. friend class CRSOPComponentData;
  37. friend class CRSOPWizardDlg;
  38. private:
  39. //
  40. // Constructors/destructor
  41. //
  42. CRSOPWizard();
  43. ~CRSOPWizard();
  44. public:
  45. //
  46. // Static RSOP data generation/manipulation
  47. //
  48. static HRESULT DeleteRSOPData( LPTSTR szNameSpace, LPRSOP_QUERY pQuery );
  49. static HRESULT GenerateRSOPDataEx( HWND hDlg, LPRSOP_QUERY pQuery, LPRSOP_QUERY_RESULTS* ppResults );
  50. static HRESULT GenerateRSOPData( HWND hDlg,
  51. LPRSOP_QUERY pQuery,
  52. LPTSTR* pszNameSpace,
  53. BOOL bSkipCSEs,
  54. BOOL bLimitData,
  55. BOOL bUser,
  56. BOOL bForceCreate,
  57. ULONG *pulErrorInfo,
  58. BOOL bNoUserData = FALSE,
  59. BOOL bNoComputerData = FALSE);
  60. static HRESULT CreateSafeArray( DWORD dwCount, LPTSTR* aszStringList, SAFEARRAY** psaList );
  61. private:
  62. //
  63. // RSOP generation dialog methods
  64. //
  65. static VOID InitializeResultsList (HWND hLV);
  66. static void FillResultsList (HWND hLV, LPRSOP_QUERY pQuery, LPRSOP_QUERY_RESULTS pQueryResults);
  67. };
  68. //
  69. // IWbemObjectSink implementation
  70. //
  71. class CCreateSessionSink : public IWbemObjectSink
  72. {
  73. protected:
  74. ULONG m_cRef;
  75. HWND m_hProgress;
  76. HANDLE m_hEvent;
  77. HRESULT m_hrSuccess;
  78. BSTR m_pNameSpace;
  79. ULONG m_ulErrorInfo;
  80. BOOL m_bSendEvent;
  81. BOOL m_bLimitProgress;
  82. public:
  83. CCreateSessionSink(HWND hProgress, HANDLE hEvent, BOOL bLimitProgress);
  84. ~CCreateSessionSink();
  85. STDMETHODIMP SendQuitEvent (BOOL bSendQuitMessage);
  86. STDMETHODIMP GetResult (HRESULT *hSuccess);
  87. STDMETHODIMP GetNamespace (BSTR *pNamespace);
  88. STDMETHODIMP GetErrorInfo (ULONG *pulErrorInfo);
  89. // IUnknown methods
  90. STDMETHODIMP QueryInterface(REFIID, LPVOID FAR *);
  91. STDMETHODIMP_(ULONG) AddRef();
  92. STDMETHODIMP_(ULONG) Release();
  93. // IWbemObjectSink methods
  94. STDMETHODIMP Indicate(LONG lObjectCount, IWbemClassObject **apObjArray);
  95. STDMETHODIMP SetStatus(LONG lFlags, HRESULT hResult, BSTR strParam, IWbemClassObject *pObjParam);
  96. };
  97. #endif