Create BootstrapperApplication.h and BootstrapperEngine.h

Move as much as possible from IBootstrapperApplication.h and IBootstrapperEngine.h into BootstrapperApplication.h and BootstrapperEngine.h since they will eventually be removed from the engine.
This commit is contained in:
Sean Hall 2015-10-31 13:14:28 -05:00 коммит произвёл Rob Mensching
Родитель d9bd1ecc15
Коммит 413d82839d
12 изменённых файлов: 230 добавлений и 205 удалений

Просмотреть файл

@ -78,6 +78,8 @@
<ClCompile Include="variant.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\inc\BootstrapperApplication.h" />
<ClInclude Include="..\inc\BootstrapperEngine.h" />
<ClInclude Include="..\inc\IBootstrapperEngine.h" />
<ClInclude Include="..\inc\IBootstrapperApplication.h" />
<ClInclude Include="apply.h" />

Просмотреть файл

@ -212,6 +212,12 @@
<ClInclude Include="bitsengine.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\inc\BootstrapperApplication.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\inc\BootstrapperEngine.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\inc\IBootstrapperEngine.h">
<Filter>Header Files</Filter>
</ClInclude>

Просмотреть файл

@ -67,6 +67,8 @@
#include <atomutil.h>
#include <apuputil.h>
#include "BootstrapperEngine.h"
#include "BootstrapperApplication.h"
#include "IBootstrapperEngine.h"
#include "IBootstrapperApplication.h"

Просмотреть файл

@ -0,0 +1,107 @@
//-------------------------------------------------------------------------------------------------
// <copyright file="BootstrapperApplication.h" company="Outercurve Foundation">
// Copyright (c) 2004, Outercurve Foundation.
// This software is released under Microsoft Reciprocal License (MS-RL).
// The license and further copyright text can be found in the file
// LICENSE.TXT at the root directory of the distribution.
// </copyright>
//-------------------------------------------------------------------------------------------------
#pragma once
enum BOOTSTRAPPER_DISPLAY
{
BOOTSTRAPPER_DISPLAY_UNKNOWN,
BOOTSTRAPPER_DISPLAY_EMBEDDED,
BOOTSTRAPPER_DISPLAY_NONE,
BOOTSTRAPPER_DISPLAY_PASSIVE,
BOOTSTRAPPER_DISPLAY_FULL,
};
enum BOOTSTRAPPER_RESTART
{
BOOTSTRAPPER_RESTART_UNKNOWN,
BOOTSTRAPPER_RESTART_NEVER,
BOOTSTRAPPER_RESTART_PROMPT,
BOOTSTRAPPER_RESTART_AUTOMATIC,
BOOTSTRAPPER_RESTART_ALWAYS,
};
enum BOOTSTRAPPER_RESUME_TYPE
{
BOOTSTRAPPER_RESUME_TYPE_NONE,
BOOTSTRAPPER_RESUME_TYPE_INVALID, // resume information is present but invalid
BOOTSTRAPPER_RESUME_TYPE_INTERRUPTED, // relaunched after an unexpected interruption
BOOTSTRAPPER_RESUME_TYPE_REBOOT_PENDING, // reboot has not taken place yet
BOOTSTRAPPER_RESUME_TYPE_REBOOT, // relaunched after reboot
BOOTSTRAPPER_RESUME_TYPE_SUSPEND, // relaunched after suspend
BOOTSTRAPPER_RESUME_TYPE_ARP, // launched from ARP
};
enum BOOTSTRAPPER_ERROR_TYPE
{
BOOTSTRAPPER_ERROR_TYPE_ELEVATE, // error occurred trying to elevate.
BOOTSTRAPPER_ERROR_TYPE_WINDOWS_INSTALLER, // error came from windows installer.
BOOTSTRAPPER_ERROR_TYPE_EXE_PACKAGE, // error came from an exe package.
BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_SERVER, // error occurred trying to authenticate with HTTP server.
BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_PROXY, // error occurred trying to authenticate with HTTP proxy.
BOOTSTRAPPER_ERROR_TYPE_APPLY, // error occurred during apply.
};
enum BOOTSTRAPPER_RELATED_OPERATION
{
BOOTSTRAPPER_RELATED_OPERATION_NONE,
BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE,
BOOTSTRAPPER_RELATED_OPERATION_MINOR_UPDATE,
BOOTSTRAPPER_RELATED_OPERATION_MAJOR_UPGRADE,
BOOTSTRAPPER_RELATED_OPERATION_REMOVE,
BOOTSTRAPPER_RELATED_OPERATION_INSTALL,
BOOTSTRAPPER_RELATED_OPERATION_REPAIR,
};
enum BOOTSTRAPPER_CACHE_OPERATION
{
BOOTSTRAPPER_CACHE_OPERATION_COPY,
BOOTSTRAPPER_CACHE_OPERATION_DOWNLOAD,
BOOTSTRAPPER_CACHE_OPERATION_EXTRACT,
};
enum BOOTSTRAPPER_APPLY_RESTART
{
BOOTSTRAPPER_APPLY_RESTART_NONE,
BOOTSTRAPPER_APPLY_RESTART_REQUIRED,
BOOTSTRAPPER_APPLY_RESTART_INITIATED,
};
enum BOOTSTRAPPER_RELATION_TYPE
{
BOOTSTRAPPER_RELATION_NONE,
BOOTSTRAPPER_RELATION_DETECT,
BOOTSTRAPPER_RELATION_UPGRADE,
BOOTSTRAPPER_RELATION_ADDON,
BOOTSTRAPPER_RELATION_PATCH,
BOOTSTRAPPER_RELATION_DEPENDENT,
BOOTSTRAPPER_RELATION_UPDATE,
};
struct BOOTSTRAPPER_COMMAND
{
BOOTSTRAPPER_ACTION action;
BOOTSTRAPPER_DISPLAY display;
BOOTSTRAPPER_RESTART restart;
LPWSTR wzCommandLine;
int nCmdShow;
BOOTSTRAPPER_RESUME_TYPE resumeType;
HWND hwndSplashScreen;
// If this was run from a related bundle, specifies the relation type
BOOTSTRAPPER_RELATION_TYPE relationType;
BOOL fPassthrough;
LPWSTR wzLayoutDirectory;
};
extern "C" typedef void (WINAPI *PFN_BOOTSTRAPPER_APPLICATION_DESTROY)();

Просмотреть файл

@ -0,0 +1,102 @@
//-------------------------------------------------------------------------------------------------
// <copyright file="BootstrapperEngine.h" company="Outercurve Foundation">
// Copyright (c) 2004, Outercurve Foundation.
// This software is released under Microsoft Reciprocal License (MS-RL).
// The license and further copyright text can be found in the file
// LICENSE.TXT at the root directory of the distribution.
// </copyright>
//-------------------------------------------------------------------------------------------------
#pragma once
#define IDERROR -1
#define IDNOACTION 0
#define IDDOWNLOAD 101 // Only valid as a return code from OnResolveSource() to instruct the engine to use the download source.
#define IDRESTART 102
#define IDSUSPEND 103
#define IDRELOAD_BOOTSTRAPPER 104
// Note that ordering of the enumeration values is important.
// Some code paths use < or > comparisions and simply reording values will break those comparisons.
enum BOOTSTRAPPER_ACTION
{
BOOTSTRAPPER_ACTION_UNKNOWN,
BOOTSTRAPPER_ACTION_HELP,
BOOTSTRAPPER_ACTION_LAYOUT,
BOOTSTRAPPER_ACTION_UNINSTALL,
BOOTSTRAPPER_ACTION_CACHE,
BOOTSTRAPPER_ACTION_INSTALL,
BOOTSTRAPPER_ACTION_MODIFY,
BOOTSTRAPPER_ACTION_REPAIR,
BOOTSTRAPPER_ACTION_UPDATE_REPLACE,
BOOTSTRAPPER_ACTION_UPDATE_REPLACE_EMBEDDED,
};
enum BOOTSTRAPPER_ACTION_STATE
{
BOOTSTRAPPER_ACTION_STATE_NONE,
BOOTSTRAPPER_ACTION_STATE_UNINSTALL,
BOOTSTRAPPER_ACTION_STATE_INSTALL,
BOOTSTRAPPER_ACTION_STATE_ADMIN_INSTALL,
BOOTSTRAPPER_ACTION_STATE_MODIFY,
BOOTSTRAPPER_ACTION_STATE_REPAIR,
BOOTSTRAPPER_ACTION_STATE_MINOR_UPGRADE,
BOOTSTRAPPER_ACTION_STATE_MAJOR_UPGRADE,
BOOTSTRAPPER_ACTION_STATE_PATCH,
};
enum BOOTSTRAPPER_PACKAGE_STATE
{
BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN,
BOOTSTRAPPER_PACKAGE_STATE_OBSOLETE,
BOOTSTRAPPER_PACKAGE_STATE_ABSENT,
BOOTSTRAPPER_PACKAGE_STATE_CACHED,
BOOTSTRAPPER_PACKAGE_STATE_PRESENT,
BOOTSTRAPPER_PACKAGE_STATE_SUPERSEDED,
};
enum BOOTSTRAPPER_REQUEST_STATE
{
BOOTSTRAPPER_REQUEST_STATE_NONE,
BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT,
BOOTSTRAPPER_REQUEST_STATE_ABSENT,
BOOTSTRAPPER_REQUEST_STATE_CACHE,
BOOTSTRAPPER_REQUEST_STATE_PRESENT,
BOOTSTRAPPER_REQUEST_STATE_REPAIR,
};
enum BOOTSTRAPPER_FEATURE_STATE
{
BOOTSTRAPPER_FEATURE_STATE_UNKNOWN,
BOOTSTRAPPER_FEATURE_STATE_ABSENT,
BOOTSTRAPPER_FEATURE_STATE_ADVERTISED,
BOOTSTRAPPER_FEATURE_STATE_LOCAL,
BOOTSTRAPPER_FEATURE_STATE_SOURCE,
};
enum BOOTSTRAPPER_FEATURE_ACTION
{
BOOTSTRAPPER_FEATURE_ACTION_NONE,
BOOTSTRAPPER_FEATURE_ACTION_ADDLOCAL,
BOOTSTRAPPER_FEATURE_ACTION_ADDSOURCE,
BOOTSTRAPPER_FEATURE_ACTION_ADDDEFAULT,
BOOTSTRAPPER_FEATURE_ACTION_REINSTALL,
BOOTSTRAPPER_FEATURE_ACTION_ADVERTISE,
BOOTSTRAPPER_FEATURE_ACTION_REMOVE,
};
enum BOOTSTRAPPER_LOG_LEVEL
{
BOOTSTRAPPER_LOG_LEVEL_NONE, // turns off report (only valid for XXXSetLevel())
BOOTSTRAPPER_LOG_LEVEL_STANDARD, // written if reporting is on
BOOTSTRAPPER_LOG_LEVEL_VERBOSE, // written only if verbose reporting is on
BOOTSTRAPPER_LOG_LEVEL_DEBUG, // reporting useful when debugging code
BOOTSTRAPPER_LOG_LEVEL_ERROR, // always gets reported, but can never be specified
};
enum BOOTSTRAPPER_UPDATE_HASH_TYPE
{
BOOTSTRAPPER_UPDATE_HASH_TYPE_NONE,
BOOTSTRAPPER_UPDATE_HASH_TYPE_SHA1,
};

Просмотреть файл

@ -5,118 +5,11 @@
// The license and further copyright text can be found in the file
// LICENSE.TXT at the root directory of the distribution.
// </copyright>
//
// <summary>
// IBootstrapperApplication implemented by a bootstrapper application and used by bootstrapper engine.
// </summary>
//-------------------------------------------------------------------------------------------------
#pragma once
enum BOOTSTRAPPER_DISPLAY
{
BOOTSTRAPPER_DISPLAY_UNKNOWN,
BOOTSTRAPPER_DISPLAY_EMBEDDED,
BOOTSTRAPPER_DISPLAY_NONE,
BOOTSTRAPPER_DISPLAY_PASSIVE,
BOOTSTRAPPER_DISPLAY_FULL,
};
enum BOOTSTRAPPER_RESTART
{
BOOTSTRAPPER_RESTART_UNKNOWN,
BOOTSTRAPPER_RESTART_NEVER,
BOOTSTRAPPER_RESTART_PROMPT,
BOOTSTRAPPER_RESTART_AUTOMATIC,
BOOTSTRAPPER_RESTART_ALWAYS,
};
enum BOOTSTRAPPER_RESUME_TYPE
{
BOOTSTRAPPER_RESUME_TYPE_NONE,
BOOTSTRAPPER_RESUME_TYPE_INVALID, // resume information is present but invalid
BOOTSTRAPPER_RESUME_TYPE_INTERRUPTED, // relaunched after an unexpected interruption
BOOTSTRAPPER_RESUME_TYPE_REBOOT_PENDING, // reboot has not taken place yet
BOOTSTRAPPER_RESUME_TYPE_REBOOT, // relaunched after reboot
BOOTSTRAPPER_RESUME_TYPE_SUSPEND, // relaunched after suspend
BOOTSTRAPPER_RESUME_TYPE_ARP, // launched from ARP
};
enum BOOTSTRAPPER_ERROR_TYPE
{
BOOTSTRAPPER_ERROR_TYPE_ELEVATE, // error occurred trying to elevate.
BOOTSTRAPPER_ERROR_TYPE_WINDOWS_INSTALLER, // error came from windows installer.
BOOTSTRAPPER_ERROR_TYPE_EXE_PACKAGE, // error came from an exe package.
BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_SERVER, // error occurred trying to authenticate with HTTP server.
BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_PROXY, // error occurred trying to authenticate with HTTP proxy.
BOOTSTRAPPER_ERROR_TYPE_APPLY, // error occurred during apply.
};
enum BOOTSTRAPPER_RELATED_OPERATION
{
BOOTSTRAPPER_RELATED_OPERATION_NONE,
BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE,
BOOTSTRAPPER_RELATED_OPERATION_MINOR_UPDATE,
BOOTSTRAPPER_RELATED_OPERATION_MAJOR_UPGRADE,
BOOTSTRAPPER_RELATED_OPERATION_REMOVE,
BOOTSTRAPPER_RELATED_OPERATION_INSTALL,
BOOTSTRAPPER_RELATED_OPERATION_REPAIR,
};
enum BOOTSTRAPPER_CACHE_OPERATION
{
BOOTSTRAPPER_CACHE_OPERATION_COPY,
BOOTSTRAPPER_CACHE_OPERATION_DOWNLOAD,
BOOTSTRAPPER_CACHE_OPERATION_EXTRACT,
};
enum BOOTSTRAPPER_APPLY_RESTART
{
BOOTSTRAPPER_APPLY_RESTART_NONE,
BOOTSTRAPPER_APPLY_RESTART_REQUIRED,
BOOTSTRAPPER_APPLY_RESTART_INITIATED,
};
enum BOOTSTRAPPER_RELATION_TYPE
{
BOOTSTRAPPER_RELATION_NONE,
BOOTSTRAPPER_RELATION_DETECT,
BOOTSTRAPPER_RELATION_UPGRADE,
BOOTSTRAPPER_RELATION_ADDON,
BOOTSTRAPPER_RELATION_PATCH,
BOOTSTRAPPER_RELATION_DEPENDENT,
BOOTSTRAPPER_RELATION_UPDATE,
};
struct BOOTSTRAPPER_COMMAND
{
BOOTSTRAPPER_ACTION action;
BOOTSTRAPPER_DISPLAY display;
BOOTSTRAPPER_RESTART restart;
LPWSTR wzCommandLine;
int nCmdShow;
BOOTSTRAPPER_RESUME_TYPE resumeType;
HWND hwndSplashScreen;
// If this was run from a related bundle, specifies the relation type
BOOTSTRAPPER_RELATION_TYPE relationType;
BOOL fPassthrough;
LPWSTR wzLayoutDirectory;
};
DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-AB06-099D717C67FE")
{
// OnStartup - called when the engine is ready for the bootstrapper application to start.
@ -754,10 +647,9 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
};
// Move into BootstrapperApplication.h once IBootstrapperEngine and IBootstrapperApplication have been moved out of the engine.
extern "C" typedef HRESULT (WINAPI *PFN_BOOTSTRAPPER_APPLICATION_CREATE)(
__in IBootstrapperEngine* pEngine,
__in const BOOTSTRAPPER_COMMAND* pCommand,
__out IBootstrapperApplication** ppApplication
);
extern "C" typedef void (WINAPI *PFN_BOOTSTRAPPER_APPLICATION_DESTROY)();

Просмотреть файл

@ -5,106 +5,10 @@
// The license and further copyright text can be found in the file
// LICENSE.TXT at the root directory of the distribution.
// </copyright>
//
// <summary>
// IBoostrapperEngine implemented by engine and used by bootstrapper application.
// </summary>
//-------------------------------------------------------------------------------------------------
#pragma once
#define IDERROR -1
#define IDNOACTION 0
#define IDDOWNLOAD 101 // Only valid as a return code from OnResolveSource() to instruct the engine to use the download source.
#define IDRESTART 102
#define IDSUSPEND 103
#define IDRELOAD_BOOTSTRAPPER 104
// Note that ordering of the enumeration values is important.
// Some code paths use < or > comparisions and simply reording values will break those comparisons.
enum BOOTSTRAPPER_ACTION
{
BOOTSTRAPPER_ACTION_UNKNOWN,
BOOTSTRAPPER_ACTION_HELP,
BOOTSTRAPPER_ACTION_LAYOUT,
BOOTSTRAPPER_ACTION_UNINSTALL,
BOOTSTRAPPER_ACTION_CACHE,
BOOTSTRAPPER_ACTION_INSTALL,
BOOTSTRAPPER_ACTION_MODIFY,
BOOTSTRAPPER_ACTION_REPAIR,
BOOTSTRAPPER_ACTION_UPDATE_REPLACE,
BOOTSTRAPPER_ACTION_UPDATE_REPLACE_EMBEDDED,
};
enum BOOTSTRAPPER_ACTION_STATE
{
BOOTSTRAPPER_ACTION_STATE_NONE,
BOOTSTRAPPER_ACTION_STATE_UNINSTALL,
BOOTSTRAPPER_ACTION_STATE_INSTALL,
BOOTSTRAPPER_ACTION_STATE_ADMIN_INSTALL,
BOOTSTRAPPER_ACTION_STATE_MODIFY,
BOOTSTRAPPER_ACTION_STATE_REPAIR,
BOOTSTRAPPER_ACTION_STATE_MINOR_UPGRADE,
BOOTSTRAPPER_ACTION_STATE_MAJOR_UPGRADE,
BOOTSTRAPPER_ACTION_STATE_PATCH,
};
enum BOOTSTRAPPER_PACKAGE_STATE
{
BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN,
BOOTSTRAPPER_PACKAGE_STATE_OBSOLETE,
BOOTSTRAPPER_PACKAGE_STATE_ABSENT,
BOOTSTRAPPER_PACKAGE_STATE_CACHED,
BOOTSTRAPPER_PACKAGE_STATE_PRESENT,
BOOTSTRAPPER_PACKAGE_STATE_SUPERSEDED,
};
enum BOOTSTRAPPER_REQUEST_STATE
{
BOOTSTRAPPER_REQUEST_STATE_NONE,
BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT,
BOOTSTRAPPER_REQUEST_STATE_ABSENT,
BOOTSTRAPPER_REQUEST_STATE_CACHE,
BOOTSTRAPPER_REQUEST_STATE_PRESENT,
BOOTSTRAPPER_REQUEST_STATE_REPAIR,
};
enum BOOTSTRAPPER_FEATURE_STATE
{
BOOTSTRAPPER_FEATURE_STATE_UNKNOWN,
BOOTSTRAPPER_FEATURE_STATE_ABSENT,
BOOTSTRAPPER_FEATURE_STATE_ADVERTISED,
BOOTSTRAPPER_FEATURE_STATE_LOCAL,
BOOTSTRAPPER_FEATURE_STATE_SOURCE,
};
enum BOOTSTRAPPER_FEATURE_ACTION
{
BOOTSTRAPPER_FEATURE_ACTION_NONE,
BOOTSTRAPPER_FEATURE_ACTION_ADDLOCAL,
BOOTSTRAPPER_FEATURE_ACTION_ADDSOURCE,
BOOTSTRAPPER_FEATURE_ACTION_ADDDEFAULT,
BOOTSTRAPPER_FEATURE_ACTION_REINSTALL,
BOOTSTRAPPER_FEATURE_ACTION_ADVERTISE,
BOOTSTRAPPER_FEATURE_ACTION_REMOVE,
};
enum BOOTSTRAPPER_LOG_LEVEL
{
BOOTSTRAPPER_LOG_LEVEL_NONE, // turns off report (only valid for XXXSetLevel())
BOOTSTRAPPER_LOG_LEVEL_STANDARD, // written if reporting is on
BOOTSTRAPPER_LOG_LEVEL_VERBOSE, // written only if verbose reporting is on
BOOTSTRAPPER_LOG_LEVEL_DEBUG, // reporting useful when debugging code
BOOTSTRAPPER_LOG_LEVEL_ERROR, // always gets reported, but can never be specified
};
enum BOOTSTRAPPER_UPDATE_HASH_TYPE
{
BOOTSTRAPPER_UPDATE_HASH_TYPE_NONE,
BOOTSTRAPPER_UPDATE_HASH_TYPE_SHA1,
};
DECLARE_INTERFACE_IID_(IBootstrapperEngine, IUnknown, "6480D616-27A0-44D7-905B-81512C29C2FB")
{

Просмотреть файл

@ -27,6 +27,8 @@
#include <strutil.h>
#include <xmlutil.h>
#include "BootstrapperEngine.h"
#include "BootstrapperApplication.h"
#include "IBootstrapperEngine.h"
#include "IBootstrapperApplication.h"
#include "IBootstrapperApplicationFactory.h"

Просмотреть файл

@ -38,6 +38,8 @@
#include "uriutil.h"
#include "xmlutil.h"
#include "BootstrapperEngine.h"
#include "BootstrapperApplication.h"
#include "IBootstrapperEngine.h"
#include "IBootstrapperApplication.h"

Просмотреть файл

@ -10,6 +10,8 @@
#include <windows.h>
#include <msiquery.h>
#include "BootstrapperEngine.h"
#include "BootstrapperApplication.h"
#include "IBootstrapperEngine.h"
#include "IBootstrapperApplication.h"

Просмотреть файл

@ -25,6 +25,8 @@
#include <strutil.h>
#include <xmlutil.h>
#include "BootstrapperEngine.h"
#include "BootstrapperApplication.h"
#include "IBootstrapperEngine.h"
#include "IBootstrapperApplication.h"

Просмотреть файл

@ -43,6 +43,8 @@
#include <wixver.h>
#include "BootstrapperEngine.h"
#include "BootstrapperApplication.h"
#include "IBootstrapperEngine.h"
#include "IBootstrapperApplication.h"