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.
 
 
 
 
 
 

194 lines
4.5 KiB

//---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996 - 2001
//
// File: cwebservice.hxx
//
// Contents: CIISWebService object
//
// History: 01-15-2001 BrentMid Created.
//
//----------------------------------------------------------------------------
class CIISWebService;
class CIISWebService : INHERIT_TRACKING,
public IISWebService,
public IPrivateUnknown,
public IPrivateDispatch,
public IADsExtension,
public INonDelegatingUnknown
{
public:
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
DECLARE_DELEGATING_REFCOUNTING
//
// INonDelegatingUnkown methods declaration for NG_QI, definition for
// NG_AddRef adn NG_Release.
//
STDMETHOD(NonDelegatingQueryInterface)(THIS_
const IID&,
void **
);
DECLARE_NON_DELEGATING_REFCOUNTING
DECLARE_IDispatch_METHODS
DECLARE_IPrivateUnknown_METHODS
DECLARE_IPrivateDispatch_METHODS
STDMETHOD(Operate)(
THIS_
DWORD dwCode,
VARIANT varUserName,
VARIANT varPassword,
VARIANT varReserved
);
STDMETHOD(PrivateGetIDsOfNames)(
THIS_
REFIID riid,
OLECHAR FAR* FAR* rgszNames,
unsigned int cNames,
LCID lcid,
DISPID FAR* rgdispid) ;
STDMETHOD(PrivateInvoke)(
THIS_
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS FAR* pdispparams,
VARIANT FAR* pvarResult,
EXCEPINFO FAR* pexcepinfo,
unsigned int FAR* puArgErr
) ;
DECLARE_IADs_METHODS
CIISWebService::CIISWebService();
CIISWebService::~CIISWebService();
static
HRESULT
CIISWebService::CreateWebService(
IUnknown *pUnkOuter,
REFIID riid,
void **ppvObj
);
static
HRESULT
CIISWebService::AllocateWebServiceObject(
IUnknown *pUnkOuter,
CCredentials& Credentials,
CIISWebService ** ppWebService
);
HRESULT
CIISWebService::InitializeWebServiceObject(
LPWSTR pszServerName,
LPWSTR pszPath
);
STDMETHOD (GetCurrentMode)(
VARIANT FAR* pvServerMode
);
STDMETHOD (CreateNewSite)(
BSTR bstrServerComment,
VARIANT* pvServerBindings,
BSTR bstrRootVDirPath,
VARIANT vServerID,
VARIANT* pvActualID
);
STDMETHOD (EnableApplication)(
BSTR bstrAppName
);
STDMETHOD (RemoveApplication)(
BSTR bstrAppName
);
STDMETHOD (QueryGroupIDStatus)(
BSTR bstrGroupID,
VARIANT FAR* bstrBuffer
);
STDMETHOD (ListApplications)(
VARIANT FAR* bstrBuffer
);
STDMETHOD (AddDependency)(
BSTR bstrApplication,
BSTR bstrGroupID
);
STDMETHOD (RemoveDependency)(
BSTR bstrApplication,
BSTR bstrGroupID
);
STDMETHOD (EnableWebServiceExtension)(
BSTR bstrExtension
);
STDMETHOD (DisableWebServiceExtension)(
BSTR bstrExtension
);
STDMETHOD (ListWebServiceExtensions)(
VARIANT FAR* bstrBuffer
);
STDMETHOD (EnableExtensionFile)(
BSTR bstrExtensionFile
);
STDMETHOD (DisableExtensionFile)(
BSTR bstrExtensionFile
);
STDMETHOD (AddExtensionFile)(
BSTR bstrExtensionFile,
VARIANT bAccess,
BSTR bstrGroupID,
VARIANT bCanDelete,
BSTR bstrDescription
);
STDMETHOD (DeleteExtensionFileRecord)(
BSTR bstrExtensionFile
);
STDMETHOD (ListExtensionFiles)(
VARIANT FAR* bstrBuffer
);
protected:
HRESULT
CIISWebService::ConvertArrayToMultiSZ(
VARIANT varSafeArray,
WCHAR** pszServerBindings
);
IADs FAR * _pADs;
LPWSTR _pszServerName;
LPWSTR _pszMetaBasePath;
BOOL _fDispInitialized;
CAggregateeDispMgr FAR * _pDispMgr;
CCredentials _Credentials;
IMSAdminBase *_pAdminBase; //interface pointer
};