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.
 
 
 
 
 
 

109 lines
4.3 KiB

#pragma once
#include "globals.h"
#include "delebase.h"
#include <map>
using namespace std;
enum ConnectMode
{
CM_Reader = 0,
CM_Writer,
CM_Both
};
struct WebServerData
{
CDelegationBase *pBase;
tstring szName;
ConnectMode connectMode;
};
typedef map<tstring, tstring> CPropertyMap;
class CUDDISiteNode;
class CUDDIWebServerNode : public CDelegationBase
{
friend class CUDDISiteNode;
public:
CUDDIWebServerNode( const _TCHAR *szName, int id, CUDDISiteNode* parent, BOOL bExtension );
virtual ~CUDDIWebServerNode();
static BOOL IsWebServer( const WCHAR *pwszName );
static BOOL IsAssignedToSite( const tstring& szWebServer, const ConnectMode& cm, tstring& szSite );
static BOOL GetReaderConnectionString( const tstring& szName, tstring &szReader );
static BOOL GetWriterConnectionString( const tstring& szName, tstring &szWriter );
static BOOL SetReaderConnectionString( const tstring& szName, const tstring& szReader );
static BOOL SetWriterConnectionString( const tstring& szName, const tstring& szWriter );
static void CrackConnectionString( const tstring& strConnection, tstring& strDomain, tstring& strServer, tstring& strInstance );
static tstring BuildConnectionString( const wstring& strComputer );
static BOOL GetDBSchemaVersion( const wstring& strComputer, wstring& strVersion );
static BOOL CALLBACK NewWebServerDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
HRESULT GetData();
HRESULT SaveData();
BOOL Start();
BOOL Stop();
BOOL SetRunState( BOOL bStart );
const BOOL IsRunning();
const LPCTSTR GetName();
BOOL GetDBSchemaVersion( tstring& szVersion );
virtual const _TCHAR *GetDisplayName(int nCol = 0);
virtual const GUID & getNodeType() { return thisGuid; }
virtual const int GetBitmapIndex() { return INDEX_WEBSERVER; }
virtual BOOL HasChildren() { return FALSE; }
virtual BOOL ChildExists( const WCHAR *pwszName );
BOOL IsDeleted() { return m_isDeleted; }
void DeleteFromScopePane( IConsoleNameSpace *pConsoleNameSpace );
//
// Virtual functions go here (for MMCN_*)
//
virtual HRESULT OnAddMenuItems( IContextMenuCallback *pContextMenuCallback, long *pInsertionsAllowed );
virtual HRESULT OnMenuCommand( IConsole *pConsole, IConsoleNameSpace *pConsoleNameSpace, long lCommandID, IDataObject *pDataObject );
virtual HRESULT OnSelect(CComponent *pComponent, IConsole *pConsole, BOOL bScope, BOOL bSelect);
virtual HRESULT OnPropertyChange(IConsole *pConsole, CComponent *pComponent);
virtual HRESULT OnUpdateItem(IConsole *pConsole, long item, ITEM_TYPE itemtype);
virtual HRESULT OnRefresh(IConsole *pConsole);
virtual HRESULT OnDelete( IConsoleNameSpace *pConsoleNameSpace, IConsole *pConsoleComp);
virtual HRESULT OnSetToolbar( IControlbar *pControlbar, IToolbar *pToolbar, BOOL bScope, BOOL bSelect );
virtual HRESULT OnToolbarCommand( IConsole *pConsole, MMC_CONSOLE_VERB verb, IDataObject *pDataObject );
virtual HRESULT OnShowContextHelp(IDisplayHelp *pDisplayHelp, LPOLESTR helpFile);
virtual HRESULT CreatePropertyPages(IPropertySheetCallback *lpProvider, LONG_PTR handle);
virtual HRESULT HasPropertySheets();
virtual HRESULT GetWatermarks(HBITMAP *lphWatermark, HBITMAP *lphHeader, HPALETTE *lphPalette, BOOL *bStretch );
private:
static const GUID thisGuid;
enum WEBSERVER_STATUS { RUNNING, STOPPED } m_nStatus;
enum menuItems { IDM_WEBSERVER_START = 1, IDM_WEBSERVER_STOP = 2 };
BOOL m_bStdSvr;
_TCHAR* m_szName;
int m_nId;
LONG_PTR m_ppHandle;
CUDDISiteNode *m_pParent;
BOOL m_isDeleted;
CPropertyMap m_mapProperties;
CPropertyMap m_mapChanges;
IToolbar *m_pToolbar;
BOOL m_isScopeItem;
BOOL m_fDeleteFromScopePane;
tstring m_strDisplayName;
HWND m_hwndPropSheet;
static BOOL CALLBACK GeneralDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
static BOOL CALLBACK DatabaseConnectionDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
static BOOL CALLBACK LoggingDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
HRESULT UpdateScopePaneItem( IConsole *pConsole, HSCOPEITEM item );
HRESULT UpdateResultPaneItem( IConsole *pConsole, HRESULTITEM item );
BOOL IsW3SvcRunning();
};