mirror of
https://github.com/reactos/wine.git
synced 2024-11-25 12:49:45 +00:00
1351 lines
32 KiB
Plaintext
1351 lines
32 KiB
Plaintext
/*
|
|
* 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
|
|
*/
|
|
|
|
import "oaidl.idl";
|
|
|
|
#ifndef __WIDL__
|
|
#define threading(model)
|
|
#define progid(str)
|
|
#define vi_progid(str)
|
|
#endif
|
|
|
|
[
|
|
helpstring("WUAPI 2.0 Type Library"),
|
|
uuid(b596cc9f-56e5-419e-a622-e01bb457431e),
|
|
version(2.0)
|
|
]
|
|
library WUApiLib {
|
|
|
|
importlib("stdole2.tlb");
|
|
|
|
interface ICategoryCollection;
|
|
interface IStringCollection;
|
|
interface IUpdateCollection;
|
|
interface IUpdateDownloader;
|
|
interface IUpdateInstaller;
|
|
interface IUpdateSearcher;
|
|
|
|
typedef [public] enum tagDownloadPriority
|
|
{
|
|
dpLow = 1,
|
|
dpNormal = 2,
|
|
dpHigh = 3,
|
|
} DownloadPriority;
|
|
|
|
typedef [public] enum tagServerSelection
|
|
{
|
|
ssDefault = 0,
|
|
ssManagedServer = 1,
|
|
ssWindowsUpdate = 2,
|
|
ssOthers = 3,
|
|
} ServerSelection;
|
|
|
|
typedef [public] enum tagAutomaticUpdatesNotificationLevel
|
|
{
|
|
aunlNotConfigured,
|
|
aunlDisabled,
|
|
aunlNotifyBeforeDownload,
|
|
aunlNotifyBeforeInstallation,
|
|
aunlScheduledInstallation,
|
|
} AutomaticUpdatesNotificationLevel;
|
|
|
|
typedef [public] enum tagAutomaticUpdatesScheduledInstallationDay
|
|
{
|
|
ausidEveryDay,
|
|
ausidEverySunday,
|
|
ausidEveryMonday,
|
|
ausidEveryTuesday,
|
|
ausidEveryWednesday,
|
|
ausidEveryThursday,
|
|
ausidEveryFriday,
|
|
ausidEverySaturday,
|
|
} AutomaticUpdatesScheduledInstallationDay;
|
|
|
|
typedef [public] enum tagDownloadPhase
|
|
{
|
|
dphInitializing,
|
|
dphDownloading,
|
|
dphVerifying,
|
|
} DownloadPhase;
|
|
|
|
typedef [public] enum tagOperationResultCode
|
|
{
|
|
orcNotStarted,
|
|
orcInProgress,
|
|
orcSucceeded,
|
|
orcSucceededWithErrors,
|
|
orcFailed,
|
|
orcAborted,
|
|
} OperationResultCode;
|
|
|
|
typedef [public] enum tagUpdateExceptionContext
|
|
{
|
|
uecGeneral = 1,
|
|
uecWindowsDriver,
|
|
uecWindowsInstaller
|
|
} UpdateExceptionContext;
|
|
|
|
typedef [public] enum tagInstallationImpact
|
|
{
|
|
iiNormal,
|
|
iiMinor,
|
|
iiRequiresExclusiveHandling
|
|
} InstallationImpact;
|
|
|
|
typedef [public] enum tagInstallationRebootBehavior
|
|
{
|
|
irbNeverReboots,
|
|
irbAlwaysRequiresReboot,
|
|
irbCanRequestReboot
|
|
} InstallationRebootBehavior;
|
|
|
|
typedef [public] enum tagUpdateType
|
|
{
|
|
utSoftware = 1,
|
|
utDriver
|
|
} UpdateType;
|
|
|
|
typedef [public] enum tagUpdateOperation
|
|
{
|
|
uoInstallation = 1,
|
|
uoUninstallation
|
|
} UpdateOperation;
|
|
|
|
typedef [public] enum tagDeploymentAction
|
|
{
|
|
daNone,
|
|
daInstallation,
|
|
daUninstallation,
|
|
daDetection
|
|
} DeploymentAction;
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(2ee48f22-af3c-405f-8970-f71be12ee9a2),
|
|
pointer_default(unique)
|
|
]
|
|
interface IAutomaticUpdatesSettings : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT NotificationLevel( [out, retval] AutomaticUpdatesNotificationLevel *retval );
|
|
|
|
[propput, id(0x60020001)]
|
|
HRESULT NotificationLevel( [in] AutomaticUpdatesNotificationLevel value );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT ReadOnly( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT Required( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020004)]
|
|
HRESULT ScheduledInstallationDay( [out, retval] AutomaticUpdatesScheduledInstallationDay *retval );
|
|
|
|
[propput, id(0x60020004)]
|
|
HRESULT ScheduledInstallationDay( [in] AutomaticUpdatesScheduledInstallationDay value );
|
|
|
|
[propget, id(0x60020005)]
|
|
HRESULT ScheduledInstallationTime( [out, retval] LONG *retval );
|
|
|
|
[propput, id(0x60020005)]
|
|
HRESULT ScheduledInstallationTime( [in] LONG value );
|
|
|
|
[id(0x60020006)]
|
|
HRESULT Refresh();
|
|
|
|
[id(0x60020007)]
|
|
HRESULT Save();
|
|
}
|
|
|
|
[
|
|
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,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(174c81fe-aecd-4dae-b8a0-2c6318dd86a8),
|
|
pointer_default(unique),
|
|
]
|
|
interface IWebProxy : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT Address( [out, retval] BSTR *retval );
|
|
|
|
[propput, id(0x60020001)]
|
|
HRESULT Address( [in] BSTR value );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT BypassList( [out, retval] IStringCollection **retval );
|
|
|
|
[propput, id(0x60020002)]
|
|
HRESULT BypassList( [in] IStringCollection *value );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT BypassProxyOnLocal( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propput, id(0x60020003)]
|
|
HRESULT BypassProxyOnLocal( [in] VARIANT_BOOL value );
|
|
|
|
[propget, id(0x60020004)]
|
|
HRESULT ReadOnly( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020005)]
|
|
HRESULT UserName( [out, retval] BSTR *retval );
|
|
|
|
[propput, id(0x60020005)]
|
|
HRESULT UserName( [in] BSTR value );
|
|
|
|
[id(0x60020006)]
|
|
HRESULT SetPassword( [in] BSTR value );
|
|
|
|
[id(0x60020007)]
|
|
HRESULT PromptForCredentials( [in, unique] IUnknown *parentWindow,
|
|
[in] BSTR title );
|
|
|
|
[restricted, id(0x60020008)]
|
|
HRESULT PromptForCredentialsFromHwnd( [in, unique] HWND parentWindow,
|
|
[in] BSTR title );
|
|
|
|
[propget, id(0x60020009)]
|
|
HRESULT AutoDetect( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propput, id(0x60020009)]
|
|
HRESULT AutoDetect( [in] VARIANT_BOOL value );
|
|
}
|
|
|
|
[
|
|
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,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(7c907864-346c-4aeb-8f3f-57da289f969f),
|
|
pointer_default(unique),
|
|
]
|
|
interface IImageInformation : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT AltText( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT Height( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT Source( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020004)]
|
|
HRESULT Width( [out, retval] LONG *retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(81ddc1b8-9d35-47a6-b471-5b80f519223b),
|
|
pointer_default(unique),
|
|
]
|
|
interface ICategory : IDispatch
|
|
{
|
|
[propget, id(DISPID_VALUE)]
|
|
HRESULT Name( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020001)]
|
|
HRESULT CategoryID( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT Children( [out, retval] ICategoryCollection **retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT Description( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020004)]
|
|
HRESULT Image( [out, retval] IImageInformation **retval );
|
|
|
|
[propget, id(0x60020005)]
|
|
HRESULT Order( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020006)]
|
|
HRESULT Parent( [out, retval] ICategory **retval );
|
|
|
|
[propget, id(0x60020007)]
|
|
HRESULT Type( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020008)]
|
|
HRESULT Updates( [out, retval] IUpdateCollection **retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(3a56bfb8-576c-43f7-9335-fe4838fd7e37),
|
|
pointer_default(unique),
|
|
]
|
|
interface ICategoryCollection : IDispatch
|
|
{
|
|
[propget, id(DISPID_VALUE)]
|
|
HRESULT Item( [in] LONG index,
|
|
[out, retval] ICategory **retval );
|
|
|
|
[propget, id(DISPID_NEWENUM)]
|
|
HRESULT _NewEnum( [out, retval] IUnknown **retval );
|
|
|
|
[propget, id(0x60020001)]
|
|
HRESULT Count( [out, retval] LONG *retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(eff90582-2ddc-480f-a06d-60f3fbc362c3),
|
|
pointer_default(unique),
|
|
hidden
|
|
]
|
|
interface IStringCollection : IDispatch
|
|
{
|
|
[propget, id(DISPID_VALUE)]
|
|
HRESULT Item( [in] LONG index,
|
|
[out, retval] BSTR *retval );
|
|
|
|
[propput, id(DISPID_VALUE)]
|
|
HRESULT Item( [in] LONG index,
|
|
[in] BSTR value );
|
|
|
|
[propget, id(DISPID_NEWENUM)]
|
|
HRESULT _NewEnum( [out, retval] IUnknown **retval );
|
|
|
|
[propget, id(0x60020001)]
|
|
HRESULT Count( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT ReadOnly( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[id(0x60020003)]
|
|
HRESULT Add( [in] BSTR value,
|
|
[out, retval] LONG *retval );
|
|
|
|
[id(0x60020004)]
|
|
HRESULT Clear();
|
|
|
|
[id(0x60020005)]
|
|
HRESULT Copy( [out, retval] IStringCollection **retval );
|
|
|
|
[id(0x60020006)]
|
|
HRESULT Insert( [in] LONG index,
|
|
[in] BSTR value );
|
|
|
|
[id(0x60020007)]
|
|
HRESULT RemoveAt( [in] LONG index );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(a376dd5e-09d4-427f-af7c-fed5b6e1c1d6),
|
|
pointer_default(unique),
|
|
]
|
|
interface IUpdateException : IDispatch
|
|
{
|
|
[propget, id(DISPID_VALUE)]
|
|
HRESULT Message( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020001)]
|
|
HRESULT HResult( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT Context( [out, retval] UpdateExceptionContext *retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(503626a3-8e14-4729-9355-0fe664bd2321),
|
|
pointer_default(unique),
|
|
]
|
|
interface IUpdateExceptionCollection : IDispatch
|
|
{
|
|
[propget, id(DISPID_VALUE)]
|
|
HRESULT Item( [in] LONG index,
|
|
[out, retval] IUpdateException **retval );
|
|
|
|
[propget, id(DISPID_NEWENUM)]
|
|
HRESULT _NewEnum( [out, retval] IUnknown **retval );
|
|
|
|
[propget, id(0x60020001)]
|
|
HRESULT Count( [out, retval] LONG *retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(46297823-9940-4c09-aed9-cd3ea6d05968),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUpdateIdentity : IDispatch
|
|
{
|
|
[propget, id(0x60020002)]
|
|
HRESULT RevisionNumber( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT UpdateID( [out, retval] BSTR *retval );
|
|
}
|
|
|
|
[
|
|
,
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(d9a59339-e245-4dbd-9686-4d5763e39624),
|
|
pointer_default(unique),
|
|
]
|
|
interface IInstallationBehavior : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT CanRequestUserInput( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT Impact( [out, retval] InstallationImpact *retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT RebootBehavior( [out, retval] InstallationRebootBehavior *retval );
|
|
|
|
[propget, id(0x60020004)]
|
|
HRESULT RequiresNetworkConnectivity( [out, retval] VARIANT_BOOL *retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(54a2cb2d-9a0c-48b6-8a50-9abb69ee2d02),
|
|
pointer_default(unique),
|
|
]
|
|
interface IUpdateDownloadContent : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT DownloadUrl( [out, retval] BSTR *retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(bc5513c8-b3b8-4bf7-a4d4-361c0d8c88ba),
|
|
pointer_default(unique),
|
|
]
|
|
interface IUpdateDownloadContentCollection : IDispatch
|
|
{
|
|
[propget, id(DISPID_VALUE)]
|
|
HRESULT Item( [in] LONG index,
|
|
[out, retval] IUpdateDownloadContent **retval );
|
|
|
|
[propget, id(DISPID_NEWENUM)]
|
|
HRESULT _NewEnum( [out, retval] IUnknown **retval );
|
|
|
|
[propget, id(0x60020001)]
|
|
HRESULT Count( [out, retval] LONG *retval );
|
|
}
|
|
|
|
[
|
|
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(6a92b07a-d821-4682-b423-5c805022cc4d),
|
|
pointer_default(unique),
|
|
]
|
|
interface IUpdate : IDispatch
|
|
{
|
|
[propget, id(DISPID_VALUE)]
|
|
HRESULT Title( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020001)]
|
|
HRESULT AutoSelectOnWebSites( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT BundledUpdates( [out, retval] IUpdateCollection **retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT CanRequireSource( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020004)]
|
|
HRESULT Categories( [out, retval] ICategoryCollection **retval );
|
|
|
|
[propget, id(0x60020005)]
|
|
HRESULT Deadline( [out, retval] VARIANT *retval );
|
|
|
|
[propget, id(0x60020006)]
|
|
HRESULT DeltaCompressedContentAvailable( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020007)]
|
|
HRESULT DeltaCompressedContentPreferred( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020008)]
|
|
HRESULT Description( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020009)]
|
|
HRESULT EulaAccepted( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x6002000a)]
|
|
HRESULT EulaText( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x6002000b)]
|
|
HRESULT HandlerID( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x6002000c)]
|
|
HRESULT Identity( [out, retval] IUpdateIdentity **retval );
|
|
|
|
[propget, id(0x6002000d)]
|
|
HRESULT Image( [out, retval] IImageInformation **retval );
|
|
|
|
[propget, id(0x6002000e)]
|
|
HRESULT InstallationBehavior( [out, retval] IInstallationBehavior **retval );
|
|
|
|
[propget, id(0x6002000f)]
|
|
HRESULT IsBeta( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020010)]
|
|
HRESULT IsDownloaded( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020011)]
|
|
HRESULT IsHidden( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propput, id(0x60020011)]
|
|
HRESULT IsHidden( [in] VARIANT_BOOL value );
|
|
|
|
[propget, id(0x60020012)]
|
|
HRESULT IsInstalled( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020013)]
|
|
HRESULT IsMandatory( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020014)]
|
|
HRESULT IsUninstallable( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020015)]
|
|
HRESULT Languages( [out, retval] IStringCollection **retval );
|
|
|
|
[propget, id(0x60020016)]
|
|
HRESULT LastDeploymentChangeTime( [out, retval] DATE *retval );
|
|
|
|
[propget, id(0x60020017)]
|
|
HRESULT MaxDownloadSize( [out, retval] DECIMAL *retval );
|
|
|
|
[propget, id(0x60020018)]
|
|
HRESULT MinDownloadSize( [out, retval] DECIMAL *retval );
|
|
|
|
[propget, id(0x60020019)]
|
|
HRESULT MoreInfoUrls( [out, retval] IStringCollection **retval );
|
|
|
|
[propget, id(0x6002001a)]
|
|
HRESULT MsrcSeverity( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x6002001b)]
|
|
HRESULT RecommendedCpuSpeed( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x6002001c)]
|
|
HRESULT RecommendedHardDiskSpace( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x6002001d)]
|
|
HRESULT RecommendedMemory( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x6002001e)]
|
|
HRESULT ReleaseNotes( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x6002001f)]
|
|
HRESULT SecurityBulletinIDs( [out, retval] IStringCollection **retval );
|
|
|
|
[propget, id(0x60020021)]
|
|
HRESULT SupersededUpdateIDs( [out, retval] IStringCollection **retval );
|
|
|
|
[propget, id(0x60020022)]
|
|
HRESULT SupportUrl( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020023)]
|
|
HRESULT Type( [out, retval] UpdateType *retval );
|
|
|
|
[propget, id(0x60020024)]
|
|
HRESULT UninstallationNotes( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020025)]
|
|
HRESULT UninstallationBehavior( [out, retval] IInstallationBehavior **retval );
|
|
|
|
[propget, id(0x60020026)]
|
|
HRESULT UninstallationSteps( [out, retval] IStringCollection **retval );
|
|
|
|
[propget, id(0x60020028)]
|
|
HRESULT KBArticleIDs( [out, retval] IStringCollection **retval );
|
|
|
|
[id(0x60020027)]
|
|
HRESULT AcceptEula();
|
|
|
|
[propget, id(0x60020029)]
|
|
HRESULT DeploymentAction( [out, retval] DeploymentAction *retval );
|
|
|
|
[id(0x6002002a)]
|
|
HRESULT CopyFromCache( [in, ref] BSTR path,
|
|
[in] VARIANT_BOOL toExtractCabFiles );
|
|
|
|
[propget, id(0x6002002b)]
|
|
HRESULT DownloadPriority( [out, retval] DownloadPriority *retval );
|
|
|
|
[propget, id(0x6002002c)]
|
|
HRESULT DownloadContents( [out, retval] IUpdateDownloadContentCollection **retval );
|
|
}
|
|
|
|
[
|
|
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(07f7438c-7709-4ca5-b518-91279288134e),
|
|
pointer_default(unique),
|
|
hidden
|
|
]
|
|
interface IUpdateCollection : IDispatch
|
|
{
|
|
[propget, id(DISPID_VALUE)]
|
|
HRESULT Item( [in] LONG index,
|
|
[out, retval] IUpdate **retval );
|
|
|
|
[propput, id(DISPID_VALUE)]
|
|
HRESULT Item( [in] LONG index,
|
|
[in] IUpdate *value );
|
|
|
|
[propget, id(DISPID_NEWENUM)]
|
|
HRESULT _NewEnum( [out, retval] IUnknown **retval );
|
|
|
|
[propget, id(0x60020001)]
|
|
HRESULT Count( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT ReadOnly( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[id(0x60020003)]
|
|
HRESULT Add( [in] IUpdate *value,
|
|
[out, retval] LONG *retval );
|
|
|
|
[id(0x60020004)]
|
|
HRESULT Clear();
|
|
|
|
[id(0x60020005)]
|
|
HRESULT Copy( [out, retval] IUpdateCollection **retval );
|
|
|
|
[id(0x60020006)]
|
|
HRESULT Insert( [in] LONG index,
|
|
[in] IUpdate *value );
|
|
|
|
[id(0x60020007)]
|
|
HRESULT RemoveAt( [in] LONG index );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(7366ea16-7a1a-4ea2-b042-973d3e9cd99b),
|
|
pointer_default(unique),
|
|
]
|
|
interface ISearchJob : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT AsyncState( [out, retval] VARIANT *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT IsCompleted( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[id(0x60020003)]
|
|
HRESULT CleanUp();
|
|
|
|
[id(0x60020004)]
|
|
HRESULT RequestAbort();
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(d40cff62-e08c-4498-941a-01e25f0fd33c),
|
|
pointer_default(unique),
|
|
]
|
|
interface ISearchResult : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT ResultCode( [out, retval] OperationResultCode *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT RootCategories( [out, retval] ICategoryCollection **retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT Updates( [out, retval] IUpdateCollection **retval );
|
|
|
|
[propget, id(0x60020004)]
|
|
HRESULT Warnings( [out, retval] IUpdateExceptionCollection **retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(be56a644-af0e-4e0e-a311-c1d8e695cbff),
|
|
pointer_default(unique),
|
|
]
|
|
interface IUpdateHistoryEntry : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT Operation( [out, retval] UpdateOperation *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT ResultCode( [out, retval] OperationResultCode *retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT HResult( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020004)]
|
|
HRESULT Date( [out, retval] DATE *retval );
|
|
|
|
[propget, id(0x60020005)]
|
|
HRESULT UpdateIdentity( [out, retval] IUpdateIdentity **retval );
|
|
|
|
[propget, id(0x60020006)]
|
|
HRESULT Title( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020007)]
|
|
HRESULT Description( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x60020008)]
|
|
HRESULT UnmappedResultCode( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020009)]
|
|
HRESULT ClientApplicationID( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x6002000a)]
|
|
HRESULT ServerSelection( [out, retval] ServerSelection *retval );
|
|
|
|
[propget, id(0x6002000b)]
|
|
HRESULT ServiceID( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x6002000c)]
|
|
HRESULT UninstallationSteps( [out, retval] IStringCollection **retval );
|
|
|
|
[propget, id(0x6002000d)]
|
|
HRESULT UninstallationNotes( [out, retval] BSTR *retval );
|
|
|
|
[propget, id(0x6002000e)]
|
|
HRESULT SupportUrl( [out, retval] BSTR *retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(a7f04f3c-a290-435b-aadf-a116c3357a5c),
|
|
pointer_default(unique),
|
|
]
|
|
interface IUpdateHistoryEntryCollection : IDispatch
|
|
{
|
|
[propget, id(DISPID_VALUE)]
|
|
HRESULT Item( [in] LONG index,
|
|
[out, retval] IUpdateHistoryEntry **retval );
|
|
|
|
[propget, id(DISPID_NEWENUM)]
|
|
HRESULT _NewEnum( [out, retval] IUnknown **retval );
|
|
|
|
[propget, id(0x60020001)]
|
|
HRESULT Count( [out, retval] LONG *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,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(bf99af76-b575-42ad-8aa4-33cbb5477af1),
|
|
pointer_default(unique),
|
|
]
|
|
interface IUpdateDownloadResult : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT HResult( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT ResultCode( [out, retval] OperationResultCode *retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(d31a5bac-f719-4178-9dbb-5e2cb47fd18a),
|
|
pointer_default(unique),
|
|
]
|
|
interface IDownloadProgress : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT CurrentUpdateBytesDownloaded( [out, retval] DECIMAL *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT CurrentUpdateBytesToDownload( [out, retval] DECIMAL *retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT CurrentUpdateIndex( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020004)]
|
|
HRESULT PercentComplete( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020005)]
|
|
HRESULT TotalBytesDownloaded( [out, retval] DECIMAL *retval );
|
|
|
|
[propget, id(0x60020006)]
|
|
HRESULT TotalBytesToDownload( [out, retval] DECIMAL *retval );
|
|
|
|
[id(0x60020007)]
|
|
HRESULT GetUpdateResult( [in] LONG updateIndex,
|
|
[out, retval] IUpdateDownloadResult **retval );
|
|
|
|
|
|
[propget, id(0x60020008)]
|
|
HRESULT CurrentUpdateDownloadPhase( [out, retval] DownloadPhase *retval );
|
|
|
|
[propget, id(0x60020009)]
|
|
HRESULT CurrentUpdatePercentComplete( [out, retval] LONG *retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(c574de85-7358-43f6-aae8-8697e62d8ba7),
|
|
pointer_default(unique),
|
|
]
|
|
interface IDownloadJob : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT AsyncState( [out, retval] VARIANT *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT IsCompleted( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT Updates( [out, retval] IUpdateCollection **retval );
|
|
|
|
[id(0x60020004)]
|
|
HRESULT CleanUp();
|
|
|
|
[id(0x60020005)]
|
|
HRESULT GetProgress( [out, retval] IDownloadProgress **retval );
|
|
|
|
[id(0x60020006)]
|
|
HRESULT RequestAbort();
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(daa4fdd0-4727-4dbe-a1e7-745dca317144),
|
|
pointer_default(unique),
|
|
]
|
|
interface IDownloadResult : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT HResult( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT ResultCode( [out, retval] OperationResultCode *retval );
|
|
|
|
[id(0x60020003)]
|
|
HRESULT GetUpdateResult( [in] LONG updateIndex,
|
|
[out, retval] IUpdateDownloadResult **retval );
|
|
}
|
|
|
|
[
|
|
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,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(d940f0f8-3cbb-4fd0-993f-471e7f2328ad),
|
|
pointer_default(unique),
|
|
]
|
|
interface IUpdateInstallationResult : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT HResult( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT RebootRequired( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT ResultCode( [out, retval] OperationResultCode *retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(345c8244-43a3-4e32-a368-65f073b76f36),
|
|
pointer_default(unique),
|
|
]
|
|
interface IInstallationProgress : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT CurrentUpdateIndex( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT CurrentUpdatePercentComplete( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT PercentComplete( [out, retval] LONG *retval );
|
|
|
|
[id(0x60020004)]
|
|
HRESULT GetUpdateResult( [in] LONG updateIndex,
|
|
[out, retval] IUpdateInstallationResult **retval );
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(5c209f0b-bad5-432a-9556-4699bed2638a),
|
|
pointer_default(unique),
|
|
]
|
|
interface IInstallationJob : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT AsyncState( [out, retval] VARIANT *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT IsCompleted( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT Updates( [out, retval] IUpdateCollection **retval );
|
|
|
|
[id(0x60020004)]
|
|
HRESULT CleanUp();
|
|
|
|
[id(0x60020005)]
|
|
HRESULT GetProgress( [out, retval] IInstallationProgress **retval );
|
|
|
|
[id(0x60020006)]
|
|
HRESULT RequestAbort();
|
|
}
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
dual,
|
|
nonextensible,
|
|
uuid(a43c56d6-7451-48d4-af96-b6cd2d0d9b7a),
|
|
pointer_default(unique),
|
|
]
|
|
interface IInstallationResult : IDispatch
|
|
{
|
|
[propget, id(0x60020001)]
|
|
HRESULT HResult( [out, retval] LONG *retval );
|
|
|
|
[propget, id(0x60020002)]
|
|
HRESULT RebootRequired( [out, retval] VARIANT_BOOL *retval );
|
|
|
|
[propget, id(0x60020003)]
|
|
HRESULT ResultCode( [out, retval] OperationResultCode *retval );
|
|
|
|
[id(0x60020004)]
|
|
HRESULT GetUpdateResult( [in] LONG updateIndex,
|
|
[out, retval] IUpdateInstallationResult **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);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(ADE87BF7-7B56-4275-8FAB-B9B0E591844B),
|
|
oleautomation,
|
|
hidden,
|
|
dual,
|
|
nonextensible,
|
|
pointer_default(unique),
|
|
]
|
|
interface ISystemInformation : IDispatch
|
|
{
|
|
[propget]
|
|
HRESULT OemHardwareSupportLink(
|
|
[out, retval] BSTR *retval);
|
|
|
|
[propget]
|
|
HRESULT RebootRequired(
|
|
[out, retval] VARIANT_BOOL *retval);
|
|
}
|
|
|
|
[
|
|
helpstring("AutomaticUpdates Class"),
|
|
threading(both),
|
|
progid("Microsoft.Update.AutoUpdate.1"),
|
|
vi_progid("Microsoft.Update.AutoUpdate"),
|
|
uuid(bfe18e9c-6d87-4450-b37c-e02f0b373803)
|
|
]
|
|
coclass AutomaticUpdates { interface IAutomaticUpdates; }
|
|
|
|
[
|
|
helpstring("UpdateSession Class"),
|
|
threading(both),
|
|
progid("Microsoft.Update.Session.1"),
|
|
vi_progid("Microsoft.Update.Session"),
|
|
uuid(4cb43d7f-7eee-4906-8698-60da1c38f2fe)
|
|
]
|
|
coclass UpdateSession { interface IUpdateSession; }
|
|
|
|
[
|
|
helpstring("SystemInformation Class"),
|
|
threading(both),
|
|
progid("Microsoft.Update.SystemInfo.1"),
|
|
vi_progid("Microsoft.Update.SystemInfo"),
|
|
uuid(C01B9BA0-BEA7-41BA-B604-D0A36F469133)
|
|
]
|
|
coclass SystemInformation { interface ISystemInformation; }
|
|
|
|
} /* WUApiLib */
|