|
|
#ifndef _metabase_h_
#define _metabase_h_
#define MAX_METABASE_PATH 1024
#define METABASE_TIMEOUT 5000
// declare a synch object for write access of metabase
class CSynchObject { private: CRITICAL_SECTION m_cs;
public: CSynchObject() { // Initialize the critical section
InitializeCriticalSection(&m_cs); }
~CSynchObject() { // Release resources used by the critical section object
DeleteCriticalSection(&m_cs); }
void Enter() { // wait for and take ownership of the critical section object
EnterCriticalSection(&m_cs); }
void Leave() { // Release ownership of the critical section object
LeaveCriticalSection(&m_cs); } };
class CMetabase { private:
IMSAdminBase* m_pIABase; void CreateMultiSzFromSafeArray(_variant_t&, WCHAR**,DWORD*); void LoadSafeArrayFromMultiSz(WCHAR*, _variant_t&); bool CheckKeyType(enum_KEY_TYPE&, LPCWSTR); bool CompareMultiSz(WCHAR* a_pmsz1, WCHAR* a_pmsz2);
public:
CMetabase(); ~CMetabase();
HRESULT Backup(LPCWSTR, DWORD, DWORD); HRESULT DeleteBackup(LPCWSTR, DWORD); HRESULT EnumBackups(LPWSTR, DWORD*, PFILETIME, DWORD); HRESULT Restore(LPCWSTR, DWORD, DWORD);
void CloseKey(METADATA_HANDLE); METADATA_HANDLE OpenKey(LPCWSTR, BOOL); METADATA_HANDLE CreateKey(LPCWSTR); bool CheckKey(LPCWSTR); HRESULT DeleteKey(METADATA_HANDLE, LPCWSTR);
void GetDword(METADATA_HANDLE, METABASE_PROPERTY*, _variant_t&); void GetString(METADATA_HANDLE, METABASE_PROPERTY*, _variant_t&); void GetMultiSz(METADATA_HANDLE, METABASE_PROPERTY*, _variant_t&); long GetWin32Error(METADATA_HANDLE);
void PutDword(METADATA_HANDLE, METABASE_PROPERTY*, _variant_t&, _variant_t*, bool=false); void PutString(METADATA_HANDLE, METABASE_PROPERTY*, _variant_t&, _variant_t*, bool=false); void PutMultiSz(METADATA_HANDLE, METABASE_PROPERTY*, _variant_t&, _variant_t*, bool=false); void PutMethod(METADATA_HANDLE, DWORD);
void DeleteData(METADATA_HANDLE, METABASE_PROPERTY*); void DeleteData(METADATA_HANDLE, DWORD, DWORD); HRESULT EnumKeys(METADATA_HANDLE, LPCWSTR, LPWSTR, DWORD*, enum_KEY_TYPE&); HRESULT WebAppCheck(METADATA_HANDLE); HRESULT WebAppGetStatus(METADATA_HANDLE, PDWORD); HRESULT WebAppSetStatus(METADATA_HANDLE, DWORD); };
class CWebAppMethod { private:
IWamAdmin2* m_pWamAdmin;
public:
CWebAppMethod(); ~CWebAppMethod(); HRESULT AppCreate(LPCWSTR, bool); HRESULT AppCreate2(LPCWSTR, long); HRESULT AppDelete(LPCWSTR, bool); HRESULT AppUnLoad(LPCWSTR, bool); HRESULT AppDisable(LPCWSTR, bool); HRESULT AppEnable(LPCWSTR, bool); HRESULT AppGetStatus(LPCWSTR, DWORD*); HRESULT AspAppRestart(LPCWSTR); };
#endif
|