Implemented GetUIVersion (based on a patch by Stefan Leichter).
diff --git a/dlls/shlwapi/ordinal.c b/dlls/shlwapi/ordinal.c
index 1bbece4..10bb801 100644
--- a/dlls/shlwapi/ordinal.c
+++ b/dlls/shlwapi/ordinal.c
@@ -3955,3 +3955,31 @@
FIXME("(%lx, %s, %s, %lx, %lx, %lx): stub\n", a, debugstr_w(b), debugstr_w(c), d, e, f);
return E_FAIL;
}
+
+typedef HRESULT (WINAPI *DllGetVersion_func)(DLLVERSIONINFO *);
+
+/***********************************************************************
+ * GetUIVersion (SHLWAPI.452)
+ */
+DWORD WINAPI GetUIVersion(void)
+{
+ static DWORD version;
+
+ if (!version)
+ {
+ DllGetVersion_func pDllGetVersion;
+ HMODULE dll = LoadLibraryA("shell32.dll");
+ if (!dll) return 0;
+
+ pDllGetVersion = (DllGetVersion_func)GetProcAddress(dll, "DllGetVersion");
+ if (pDllGetVersion)
+ {
+ DLLVERSIONINFO dvi;
+ dvi.cbSize = sizeof(DLLVERSIONINFO);
+ if (pDllGetVersion(&dvi) == S_OK) version = dvi.dwMajorVersion;
+ }
+ FreeLibrary( dll );
+ if (!version) version = 3; /* old shell dlls don't have DllGetVersion */
+ }
+ return version;
+}
diff --git a/dlls/shlwapi/shlwapi.spec b/dlls/shlwapi/shlwapi.spec
index 75434e5..380fc31 100644
--- a/dlls/shlwapi/shlwapi.spec
+++ b/dlls/shlwapi/shlwapi.spec
@@ -535,7 +535,7 @@
539 stub -noname IUnknown_ShowBrowserBar
540 stub -noname SHInvokeCommandOnContextMenu
541 stub -noname SHInvokeCommandsOnContextMen
-542 stub -noname GetUIVersion
+542 stdcall -noname GetUIVersion()
543 stub -noname CreateColorSpaceWrapW
544 stub -noname QuerySourceCreateFromKey
545 stub -noname SHForwardContextMenuMsg