//=--------------------------------------------------------------------------= // asctrls.odl //=--------------------------------------------------------------------------= // Copyright 1995-1996 Microsoft Corporation. All Rights Reserved. // // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A // PARTICULAR PURPOSE. //=--------------------------------------------------------------------------= // // ODL file for the control(s) and automation object(s) in this inproc server // #include #include #include #include "dispids.h" /* LIBID_ASControls {CC0918E0-EFE5-11cf-A044-00AA00B6015C} IID_DInstallEngineEvents {6E449681-C509-11CF-AAFA-00AA00B6015C} IID_IInstallEngineCtl {6E449682-C509-11CF-AAFA-00AA00B6015C} CLSID_InstallEngineCtl {6E449683-C509-11CF-AAFA-00AA00B6015C} */ // can't include oaidl.h, so this will have to do // #define DISPID_NEWENUM -4 //=--------------------------------------------------------------------------= // the libid for this type libray // [ uuid(CC0918E0-EFE5-11cf-A044-00AA00B6015C), helpstring("Active Setup Control Library"), lcid(0x0000), version(1.0) ] library ASControls { // standard imports // importlib("STDOLE2.TLB"); // primary dispatch interface for InstallEngine control // [ uuid(6E449682-C509-11CF-AAFA-00AA00B6015C), helpstring("Primary dispatch for Install Engine"), hidden, dual, odl ] interface IInstallEngineCtl : IDispatch { // properties // [id(DISPID_READYSTATE), propget] HRESULT ReadyState([out, retval] long * thestate); [id(DISPID_ENGINESTATUS), propget] HRESULT EngineStatus([out, retval] long * theenginestatus); [id(DISPID_CIFFILE)] HRESULT SetCifFile([in] BSTR strCabName, [in] BSTR strCifName); [id(DISPID_BASEURL), propput] HRESULT BaseUrl([in] BSTR strBaseUrl); [id(DISPID_DOWNLOADDIR), propput] HRESULT DownloadDir([in] BSTR strDownloadDir); [id(DISPID_NAME), propget] HRESULT DisplayName([in] BSTR ComponentID, [out, retval] BSTR *name); [id(DISPID_SIZE), propget] HRESULT Size([in] BSTR ComponentID, [out, retval] long * thestate); [id(DISPID_TOTALSIZE), propget] HRESULT TotalDownloadSize([out, retval] long * totalsize); [id(DISPID_DEPENDENCYSIZE), propget] HRESULT TotalDependencySize([out, retval] long * totaldepsize); // methods [id(DISPID_SETACTION)] HRESULT SetAction([in] BSTR ComponentID, [in] long lAction, [out, retval] long *lResult); [id(DISPID_ISCOMPONENTINSTALLED)] HRESULT IsComponentInstalled([in] BSTR ComponentID, [out, retval] long *lResult); [id(DISPID_PROCESSCOMPONENTS)] HRESULT ProcessComponents([in] long lFlag); [id(DISPID_ABORT)] HRESULT Abort([in] long lFlag); [id(DISPID_FINALIZEINSTALL)] HRESULT FinalizeInstall([in] long lFlag); [id(DISPID_HANDLEENGINEPROBLEM)] HRESULT HandleEngineProblem([in] long dwAction); [id(DISPID_CHECKFREESPACE)] HRESULT CheckFreeSpace([in] long lPad, [out, retval] long *lEnough); [id(DISPID_SETLOCALCIF)] HRESULT SetLocalCif([in] BSTR strCif, [out, retval] long *lResult); [id(DISPID_SETSITESFILE)] HRESULT SetSitesFile([in] BSTR strUrl, [in] BSTR strRegion, [in] BSTR strLocale, [out, retval] long *lResult); }; // event interface for InstallEngine controls ... // [ uuid(6E449681-C509-11CF-AAFA-00AA00B6015C), helpstring("Event interface for Install Engine Ctl"), hidden ] dispinterface DInstallEngineCtlEvents { properties: methods: [id(DISPID_READYSTATECHANGE)] void OnReadyStateChange([in] long newState); [id(DISPID_PROGRESS)] void OnProgress([in] long percentDone); [id(DISPID_ENGINESTATUSCHANGE)] void OnEngineStatusChange([in] long newEngineStatus, [in] long substatus); [id(DISPID_ONSTARTINSTALL)] void OnStartInstall([in] long lTotalSize); [id(DISPID_ONSTARTCOMPONENT)] void OnStartComponent([in] BSTR strID, [in] long lTotalSize, [in] BSTR strName); [id(DISPID_ONSTOPCOMPONENT)] void OnStopComponent([in] BSTR strID, [in] long lResult, [in] long lPhase, [in] BSTR strName, [in] long lStatus); [id(DISPID_ONSTOPINSTALL)] void OnStopInstall([in] long lResult, [in] BSTR strString, [in] long lStatus); [id(DISPID_ONENGINEPROBLEM)] void OnEngineProblem([in] long lProblem); [id(DISPID_ONCHECKFREESPACE)] void OnCheckFreeSpace([in] BSTR chWin, [in] long dwWin, [in] BSTR chInstall, [in] long dwInstall, [in] BSTR chDL, [in] long dwDL); [id(DISPID_ONCOMPONENTPROGRESS)] void OnComponentProgress([in] BSTR strID, [in] long lPhase, [in] BSTR strName, [in] BSTR strString, [in] long lSoFar, [in] long lTotal); [id(DISPID_ONSTARTINSTALLEX)] void OnStartInstallEx([in] long lTotalDLSize, [in] long lTotalInsSize); }; // coclass for Install Engine controls // [ uuid(6E449683-C509-11CF-AAFA-00AA00B6015C), helpstring("Install Engine Ctl") ] coclass InstallEngineCtl { [default] interface IInstallEngineCtl; [default, source] dispinterface DInstallEngineCtlEvents; }; };