mscoree: Add stub for CorIsLatestSvc to hint user at broken .NET installation.

Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Louis Lenders 2018-07-11 19:58:54 +02:00 committed by Alexandre Julliard
parent 054c916c40
commit 27f2f4199f
3 changed files with 18 additions and 2 deletions

View File

@ -25,7 +25,7 @@
@ stub CorDllMainWorker
@ stdcall CorExitProcess(long)
@ stub CorGetSvc
@ stub CorIsLatestSvc
@ stdcall CorIsLatestSvc(ptr ptr)
@ stub CorMarkThreadInThreadPool
@ stub CorTickleSvc
@ stdcall CreateConfigStream(wstr ptr)

View File

@ -49,6 +49,7 @@
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL( mscoree );
WINE_DECLARE_DEBUG_CHANNEL(winediag);
static HINSTANCE MSCOREE_hInstance;
@ -309,6 +310,16 @@ HRESULT WINAPI GetCORVersion(LPWSTR pbuffer, DWORD cchBuffer, DWORD *dwLength)
return ret;
}
HRESULT WINAPI CorIsLatestSvc(int *unk1, int *unk2)
{
ERR_(winediag)("If this function is called, it is likely the result of a broken .NET installation\n");
if (!unk1 || !unk2)
return E_POINTER;
return S_OK;
}
HRESULT WINAPI GetRequestedRuntimeInfo(LPCWSTR pExe, LPCWSTR pwszVersion, LPCWSTR pConfigurationFile,
DWORD startupFlags, DWORD runtimeInfoFlags, LPWSTR pDirectory, DWORD dwDirectory, DWORD *dwDirectoryLength,
LPWSTR pVersion, DWORD cchBuffer, DWORD *dwlength)

View File

@ -35,6 +35,7 @@ static const WCHAR v4_0[] = {'v','4','.','0','.','3','0','3','1','9',0};
static HMODULE hmscoree;
static HRESULT (WINAPI *pGetCORVersion)(LPWSTR, DWORD, DWORD*);
static HRESULT (WINAPI *pCorIsLatestSvc)(INT*, INT*);
static HRESULT (WINAPI *pGetCORSystemDirectory)(LPWSTR, DWORD, DWORD*);
static HRESULT (WINAPI *pGetRequestedRuntimeInfo)(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, DWORD, LPWSTR, DWORD, DWORD*, LPWSTR, DWORD, DWORD*);
static HRESULT (WINAPI *pLoadLibraryShim)(LPCWSTR, LPCWSTR, LPVOID, HMODULE*);
@ -55,6 +56,7 @@ static BOOL init_functionpointers(void)
}
pGetCORVersion = (void *)GetProcAddress(hmscoree, "GetCORVersion");
pCorIsLatestSvc = (void *)GetProcAddress(hmscoree, "CorIsLatestSvc");
pGetCORSystemDirectory = (void *)GetProcAddress(hmscoree, "GetCORSystemDirectory");
pGetRequestedRuntimeInfo = (void *)GetProcAddress(hmscoree, "GetRequestedRuntimeInfo");
pLoadLibraryShim = (void *)GetProcAddress(hmscoree, "LoadLibraryShim");
@ -63,7 +65,7 @@ static BOOL init_functionpointers(void)
pCLRCreateInstance = (void *)GetProcAddress(hmscoree, "CLRCreateInstance");
if (!pGetCORVersion || !pGetCORSystemDirectory || !pGetRequestedRuntimeInfo || !pLoadLibraryShim ||
!pCreateInterface || !pCLRCreateInstance
!pCreateInterface || !pCLRCreateInstance || !pCorIsLatestSvc
)
{
win_skip("functions not available\n");
@ -289,6 +291,9 @@ static void test_versioninfo(void)
hr = pGetRequestedRuntimeInfo( NULL, v2_0_0, NULL, 0, RUNTIME_INFO_UPGRADE_VERSION, path, MAX_PATH, &path_len, version, MAX_PATH, NULL);
ok(hr == S_OK, "GetRequestedRuntimeInfo returned %08x\n", hr);
ok(!winetest_strcmpW(version, v2_0), "version is %s , expected %s\n", wine_dbgstr_w(version), wine_dbgstr_w(v2_0));
hr = pCorIsLatestSvc(NULL, NULL);
ok(hr == E_POINTER, "CorIsLatestSvc returned %08x\n", hr);
}
static void test_loadlibraryshim(void)