|  | /* | 
|  | * Copyright 2008 Hans Leidekker for CodeWeavers | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  |  | 
|  | cpp_quote("DEFINE_GUID(CLSID_AutomaticUpdates, 0xbfe18e9c,0x6d87,0x4450,0xb3,0x7c,0xe0,0x2f,0x0b,0x37,0x38,0x03);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_UpdateSession, 0x4cb43d7f,0x7eee,0x4906,0x86,0x98,0x60,0xda,0x1c,0x38,0xf2,0xfe);") | 
|  |  | 
|  | import "oaidl.idl"; | 
|  |  | 
|  | interface IAutomaticUpdates; | 
|  | interface IAutomaticUpdatesSettings; | 
|  | interface IDownloadJob; | 
|  | interface IDownloadResult; | 
|  | interface IInstallationJob; | 
|  | interface IInstallationResult; | 
|  | interface ISearchJob; | 
|  | interface ISearchResult; | 
|  | interface IUpdateCollection; | 
|  | interface IUpdateDownloader; | 
|  | interface IUpdateHistoryEntryCollection; | 
|  | interface IUpdateInstaller; | 
|  | interface IUpdateSearcher; | 
|  | interface IUpdateSession; | 
|  | interface IWebProxy; | 
|  |  | 
|  | typedef [public] enum tagDownloadPriority | 
|  | { | 
|  | dpLow    = 1, | 
|  | dpNormal = 2, | 
|  | dpHigh   = 3, | 
|  | } DownloadPriority; | 
|  |  | 
|  | typedef [public] enum tagServerSelection | 
|  | { | 
|  | ssDefault       = 0, | 
|  | ssManagedServer = 1, | 
|  | ssWindowsUpdate = 2, | 
|  | ssOthers        = 3, | 
|  | } ServerSelection; | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(673425bf-c082-4c7c-bdfd-569464b8e0ce), | 
|  | oleautomation, | 
|  | dual, | 
|  | nonextensible, | 
|  | pointer_default(unique), | 
|  | hidden | 
|  | ] | 
|  | interface IAutomaticUpdates : IDispatch | 
|  | { | 
|  | HRESULT DetectNow(); | 
|  | HRESULT Pause(); | 
|  | HRESULT Resume(); | 
|  | HRESULT ShowSettingsDialog(); | 
|  |  | 
|  | [propget] | 
|  | HRESULT Settings( | 
|  | [out, retval] IAutomaticUpdatesSettings **retval); | 
|  |  | 
|  | [propget] | 
|  | HRESULT ServiceEnabled( | 
|  | [out, retval] VARIANT_BOOL *retval); | 
|  |  | 
|  | HRESULT EnableService(); | 
|  | } | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(816858a4-260d-4260-933a-2585f1abc76b), | 
|  | oleautomation, | 
|  | dual, | 
|  | nonextensible, | 
|  | pointer_default(unique), | 
|  | ] | 
|  | interface IUpdateSession : IDispatch | 
|  | { | 
|  | [propget] | 
|  | HRESULT ClientApplicationID( | 
|  | [out, retval] BSTR *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT ClientApplicationID( | 
|  | [in] BSTR value); | 
|  |  | 
|  | [propget] | 
|  | HRESULT ReadOnly( | 
|  | [out, retval] VARIANT_BOOL *retval); | 
|  |  | 
|  | [propget] | 
|  | HRESULT WebProxy( | 
|  | [out, retval] IWebProxy **retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT WebProxy( | 
|  | [in, unique] IWebProxy *value); | 
|  |  | 
|  | HRESULT CreateUpdateSearcher( | 
|  | [out, retval] IUpdateSearcher **retval); | 
|  |  | 
|  | HRESULT CreateUpdateDownloader( | 
|  | [out, retval] IUpdateDownloader **retval); | 
|  |  | 
|  | HRESULT CreateUpdateInstaller( | 
|  | [out, retval] IUpdateInstaller **retval); | 
|  | } | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(8f45abf1-f9ae-4b95-a933-f0f66e5056ea), | 
|  | oleautomation, | 
|  | dual, | 
|  | nonextensible, | 
|  | pointer_default(unique), | 
|  | ] | 
|  | interface IUpdateSearcher : IDispatch | 
|  | { | 
|  | [propget] | 
|  | HRESULT CanAutomaticallyUpgradeService( | 
|  | [out, retval] VARIANT_BOOL *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT CanAutomaticallyUpgradeService( | 
|  | [in] VARIANT_BOOL value); | 
|  |  | 
|  | [propget] | 
|  | HRESULT ClientApplicationID( | 
|  | [out, retval] BSTR *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT ClientApplicationID( | 
|  | [in] BSTR value); | 
|  |  | 
|  | [propget] | 
|  | HRESULT IncludePotentiallySupersededUpdates( | 
|  | [out, retval] VARIANT_BOOL *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT IncludePotentiallySupersededUpdates( | 
|  | [in] VARIANT_BOOL value); | 
|  |  | 
|  | [propget] | 
|  | HRESULT ServerSelection( | 
|  | [out, retval] ServerSelection *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT ServerSelection( | 
|  | [in] ServerSelection value); | 
|  |  | 
|  | HRESULT BeginSearch( | 
|  | [in] BSTR criteria, | 
|  | [in] IUnknown *onCompleted, | 
|  | [in] VARIANT state, | 
|  | [out, retval] ISearchJob **retval); | 
|  |  | 
|  | HRESULT EndSearch( | 
|  | [in] ISearchJob *searchJob, | 
|  | [out, retval] ISearchResult **retval); | 
|  |  | 
|  | HRESULT EscapeString( | 
|  | [in] BSTR unescaped, | 
|  | [out, retval] BSTR *retval); | 
|  |  | 
|  | HRESULT QueryHistory( | 
|  | [in] LONG startIndex, | 
|  | [in] LONG count, | 
|  | [out, retval] IUpdateHistoryEntryCollection **retval); | 
|  |  | 
|  | HRESULT Search( | 
|  | [in] BSTR criteria, | 
|  | [out, retval] ISearchResult **retval); | 
|  |  | 
|  | [propget] | 
|  | HRESULT Online( | 
|  | [out, retval] VARIANT_BOOL *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT Online( | 
|  | [in] VARIANT_BOOL value); | 
|  |  | 
|  | HRESULT GetTotalHistoryCount( | 
|  | [out, retval] LONG *retval); | 
|  |  | 
|  | [propget] | 
|  | HRESULT ServiceID( | 
|  | [out, retval] BSTR *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT ServiceID( | 
|  | [in] BSTR value); | 
|  | } | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(68f1c6f9-7ecc-4666-a464-247fe12496c3), | 
|  | oleautomation, | 
|  | dual, | 
|  | nonextensible, | 
|  | pointer_default(unique), | 
|  | hidden | 
|  | ] | 
|  | interface IUpdateDownloader : IDispatch | 
|  | { | 
|  | [propget] | 
|  | HRESULT ClientApplicationID( | 
|  | [out, retval] BSTR *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT ClientApplicationID( | 
|  | [in] BSTR value); | 
|  |  | 
|  | [propget] | 
|  | HRESULT IsForced( | 
|  | [out, retval] VARIANT_BOOL *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT IsForced( | 
|  | [in] VARIANT_BOOL value); | 
|  |  | 
|  | [propget] | 
|  | HRESULT Priority( | 
|  | [out, retval] DownloadPriority *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT Priority( | 
|  | [in] DownloadPriority value); | 
|  |  | 
|  | [propget] | 
|  | HRESULT Updates( | 
|  | [out, retval] IUpdateCollection **retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT Updates( | 
|  | [in] IUpdateCollection *value); | 
|  |  | 
|  | HRESULT BeginDownload( | 
|  | [in] IUnknown *onProgressChanged, | 
|  | [in] IUnknown *onCompleted, | 
|  | [in] VARIANT state, | 
|  | [out, retval] IDownloadJob **retval); | 
|  |  | 
|  | HRESULT Download( | 
|  | [out, retval] IDownloadResult **retval); | 
|  |  | 
|  | HRESULT EndDownload( | 
|  | [in] IDownloadJob *value, | 
|  | [out, retval] IDownloadResult **retval); | 
|  | } | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(7b929c68-ccdc-4226-96b1-8724600b54c2), | 
|  | oleautomation, | 
|  | dual, | 
|  | nonextensible, | 
|  | pointer_default(unique), | 
|  | ] | 
|  | interface IUpdateInstaller : IDispatch | 
|  | { | 
|  | [propget] | 
|  | HRESULT ClientApplicationID( | 
|  | [out, retval] BSTR *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT ClientApplicationID( | 
|  | [in] BSTR value); | 
|  |  | 
|  | [propget] | 
|  | HRESULT IsForced( | 
|  | [out, retval] VARIANT_BOOL *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT IsForced( | 
|  | [in] VARIANT_BOOL value); | 
|  |  | 
|  | [propget, restricted] | 
|  | HRESULT ParentHwnd( | 
|  | [out, retval] HWND *retval); | 
|  |  | 
|  | [propput, restricted] | 
|  | HRESULT ParentHwnd( | 
|  | [in, unique] HWND value); | 
|  |  | 
|  | [propput] | 
|  | HRESULT ParentWindow( | 
|  | [in, unique] IUnknown *value); | 
|  |  | 
|  | [propget] | 
|  | HRESULT ParentWindow( | 
|  | [out, retval] IUnknown **retval); | 
|  |  | 
|  | [propget] | 
|  | HRESULT Updates( | 
|  | [out, retval] IUpdateCollection **retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT Updates( | 
|  | [in] IUpdateCollection *value); | 
|  |  | 
|  | HRESULT BeginInstall( | 
|  | [in] IUnknown *onProgressChanged, | 
|  | [in] IUnknown *onCompleted, | 
|  | [in] VARIANT state, | 
|  | [out, retval] IInstallationJob **retval); | 
|  |  | 
|  | HRESULT BeginUninstall( | 
|  | [in] IUnknown *onProgressChanged, | 
|  | [in] IUnknown *onCompleted, | 
|  | [in] VARIANT state, | 
|  | [out, retval] IInstallationJob **retval); | 
|  |  | 
|  | HRESULT EndInstall( | 
|  | [in] IInstallationJob *value, | 
|  | [out, retval] IInstallationResult **retval); | 
|  |  | 
|  | HRESULT EndUninstall( | 
|  | [in] IInstallationJob *value, | 
|  | [out, retval] IInstallationResult **retval); | 
|  |  | 
|  | HRESULT Install( | 
|  | [out, retval] IInstallationResult **retval); | 
|  |  | 
|  | HRESULT RunWizard( | 
|  | [in, defaultvalue("")] BSTR dialogTitle, | 
|  | [out, retval] IInstallationResult **retval); | 
|  |  | 
|  | [propget] | 
|  | HRESULT IsBusy( | 
|  | [out, retval] VARIANT_BOOL *retval); | 
|  |  | 
|  | HRESULT Uninstall( | 
|  | [out, retval] IInstallationResult **retval); | 
|  |  | 
|  | [propget] | 
|  | HRESULT AllowSourcePrompts( | 
|  | [out, retval] VARIANT_BOOL *retval); | 
|  |  | 
|  | [propput] | 
|  | HRESULT AllowSourcePrompts( | 
|  | [in] VARIANT_BOOL value); | 
|  |  | 
|  | [propget] | 
|  | HRESULT RebootRequiredBeforeInstallation( | 
|  | [out, retval] VARIANT_BOOL *retval); | 
|  | } |