Zhiyi Zhang (@zhiyi) commented about dlls/uxtheme/system.c:
pszUseClassList = pszClassList; if (pszUseClassList)
hTheme = MSSTYLES_OpenThemeClass(pszAppName, pszUseClassList, dpi);
{
const WCHAR *p = wcschr(pszUseClassList, ':');
if (p)
{
p++;
lstrcpynW(szAppBuff, pszUseClassList, min(p - pszUseClassList, 256));
szAppBuff[p - pszUseClassList] = 0;
if (*p == ':') p++;
lstrcpynW(szClassBuff, p, min(wcslen(p) + 1, 256));
hTheme = MSSTYLES_OpenThemeClass(pszAppName ? pszAppName : szAppBuff, szClassBuff, dpi);
I just tested on Windows 10. It turns out you can't set the application class both with SetWindowTheme() and OpenThemeData(). If you do, OpenThemeData() fails. So please add some tests for that and change the OpenThemeData() implementation accordingly.
``` SetWindowTheme(hwnd, L"explorer", NULL); theme = OpenThemeData(hwnd, L"explorer::listview"); if (!theme) printf("OpenThemeData failed.\n"); ```