@joebigelow / wix / commits / 9d3af754

Go back to thmutil not interfering with wixstdba controls.

Sean Hall committed Nov 8, 2021 at 15:24 UTC 9d3af7547bb790d39157dd36dfa862a1abf47beb
9 files changed +61 -29
src/api/burn/balutil/inc/BAFunctions.h
+1
@@ -141,6 +141,7 @@ struct BA_FUNCTIONS_ONTHEMECONTROLLOADING_RESULTS
141 DWORD cbSize;
142 BOOL fProcessed;
143 WORD wId;
144 + BOOL fDisableAutomaticFunctionality;
145 };
146
147 struct BA_FUNCTIONS_ONTHEMECONTROLWMCOMMAND_ARGS
src/api/burn/balutil/inc/BalBaseBAFunctions.h
+2 -1
@@ -835,7 +835,8 @@ public: // IBAFunctions
835 virtual STDMETHODIMP OnThemeControlLoading(
836 __in LPCWSTR /*wzName*/,
837 __inout BOOL* /*pfProcessed*/,
838 - __inout WORD* /*pwId*/
838 + __inout WORD* /*pwId*/,
839 + __inout BOOL* /*pfDisableAutomaticFunctionality*/
840 )
841 {
842 return S_OK;
src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h
+1 -1
@@ -30,7 +30,7 @@ static HRESULT BalBaseBAFunctionsProcOnThemeControlLoading(
30 __inout BA_FUNCTIONS_ONTHEMECONTROLLOADING_RESULTS* pResults
31 )
32 {
33 - return pBAFunctions->OnThemeControlLoading(pArgs->wzName, &pResults->fProcessed, &pResults->wId);
33 + return pBAFunctions->OnThemeControlLoading(pArgs->wzName, &pResults->fProcessed, &pResults->wId, &pResults->fDisableAutomaticFunctionality);
34 }
35
36 static HRESULT BalBaseBAFunctionsProcOnThemeControlWmCommand(
src/api/burn/balutil/inc/IBAFunctions.h
+2 -1
@@ -35,7 +35,8 @@ DECLARE_INTERFACE_IID_(IBAFunctions, IBootstrapperApplication, "0FB445ED-17BD-49
35 STDMETHOD(OnThemeControlLoading)(
36 __in LPCWSTR wzName,
37 __inout BOOL* pfProcessed,
38 - __inout WORD* pwId
38 + __inout WORD* pwId,
39 + __inout BOOL* pfDisableAutomaticFunctionality
40 ) = 0;
41
42 // OnThemeControlWmCommand - Called when WM_COMMAND is received for a control.
src/ext/Bal/wixstdba/WixStandardBootstrapperApplication.cpp
+27 -1
@@ -2927,6 +2927,7 @@ private:
2927
2928 fProcessed = TRUE;
2929 pResults->wId = pAssignControl->wId;
2930 + pResults->fDisableAutomaticFunctionality = pAssignControl->fDisableAutomaticFunctionality;
2931 ExitFunction();
2932 }
2933 }
@@ -2938,6 +2939,7 @@ private:
2939
2940 themeControlLoadingResults.cbSize = sizeof(themeControlLoadingResults);
2941 themeControlLoadingResults.wId = pResults->wId;
2942 + themeControlLoadingResults.fDisableAutomaticFunctionality = pResults->fDisableAutomaticFunctionality;
2943
2944 hr = m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONTHEMECONTROLLOADING, &themeControlLoadingArgs, &themeControlLoadingResults, m_pvBAFunctionsProcContext);
2945
@@ -2953,6 +2955,7 @@ private:
2955 {
2956 fProcessed = TRUE;
2957 pResults->wId = themeControlLoadingResults.wId;
2958 + pResults->fDisableAutomaticFunctionality = themeControlLoadingResults.fDisableAutomaticFunctionality;
2959 }
2960 }
2961 }
@@ -4040,7 +4043,7 @@ LExit:
4043 BalExitOnNullWithLastError(pfnBAFunctionsCreate, hr, "Failed to get BAFunctionsCreate entry-point from: %ls", sczBafPath);
4044
4045 bafCreateArgs.cbSize = sizeof(bafCreateArgs);
4043 - bafCreateArgs.qwBAFunctionsAPIVersion = MAKEQWORDVERSION(2021, 9, 20, 0);
4046 + bafCreateArgs.qwBAFunctionsAPIVersion = MAKEQWORDVERSION(2021, 11, 8, 0);
4047 bafCreateArgs.pBootstrapperCreateArgs = &m_createArgs;
4048
4049 bafCreateResults.cbSize = sizeof(bafCreateResults);
@@ -4138,138 +4141,161 @@ public:
4141 pAssignControl->wId = WIXSTDBA_CONTROL_INSTALL_BUTTON;
4142 pAssignControl->wzName = L"InstallButton";
4143 pAssignControl->ppControl = &m_pControlInstallButton;
4144 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4145 m_pControlInstallButton = NULL;
4146 ++pAssignControl;
4147
4148 pAssignControl->wId = WIXSTDBA_CONTROL_EULA_RICHEDIT;
4149 pAssignControl->wzName = L"EulaRichedit";
4150 pAssignControl->ppControl = &m_pControlEulaRichedit;
4151 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4152 m_pControlEulaRichedit = NULL;
4153 ++pAssignControl;
4154
4155 pAssignControl->wId = WIXSTDBA_CONTROL_EULA_LINK;
4156 pAssignControl->wzName = L"EulaHyperlink";
4157 pAssignControl->ppControl = &m_pControlEulaHyperlink;
4158 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4159 m_pControlEulaHyperlink = NULL;
4160 ++pAssignControl;
4161
4162 pAssignControl->wId = WIXSTDBA_CONTROL_EULA_ACCEPT_CHECKBOX;
4163 pAssignControl->wzName = L"EulaAcceptCheckbox";
4164 pAssignControl->ppControl = &m_pControlEulaAcceptCheckbox;
4165 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4166 m_pControlEulaAcceptCheckbox = NULL;
4167 ++pAssignControl;
4168
4169 pAssignControl->wId = WIXSTDBA_CONTROL_REPAIR_BUTTON;
4170 pAssignControl->wzName = L"RepairButton";
4171 pAssignControl->ppControl = &m_pControlRepairButton;
4172 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4173 m_pControlRepairButton = NULL;
4174 ++pAssignControl;
4175
4176 pAssignControl->wId = WIXSTDBA_CONTROL_UNINSTALL_BUTTON;
4177 pAssignControl->wzName = L"UninstallButton";
4178 pAssignControl->ppControl = &m_pControlUninstallButton;
4179 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4180 m_pControlUninstallButton = NULL;
4181 ++pAssignControl;
4182
4183 pAssignControl->wId = WIXSTDBA_CONTROL_CACHE_PROGRESS_PACKAGE_TEXT;
4184 pAssignControl->wzName = L"CacheProgressPackageText";
4185 pAssignControl->ppControl = &m_pControlCacheProgressPackageText;
4186 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4187 m_pControlCacheProgressPackageText = NULL;
4188 ++pAssignControl;
4189
4190 pAssignControl->wId = WIXSTDBA_CONTROL_CACHE_PROGRESS_BAR;
4191 pAssignControl->wzName = L"CacheProgressbar";
4192 pAssignControl->ppControl = &m_pControlCacheProgressbar;
4193 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4194 m_pControlCacheProgressbar = NULL;
4195 ++pAssignControl;
4196
4197 pAssignControl->wId = WIXSTDBA_CONTROL_CACHE_PROGRESS_TEXT;
4198 pAssignControl->wzName = L"CacheProgressText";
4199 pAssignControl->ppControl = &m_pControlCacheProgressText;
4200 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4201 m_pControlCacheProgressText = NULL;
4202 ++pAssignControl;
4203
4204 pAssignControl->wId = WIXSTDBA_CONTROL_EXECUTE_PROGRESS_PACKAGE_TEXT;
4205 pAssignControl->wzName = L"ExecuteProgressPackageText";
4206 pAssignControl->ppControl = &m_pControlExecuteProgressPackageText;
4207 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4208 m_pControlExecuteProgressPackageText = NULL;
4209 ++pAssignControl;
4210
4211 pAssignControl->wId = WIXSTDBA_CONTROL_EXECUTE_PROGRESS_BAR;
4212 pAssignControl->wzName = L"ExecuteProgressbar";
4213 pAssignControl->ppControl = &m_pControlExecuteProgressbar;
4214 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4215 m_pControlExecuteProgressbar = NULL;
4216 ++pAssignControl;
4217
4218 pAssignControl->wId = WIXSTDBA_CONTROL_EXECUTE_PROGRESS_TEXT;
4219 pAssignControl->wzName = L"ExecuteProgressText";
4220 pAssignControl->ppControl = &m_pControlExecuteProgressText;
4221 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4222 m_pControlExecuteProgressText = NULL;
4223 ++pAssignControl;
4224
4225 pAssignControl->wId = WIXSTDBA_CONTROL_EXECUTE_PROGRESS_ACTIONDATA_TEXT;
4226 pAssignControl->wzName = L"ExecuteProgressActionDataText";
4227 pAssignControl->ppControl = &m_pControlExecuteProgressActionDataText;
4228 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4229 m_pControlExecuteProgressActionDataText = NULL;
4230 ++pAssignControl;
4231
4232 pAssignControl->wId = WIXSTDBA_CONTROL_OVERALL_PROGRESS_PACKAGE_TEXT;
4233 pAssignControl->wzName = L"OverallProgressPackageText";
4234 pAssignControl->ppControl = &m_pControlOverallProgressPackageText;
4235 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4236 m_pControlOverallProgressPackageText = NULL;
4237 ++pAssignControl;
4238
4239 pAssignControl->wId = WIXSTDBA_CONTROL_OVERALL_PROGRESS_BAR;
4240 pAssignControl->wzName = L"OverallProgressbar";
4241 pAssignControl->ppControl = &m_pControlOverallProgressbar;
4242 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4243 m_pControlOverallProgressbar = NULL;
4244 ++pAssignControl;
4245
4246 pAssignControl->wId = WIXSTDBA_CONTROL_OVERALL_CALCULATED_PROGRESS_BAR;
4247 pAssignControl->wzName = L"OverallCalculatedProgressbar";
4248 pAssignControl->ppControl = &m_pControlOverallCalculatedProgressbar;
4249 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4250 m_pControlOverallCalculatedProgressbar = NULL;
4251 ++pAssignControl;
4252
4253 pAssignControl->wId = WIXSTDBA_CONTROL_OVERALL_PROGRESS_TEXT;
4254 pAssignControl->wzName = L"OverallProgressText";
4255 pAssignControl->ppControl = &m_pControlOverallProgressText;
4256 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4257 m_pControlOverallProgressText = NULL;
4258 ++pAssignControl;
4259
4260 pAssignControl->wId = WIXSTDBA_CONTROL_PROGRESS_CANCEL_BUTTON;
4261 pAssignControl->wzName = L"ProgressCancelButton";
4262 pAssignControl->ppControl = &m_pControlProgressCancelButton;
4263 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4264 m_pControlProgressCancelButton = NULL;
4265 ++pAssignControl;
4266
4267 pAssignControl->wId = WIXSTDBA_CONTROL_LAUNCH_BUTTON;
4268 pAssignControl->wzName = L"LaunchButton";
4269 pAssignControl->ppControl = &m_pControlLaunchButton;
4270 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4271 m_pControlLaunchButton = NULL;
4272 ++pAssignControl;
4273
4274 pAssignControl->wId = WIXSTDBA_CONTROL_SUCCESS_RESTART_BUTTON;
4275 pAssignControl->wzName = L"SuccessRestartButton";
4276 pAssignControl->ppControl = &m_pControlSuccessRestartButton;
4277 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4278 m_pControlSuccessRestartButton = NULL;
4279 ++pAssignControl;
4280
4281 pAssignControl->wId = WIXSTDBA_CONTROL_FAILURE_LOGFILE_LINK;
4282 pAssignControl->wzName = L"FailureLogFileLink";
4283 pAssignControl->ppControl = &m_pControlFailureLogFileLink;
4284 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4285 m_pControlFailureLogFileLink = NULL;
4286 ++pAssignControl;
4287
4288 pAssignControl->wId = WIXSTDBA_CONTROL_FAILURE_MESSAGE_TEXT;
4289 pAssignControl->wzName = L"FailureMessageText";
4290 pAssignControl->ppControl = &m_pControlFailureMessageText;
4291 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4292 m_pControlFailureMessageText = NULL;
4293 ++pAssignControl;
4294
4295 pAssignControl->wId = WIXSTDBA_CONTROL_FAILURE_RESTART_BUTTON;
4296 pAssignControl->wzName = L"FailureRestartButton";
4297 pAssignControl->ppControl = &m_pControlFailureRestartButton;
4298 + pAssignControl->fDisableAutomaticFunctionality = TRUE;
4299 m_pControlFailureRestartButton = NULL;
4300
4301 C_ASSERT(LAST_WIXSTDBA_CONTROL == WIXSTDBA_CONTROL_FAILURE_RESTART_BUTTON + 1);
src/libs/dutil/WixToolset.DUtil/inc/thmutil.h
+4 -1
@@ -196,6 +196,7 @@ struct THEME_ASSIGN_CONTROL_ID
196 WORD wId; // id to apply to control
197 LPCWSTR wzName; // name of control to match
198 const THEME_CONTROL** ppControl;
199 + BOOL fDisableAutomaticFunctionality; // prevent declarative functionality from interfering with the application's imperative code
200 };
201
202 const WORD THEME_FIRST_ASSIGN_CONTROL_ID = 0x4000; // Recommended first control id to be assigned.
@@ -223,7 +224,7 @@ typedef struct _THEME_CONTROL
224
225 LPWSTR sczEnableCondition;
226 LPWSTR sczVisibleCondition;
226 - BOOL fDisableVariableFunctionality;
227 + BOOL fDisableAutomaticFunctionality;
228
229 union
230 {
@@ -470,6 +471,8 @@ typedef struct _THEME_LOADINGCONTROL_RESULTS
471 // The values [100, THEME_FIRST_ASSIGN_CONTROL_ID) are reserved for thmutil.
472 // Due to this value being packed into 16 bits for many system window messages, this is restricted to a WORD.
473 WORD wId;
474 + // Used to prevent declarative functionality from interfering with the application's imperative code.
475 + BOOL fDisableAutomaticFunctionality;
476 } THEME_LOADINGCONTROL_RESULTS;
477
478
src/libs/dutil/WixToolset.DUtil/thmutil.cpp
+18 -20
@@ -295,7 +295,8 @@ static void UnloadThemeControls(
295 static HRESULT OnLoadingControl(
296 __in THEME* pTheme,
297 __in const THEME_CONTROL* pControl,
298 - __inout WORD* pwId
298 + __inout WORD* pwId,
299 + __inout BOOL* pfDisableAutomaticFunctionality
300 );
301 static HRESULT LoadControls(
302 __in THEME* pTheme,
@@ -3432,9 +3433,6 @@ static HRESULT ParseControl(
3433 pControl->dwInternalStyle |= INTERNAL_CONTROL_STYLE_HIDE_WHEN_DISABLED;
3434 }
3435
3435 - hr = XmlGetYesNoAttribute(pixn, L"DisableAutomaticBehavior", &pControl->fDisableVariableFunctionality);
3436 - ThmExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed when querying control DisableAutomaticBehavior attribute.");
3437 -
3436 hr = ParseActions(pixn, pControl);
3437 ThmExitOnFailure(hr, "Failed to parse action nodes of the control.");
3438
@@ -5002,6 +5000,7 @@ static void OnBrowseDirectory(
5000 {
5001 // Since editbox changes aren't immediately saved off, we have to treat them differently.
5002 THEME_CONTROL* pTargetControl = NULL;
5003 + BOOL fSetVariable = NULL != pTheme->pfnSetStringVariable;
5004
5005 for (DWORD i = 0; i < pTheme->cControls; ++i)
5006 {
@@ -5015,21 +5014,18 @@ static void OnBrowseDirectory(
5014 }
5015 }
5016
5018 - if (pTargetControl && THEME_CONTROL_TYPE_EDITBOX == pTargetControl->type && !pTargetControl->fDisableVariableFunctionality)
5017 + if (pTargetControl && !pTargetControl->fDisableAutomaticFunctionality && (!fSetVariable || THEME_CONTROL_TYPE_EDITBOX == pTargetControl->type))
5018 {
5019 + fSetVariable = FALSE;
5020 hr = ThemeSetTextControl(pTargetControl, wzPath);
5021 - ThmExitOnFailure(hr, "Failed to set text on editbox: %ls", pTargetControl->sczName);
5021 + ThmExitOnFailure(hr, "Failed to set text on control: %ls", pTargetControl->sczName);
5022 }
5023 - else if (pTheme->pfnSetStringVariable)
5023 +
5024 + if (fSetVariable)
5025 {
5026 hr = pTheme->pfnSetStringVariable(pAction->BrowseDirectory.sczVariableName, wzPath, FALSE, pTheme->pvVariableContext);
5027 ThmExitOnFailure(hr, "Failed to set variable: %ls", pAction->BrowseDirectory.sczVariableName);
5028 }
5028 - else if (pTargetControl)
5029 - {
5030 - hr = ThemeSetTextControl(pTargetControl, wzPath);
5031 - ThmExitOnFailure(hr, "Failed to set text on control: %ls", pTargetControl->sczName);
5032 - }
5029
5030 ThemeShowPageEx(pTheme, pTheme->dwCurrentPageId, SW_SHOW, THEME_SHOW_PAGE_REASON_REFRESH);
5031 }
@@ -5051,7 +5047,7 @@ static BOOL OnButtonClicked(
5047
5048 if (THEME_CONTROL_TYPE_BUTTON == pControl->type || THEME_CONTROL_TYPE_COMMANDLINK == pControl->type)
5049 {
5054 - if (pControl->cActions)
5050 + if (!pControl->fDisableAutomaticFunctionality && pControl->cActions)
5051 {
5052 fHandled = TRUE;
5053 THEME_ACTION* pChosenAction = pControl->pDefaultAction;
@@ -5109,7 +5105,7 @@ static BOOL OnButtonClicked(
5105 }
5106 }
5107 }
5112 - else if (!pControl->fDisableVariableFunctionality && (pTheme->pfnSetNumericVariable || pTheme->pfnSetStringVariable))
5108 + else if (!pControl->fDisableAutomaticFunctionality && (pTheme->pfnSetNumericVariable || pTheme->pfnSetStringVariable))
5109 {
5110 BOOL fRefresh = FALSE;
5111
@@ -5564,7 +5560,7 @@ static HRESULT ShowControl(
5560 THEME_PAGE* pPage = ThemeGetPage(pTheme, dwPageId);
5561
5562 // Save the editbox value if necessary (other control types save their values immediately).
5567 - if (pTheme->pfnSetStringVariable && !pControl->fDisableVariableFunctionality &&
5563 + if (pTheme->pfnSetStringVariable && !pControl->fDisableAutomaticFunctionality &&
5564 fSaveEditboxes && THEME_CONTROL_TYPE_EDITBOX == pControl->type && pControl->sczName && *pControl->sczName)
5565 {
5566 hr = ThemeGetTextControl(pControl, &sczText);
@@ -5591,7 +5587,7 @@ static HRESULT ShowControl(
5587 BOOL fEnabled = !(pControl->dwInternalStyle & INTERNAL_CONTROL_STYLE_DISABLED);
5588 BOOL fVisible = !(pControl->dwInternalStyle & INTERNAL_CONTROL_STYLE_HIDDEN);
5589
5594 - if (!pControl->fDisableVariableFunctionality)
5590 + if (!pControl->fDisableAutomaticFunctionality)
5591 {
5592 if (pTheme->pfnEvaluateCondition)
5593 {
@@ -6017,7 +6013,8 @@ static LRESULT CALLBACK StaticOwnerDrawWndProc(
6013 static HRESULT OnLoadingControl(
6014 __in THEME* pTheme,
6015 __in const THEME_CONTROL* pControl,
6020 - __inout WORD* pwId
6016 + __inout WORD* pwId,
6017 + __inout BOOL* pfDisableAutomaticFunctionality
6018 )
6019 {
6020 HRESULT hr = S_OK;
@@ -6037,6 +6034,7 @@ static HRESULT OnLoadingControl(
6034 if (SUCCEEDED(hr))
6035 {
6036 *pwId = loadingControlResults.wId;
6037 + *pfDisableAutomaticFunctionality = loadingControlResults.fDisableAutomaticFunctionality;
6038 }
6039 }
6040
@@ -6238,7 +6236,7 @@ static HRESULT LoadControls(
6236
6237 // Default control ids to the next id, unless there is a specific id to assign to a control.
6238 WORD wControlId = THEME_FIRST_AUTO_ASSIGN_CONTROL_ID;
6241 - hr = OnLoadingControl(pTheme, pControl, &wControlId);
6239 + hr = OnLoadingControl(pTheme, pControl, &wControlId, &pControl->fDisableAutomaticFunctionality);
6240 ThmExitOnFailure(hr, "ThmLoadingControl failed.");
6241
6242 // This range is reserved for thmutil. The process will run out of available window handles before reaching the end of the range.
@@ -6256,7 +6254,7 @@ static HRESULT LoadControls(
6254 BOOL fDisabled = pControl->dwStyle & WS_DISABLED;
6255
6256 // If the control is supposed to be initially visible and it has a VisibleCondition, check if it's true.
6259 - if (fVisible && pControl->sczVisibleCondition && pTheme->pfnEvaluateCondition && !pControl->fDisableVariableFunctionality)
6257 + if (fVisible && pControl->sczVisibleCondition && pTheme->pfnEvaluateCondition && !pControl->fDisableAutomaticFunctionality)
6258 {
6259 hr = pTheme->pfnEvaluateCondition(pControl->sczVisibleCondition, &fVisible, pTheme->pvVariableContext);
6260 ThmExitOnFailure(hr, "Failed to evaluate VisibleCondition: %ls", pControl->sczVisibleCondition);
@@ -6275,7 +6273,7 @@ static HRESULT LoadControls(
6273 }
6274
6275 // If the control is supposed to be initially enabled and it has an EnableCondition, check if it's true.
6278 - if (!fDisabled && pControl->sczEnableCondition && pTheme->pfnEvaluateCondition && !pControl->fDisableVariableFunctionality)
6276 + if (!fDisabled && pControl->sczEnableCondition && pTheme->pfnEvaluateCondition && !pControl->fDisableAutomaticFunctionality)
6277 {
6278 BOOL fEnable = TRUE;
6279
src/samples/thmviewer/display.cpp
+4 -3
@@ -327,9 +327,10 @@ static BOOL DisplayOnThmLoadedControl(
327 }
328 else if (THEME_CONTROL_TYPE_PROGRESSBAR == pControl->type)
329 {
330 - DWORD dwId = ::SetTimer(pTheme->hwndParent, reinterpret_cast<UINT_PTR>(pControl), 500, NULL);
331 - dwId = dwId; // prevents warning in "ship" build.
332 - Assert(dwId == pControl->wId);
330 + UINT_PTR timerId = reinterpret_cast<UINT_PTR>(pControl);
331 + UINT_PTR id = ::SetTimer(pTheme->hwndParent, timerId, 500, NULL);
332 + id = id; // prevents warning in "ship" build.
333 + Assert(id == timerId);
334 }
335
336 LExit:
src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp
+2 -1
@@ -46,7 +46,8 @@ public: // IBAFunctions
46 virtual STDMETHODIMP OnThemeControlLoading(
47 __in LPCWSTR wzName,
48 __inout BOOL* pfProcessed,
49 - __inout WORD* pwId
49 + __inout WORD* pwId,
50 + __inout BOOL* /*pfDisableAutomaticFunctionality*/
51 )
52 {
53 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, wzName, -1, L"InstallTestButton", -1))