aboutsummaryrefslogtreecommitdiff
path: root/src/libs/dutil/WixToolset.DUtil/thmutil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil/thmutil.cpp')
-rw-r--r--src/libs/dutil/WixToolset.DUtil/thmutil.cpp92
1 files changed, 57 insertions, 35 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/thmutil.cpp b/src/libs/dutil/WixToolset.DUtil/thmutil.cpp
index 36b187a7..4482c96e 100644
--- a/src/libs/dutil/WixToolset.DUtil/thmutil.cpp
+++ b/src/libs/dutil/WixToolset.DUtil/thmutil.cpp
@@ -856,6 +856,28 @@ DAPI_(void) ThemeInitializeWindowClass(
856} 856}
857 857
858 858
859DAPI_(void) ThemeInitializeWindowClassEx(
860 __in THEME* pTheme,
861 __in WNDCLASSEXW* pWndClass,
862 __in WNDPROC pfnWndProc,
863 __in HINSTANCE hInstance,
864 __in LPCWSTR wzClassName
865 )
866{
867 pWndClass->cbSize = sizeof(WNDCLASSEXW);
868 pWndClass->style = CS_HREDRAW | CS_VREDRAW;
869 pWndClass->cbWndExtra = DLGWINDOWEXTRA;
870 pWndClass->hCursor = ::LoadCursorW(NULL, (LPCWSTR)IDC_ARROW);
871
872 pWndClass->lpfnWndProc = pfnWndProc;
873 pWndClass->hInstance = hInstance;
874 pWndClass->lpszClassName = wzClassName;
875
876 pWndClass->hIcon = reinterpret_cast<HICON>(pTheme->hIcon);
877 pWndClass->hbrBackground = pTheme->rgFonts[pTheme->dwFontId].hBackground;
878}
879
880
859DAPI_(HRESULT) ThemeCreateParentWindow( 881DAPI_(HRESULT) ThemeCreateParentWindow(
860 __in THEME* pTheme, 882 __in THEME* pTheme,
861 __in DWORD dwExStyle, 883 __in DWORD dwExStyle,
@@ -1145,7 +1167,7 @@ DAPI_(void) ThemeGetPageIds(
1145 for (DWORD j = 0; j < pTheme->cPages; ++j) 1167 for (DWORD j = 0; j < pTheme->cPages; ++j)
1146 { 1168 {
1147 LPCWSTR wzPageName = pTheme->rgPages[j].sczName; 1169 LPCWSTR wzPageName = pTheme->rgPages[j].sczName;
1148 if (wzPageName && CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, wzPageName, -1, wzFindName, -1)) 1170 if (wzPageName && CSTR_EQUAL == ::CompareStringOrdinal(wzPageName, -1, wzFindName, -1, FALSE))
1149 { 1171 {
1150 rgdwPageIds[i] = j + 1; // add one to make the page ids 1-based (so zero is invalid). 1172 rgdwPageIds[i] = j + 1; // add one to make the page ids 1-based (so zero is invalid).
1151 break; 1173 break;
@@ -2082,7 +2104,7 @@ static HRESULT ParseButtonImages(
2082 ThmExitOnFailure(hr, "Null element encountered!"); 2104 ThmExitOnFailure(hr, "Null element encountered!");
2083 } 2105 }
2084 2106
2085 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"ButtonFocusImage", -1)) 2107 if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"ButtonFocusImage", -1, FALSE))
2086 { 2108 {
2087 if (pFocusImageRef) 2109 if (pFocusImageRef)
2088 { 2110 {
@@ -2091,7 +2113,7 @@ static HRESULT ParseButtonImages(
2091 2113
2092 pImageRef = pFocusImageRef = pControl->Button.rgImageRef + 3; 2114 pImageRef = pFocusImageRef = pControl->Button.rgImageRef + 3;
2093 } 2115 }
2094 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"ButtonHoverImage", -1)) 2116 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"ButtonHoverImage", -1, FALSE))
2095 { 2117 {
2096 if (pHoverImageRef) 2118 if (pHoverImageRef)
2097 { 2119 {
@@ -2100,7 +2122,7 @@ static HRESULT ParseButtonImages(
2100 2122
2101 pImageRef = pHoverImageRef = pControl->Button.rgImageRef + 1; 2123 pImageRef = pHoverImageRef = pControl->Button.rgImageRef + 1;
2102 } 2124 }
2103 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"ButtonSelectedImage", -1)) 2125 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"ButtonSelectedImage", -1, FALSE))
2104 { 2126 {
2105 if (pSelectedImageRef) 2127 if (pSelectedImageRef)
2106 { 2128 {
@@ -2776,35 +2798,35 @@ static HRESULT GetFontColor(
2776 2798
2777 if (pdwSystemColor) 2799 if (pdwSystemColor)
2778 { 2800 {
2779 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstr, -1, L"btnface", -1)) 2801 if (CSTR_EQUAL == ::CompareStringOrdinal(bstr, -1, L"btnface", -1, FALSE))
2780 { 2802 {
2781 *pdwSystemColor = COLOR_BTNFACE; 2803 *pdwSystemColor = COLOR_BTNFACE;
2782 } 2804 }
2783 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstr, -1, L"btntext", -1)) 2805 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstr, -1, L"btntext", -1, FALSE))
2784 { 2806 {
2785 *pdwSystemColor = COLOR_BTNTEXT; 2807 *pdwSystemColor = COLOR_BTNTEXT;
2786 } 2808 }
2787 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstr, -1, L"graytext", -1)) 2809 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstr, -1, L"graytext", -1, FALSE))
2788 { 2810 {
2789 *pdwSystemColor = COLOR_GRAYTEXT; 2811 *pdwSystemColor = COLOR_GRAYTEXT;
2790 } 2812 }
2791 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstr, -1, L"highlight", -1)) 2813 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstr, -1, L"highlight", -1, FALSE))
2792 { 2814 {
2793 *pdwSystemColor = COLOR_HIGHLIGHT; 2815 *pdwSystemColor = COLOR_HIGHLIGHT;
2794 } 2816 }
2795 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstr, -1, L"highlighttext", -1)) 2817 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstr, -1, L"highlighttext", -1, FALSE))
2796 { 2818 {
2797 *pdwSystemColor = COLOR_HIGHLIGHTTEXT; 2819 *pdwSystemColor = COLOR_HIGHLIGHTTEXT;
2798 } 2820 }
2799 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstr, -1, L"hotlight", -1)) 2821 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstr, -1, L"hotlight", -1, FALSE))
2800 { 2822 {
2801 *pdwSystemColor = COLOR_HOTLIGHT; 2823 *pdwSystemColor = COLOR_HOTLIGHT;
2802 } 2824 }
2803 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstr, -1, L"window", -1)) 2825 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstr, -1, L"window", -1, FALSE))
2804 { 2826 {
2805 *pdwSystemColor = COLOR_WINDOW; 2827 *pdwSystemColor = COLOR_WINDOW;
2806 } 2828 }
2807 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstr, -1, L"windowtext", -1)) 2829 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstr, -1, L"windowtext", -1, FALSE))
2808 { 2830 {
2809 *pdwSystemColor = COLOR_WINDOWTEXT; 2831 *pdwSystemColor = COLOR_WINDOWTEXT;
2810 } 2832 }
@@ -3229,71 +3251,71 @@ static HRESULT ParseControls(
3229 ThmExitOnFailure(hr, "Null element encountered!"); 3251 ThmExitOnFailure(hr, "Null element encountered!");
3230 } 3252 }
3231 3253
3232 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Billboard", -1)) 3254 if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Billboard", -1, FALSE))
3233 { 3255 {
3234 type = THEME_CONTROL_TYPE_BILLBOARD; 3256 type = THEME_CONTROL_TYPE_BILLBOARD;
3235 } 3257 }
3236 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Button", -1)) 3258 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Button", -1, FALSE))
3237 { 3259 {
3238 type = THEME_CONTROL_TYPE_BUTTON; 3260 type = THEME_CONTROL_TYPE_BUTTON;
3239 } 3261 }
3240 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Checkbox", -1)) 3262 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Checkbox", -1, FALSE))
3241 { 3263 {
3242 type = THEME_CONTROL_TYPE_CHECKBOX; 3264 type = THEME_CONTROL_TYPE_CHECKBOX;
3243 } 3265 }
3244 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Combobox", -1)) 3266 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Combobox", -1, FALSE))
3245 { 3267 {
3246 type = THEME_CONTROL_TYPE_COMBOBOX; 3268 type = THEME_CONTROL_TYPE_COMBOBOX;
3247 } 3269 }
3248 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"CommandLink", -1)) 3270 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"CommandLink", -1, FALSE))
3249 { 3271 {
3250 type = THEME_CONTROL_TYPE_COMMANDLINK; 3272 type = THEME_CONTROL_TYPE_COMMANDLINK;
3251 } 3273 }
3252 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Editbox", -1)) 3274 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Editbox", -1, FALSE))
3253 { 3275 {
3254 type = THEME_CONTROL_TYPE_EDITBOX; 3276 type = THEME_CONTROL_TYPE_EDITBOX;
3255 } 3277 }
3256 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Hyperlink", -1)) 3278 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Hyperlink", -1, FALSE))
3257 { 3279 {
3258 type = THEME_CONTROL_TYPE_HYPERLINK; 3280 type = THEME_CONTROL_TYPE_HYPERLINK;
3259 } 3281 }
3260 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Hypertext", -1)) 3282 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Hypertext", -1, FALSE))
3261 { 3283 {
3262 type = THEME_CONTROL_TYPE_HYPERTEXT; 3284 type = THEME_CONTROL_TYPE_HYPERTEXT;
3263 } 3285 }
3264 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"ImageControl", -1)) 3286 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"ImageControl", -1, FALSE))
3265 { 3287 {
3266 type = THEME_CONTROL_TYPE_IMAGE; 3288 type = THEME_CONTROL_TYPE_IMAGE;
3267 } 3289 }
3268 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Label", -1)) 3290 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Label", -1, FALSE))
3269 { 3291 {
3270 type = THEME_CONTROL_TYPE_LABEL; 3292 type = THEME_CONTROL_TYPE_LABEL;
3271 } 3293 }
3272 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"ListView", -1)) 3294 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"ListView", -1, FALSE))
3273 { 3295 {
3274 type = THEME_CONTROL_TYPE_LISTVIEW; 3296 type = THEME_CONTROL_TYPE_LISTVIEW;
3275 } 3297 }
3276 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Panel", -1)) 3298 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Panel", -1, FALSE))
3277 { 3299 {
3278 type = THEME_CONTROL_TYPE_PANEL; 3300 type = THEME_CONTROL_TYPE_PANEL;
3279 } 3301 }
3280 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Progressbar", -1)) 3302 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Progressbar", -1, FALSE))
3281 { 3303 {
3282 type = THEME_CONTROL_TYPE_PROGRESSBAR; 3304 type = THEME_CONTROL_TYPE_PROGRESSBAR;
3283 } 3305 }
3284 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Richedit", -1)) 3306 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Richedit", -1, FALSE))
3285 { 3307 {
3286 type = THEME_CONTROL_TYPE_RICHEDIT; 3308 type = THEME_CONTROL_TYPE_RICHEDIT;
3287 } 3309 }
3288 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Static", -1)) 3310 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Static", -1, FALSE))
3289 { 3311 {
3290 type = THEME_CONTROL_TYPE_STATIC; 3312 type = THEME_CONTROL_TYPE_STATIC;
3291 } 3313 }
3292 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"Tabs", -1)) 3314 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"Tabs", -1, FALSE))
3293 { 3315 {
3294 type = THEME_CONTROL_TYPE_TAB; 3316 type = THEME_CONTROL_TYPE_TAB;
3295 } 3317 }
3296 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"TreeView", -1)) 3318 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"TreeView", -1, FALSE))
3297 { 3319 {
3298 type = THEME_CONTROL_TYPE_TREEVIEW; 3320 type = THEME_CONTROL_TYPE_TREEVIEW;
3299 } 3321 }
@@ -3705,14 +3727,14 @@ static HRESULT ParseActions(
3705 3727
3706 THEME_ACTION* pAction = pControl->rgActions + i; 3728 THEME_ACTION* pAction = pControl->rgActions + i;
3707 3729
3708 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"BrowseDirectoryAction", -1)) 3730 if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"BrowseDirectoryAction", -1, FALSE))
3709 { 3731 {
3710 pAction->type = THEME_ACTION_TYPE_BROWSE_DIRECTORY; 3732 pAction->type = THEME_ACTION_TYPE_BROWSE_DIRECTORY;
3711 3733
3712 hr = XmlGetAttributeEx(pixnChild, L"VariableName", &pAction->BrowseDirectory.sczVariableName); 3734 hr = XmlGetAttributeEx(pixnChild, L"VariableName", &pAction->BrowseDirectory.sczVariableName);
3713 ThmExitOnFailure(hr, "Failed when querying BrowseDirectoryAction/@VariableName attribute."); 3735 ThmExitOnFailure(hr, "Failed when querying BrowseDirectoryAction/@VariableName attribute.");
3714 } 3736 }
3715 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"ChangePageAction", -1)) 3737 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"ChangePageAction", -1, FALSE))
3716 { 3738 {
3717 pAction->type = THEME_ACTION_TYPE_CHANGE_PAGE; 3739 pAction->type = THEME_ACTION_TYPE_CHANGE_PAGE;
3718 3740
@@ -3725,7 +3747,7 @@ static HRESULT ParseActions(
3725 ThmExitOnFailure(hr, "Failed when querying ChangePageAction/@Cancel attribute."); 3747 ThmExitOnFailure(hr, "Failed when querying ChangePageAction/@Cancel attribute.");
3726 } 3748 }
3727 } 3749 }
3728 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrType, -1, L"CloseWindowAction", -1)) 3750 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrType, -1, L"CloseWindowAction", -1, FALSE))
3729 { 3751 {
3730 pAction->type = THEME_ACTION_TYPE_CLOSE_WINDOW; 3752 pAction->type = THEME_ACTION_TYPE_CLOSE_WINDOW;
3731 } 3753 }
@@ -4367,7 +4389,7 @@ static HRESULT FindImageList(
4367 4389
4368 for (DWORD i = 0; i < pTheme->cImageLists; ++i) 4390 for (DWORD i = 0; i < pTheme->cImageLists; ++i)
4369 { 4391 {
4370 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, pTheme->rgImageLists[i].sczName, -1, wzImageListName, -1)) 4392 if (CSTR_EQUAL == ::CompareStringOrdinal(pTheme->rgImageLists[i].sczName, -1, wzImageListName, -1, FALSE))
4371 { 4393 {
4372 *phImageList = pTheme->rgImageLists[i].hImageList; 4394 *phImageList = pTheme->rgImageLists[i].hImageList;
4373 ExitFunction1(hr = S_OK); 4395 ExitFunction1(hr = S_OK);
@@ -5027,7 +5049,7 @@ static void OnBrowseDirectory(
5027 THEME_CONTROL* pControl = pTheme->rgControls + i; 5049 THEME_CONTROL* pControl = pTheme->rgControls + i;
5028 5050
5029 if ((!pControl->wPageId || pControl->wPageId == pTheme->dwCurrentPageId) && 5051 if ((!pControl->wPageId || pControl->wPageId == pTheme->dwCurrentPageId) &&
5030 CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pControl->sczName, -1, pAction->BrowseDirectory.sczVariableName, -1)) 5052 CSTR_EQUAL == ::CompareStringOrdinal(pControl->sczName, -1, pAction->BrowseDirectory.sczVariableName, -1, FALSE))
5031 { 5053 {
5032 pTargetControl = pControl; 5054 pTargetControl = pControl;
5033 break; 5055 break;
@@ -5790,7 +5812,7 @@ static HRESULT ShowControl(
5790 5812
5791 hr = S_OK; 5813 hr = S_OK;
5792 5814
5793 Button_SetCheck(hWnd, (!sczText && !pControl->sczValue) || (sczText && CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, sczText, -1, pControl->sczValue, -1))); 5815 Button_SetCheck(hWnd, (!sczText && !pControl->sczValue) || (sczText && CSTR_EQUAL == ::CompareStringOrdinal(sczText, -1, pControl->sczValue, -1, FALSE)));
5794 } 5816 }
5795 } 5817 }
5796 5818