1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
#pragma once
// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
#include "BalBaseBootstrapperApplicationProc.h"
#include "BAFunctions.h"
#include "IBAFunctions.h"
static HRESULT BalBaseBAFunctionsProcOnThemeLoaded(
__in IBAFunctions* pBAFunctions,
__in BA_FUNCTIONS_ONTHEMELOADED_ARGS* pArgs,
__inout BA_FUNCTIONS_ONTHEMELOADED_RESULTS* /*pResults*/
)
{
return pBAFunctions->OnThemeLoaded(pArgs->pTheme, pArgs->pWixLoc);
}
static HRESULT BalBaseBAFunctionsProcWndProc(
__in IBAFunctions* pBAFunctions,
__in BA_FUNCTIONS_WNDPROC_ARGS* pArgs,
__inout BA_FUNCTIONS_WNDPROC_RESULTS* pResults
)
{
return pBAFunctions->WndProc(pArgs->pTheme, pArgs->hWnd, pArgs->uMsg, pArgs->wParam, pArgs->lParam, &pResults->lres);
}
/*******************************************************************
BalBaseBAFunctionsProc - requires pvContext to be of type IBAFunctions.
Provides a default mapping between the message based BAFunctions interface and
the COM-based BAFunctions interface.
*******************************************************************/
static HRESULT WINAPI BalBaseBAFunctionsProc(
__in BA_FUNCTIONS_MESSAGE message,
__in const LPVOID pvArgs,
__inout LPVOID pvResults,
__in_opt LPVOID pvContext
)
{
IBAFunctions* pBAFunctions = reinterpret_cast<IBAFunctions*>(pvContext);
HRESULT hr = pBAFunctions->BAFunctionsProc(message, pvArgs, pvResults, pvContext);
if (E_NOTIMPL == hr)
{
switch (message)
{
case BA_FUNCTIONS_MESSAGE_ONDETECTBEGIN:
case BA_FUNCTIONS_MESSAGE_ONDETECTCOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONPLANBEGIN:
case BA_FUNCTIONS_MESSAGE_ONPLANCOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONSTARTUP:
case BA_FUNCTIONS_MESSAGE_ONSHUTDOWN:
case BA_FUNCTIONS_MESSAGE_ONSYSTEMSHUTDOWN:
case BA_FUNCTIONS_MESSAGE_ONDETECTFORWARDCOMPATIBLEBUNDLE:
case BA_FUNCTIONS_MESSAGE_ONDETECTUPDATEBEGIN:
case BA_FUNCTIONS_MESSAGE_ONDETECTUPDATE:
case BA_FUNCTIONS_MESSAGE_ONDETECTUPDATECOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLE:
case BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGEBEGIN:
case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDMSIPACKAGE:
case BA_FUNCTIONS_MESSAGE_ONDETECTPATCHTARGET:
case BA_FUNCTIONS_MESSAGE_ONDETECTMSIFEATURE:
case BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGECOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLE:
case BA_FUNCTIONS_MESSAGE_ONPLANPACKAGEBEGIN:
case BA_FUNCTIONS_MESSAGE_ONPLANPATCHTARGET:
case BA_FUNCTIONS_MESSAGE_ONPLANMSIFEATURE:
case BA_FUNCTIONS_MESSAGE_ONPLANPACKAGECOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONAPPLYBEGIN:
case BA_FUNCTIONS_MESSAGE_ONELEVATEBEGIN:
case BA_FUNCTIONS_MESSAGE_ONELEVATECOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONPROGRESS:
case BA_FUNCTIONS_MESSAGE_ONERROR:
case BA_FUNCTIONS_MESSAGE_ONREGISTERBEGIN:
case BA_FUNCTIONS_MESSAGE_ONREGISTERCOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONCACHEBEGIN:
case BA_FUNCTIONS_MESSAGE_ONCACHEPACKAGEBEGIN:
case BA_FUNCTIONS_MESSAGE_ONCACHEACQUIREBEGIN:
case BA_FUNCTIONS_MESSAGE_ONCACHEACQUIREPROGRESS:
case BA_FUNCTIONS_MESSAGE_ONCACHEACQUIRERESOLVING:
case BA_FUNCTIONS_MESSAGE_ONCACHEACQUIRECOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONCACHEVERIFYBEGIN:
case BA_FUNCTIONS_MESSAGE_ONCACHEVERIFYCOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONCACHEPACKAGECOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONCACHECOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONEXECUTEBEGIN:
case BA_FUNCTIONS_MESSAGE_ONEXECUTEPACKAGEBEGIN:
case BA_FUNCTIONS_MESSAGE_ONEXECUTEPATCHTARGET:
case BA_FUNCTIONS_MESSAGE_ONEXECUTEPROGRESS:
case BA_FUNCTIONS_MESSAGE_ONEXECUTEMSIMESSAGE:
case BA_FUNCTIONS_MESSAGE_ONEXECUTEFILESINUSE:
case BA_FUNCTIONS_MESSAGE_ONEXECUTEPACKAGECOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONEXECUTECOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONUNREGISTERBEGIN:
case BA_FUNCTIONS_MESSAGE_ONUNREGISTERCOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONAPPLYCOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN:
case BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONPLANMSIPACKAGE:
case BA_FUNCTIONS_MESSAGE_ONBEGINMSITRANSACTIONBEGIN:
case BA_FUNCTIONS_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN:
case BA_FUNCTIONS_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN:
case BA_FUNCTIONS_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN:
case BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN:
case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE:
case BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE:
case BA_FUNCTIONS_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE:
hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext);
break;
case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED:
hr = BalBaseBAFunctionsProcOnThemeLoaded(pBAFunctions, reinterpret_cast<BA_FUNCTIONS_ONTHEMELOADED_ARGS*>(pvArgs), reinterpret_cast<BA_FUNCTIONS_ONTHEMELOADED_RESULTS*>(pvResults));
break;
case BA_FUNCTIONS_MESSAGE_WNDPROC:
hr = BalBaseBAFunctionsProcWndProc(pBAFunctions, reinterpret_cast<BA_FUNCTIONS_WNDPROC_ARGS*>(pvArgs), reinterpret_cast<BA_FUNCTIONS_WNDPROC_RESULTS*>(pvResults));
break;
}
}
return hr;
}
|