From ddfab6bb9d474172526abb9e1b7ff5fd3cc50d14 Mon Sep 17 00:00:00 2001 From: David Hedberg Date: Sat, 31 Jul 2010 20:02:46 +0200 Subject: [PATCH] explorerframe: Implement DllGetVersion. --- dlls/explorerframe/explorerframe.spec | 2 +- dlls/explorerframe/explorerframe_main.c | 30 +++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/dlls/explorerframe/explorerframe.spec b/dlls/explorerframe/explorerframe.spec index dbd9c41a38f..58777b0324a 100644 --- a/dlls/explorerframe/explorerframe.spec +++ b/dlls/explorerframe/explorerframe.spec @@ -4,4 +4,4 @@ @ stdcall -private DllCanUnloadNow() @ stub DllGetClassObject -@ stub DllGetVersion +@ stdcall -private DllGetVersion(ptr) diff --git a/dlls/explorerframe/explorerframe_main.c b/dlls/explorerframe/explorerframe_main.c index 4fa5cc627fb..51f7d3940f9 100644 --- a/dlls/explorerframe/explorerframe_main.c +++ b/dlls/explorerframe/explorerframe_main.c @@ -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; +}