// iisext.odl : type library source for iisext.dll // This file will be processed by the Make Type Library (mktyplib) tool to // produce the type library (iisext.tlb). #include "iisext.h" #define DISPID_IADs_UPPER_BOUND 100 [ uuid(IIS_LIBIID_IISExt), version(1.0), helpstring("Active DS IIS Extension Dll") ] library IISExt { importlib("stdole2.tlb"); importlib("..\\oleds2.0\\types\\activeds.tlb"); [ uuid(IIS_IID_IISApplicationPool), oleautomation, dual] interface IISApplicationPool : IADs { //methods [id(DISPID_IADs_UPPER_BOUND+1)] HRESULT Recycle(void); [id(DISPID_IADs_UPPER_BOUND+2)] HRESULT EnumApps( [out, retval] VARIANT* bstrBuffer ); [id(DISPID_IADs_UPPER_BOUND+3)] HRESULT Start(void); [id(DISPID_IADs_UPPER_BOUND+4)] HRESULT Stop(void); }; [ uuid(IIS_IID_IISApplicationPools), oleautomation, dual] interface IISApplicationPools : IADs { //methods }; [ uuid(IIS_IID_IISWebService), oleautomation, dual] interface IISWebService : IADs { //methods [id(DISPID_IADs_UPPER_BOUND+1)] HRESULT GetCurrentMode( [out, retval] VARIANT* pvServerMode ); [id(DISPID_IADs_UPPER_BOUND+2)] HRESULT CreateNewSite( [in] BSTR bstrServerComment, [in] VARIANT* pvServerBindings, [in] BSTR bstrRootVDirPath, [in, optional] VARIANT vServerID, [out, retval] VARIANT* pvActualID ); }; [ uuid(IIS_IID_IISDsCrMap), oleautomation, dual] interface IISDsCrMap : IADs { //methods [id(DISPID_IADs_UPPER_BOUND+1)] HRESULT CreateMapping( [in] VARIANT vCert, [in] BSTR bstrNtAcct, [in] BSTR bstrNtPwd, [in] BSTR bstrName, [in] LONG lEnabled ); [id(DISPID_IADs_UPPER_BOUND+2)] HRESULT GetMapping( [in] LONG lMethod, [in] VARIANT vKey, [out] VARIANT* pvCert, [out] VARIANT* pbstrNtAcct, [out] VARIANT* pbstrNtPwd, [out] VARIANT* pbstrName, [out] VARIANT* plEnabled ); [id(DISPID_IADs_UPPER_BOUND+3)] HRESULT DeleteMapping( [in] LONG lMethod, [in] VARIANT vKey ); [id(DISPID_IADs_UPPER_BOUND+4)] HRESULT SetEnabled( [in] LONG lMethod, [in] VARIANT vKey, [in] LONG lEnabled ); [id(DISPID_IADs_UPPER_BOUND+5)] HRESULT SetName( [in] LONG lMethod, [in] VARIANT vKey, [in] BSTR bstrName ); [id(DISPID_IADs_UPPER_BOUND+6)] HRESULT SetPwd( [in] LONG lMethod, [in] VARIANT vKey, [in] BSTR bstrPwd ); [id(DISPID_IADs_UPPER_BOUND+7)] HRESULT SetAcct( [in] LONG lMethod, [in] VARIANT vKey, [in] BSTR bstrAcct ); }; [ uuid(IIS_IID_IISApp), oleautomation, dual] interface IISApp : IADs { //methods [id(DISPID_IADs_UPPER_BOUND+1)] HRESULT AppCreate( [in] VARIANT_BOOL bSetInProcFlag ); [id(DISPID_IADs_UPPER_BOUND+2)] HRESULT AppDelete(void); [id(DISPID_IADs_UPPER_BOUND+3)] HRESULT AppDeleteRecursive(void); [id(DISPID_IADs_UPPER_BOUND+4)] HRESULT AppUnLoad(void); [id(DISPID_IADs_UPPER_BOUND+5)] HRESULT AppUnLoadRecursive(void); [id(DISPID_IADs_UPPER_BOUND+6)] HRESULT AppDisable(void); [id(DISPID_IADs_UPPER_BOUND+7)] HRESULT AppDisableRecursive(void); [id(DISPID_IADs_UPPER_BOUND+8)] HRESULT AppEnable(void); [id(DISPID_IADs_UPPER_BOUND+9)] HRESULT AppEnableRecursive(void); // Obsolete. This method will not work correctly for late bound // clients [id(DISPID_IADs_UPPER_BOUND+10)] HRESULT AppGetStatus( [out] DWORD * pdwStatus ); [id(DISPID_IADs_UPPER_BOUND+11)] HRESULT AspAppRestart(void); }; [ uuid(IIS_IID_IISApp2), oleautomation, dual] interface IISApp2 : IISApp { [id(DISPID_IADs_UPPER_BOUND+12)] HRESULT AppCreate2( [in] LONG lAppMode ); [id(DISPID_IADs_UPPER_BOUND+13)] HRESULT AppGetStatus2( [out,retval] LONG *lpStatus ); }; [ uuid(IIS_IID_IISApp3), oleautomation, dual] interface IISApp3 : IISApp2 { [id(DISPID_IADs_UPPER_BOUND+14)] HRESULT AppCreate3( [in] LONG lAppMode, [in] VARIANT bstrAppPooI, [in] VARIANT bCreatePool ); }; [ uuid(IIS_IID_IISComputer), oleautomation, dual] interface IISComputer : IADs { //methods [id(DISPID_IADs_UPPER_BOUND+1)] HRESULT Backup( [in] BSTR bstrLocation, [in] LONG lVersion, [in] LONG lFlags ); [id(DISPID_IADs_UPPER_BOUND+2)] HRESULT Restore( [in] BSTR bstrLocation, [in] LONG lVersion, [in] LONG lFlags ); [id(DISPID_IADs_UPPER_BOUND+3)] HRESULT EnumBackups( [in] BSTR bstrLocation, [in] LONG lIndex, [out] VARIANT *pvVersion, [out] VARIANT *pvLocations, [out] VARIANT *pvDate ); [id(DISPID_IADs_UPPER_BOUND+4)] HRESULT DeleteBackup( [in] BSTR bstrLocation, [in] LONG lVersion ); }; [ uuid(IIS_IID_IISComputer2), oleautomation, dual] interface IISComputer2 : IISComputer { //methods [id(DISPID_IADs_UPPER_BOUND+5)] HRESULT BackupWithPassword( [in] BSTR bstrLocation, [in] LONG lVersion, [in] LONG lFlags, [in] BSTR bstrPassword ); [id(DISPID_IADs_UPPER_BOUND+6)] HRESULT RestoreWithPassword( [in] BSTR bstrLocation, [in] LONG lVersion, [in] LONG lFlags, [in] BSTR bstrPassword ); [id(DISPID_IADs_UPPER_BOUND+7)] HRESULT Export( [in] BSTR bstrPassword, [in] BSTR bstrFilename, [in] BSTR bstrSourcePath, [in] LONG lFlags ); [id(DISPID_IADs_UPPER_BOUND+8)] HRESULT Import( [in] BSTR bstrPassword, [in] BSTR bstrFilename, [in] BSTR bstrSourcePath, [in] BSTR bstrDestPath, [in] LONG lFlags ); [id(DISPID_IADs_UPPER_BOUND+9)] HRESULT SaveData(); }; [uuid(IIS_CLSID_IISExtComputer)] coclass IISExtComputer { [default] interface IISComputer2; interface IDispatch; }; [uuid(IIS_CLSID_IISExtApp)] coclass IISExtApp { [default] interface IISApp3; interface IDispatch; }; [uuid(IIS_CLSID_IISExtServer)] coclass IISExtServer { [default] interface IADsServiceOperations; interface IDispatch; }; [uuid(IIS_CLSID_IISExtDsCrMap)] coclass IISExtDsCrMap { [default] interface IISDsCrMap; interface IDispatch; }; [uuid(IIS_CLSID_IISExtApplicationPool)] coclass IISExtApplicationPool { [default] interface IISApplicationPool; interface IDispatch; }; [uuid(IIS_CLSID_IISExtApplicationPools)] coclass IISExtApplicationPools { [default] interface IISApplicationPools; interface IDispatch; }; [uuid(IIS_CLSID_IISExtWebService)] coclass IISExtWebService { [default] interface IISWebService; interface IDispatch; }; };