/*++ Copyright (c) 2000-2001 Microsoft Corporation Module Name: SiteCreator.h Abstract: Definition of: CSiteCreator The public methods are thread-safe. Author: Mohit Srivastava 21-Mar-2001 Revision History: --*/ #ifndef __sitecreator_h__ #define __sitecreator_h__ #if _MSC_VER > 1000 #pragma once #endif #include #include #include #include #include "SafeCS.h" typedef /* [v1_enum] */ enum tag_SC_SUPPORTED_SERVICES { SC_W3SVC = 1, SC_MSFTPSVC = 2 } eSC_SUPPORTED_SERVICES; struct TService { eSC_SUPPORTED_SERVICES eId; LPCWSTR wszMDPath; ULONG cchMDPath; LPCWSTR wszServerKeyType; ULONG cchServerKeyType; LPCWSTR wszServerVDirKeyType; ULONG cchServerVDirKeyType; }; struct TServiceData { static TService W3Svc; static TService MSFtpSvc; static TService* apService[]; }; // // CSiteCreator // class CSiteCreator { public: CSiteCreator(); CSiteCreator( IMSAdminBase* pIABase); virtual ~CSiteCreator(); HRESULT STDMETHODCALLTYPE CreateNewSite( /* [in] */ eSC_SUPPORTED_SERVICES eServiceId, /* [in] */ LPCWSTR wszServerComment, /* [out] */ PDWORD pdwSiteId, /* [in] */ PDWORD pdwRequestedSiteId=NULL); HRESULT STDMETHODCALLTYPE CreateNewSite2( /* [in] */ eSC_SUPPORTED_SERVICES eServiceId, /* [in] */ LPCWSTR wszServerComment, /* [in] */ LPCWSTR mszServerBindings, /* [in] */ LPCWSTR wszPathOfRootVirtualDir, /* [in] */ IIISApplicationAdmin* pIApplAdmin, /* [out] */ PDWORD pdwSiteId, /* [in] */ PDWORD pdwRequestedSiteId=NULL); private: HRESULT InternalInitIfNecessary(); HRESULT InternalCreateNewSite( eSC_SUPPORTED_SERVICES i_eServiceId, LPCWSTR i_wszServerComment, LPCWSTR i_mszServerBindings, LPCWSTR i_wszPathOfRootVirtualDir, IIISApplicationAdmin* i_pIApplAdmin, PDWORD o_pdwSiteId, PDWORD i_pdwRequestedSiteId=NULL); HRESULT InternalSetData( METADATA_HANDLE i_hMD, LPCWSTR i_wszPath, DWORD i_dwIdentifier, LPBYTE i_pData, DWORD i_dwNrBytes, DWORD i_dwAttributes, DWORD i_dwDataType, DWORD i_dwUserType ); HRESULT InternalCreateNode( TService* i_pService, LPCWSTR i_wszServerComment, PMETADATA_HANDLE o_phService, PDWORD o_pdwSiteId, const PDWORD i_pdwRequestedSiteId=NULL); HRESULT SetAdminACL( METADATA_HANDLE hW3Svc, LPCWSTR szKeyPath); DWORD GetMajorVersion(METADATA_HANDLE hKey); CSafeAutoCriticalSection m_SafeCritSec; CComPtr m_spIABase; bool m_bInit; }; #endif // __sitecreator_h__