explorerframe: Implement DllGetVersion.
authorDavid Hedberg <david.hedberg@gmail.com>
Sat, 31 Jul 2010 18:02:46 +0000 (20:02 +0200)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 2 Aug 2010 13:27:18 +0000 (15:27 +0200)
dlls/explorerframe/explorerframe.spec
dlls/explorerframe/explorerframe_main.c

index dbd9c41a38f1fabb37f5086a2909ad19d1193131..58777b0324a6bf6cadf0ac7d236833c3b5b2f603 100644 (file)
@@ -4,4 +4,4 @@
 
 @ stdcall -private DllCanUnloadNow()
 @ stub DllGetClassObject
-@ stub DllGetVersion
+@ stdcall -private DllGetVersion(ptr)
index 4fa5cc627fba0eae9d0cbcfeefb2a479f87dad7e..51f7d3940f9916ff7996664aac3d741f6153a63b 100644 (file)
@@ -64,3 +64,33 @@ HRESULT WINAPI DllCanUnloadNow(void)
     TRACE("refCount is %d\n", EFRAME_refCount);
     return EFRAME_refCount ? S_FALSE : S_OK;
 }
+
+/*************************************************************************
+ *              DllGetVersion (ExplorerFrame.@)
+ */
+HRESULT WINAPI DllGetVersion(DLLVERSIONINFO *info)
+{
+    TRACE("%p\n", info);
+    if(info->cbSize == sizeof(DLLVERSIONINFO) ||
+       info->cbSize == sizeof(DLLVERSIONINFO2))
+    {
+        /* Windows 7 */
+        info->dwMajorVersion = 6;
+        info->dwMinorVersion = 1;
+        info->dwBuildNumber = 7600;
+        info->dwPlatformID = DLLVER_PLATFORM_WINDOWS;
+        if(info->cbSize == sizeof(DLLVERSIONINFO2))
+        {
+            DLLVERSIONINFO2 *info2 = (DLLVERSIONINFO2*)info;
+            info2->dwFlags = 0;
+            info2->ullVersion = MAKEDLLVERULL(info->dwMajorVersion,
+                                              info->dwMinorVersion,
+                                              info->dwBuildNumber,
+                                              16385); /* "hotfix number" */
+        }
+        return S_OK;
+    }
+
+    WARN("wrong DLLVERSIONINFO size from app.\n");
+    return E_INVALIDARG;
+}