diff options
29 files changed, 785 insertions, 0 deletions
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp b/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp new file mode 100644 index 00000000..8b49cab6 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp | |||
@@ -0,0 +1,432 @@ | |||
1 | // 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. | ||
2 | |||
3 | #include "precomp.h" | ||
4 | #include "BalBaseBAFunctions.h" | ||
5 | #include "BalBaseBAFunctionsProc.h" | ||
6 | |||
7 | static const LPCWSTR BAFTHMUTILTESTING_WINDOW_CLASS = L"BafThmUtilTesting"; | ||
8 | |||
9 | enum BAFTHMUTILTESTING_CONTROL | ||
10 | { | ||
11 | BAFTHMUTILTESTING_CONTROL_LISTVIEW_TOP_LEFT = THEME_FIRST_ASSIGN_CONTROL_ID, | ||
12 | BAFTHMUTILTESTING_CONTROL_LISTVIEW_TOP_RIGHT, | ||
13 | BAFTHMUTILTESTING_CONTROL_LISTVIEW_BOTTOM_LEFT, | ||
14 | BAFTHMUTILTESTING_CONTROL_LISTVIEW_BOTTOM_RIGHT, | ||
15 | BAFTHMUTILTESTING_CONTROL_PROGRESSBAR_STANDARD, | ||
16 | BAFTHMUTILTESTING_CONTROL_PROGRESSBAR_IMAGE, | ||
17 | }; | ||
18 | |||
19 | static THEME_ASSIGN_CONTROL_ID vrgInitControls[] = { | ||
20 | { BAFTHMUTILTESTING_CONTROL_LISTVIEW_TOP_LEFT, L"ListViewTopLeft" }, | ||
21 | { BAFTHMUTILTESTING_CONTROL_LISTVIEW_TOP_RIGHT, L"ListViewTopRight" }, | ||
22 | { BAFTHMUTILTESTING_CONTROL_LISTVIEW_BOTTOM_LEFT, L"ListViewBottomLeft" }, | ||
23 | { BAFTHMUTILTESTING_CONTROL_LISTVIEW_BOTTOM_RIGHT, L"ListViewBottomRight" }, | ||
24 | { BAFTHMUTILTESTING_CONTROL_PROGRESSBAR_IMAGE, L"ImageProgressBar" }, | ||
25 | { BAFTHMUTILTESTING_CONTROL_PROGRESSBAR_STANDARD, L"StandardProgressBar" }, | ||
26 | }; | ||
27 | |||
28 | static void CALLBACK BafThmUtilTestingTraceError( | ||
29 | __in_z LPCSTR szFile, | ||
30 | __in int iLine, | ||
31 | __in REPORT_LEVEL rl, | ||
32 | __in UINT source, | ||
33 | __in HRESULT hrError, | ||
34 | __in_z __format_string LPCSTR szFormat, | ||
35 | __in va_list args | ||
36 | ); | ||
37 | |||
38 | class CBafThmUtilTesting : public CBalBaseBAFunctions | ||
39 | { | ||
40 | public: // IBAFunctions | ||
41 | /*virtual STDMETHODIMP OnThemeLoaded( | ||
42 | THEME* pTheme, | ||
43 | WIX_LOCALIZATION* pWixLoc | ||
44 | ) | ||
45 | { | ||
46 | HRESULT hr = S_OK; | ||
47 | |||
48 | hr = __super::OnThemeLoaded(pTheme, pWixLoc); | ||
49 | |||
50 | return hr; | ||
51 | }*/ | ||
52 | |||
53 | virtual STDMETHODIMP WndProc( | ||
54 | __in THEME* pTheme, | ||
55 | __in HWND hWnd, | ||
56 | __in UINT uMsg, | ||
57 | __in WPARAM wParam, | ||
58 | __in LPARAM lParam, | ||
59 | __inout LRESULT* plRes | ||
60 | ) | ||
61 | { | ||
62 | HRESULT hr = S_OK; | ||
63 | |||
64 | __super::WndProc(pTheme, hWnd, uMsg, wParam, lParam, plRes); | ||
65 | |||
66 | // Show our window when any button is clicked. | ||
67 | switch (uMsg) | ||
68 | { | ||
69 | case WM_COMMAND: | ||
70 | switch (HIWORD(wParam)) | ||
71 | { | ||
72 | case BN_CLICKED: | ||
73 | OnShowTheme(); | ||
74 | break; | ||
75 | } | ||
76 | break; | ||
77 | } | ||
78 | |||
79 | return hr; | ||
80 | } | ||
81 | |||
82 | private: | ||
83 | HRESULT OnShowTheme() | ||
84 | { | ||
85 | HRESULT hr = S_OK; | ||
86 | BOOL fRet = FALSE; | ||
87 | MSG msg = { }; | ||
88 | |||
89 | hr = ThemeLoadFromResource(m_hModule, MAKEINTRESOURCEA(1), &m_pBafTheme); | ||
90 | BalExitOnFailure(hr, "Failed to load BafThmUtilTesting theme."); | ||
91 | |||
92 | hr = CreateTestingWindow(); | ||
93 | BalExitOnFailure(hr, "Failed to create BafThmUtilTesting window."); | ||
94 | |||
95 | ::EnableWindow(m_pTheme->hwndParent, FALSE); | ||
96 | |||
97 | // message pump | ||
98 | while (0 != (fRet = ::GetMessageW(&msg, NULL, 0, 0))) | ||
99 | { | ||
100 | if (-1 == fRet) | ||
101 | { | ||
102 | hr = E_UNEXPECTED; | ||
103 | BalExitOnFailure(hr, "Unexpected return value from message pump."); | ||
104 | } | ||
105 | else if (!ThemeHandleKeyboardMessage(m_pBafTheme, msg.hwnd, &msg)) | ||
106 | { | ||
107 | ::TranslateMessage(&msg); | ||
108 | ::DispatchMessageW(&msg); | ||
109 | } | ||
110 | } | ||
111 | |||
112 | LExit: | ||
113 | ::EnableWindow(m_pTheme->hwndParent, TRUE); | ||
114 | |||
115 | DestroyTestingWindow(); | ||
116 | |||
117 | ReleaseTheme(m_pBafTheme); | ||
118 | |||
119 | return hr; | ||
120 | } | ||
121 | |||
122 | HRESULT CreateTestingWindow() | ||
123 | { | ||
124 | HRESULT hr = S_OK; | ||
125 | HICON hIcon = reinterpret_cast<HICON>(m_pTheme->hIcon); | ||
126 | WNDCLASSW wc = { }; | ||
127 | int x = CW_USEDEFAULT; | ||
128 | int y = CW_USEDEFAULT; | ||
129 | POINT ptCursor = { }; | ||
130 | |||
131 | // If the theme did not provide an icon, try using the icon from the bundle engine. | ||
132 | if (!hIcon) | ||
133 | { | ||
134 | HMODULE hBootstrapperEngine = ::GetModuleHandleW(NULL); | ||
135 | if (hBootstrapperEngine) | ||
136 | { | ||
137 | hIcon = ::LoadIconW(hBootstrapperEngine, MAKEINTRESOURCEW(1)); | ||
138 | } | ||
139 | } | ||
140 | |||
141 | // Register the window class and create the window. | ||
142 | wc.lpfnWndProc = CBafThmUtilTesting::TestingWndProc; | ||
143 | wc.hInstance = m_hModule; | ||
144 | wc.hIcon = hIcon; | ||
145 | wc.hCursor = ::LoadCursorW(NULL, (LPCWSTR)IDC_ARROW); | ||
146 | wc.hbrBackground = m_pTheme->rgFonts[m_pBafTheme->dwFontId].hBackground; | ||
147 | wc.lpszMenuName = NULL; | ||
148 | wc.lpszClassName = BAFTHMUTILTESTING_WINDOW_CLASS; | ||
149 | if (!::RegisterClassW(&wc)) | ||
150 | { | ||
151 | ExitWithLastError(hr, "Failed to register window."); | ||
152 | } | ||
153 | |||
154 | m_fRegistered = TRUE; | ||
155 | |||
156 | // Center the window on the monitor with the mouse. | ||
157 | if (::GetCursorPos(&ptCursor)) | ||
158 | { | ||
159 | x = ptCursor.x; | ||
160 | y = ptCursor.y; | ||
161 | } | ||
162 | |||
163 | hr = ThemeCreateParentWindow(m_pBafTheme, 0, wc.lpszClassName, m_pBafTheme->sczCaption, m_pBafTheme->dwStyle, x, y, m_pTheme->hwndParent, m_hModule, this, THEME_WINDOW_INITIAL_POSITION_CENTER_MONITOR_FROM_COORDINATES, &m_hWndBaf); | ||
164 | ExitOnFailure(hr, "Failed to create window."); | ||
165 | |||
166 | hr = S_OK; | ||
167 | |||
168 | LExit: | ||
169 | return hr; | ||
170 | } | ||
171 | |||
172 | void DestroyTestingWindow() | ||
173 | { | ||
174 | if (::IsWindow(m_hWndBaf)) | ||
175 | { | ||
176 | ::DestroyWindow(m_hWndBaf); | ||
177 | m_hWndBaf = NULL; | ||
178 | } | ||
179 | |||
180 | if (m_fRegistered) | ||
181 | { | ||
182 | ::UnregisterClassW(BAFTHMUTILTESTING_WINDOW_CLASS, m_hModule); | ||
183 | m_fRegistered = FALSE; | ||
184 | } | ||
185 | } | ||
186 | |||
187 | static LRESULT CALLBACK TestingWndProc( | ||
188 | __in HWND hWnd, | ||
189 | __in UINT uMsg, | ||
190 | __in WPARAM wParam, | ||
191 | __in LPARAM lParam | ||
192 | ) | ||
193 | { | ||
194 | #pragma warning(suppress:4312) | ||
195 | CBafThmUtilTesting* pBaf = reinterpret_cast<CBafThmUtilTesting*>(::GetWindowLongPtrW(hWnd, GWLP_USERDATA)); | ||
196 | |||
197 | switch (uMsg) | ||
198 | { | ||
199 | case WM_NCCREATE: | ||
200 | { | ||
201 | LPCREATESTRUCT lpcs = reinterpret_cast<LPCREATESTRUCT>(lParam); | ||
202 | pBaf = reinterpret_cast<CBafThmUtilTesting*>(lpcs->lpCreateParams); | ||
203 | #pragma warning(suppress:4244) | ||
204 | ::SetWindowLongPtrW(hWnd, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(pBaf)); | ||
205 | break; | ||
206 | } | ||
207 | |||
208 | case WM_CLOSE: | ||
209 | if (pBaf) | ||
210 | { | ||
211 | ::EnableWindow(pBaf->m_pTheme->hwndParent, TRUE); | ||
212 | } | ||
213 | |||
214 | break; | ||
215 | |||
216 | case WM_NCDESTROY: | ||
217 | { | ||
218 | LRESULT lres = ThemeDefWindowProc(pBaf ? pBaf->m_pBafTheme : NULL, hWnd, uMsg, wParam, lParam); | ||
219 | ::SetWindowLongPtrW(hWnd, GWLP_USERDATA, 0); | ||
220 | |||
221 | ::PostQuitMessage(0); | ||
222 | return lres; | ||
223 | } | ||
224 | |||
225 | case WM_CREATE: | ||
226 | if (!pBaf->OnCreate(hWnd)) | ||
227 | { | ||
228 | return -1; | ||
229 | } | ||
230 | break; | ||
231 | |||
232 | case WM_TIMER: | ||
233 | if (!lParam && pBaf) | ||
234 | { | ||
235 | pBaf->UpdateProgressBarProgress(); | ||
236 | |||
237 | return 0; | ||
238 | } | ||
239 | break; | ||
240 | } | ||
241 | |||
242 | return ThemeDefWindowProc(pBaf ? pBaf->m_pBafTheme : NULL, hWnd, uMsg, wParam, lParam); | ||
243 | } | ||
244 | |||
245 | BOOL OnCreate( | ||
246 | __in HWND hWnd | ||
247 | ) | ||
248 | { | ||
249 | HRESULT hr = S_OK; | ||
250 | LVITEMW lvitem = { }; | ||
251 | LVGROUP lvgroup = { }; | ||
252 | static UINT puColumns[] = { 0, 1, 2 }; | ||
253 | HWND hwndTopLeft = NULL; | ||
254 | HWND hwndTopRight = NULL; | ||
255 | HWND hwndBottomLeft = NULL; | ||
256 | HWND hwndBottomRight = NULL; | ||
257 | |||
258 | hr = ThemeLoadControls(m_pBafTheme, vrgInitControls, countof(vrgInitControls)); | ||
259 | BalExitOnFailure(hr, "Failed to load theme controls."); | ||
260 | |||
261 | hwndTopLeft = ::GetDlgItem(m_pBafTheme->hwndParent, BAFTHMUTILTESTING_CONTROL_LISTVIEW_TOP_LEFT); | ||
262 | BalExitOnNull(hwndTopLeft, hr, E_INVALIDSTATE, "Failed to get top left list view hWnd."); | ||
263 | |||
264 | hwndTopRight = ::GetDlgItem(m_pBafTheme->hwndParent, BAFTHMUTILTESTING_CONTROL_LISTVIEW_TOP_RIGHT); | ||
265 | BalExitOnNull(hwndTopRight, hr, E_INVALIDSTATE, "Failed to get top right list view hWnd."); | ||
266 | |||
267 | hwndBottomLeft = ::GetDlgItem(m_pBafTheme->hwndParent, BAFTHMUTILTESTING_CONTROL_LISTVIEW_BOTTOM_LEFT); | ||
268 | BalExitOnNull(hwndBottomLeft, hr, E_INVALIDSTATE, "Failed to get bottom left list view hWnd."); | ||
269 | |||
270 | hwndBottomRight = ::GetDlgItem(m_pBafTheme->hwndParent, BAFTHMUTILTESTING_CONTROL_LISTVIEW_BOTTOM_RIGHT); | ||
271 | BalExitOnNull(hwndBottomRight, hr, E_INVALIDSTATE, "Failed to get bottom right list view hWnd."); | ||
272 | |||
273 | lvgroup.cbSize = sizeof(LVGROUP); | ||
274 | lvgroup.mask = LVGF_GROUPID | LVGF_TITLEIMAGE | LVGF_DESCRIPTIONTOP | LVGF_HEADER; | ||
275 | |||
276 | for (int i = 0; i < 3; ++i) | ||
277 | { | ||
278 | lvgroup.iGroupId = i; | ||
279 | lvgroup.iTitleImage = i; | ||
280 | |||
281 | hr = StrAllocFormatted(&lvgroup.pszDescriptionTop, L"DescriptionTop_%d", i); | ||
282 | BalExitOnFailure(hr, "Failed to alloc list view group description."); | ||
283 | |||
284 | hr = StrAllocFormatted(&lvgroup.pszHeader, L"Header_%d", i); | ||
285 | BalExitOnFailure(hr, "Failed to alloc list view group header."); | ||
286 | |||
287 | ListView_InsertGroup(hwndTopLeft, -1, &lvgroup); | ||
288 | ListView_InsertGroup(hwndTopRight, -1, &lvgroup); | ||
289 | ListView_InsertGroup(hwndBottomLeft, -1, &lvgroup); | ||
290 | ListView_InsertGroup(hwndBottomRight, -1, &lvgroup); | ||
291 | |||
292 | lvitem.mask = LVIF_COLUMNS | LVIF_GROUPID | LVIF_IMAGE | LVIF_TEXT; | ||
293 | lvitem.iItem = i; | ||
294 | lvitem.iSubItem = 0; | ||
295 | |||
296 | hr = StrAllocFormatted(&lvitem.pszText, L"ListViewItem_%d", i); | ||
297 | BalExitOnFailure(hr, "Failed to alloc list view item text."); | ||
298 | |||
299 | lvitem.iImage = i; | ||
300 | lvitem.iGroupId = i; | ||
301 | lvitem.cColumns = countof(puColumns); | ||
302 | lvitem.puColumns = puColumns; | ||
303 | |||
304 | ListView_InsertItem(hwndTopLeft, &lvitem); | ||
305 | ListView_InsertItem(hwndTopRight, &lvitem); | ||
306 | ListView_InsertItem(hwndBottomLeft, &lvitem); | ||
307 | ListView_InsertItem(hwndBottomRight, &lvitem); | ||
308 | |||
309 | for (int j = 0; j < 3; ++j) | ||
310 | { | ||
311 | lvitem.mask = LVIF_TEXT; | ||
312 | lvitem.iSubItem = j + 1; | ||
313 | |||
314 | hr = StrAllocFormatted(&lvitem.pszText, L"%d_%d", j, i); | ||
315 | BalExitOnFailure(hr, "Failed to alloc list view subitem text."); | ||
316 | |||
317 | ListView_InsertItem(hwndTopLeft, &lvitem); | ||
318 | ListView_InsertItem(hwndTopRight, &lvitem); | ||
319 | ListView_InsertItem(hwndBottomLeft, &lvitem); | ||
320 | ListView_InsertItem(hwndBottomRight, &lvitem); | ||
321 | } | ||
322 | } | ||
323 | |||
324 | ListView_EnableGroupView(hwndTopRight, TRUE); | ||
325 | |||
326 | ::SetTimer(hWnd, BAFTHMUTILTESTING_CONTROL_PROGRESSBAR_IMAGE, 500, NULL); | ||
327 | |||
328 | LExit: | ||
329 | ReleaseStr(lvgroup.pszDescriptionTop); | ||
330 | ReleaseStr(lvgroup.pszHeader); | ||
331 | ReleaseStr(lvitem.pszText); | ||
332 | |||
333 | return SUCCEEDED(hr); | ||
334 | } | ||
335 | |||
336 | void UpdateProgressBarProgress() | ||
337 | { | ||
338 | static DWORD dwProgress = 0; | ||
339 | DWORD dwCurrent = dwProgress < 100 ? dwProgress : 200 - dwProgress; | ||
340 | |||
341 | if (0 == dwProgress || 100 == dwProgress) | ||
342 | { | ||
343 | ThemeSetProgressControlColor(m_pBafTheme, BAFTHMUTILTESTING_CONTROL_PROGRESSBAR_IMAGE, 100 == dwProgress ? 1 : 0); | ||
344 | } | ||
345 | |||
346 | dwProgress = (dwProgress + 10) % 200; | ||
347 | |||
348 | ThemeSetProgressControl(m_pBafTheme, BAFTHMUTILTESTING_CONTROL_PROGRESSBAR_IMAGE, dwCurrent); | ||
349 | ThemeSetProgressControl(m_pBafTheme, BAFTHMUTILTESTING_CONTROL_PROGRESSBAR_STANDARD, dwCurrent); | ||
350 | } | ||
351 | |||
352 | public: | ||
353 | // | ||
354 | // Constructor - initialize member variables. | ||
355 | // | ||
356 | CBafThmUtilTesting( | ||
357 | __in HMODULE hModule, | ||
358 | __in IBootstrapperEngine* pEngine, | ||
359 | __in const BA_FUNCTIONS_CREATE_ARGS* pArgs | ||
360 | ) : CBalBaseBAFunctions(hModule, pEngine, pArgs) | ||
361 | { | ||
362 | m_pBafTheme = NULL; | ||
363 | m_fRegistered = FALSE; | ||
364 | m_hWndBaf = NULL; | ||
365 | |||
366 | ThemeInitialize(hModule); | ||
367 | } | ||
368 | |||
369 | // | ||
370 | // Destructor - release member variables. | ||
371 | // | ||
372 | ~CBafThmUtilTesting() | ||
373 | { | ||
374 | Assert(!::IsWindow(m_hWndBaf)); | ||
375 | Assert(!m_pBafTheme); | ||
376 | |||
377 | ThemeUninitialize(); | ||
378 | } | ||
379 | |||
380 | private: | ||
381 | THEME* m_pBafTheme; | ||
382 | BOOL m_fRegistered; | ||
383 | HWND m_hWndBaf; | ||
384 | }; | ||
385 | |||
386 | |||
387 | HRESULT WINAPI CreateBAFunctions( | ||
388 | __in HMODULE hModule, | ||
389 | __in const BA_FUNCTIONS_CREATE_ARGS* pArgs, | ||
390 | __inout BA_FUNCTIONS_CREATE_RESULTS* pResults | ||
391 | ) | ||
392 | { | ||
393 | HRESULT hr = S_OK; | ||
394 | CBafThmUtilTesting* pBAFunctions = NULL; | ||
395 | IBootstrapperEngine* pEngine = NULL; | ||
396 | |||
397 | DutilInitialize(&BafThmUtilTestingTraceError); | ||
398 | |||
399 | hr = BalInitializeFromCreateArgs(pArgs->pBootstrapperCreateArgs, &pEngine); | ||
400 | ExitOnFailure(hr, "Failed to initialize Bal."); | ||
401 | |||
402 | pBAFunctions = new CBafThmUtilTesting(hModule, pEngine, pArgs); | ||
403 | ExitOnNull(pBAFunctions, hr, E_OUTOFMEMORY, "Failed to create new CBafThmUtilTesting object."); | ||
404 | |||
405 | pResults->pfnBAFunctionsProc = BalBaseBAFunctionsProc; | ||
406 | pResults->pvBAFunctionsProcContext = pBAFunctions; | ||
407 | pBAFunctions = NULL; | ||
408 | |||
409 | LExit: | ||
410 | ReleaseObject(pBAFunctions); | ||
411 | ReleaseObject(pEngine); | ||
412 | |||
413 | return hr; | ||
414 | } | ||
415 | |||
416 | static void CALLBACK BafThmUtilTestingTraceError( | ||
417 | __in_z LPCSTR /*szFile*/, | ||
418 | __in int /*iLine*/, | ||
419 | __in REPORT_LEVEL /*rl*/, | ||
420 | __in UINT source, | ||
421 | __in HRESULT hrError, | ||
422 | __in_z __format_string LPCSTR szFormat, | ||
423 | __in va_list args | ||
424 | ) | ||
425 | { | ||
426 | // BalLogError currently uses the Exit... macros, | ||
427 | // so if expanding the scope need to ensure this doesn't get called recursively. | ||
428 | if (DUTIL_SOURCE_THMUTIL == source) | ||
429 | { | ||
430 | BalLogErrorArgs(hrError, szFormat, args); | ||
431 | } | ||
432 | } | ||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.def b/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.def new file mode 100644 index 00000000..6e016dad --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.def | |||
@@ -0,0 +1,6 @@ | |||
1 | ; 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. | ||
2 | |||
3 | |||
4 | EXPORTS | ||
5 | BAFunctionsCreate | ||
6 | BAFunctionsDestroy | ||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.vcxproj b/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.vcxproj new file mode 100644 index 00000000..8e7e9bd9 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.vcxproj | |||
@@ -0,0 +1,64 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | ||
2 | <!-- 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. --> | ||
3 | <Project DefaultTargets="Build" Toolsxmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
4 | <ItemGroup Label="ProjectConfigurations"> | ||
5 | <ProjectConfiguration Include="Debug|ARM64"> | ||
6 | <Configuration>Debug</Configuration> | ||
7 | <Platform>ARM64</Platform> | ||
8 | </ProjectConfiguration> | ||
9 | <ProjectConfiguration Include="Release|ARM64"> | ||
10 | <Configuration>Release</Configuration> | ||
11 | <Platform>ARM64</Platform> | ||
12 | </ProjectConfiguration> | ||
13 | <ProjectConfiguration Include="Debug|Win32"> | ||
14 | <Configuration>Debug</Configuration> | ||
15 | <Platform>Win32</Platform> | ||
16 | </ProjectConfiguration> | ||
17 | <ProjectConfiguration Include="Release|Win32"> | ||
18 | <Configuration>Release</Configuration> | ||
19 | <Platform>Win32</Platform> | ||
20 | </ProjectConfiguration> | ||
21 | <ProjectConfiguration Include="Debug|x64"> | ||
22 | <Configuration>Debug</Configuration> | ||
23 | <Platform>x64</Platform> | ||
24 | </ProjectConfiguration> | ||
25 | <ProjectConfiguration Include="Release|x64"> | ||
26 | <Configuration>Release</Configuration> | ||
27 | <Platform>x64</Platform> | ||
28 | </ProjectConfiguration> | ||
29 | </ItemGroup> | ||
30 | <PropertyGroup Label="Globals"> | ||
31 | <ProjectGuid>{565E99AE-975F-4F26-8A6E-852603386A80}</ProjectGuid> | ||
32 | <ConfigurationType>DynamicLibrary</ConfigurationType> | ||
33 | <PlatformToolset>v142</PlatformToolset> | ||
34 | <CharacterSet>Unicode</CharacterSet> | ||
35 | <TargetName>BafThmUtilTesting</TargetName> | ||
36 | <ProjectModuleDefinitionFile>BafThmUtilTesting.def</ProjectModuleDefinitionFile> | ||
37 | </PropertyGroup> | ||
38 | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||
39 | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | ||
40 | <PropertyGroup> | ||
41 | <ProjectAdditionalLinkLibraries>comctl32.lib;gdiplus.lib;msimg32.lib;shlwapi.lib;wininet.lib</ProjectAdditionalLinkLibraries> | ||
42 | </PropertyGroup> | ||
43 | <ItemGroup> | ||
44 | <ClCompile Include="BafThmUtilTesting.cpp" /> | ||
45 | <ClCompile Include="precomp.cpp"> | ||
46 | <PrecompiledHeader>Create</PrecompiledHeader> | ||
47 | </ClCompile> | ||
48 | </ItemGroup> | ||
49 | <ItemGroup> | ||
50 | <ClInclude Include="precomp.h" /> | ||
51 | </ItemGroup> | ||
52 | <ItemGroup> | ||
53 | <ResourceCompile Include="theme\theme.rc" Link="theme.rc" /> | ||
54 | </ItemGroup> | ||
55 | <ItemGroup> | ||
56 | <None Include="BafThmUtilTesting.def" /> | ||
57 | </ItemGroup> | ||
58 | <ItemGroup> | ||
59 | <PackageReference Include="WixToolset.Dutil" /> | ||
60 | <PackageReference Include="WixToolset.BalUtil" /> | ||
61 | <PackageReference Include="WixToolset.BootstrapperCore.Native" /> | ||
62 | </ItemGroup> | ||
63 | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | ||
64 | </Project> \ No newline at end of file | ||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/precomp.cpp b/src/test/burn/TestData/Manual/BafThmutilTesting/precomp.cpp new file mode 100644 index 00000000..b20f4230 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/precomp.cpp | |||
@@ -0,0 +1,46 @@ | |||
1 | // 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. | ||
2 | |||
3 | #include "precomp.h" | ||
4 | |||
5 | static HINSTANCE vhInstance = NULL; | ||
6 | |||
7 | extern "C" BOOL WINAPI DllMain( | ||
8 | IN HINSTANCE hInstance, | ||
9 | IN DWORD dwReason, | ||
10 | IN LPVOID /* pvReserved */ | ||
11 | ) | ||
12 | { | ||
13 | switch (dwReason) | ||
14 | { | ||
15 | case DLL_PROCESS_ATTACH: | ||
16 | ::DisableThreadLibraryCalls(hInstance); | ||
17 | vhInstance = hInstance; | ||
18 | break; | ||
19 | |||
20 | case DLL_PROCESS_DETACH: | ||
21 | vhInstance = NULL; | ||
22 | break; | ||
23 | } | ||
24 | |||
25 | return TRUE; | ||
26 | } | ||
27 | |||
28 | extern "C" HRESULT WINAPI BAFunctionsCreate( | ||
29 | __in const BA_FUNCTIONS_CREATE_ARGS* pArgs, | ||
30 | __inout BA_FUNCTIONS_CREATE_RESULTS* pResults | ||
31 | ) | ||
32 | { | ||
33 | HRESULT hr = S_OK; | ||
34 | |||
35 | hr = CreateBAFunctions(vhInstance, pArgs, pResults); | ||
36 | BalExitOnFailure(hr, "Failed to create BAFunctions interface."); | ||
37 | |||
38 | LExit: | ||
39 | return hr; | ||
40 | } | ||
41 | |||
42 | extern "C" void WINAPI BAFunctionsDestroy( | ||
43 | ) | ||
44 | { | ||
45 | BalUninitialize(); | ||
46 | } | ||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/precomp.h b/src/test/burn/TestData/Manual/BafThmutilTesting/precomp.h new file mode 100644 index 00000000..e7cd39dc --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/precomp.h | |||
@@ -0,0 +1,40 @@ | |||
1 | #pragma once | ||
2 | // 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. | ||
3 | |||
4 | |||
5 | #include <windows.h> | ||
6 | |||
7 | #pragma warning(push) | ||
8 | #pragma warning(disable:4458) // declaration of 'xxx' hides class member | ||
9 | #include <gdiplus.h> | ||
10 | #pragma warning(pop) | ||
11 | |||
12 | #include <msiquery.h> | ||
13 | #include <objbase.h> | ||
14 | #include <shlobj.h> | ||
15 | #include <shlwapi.h> | ||
16 | #include <stdlib.h> | ||
17 | #include <strsafe.h> | ||
18 | #include <CommCtrl.h> | ||
19 | |||
20 | #include "dutil.h" | ||
21 | #include "dictutil.h" | ||
22 | #include "fileutil.h" | ||
23 | #include "locutil.h" | ||
24 | #include "pathutil.h" | ||
25 | #include "strutil.h" | ||
26 | #include "thmutil.h" | ||
27 | #include "regutil.h" | ||
28 | #include "xmlutil.h" | ||
29 | |||
30 | #include "BalBaseBootstrapperApplication.h" | ||
31 | #include "balutil.h" | ||
32 | |||
33 | #include "BAFunctions.h" | ||
34 | #include "IBAFunctions.h" | ||
35 | |||
36 | HRESULT WINAPI CreateBAFunctions( | ||
37 | __in HMODULE hModule, | ||
38 | __in const BA_FUNCTIONS_CREATE_ARGS* pArgs, | ||
39 | __inout BA_FUNCTIONS_CREATE_RESULTS* pResults | ||
40 | ); | ||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/128x128.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/128x128.png new file mode 100644 index 00000000..4dfceeba --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/128x128.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/128x128_focus.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/128x128_focus.png new file mode 100644 index 00000000..2caffb30 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/128x128_focus.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/128x128_hover.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/128x128_hover.png new file mode 100644 index 00000000..8242b0d1 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/128x128_hover.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/128x128_selected.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/128x128_selected.png new file mode 100644 index 00000000..7355fc06 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/128x128_selected.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/16x16.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/16x16.png new file mode 100644 index 00000000..52975ac0 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/16x16.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/256x256.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/256x256.png new file mode 100644 index 00000000..6924ec48 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/256x256.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/256x256_focus.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/256x256_focus.png new file mode 100644 index 00000000..8cc141b2 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/256x256_focus.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/256x256_hover.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/256x256_hover.png new file mode 100644 index 00000000..a1cff210 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/256x256_hover.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/256x256_selected.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/256x256_selected.png new file mode 100644 index 00000000..184c1f78 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/256x256_selected.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/32x32.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/32x32.png new file mode 100644 index 00000000..01d621b3 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/32x32.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/64x64.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/64x64.png new file mode 100644 index 00000000..697274f9 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/64x64.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/64x64_focus.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/64x64_focus.png new file mode 100644 index 00000000..7bd5b2ca --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/64x64_focus.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/64x64_hover.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/64x64_hover.png new file mode 100644 index 00000000..88b2e8c2 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/64x64_hover.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/64x64_selected.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/64x64_selected.png new file mode 100644 index 00000000..39e75799 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/64x64_selected.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/BafThmUtilTestingTheme.xml b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/BafThmUtilTestingTheme.xml new file mode 100644 index 00000000..0d0dabf5 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/BafThmUtilTestingTheme.xml | |||
@@ -0,0 +1,137 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | ||
2 | <!-- 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. --> | ||
3 | |||
4 | |||
5 | <Theme xmlns="http://wixtoolset.org/schemas/v4/thmutil"> | ||
6 | <Font Id="Default" Height="-12" Weight="500" Foreground="windowtext" Background="window">Segoe UI</Font> | ||
7 | <Image Id="star_transparent.bmp" ImageResource="2" /> | ||
8 | <Image Id="star_opaque.bmp" ImageResource="3" /> | ||
9 | <Image Id="star_transparent.png" ImageResource="4" /> | ||
10 | <Image Id="square_default" ImageResource="5"> | ||
11 | <AlternateResolution ImageResource="6" /> | ||
12 | <AlternateResolution ImageResource="7" /> | ||
13 | <AlternateResolution ImageResource="8" /> | ||
14 | <AlternateResolution ImageResource="9" /> | ||
15 | </Image> | ||
16 | <Image Id="square_focus" ImageResource="13"> | ||
17 | <AlternateResolution ImageResource="14" /> | ||
18 | <AlternateResolution ImageResource="15" /> | ||
19 | </Image> | ||
20 | <Image Id="square_hover" ImageResource="19"> | ||
21 | <AlternateResolution ImageResource="20" /> | ||
22 | <AlternateResolution ImageResource="21" /> | ||
23 | </Image> | ||
24 | <Image Id="square_selected" ImageResource="25"> | ||
25 | <AlternateResolution ImageResource="26" /> | ||
26 | <AlternateResolution ImageResource="27" /> | ||
27 | </Image> | ||
28 | <Image Id="progressbar" ImageResource="30" /> | ||
29 | <Image Id="progressbar_reverse" ImageResource="31" /> | ||
30 | |||
31 | <Window Width="600" Height="450" FontId="Default" Caption="BafThmUtilTestingTheme" HexStyle="10cf0000" AutoResize="yes"> | ||
32 | <ImageList Name="Stars"> | ||
33 | <ImageListItem ImageResource="2" /> | ||
34 | <ImageListItem ImageResource="3" /> | ||
35 | <ImageListItem ImageResource="4" /> | ||
36 | </ImageList> | ||
37 | <Page Name="Transparency"> | ||
38 | <Label X="6" Y="6" Width="-6" Height="94" FontId="Default"> | ||
39 | This page has three versions of an image. The top image is a bitmap with a transparent background, the yellow star should be visible but its black background should not (this is currently broken). The middle image is the same bitmap except the black background is fully opaque so the yellow star should be visible on a black background. The bottom image in a PNG version of the top image and should look exactly the same. | ||
40 | </Label> | ||
41 | <ImageControl X="6" Y="106" Width="64" Height="64" ImageId="star_transparent.bmp" /> | ||
42 | <ImageControl X="6" Y="176" Width="64" Height="64" ImageId="star_opaque.bmp" /> | ||
43 | <ImageControl X="6" Y="246" Width="64" Height="64" ImageId="star_transparent.png" /> | ||
44 | <Button Name="ListViewButton" X="-183" Y="-11" Width="75" Height="23" TabStop="yes" FontId="Default"> | ||
45 | <Text>Next</Text> | ||
46 | <ChangePageAction Page="ListView" /> | ||
47 | </Button> | ||
48 | </Page> | ||
49 | <Page Name="ListView"> | ||
50 | <Label X="6" Y="6" Width="-6" Height="18" FontId="Default"> | ||
51 | This page is for testing ListView. | ||
52 | </Label> | ||
53 | <ListView Name="ListViewTopLeft" X="6" Y="30" Width="288" Height="176" FontId="Default" HexStyle="00" ImageList="Stars"> | ||
54 | <Column Width="100">TL One</Column> | ||
55 | <Column Width="100">TL Two</Column> | ||
56 | <Column Width="88">TL Three</Column> | ||
57 | </ListView> | ||
58 | <ListView Name="ListViewTopRight" X="300" Y="30" Width="-11" Height="176" FontId="Default" HexStyle="01" ImageListGroupHeader="Stars"> | ||
59 | <Column Width="100">TR One</Column> | ||
60 | <Column Width="100">TR Two</Column> | ||
61 | <Column Width="88" Expands="yes">TR Exp</Column> | ||
62 | </ListView> | ||
63 | <ListView Name="ListViewBottomLeft" X="6" Y="212" Width="288" Height="176" FontId="Default" HexStyle="02" ImageListSmall="Stars"> | ||
64 | <Column Width="100">BL One</Column> | ||
65 | <Column Width="100">BL Two</Column> | ||
66 | <Column Width="88">BL Three</Column> | ||
67 | </ListView> | ||
68 | <ListView Name="ListViewBottomRight" X="300" Y="212" Width="-11" Height="176" FontId="Default" HexStyle="03"> | ||
69 | <Column Width="100">BR One</Column> | ||
70 | <Column Width="100">BR Two</Column> | ||
71 | <Column Width="88" Expands="yes">BR Exp</Column> | ||
72 | </ListView> | ||
73 | <Button Name="ListViewBackButton" X="-269" Y="-11" Width="75" Height="23" TabStop="yes" FontId="Default"> | ||
74 | <Text>Back</Text> | ||
75 | <ChangePageAction Page="Transparency" /> | ||
76 | </Button> | ||
77 | <Button Name="ButtonButton" X="-183" Y="-11" Width="75" Height="23" TabStop="yes" FontId="Default"> | ||
78 | <Text>Next</Text> | ||
79 | <ChangePageAction Page="Button" /> | ||
80 | </Button> | ||
81 | </Page> | ||
82 | <Page Name="Button"> | ||
83 | <Label X="6" Y="6" Width="-6" Height="132" FontId="Default"> | ||
84 | This page is for testing graphical buttons. The left image is 16x16 at 100% scaling, the middle image is 32x32 at 100% scaling. The images for the buttons display their dimensions, so the left should be 16x16 at 100% but 32x32 at 200%. The right button starts at 32x32 at 100%, but grows and shrinks with the window and its image should also change. | ||
85 | |||
86 | There are currently four states for a button: default, focus, hover, and selected (in that priority order). There should be a different image for each state, although the left button should have a focus rectangle over the default image since it didn't specify an image for the focused state. | ||
87 | </Label> | ||
88 | <Button Name="Square16Button" X="6" Y="140" Width="16" Height="16" FontId="Default" TabStop="yes"> | ||
89 | <ButtonImage ImageId="square_default" /> | ||
90 | <ButtonHoverImage ImageId="square_hover" /> | ||
91 | <ButtonSelectedImage ImageId="square_selected" /> | ||
92 | </Button> | ||
93 | <Button Name="Square32Button" X="54" Y="140" Width="32" Height="32" FontId="Default" TabStop="yes"> | ||
94 | <ButtonImage ImageId="square_default" /> | ||
95 | <ButtonFocusImage ImageId="square_focus" /> | ||
96 | <ButtonHoverImage ImageId="square_hover" /> | ||
97 | <ButtonSelectedImage ImageId="square_selected" /> | ||
98 | </Button> | ||
99 | <Button Name="SquareExpandButton" X="92" Y="140" Width="-476" Height="-278" FontId="Default" TabStop="yes"> | ||
100 | <ButtonImage ImageId="square_default" /> | ||
101 | <ButtonFocusImage ImageId="square_focus" /> | ||
102 | <ButtonHoverImage ImageId="square_hover" /> | ||
103 | <ButtonSelectedImage ImageId="square_selected" /> | ||
104 | </Button> | ||
105 | <Button Name="ButtonBackButton" X="-269" Y="-11" Width="75" Height="23" TabStop="yes" FontId="Default"> | ||
106 | <Text>Back</Text> | ||
107 | <ChangePageAction Page="ListView" /> | ||
108 | </Button> | ||
109 | <Button Name="ProgressbarButton" X="-183" Y="-11" Width="75" Height="23" TabStop="yes" FontId="Default"> | ||
110 | <Text>Next</Text> | ||
111 | <ChangePageAction Page="Progressbar" /> | ||
112 | </Button> | ||
113 | </Page> | ||
114 | <Page Name="Progressbar"> | ||
115 | <Label X="6" Y="6" Width="-6" Height="94" FontId="Default"> | ||
116 | This page has two progress bars. The top progress bar is a standard control, the bottom one is custom drawn from an image. The bottom one should have its left side one pixel wide as black, the right side one pixel wide as grey, the progress as green, and the remaining as blue. The colors should be reversed when the progress goes backward (this is a way to test different colors, not a standard feature of thmutil). | ||
117 | </Label> | ||
118 | <Progressbar Name="StandardProgressBar" X="6" Y="106" Width="-6" Height="23" /> | ||
119 | <Progressbar Name="ImageProgressBar" X="6" Y="141" Width="-6" Height="23"> | ||
120 | <ProgressbarImage ImageId="progressbar" /> | ||
121 | <ProgressbarImage ImageId="progressbar_reverse" /> | ||
122 | </Progressbar> | ||
123 | <Button Name="ProgressbarBackButton" X="-269" Y="-11" Width="75" Height="23" TabStop="yes" FontId="Default"> | ||
124 | <Text>Back</Text> | ||
125 | <ChangePageAction Page="Button" /> | ||
126 | </Button> | ||
127 | </Page> | ||
128 | <Button Name="StartButton" X="-97" Y="-11" Width="75" Height="23" TabStop="yes" FontId="Default" Visible="yes"> | ||
129 | <Text>Start</Text> | ||
130 | <ChangePageAction Page="Transparency" /> | ||
131 | </Button> | ||
132 | <Button Name="CloseButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="Default" Visible="yes"> | ||
133 | <Text>ThemeClose</Text> | ||
134 | <CloseWindowAction /> | ||
135 | </Button> | ||
136 | </Window> | ||
137 | </Theme> | ||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/progressbar.bmp b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/progressbar.bmp new file mode 100644 index 00000000..2bab3944 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/progressbar.bmp | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/progressbar_reverse.bmp b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/progressbar_reverse.bmp new file mode 100644 index 00000000..6fedd05e --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/progressbar_reverse.bmp | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/star_opaque.bmp b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/star_opaque.bmp new file mode 100644 index 00000000..230d958c --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/star_opaque.bmp | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/star_transparent.bmp b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/star_transparent.bmp new file mode 100644 index 00000000..6596bcff --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/star_transparent.bmp | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/star_transparent.png b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/star_transparent.png new file mode 100644 index 00000000..2f018763 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/star_transparent.png | |||
Binary files differ | |||
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/theme/theme.rc b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/theme.rc new file mode 100644 index 00000000..808d29d5 --- /dev/null +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/theme/theme.rc | |||
@@ -0,0 +1,20 @@ | |||
1 | 1 RCDATA "BafThmutilTestingTheme.xml" | ||
2 | 2 RCDATA "star_transparent.bmp" | ||
3 | 3 RCDATA "star_opaque.bmp" | ||
4 | 4 RCDATA "star_transparent.png" | ||
5 | 5 RCDATA "16x16.png" | ||
6 | 6 RCDATA "32x32.png" | ||
7 | 7 RCDATA "64x64.png" | ||
8 | 8 RCDATA "128x128.png" | ||
9 | 9 RCDATA "256x256.png" | ||
10 | 13 RCDATA "64x64_focus.png" | ||
11 | 14 RCDATA "128x128_focus.png" | ||
12 | 15 RCDATA "256x256_focus.png" | ||
13 | 19 RCDATA "64x64_hover.png" | ||
14 | 20 RCDATA "128x128_hover.png" | ||
15 | 21 RCDATA "256x256_hover.png" | ||
16 | 25 RCDATA "64x64_selected.png" | ||
17 | 26 RCDATA "128x128_selected.png" | ||
18 | 27 RCDATA "256x256_selected.png" | ||
19 | 30 RCDATA "progressbar.bmp" | ||
20 | 31 RCDATA "progressbar_reverse.bmp" \ No newline at end of file | ||
diff --git a/src/test/burn/TestData/Manual/BundleA/BundleA.wixproj b/src/test/burn/TestData/Manual/BundleA/BundleA.wixproj new file mode 100644 index 00000000..dcfd3b7e --- /dev/null +++ b/src/test/burn/TestData/Manual/BundleA/BundleA.wixproj | |||
@@ -0,0 +1,18 @@ | |||
1 | <!-- 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. --> | ||
2 | <Project Sdk="WixToolset.Sdk"> | ||
3 | <PropertyGroup> | ||
4 | <OutputType>Bundle</OutputType> | ||
5 | <BA>hyperlinkLicense</BA> | ||
6 | <UpgradeCode>{98ACBCF6-B54A-46AF-8990-DFB8795B965B}</UpgradeCode> | ||
7 | </PropertyGroup> | ||
8 | <ItemGroup> | ||
9 | <Compile Include="..\..\Templates\Bundle.wxs" Link="Bundle.wxs" /> | ||
10 | </ItemGroup> | ||
11 | <ItemGroup> | ||
12 | <ProjectReference Include="..\BafThmUtilTesting\BafThmUtilTesting.vcxproj" Properties="Platform=x86" ReferenceOutputAssembly="false" /> | ||
13 | <ProjectReference Include="..\PackageA\PackageA.wixproj" /> | ||
14 | </ItemGroup> | ||
15 | <ItemGroup> | ||
16 | <PackageReference Include="WixToolset.Bal.wixext" /> | ||
17 | </ItemGroup> | ||
18 | </Project> \ No newline at end of file | ||
diff --git a/src/test/burn/TestData/Manual/BundleA/BundleA.wxs b/src/test/burn/TestData/Manual/BundleA/BundleA.wxs new file mode 100644 index 00000000..1706f4e8 --- /dev/null +++ b/src/test/burn/TestData/Manual/BundleA/BundleA.wxs | |||
@@ -0,0 +1,13 @@ | |||
1 | <!-- 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. --> | ||
2 | |||
3 | |||
4 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> | ||
5 | <Fragment> | ||
6 | <BootstrapperApplication> | ||
7 | <Payload SourceFile="$(var.BafThmUtilTesting.TargetPath)" bal:BAFunctions="yes" /> | ||
8 | </BootstrapperApplication> | ||
9 | <PackageGroup Id="BundlePackages"> | ||
10 | <MsiPackage Id="PackageA" SourceFile="$(var.PackageA.TargetPath)" /> | ||
11 | </PackageGroup> | ||
12 | </Fragment> | ||
13 | </Wix> | ||
diff --git a/src/test/burn/TestData/Manual/PackageA/PackageA.wixproj b/src/test/burn/TestData/Manual/PackageA/PackageA.wixproj new file mode 100644 index 00000000..c9c81c3a --- /dev/null +++ b/src/test/burn/TestData/Manual/PackageA/PackageA.wixproj | |||
@@ -0,0 +1,9 @@ | |||
1 | <!-- 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. --> | ||
2 | <Project Sdk="WixToolset.Sdk"> | ||
3 | <PropertyGroup> | ||
4 | <UpgradeCode>{0D803A6E-8090-4174-8DAC-810ECC2B1BBF}</UpgradeCode> | ||
5 | </PropertyGroup> | ||
6 | <ItemGroup> | ||
7 | <Compile Include="..\..\Templates\Package.wxs" Link="Package.wxs" /> | ||
8 | </ItemGroup> | ||
9 | </Project> \ No newline at end of file | ||