Source code of Windows XP (NT5)
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.

141 lines
2.9 KiB

  1. //---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1996 - 1997
  5. //
  6. // File: ciissrv.hxx
  7. //
  8. // Contents: CIISServer object
  9. //
  10. // History: 21-3-97 SophiaC Created.
  11. //
  12. //----------------------------------------------------------------------------
  13. class CIISServer;
  14. class CIISServer : INHERIT_TRACKING,
  15. public IADsServiceOperations,
  16. public IPrivateUnknown,
  17. public IPrivateDispatch,
  18. public IADsExtension,
  19. public INonDelegatingUnknown
  20. {
  21. public:
  22. /* IUnknown methods */
  23. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
  24. DECLARE_DELEGATING_REFCOUNTING
  25. //
  26. // INonDelegatingUnkown methods declaration for NG_QI, definition for
  27. // NG_AddRef adn NG_Release.
  28. //
  29. STDMETHOD(NonDelegatingQueryInterface)(THIS_
  30. const IID&,
  31. void **
  32. );
  33. DECLARE_NON_DELEGATING_REFCOUNTING
  34. DECLARE_IDispatch_METHODS
  35. DECLARE_IADsServiceOperations_METHODS;
  36. DECLARE_IPrivateUnknown_METHODS
  37. DECLARE_IPrivateDispatch_METHODS
  38. STDMETHOD(Operate)(
  39. THIS_
  40. DWORD dwCode,
  41. VARIANT varUserName,
  42. VARIANT varPassword,
  43. VARIANT varReserved
  44. );
  45. STDMETHOD(PrivateGetIDsOfNames)(
  46. THIS_
  47. REFIID riid,
  48. OLECHAR FAR* FAR* rgszNames,
  49. unsigned int cNames,
  50. LCID lcid,
  51. DISPID FAR* rgdispid) ;
  52. STDMETHOD(PrivateInvoke)(
  53. THIS_
  54. DISPID dispidMember,
  55. REFIID riid,
  56. LCID lcid,
  57. WORD wFlags,
  58. DISPPARAMS FAR* pdispparams,
  59. VARIANT FAR* pvarResult,
  60. EXCEPINFO FAR* pexcepinfo,
  61. unsigned int FAR* puArgErr
  62. ) ;
  63. DECLARE_IADs_METHODS
  64. CIISServer::CIISServer();
  65. CIISServer::~CIISServer();
  66. static
  67. HRESULT
  68. CIISServer::CreateServer(
  69. IUnknown *pUnkOuter,
  70. REFIID riid,
  71. void **ppvObj
  72. );
  73. static
  74. HRESULT
  75. CIISServer::AllocateServerObject(
  76. IUnknown *pUnkOuter,
  77. CCredentials& Credentials,
  78. CIISServer ** ppServer
  79. );
  80. HRESULT
  81. CIISServer::InitializeServerObject(
  82. LPWSTR pszServerName,
  83. LPWSTR pszPath
  84. );
  85. HRESULT
  86. IISControlServer(
  87. DWORD dwControl
  88. );
  89. HRESULT
  90. IISGetServerState(
  91. METADATA_HANDLE hObjHandle,
  92. LPDWORD pdwState
  93. );
  94. HRESULT
  95. IISGetServerWin32Error(
  96. METADATA_HANDLE hObjHandle,
  97. HRESULT* phrError
  98. );
  99. HRESULT
  100. IISSetCommand(
  101. METADATA_HANDLE hObjHandle,
  102. DWORD dwControl
  103. );
  104. protected:
  105. IADs FAR * _pADs;
  106. LPWSTR _pszServerName;
  107. LPWSTR _pszMetaBasePath;
  108. BOOL _fDispInitialized;
  109. CAggregateeDispMgr FAR * _pDispMgr;
  110. CCredentials _Credentials;
  111. IMSAdminBase *_pAdminBase; //interface pointer
  112. };