Vincent Povirk : mscoree: Implement GetFileVersion.

Alexandre Julliard julliard at winehq.org
Fri Jan 28 12:30:12 CST 2011


Module: wine
Branch: master
Commit: 8a8808984e3ef5de3da2c6dd10fe5111d9ef3882
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8a8808984e3ef5de3da2c6dd10fe5111d9ef3882

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Thu Jan 27 16:05:34 2011 -0600

mscoree: Implement GetFileVersion.

---

 dlls/mscoree/metahost.c        |    2 +-
 dlls/mscoree/mscoree.spec      |    2 +-
 dlls/mscoree/mscoree_main.c    |   11 +++++++++++
 dlls/mscoree/mscoree_private.h |    3 +++
 4 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/dlls/mscoree/metahost.c b/dlls/mscoree/metahost.c
index 889e1fb..2cafcb8 100644
--- a/dlls/mscoree/metahost.c
+++ b/dlls/mscoree/metahost.c
@@ -963,7 +963,7 @@ static HRESULT WINAPI CLRMetaHost_GetRuntime(ICLRMetaHost* iface,
     return CLR_E_SHIM_RUNTIME;
 }
 
-static HRESULT WINAPI CLRMetaHost_GetVersionFromFile(ICLRMetaHost* iface,
+HRESULT WINAPI CLRMetaHost_GetVersionFromFile(ICLRMetaHost* iface,
     LPCWSTR pwzFilePath, LPWSTR pwzBuffer, DWORD *pcchBuffer)
 {
     ASSEMBLY *assembly;
diff --git a/dlls/mscoree/mscoree.spec b/dlls/mscoree/mscoree.spec
index 1d4d7f7..8cf548d 100644
--- a/dlls/mscoree/mscoree.spec
+++ b/dlls/mscoree/mscoree.spec
@@ -43,7 +43,7 @@
 @ stdcall GetCORSystemDirectory(ptr long ptr)
 @ stdcall GetCORVersion(ptr long ptr)
 @ stub GetCompileInfo
-@ stub GetFileVersion
+@ stdcall GetFileVersion(wstr ptr long ptr)
 @ stub GetHashFromAssemblyFile
 @ stub GetHashFromAssemblyFileW
 @ stub GetHashFromBlob
diff --git a/dlls/mscoree/mscoree_main.c b/dlls/mscoree/mscoree_main.c
index 1f2cfb0..a3e1cec 100644
--- a/dlls/mscoree/mscoree_main.c
+++ b/dlls/mscoree/mscoree_main.c
@@ -250,6 +250,17 @@ HRESULT WINAPI GetRequestedRuntimeInfo(LPCWSTR pExe, LPCWSTR pwszVersion, LPCWST
     return ret;
 }
 
+HRESULT WINAPI GetFileVersion(LPCWSTR szFilename, LPWSTR szBuffer, DWORD cchBuffer, DWORD *dwLength)
+{
+    TRACE("(%s, %p, %d, %p)\n", debugstr_w(szFilename), szBuffer, cchBuffer, dwLength);
+
+    if (!szFilename || !dwLength)
+        return E_POINTER;
+
+    *dwLength = cchBuffer;
+    return CLRMetaHost_GetVersionFromFile(0, szFilename, szBuffer, dwLength);
+}
+
 HRESULT WINAPI LoadLibraryShim( LPCWSTR szDllName, LPCWSTR szVersion, LPVOID pvReserved, HMODULE * phModDll)
 {
     HRESULT ret=S_OK;
diff --git a/dlls/mscoree/mscoree_private.h b/dlls/mscoree/mscoree_private.h
index 9ece9cc..222b3ca 100644
--- a/dlls/mscoree/mscoree_private.h
+++ b/dlls/mscoree/mscoree_private.h
@@ -28,6 +28,9 @@ extern char *WtoA(LPCWSTR wstr);
 
 extern HRESULT CLRMetaHost_CreateInstance(REFIID riid, void **ppobj);
 
+extern HRESULT WINAPI CLRMetaHost_GetVersionFromFile(ICLRMetaHost* iface,
+    LPCWSTR pwzFilePath, LPWSTR pwzBuffer, DWORD *pcchBuffer);
+
 typedef struct tagASSEMBLY ASSEMBLY;
 
 HRESULT assembly_create(ASSEMBLY **out, LPCWSTR file);




More information about the wine-cvs mailing list