|
|
/*===================================================================
Microsoft IIS
Microsoft Confidential. Copyright 1997 Microsoft Corporation. All Rights Reserved.
Component: WAMREG
File: WamAdm.h
Declaration of the CWamAdmin
Owner: LeiJin
Note:
WamAdm header file ===================================================================*/
#ifndef __WAMADM_H_
#define __WAMADM_H_
#include "admex.h"
#include "common.h"
/////////////////////////////////////////////////////////////////////////////
// CWamAdmin
class CWamAdmin : public IWamAdmin2, public IMSAdminReplication #ifdef _IIS_6_0
, public IIISApplicationAdmin #endif // _IIS_6_0
{ public: CWamAdmin(); ~CWamAdmin();
public: STDMETHOD(QueryInterface)(REFIID riid, void ** ppv); STDMETHOD_(ULONG, AddRef)(); STDMETHOD_(ULONG, Release)();
//
// IWamAdmin
//
STDMETHOD(AppRecover) ( /*[in, unique, string]*/ LPCWSTR szMDPath, /*[in]*/ BOOL fRecursive ); STDMETHOD(AppDeleteRecoverable) (/*[in, unique, string]*/ LPCWSTR szMDPath, /*[in]*/ BOOL fRecursive ); STDMETHOD(AppGetStatus) (/*[in, unique, string]*/ LPCWSTR szMDPath, /*[out]*/ DWORD *pdwAppStatus ); STDMETHOD(AppUnLoad) (/*[in, unique, string]*/ LPCWSTR szMDPath, /*[in]*/ BOOL fRecursive ); STDMETHOD(AppDelete) (/*[in, unique, string]*/ LPCWSTR szMDPath, /*[in]*/ BOOL fRecursive ); STDMETHOD(AppCreate) (/*[in, unique, string]*/ LPCWSTR szMDPath, /*[in]*/ BOOL fInProc ); //
// IWamAdmin2
//
STDMETHOD(AppCreate2) (/*[in, unique, string]*/ LPCWSTR szMDPath, /*[in]*/ DWORD dwAppMode ); //
//IMSAdminReplication
//These interfaces are defined in admex.h, as part of Admin Extension.
//
STDMETHOD(GetSignature) ( /* [in] */ DWORD dwBufferSize, /* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer, /* [out */ DWORD __RPC_FAR *pdwMDRequiredBufferSize ); STDMETHOD(Propagate) ( /* [in] */ DWORD dwBufferSize, /* [size_is][in] */ unsigned char __RPC_FAR *pszBuffer ); STDMETHOD(Propagate2) ( /* [in] */ DWORD dwBufferSize, /* [size_is][in] */ unsigned char __RPC_FAR *pszBuffer, /* [in] */ DWORD dwSignatureMismatch ); STDMETHOD(Serialize) ( /* [in] */ DWORD dwBufferSize, /* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer, /* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize ); STDMETHOD(DeSerialize) ( /* [in] */ DWORD dwBufferSize, /* [size_is][in] */ unsigned char __RPC_FAR *pbBuffer );
#ifdef _IIS_6_0
//
// IIISApplicationAdmin interface
//
STDMETHOD(CreateApplication) ( LPCWSTR szMDPath, DWORD dwAppMode, LPCWSTR szAppPoolId, BOOL fCreatePool ); STDMETHOD(DeleteApplication) ( LPCWSTR szMDPath, BOOL fRecursive ); STDMETHOD(CreateApplicationPool) ( LPCWSTR szMDPath ); STDMETHOD(DeleteApplicationPool) ( LPCWSTR szMDPath ); STDMETHOD(EnumerateApplicationsInPool) ( LPCWSTR szMDPath, BSTR* pbstrBuffer );
STDMETHOD(RecycleApplicationPool) ( LPCWSTR szMDPath ); STDMETHOD(GetProcessMode) ( DWORD * pdwMode ); #endif // _IIS_6_0
private: HRESULT PrivateDeleteApplication ( LPCWSTR szMDPath, BOOL fRecursive, BOOL fRecoverable, BOOL fRemoveAppPool );
STDMETHOD(FormatMetabasePath) ( /* [in] */ LPCWSTR pwszMetabasePathIn, /* [out] */ LPWSTR *ppwszMetabasePathOut ); long m_cRef; };
class CWamAdminFactory: public IClassFactory { public: CWamAdminFactory(); ~CWamAdminFactory();
STDMETHOD(QueryInterface)(REFIID riid, void ** ppv); STDMETHOD_(ULONG, AddRef)(); STDMETHOD_(ULONG, Release)();
STDMETHOD(CreateInstance)(IUnknown * pUnknownOuter, REFIID riid, void ** ppv); STDMETHOD(LockServer)(BOOL bLock);
private: long m_cRef; };
#endif //__WAMADM_H_
|