Commit c28225fe authored by Paul Gofman's avatar Paul Gofman Committed by Alexandre Julliard

kernel32: Add semi-stub for LoadPackagedLibrary().

parent 6c8f52c4
...@@ -1049,6 +1049,7 @@ ...@@ -1049,6 +1049,7 @@
@ stdcall -import LoadLibraryExW(wstr long long) @ stdcall -import LoadLibraryExW(wstr long long)
@ stdcall -import LoadLibraryW(wstr) @ stdcall -import LoadLibraryW(wstr)
@ stdcall LoadModule(str ptr) @ stdcall LoadModule(str ptr)
@ stdcall -import LoadPackagedLibrary(wstr long)
@ stdcall -import LoadResource(long long) @ stdcall -import LoadResource(long long)
# @ stub LoadStringBaseExW # @ stub LoadStringBaseExW
# @ stub LoadStringBaseW # @ stub LoadStringBaseW
......
...@@ -86,6 +86,7 @@ static BOOL (WINAPI *pFlsFree)(DWORD); ...@@ -86,6 +86,7 @@ static BOOL (WINAPI *pFlsFree)(DWORD);
static BOOL (WINAPI *pIsWow64Process)(HANDLE,PBOOL); static BOOL (WINAPI *pIsWow64Process)(HANDLE,PBOOL);
static BOOL (WINAPI *pWow64DisableWow64FsRedirection)(void **); static BOOL (WINAPI *pWow64DisableWow64FsRedirection)(void **);
static BOOL (WINAPI *pWow64RevertWow64FsRedirection)(void *); static BOOL (WINAPI *pWow64RevertWow64FsRedirection)(void *);
static HMODULE (WINAPI *pLoadPackagedLibrary)(LPCWSTR lpwLibFileName, DWORD Reserved);
static PVOID RVAToAddr(DWORD_PTR rva, HMODULE module) static PVOID RVAToAddr(DWORD_PTR rva, HMODULE module)
{ {
...@@ -3917,6 +3918,22 @@ static void test_dll_file( const char *name ) ...@@ -3917,6 +3918,22 @@ static void test_dll_file( const char *name )
#undef OK_FIELD #undef OK_FIELD
} }
static void test_LoadPackagedLibrary(void)
{
HMODULE h;
if (!pLoadPackagedLibrary)
{
win_skip("LoadPackagedLibrary is not available.\n");
return;
}
SetLastError( 0xdeadbeef );
h = pLoadPackagedLibrary(L"kernel32.dll", 0);
ok(!h && GetLastError() == APPMODEL_ERROR_NO_PACKAGE, "Got unexpected handle %p, GetLastError() %u.\n",
h, GetLastError());
}
START_TEST(loader) START_TEST(loader)
{ {
int argc; int argc;
...@@ -3954,6 +3971,7 @@ START_TEST(loader) ...@@ -3954,6 +3971,7 @@ START_TEST(loader)
pWow64DisableWow64FsRedirection = (void *)GetProcAddress(kernel32, "Wow64DisableWow64FsRedirection"); pWow64DisableWow64FsRedirection = (void *)GetProcAddress(kernel32, "Wow64DisableWow64FsRedirection");
pWow64RevertWow64FsRedirection = (void *)GetProcAddress(kernel32, "Wow64RevertWow64FsRedirection"); pWow64RevertWow64FsRedirection = (void *)GetProcAddress(kernel32, "Wow64RevertWow64FsRedirection");
pResolveDelayLoadedAPI = (void *)GetProcAddress(kernel32, "ResolveDelayLoadedAPI"); pResolveDelayLoadedAPI = (void *)GetProcAddress(kernel32, "ResolveDelayLoadedAPI");
pLoadPackagedLibrary = (void *)GetProcAddress(kernel32, "LoadPackagedLibrary");
if (pIsWow64Process) pIsWow64Process( GetCurrentProcess(), &is_wow64 ); if (pIsWow64Process) pIsWow64Process( GetCurrentProcess(), &is_wow64 );
GetSystemInfo( &si ); GetSystemInfo( &si );
...@@ -3986,6 +4004,7 @@ START_TEST(loader) ...@@ -3986,6 +4004,7 @@ START_TEST(loader)
test_import_resolution(); test_import_resolution();
test_ExitProcess(); test_ExitProcess();
test_InMemoryOrderModuleList(); test_InMemoryOrderModuleList();
test_LoadPackagedLibrary();
test_wow64_redirection(); test_wow64_redirection();
test_dll_file( "ntdll.dll" ); test_dll_file( "ntdll.dll" );
test_dll_file( "kernel32.dll" ); test_dll_file( "kernel32.dll" );
......
...@@ -926,7 +926,7 @@ ...@@ -926,7 +926,7 @@
@ stdcall LoadLibraryExA( str long long) @ stdcall LoadLibraryExA( str long long)
@ stdcall LoadLibraryExW(wstr long long) @ stdcall LoadLibraryExW(wstr long long)
@ stdcall LoadLibraryW(wstr) @ stdcall LoadLibraryW(wstr)
# @ stub LoadPackagedLibrary @ stdcall LoadPackagedLibrary(wstr long)
@ stdcall LoadResource(long long) @ stdcall LoadResource(long long)
@ stdcall LoadStringA(long long ptr long) @ stdcall LoadStringA(long long ptr long)
@ stub LoadStringBaseExW @ stub LoadStringBaseExW
......
...@@ -535,6 +535,17 @@ HMODULE WINAPI DECLSPEC_HOTPATCH LoadLibraryExW( LPCWSTR name, HANDLE file, DWOR ...@@ -535,6 +535,17 @@ HMODULE WINAPI DECLSPEC_HOTPATCH LoadLibraryExW( LPCWSTR name, HANDLE file, DWOR
} }
/***********************************************************************
* LoadPackagedLibrary (kernelbase.@)
*/
HMODULE WINAPI /* DECLSPEC_HOTPATCH */ LoadPackagedLibrary( LPCWSTR name, DWORD reserved )
{
FIXME( "semi-stub, name %s, reserved %#x.\n", debugstr_w(name), reserved );
SetLastError( APPMODEL_ERROR_NO_PACKAGE );
return NULL;
}
/**************************************************************************** /****************************************************************************
* RemoveDllDirectory (kernelbase.@) * RemoveDllDirectory (kernelbase.@)
*/ */
......
...@@ -2418,6 +2418,7 @@ WINBASEAPI HMODULE WINAPI LoadLibraryExA(LPCSTR,HANDLE,DWORD); ...@@ -2418,6 +2418,7 @@ WINBASEAPI HMODULE WINAPI LoadLibraryExA(LPCSTR,HANDLE,DWORD);
WINBASEAPI HMODULE WINAPI LoadLibraryExW(LPCWSTR,HANDLE,DWORD); WINBASEAPI HMODULE WINAPI LoadLibraryExW(LPCWSTR,HANDLE,DWORD);
#define LoadLibraryEx WINELIB_NAME_AW(LoadLibraryEx) #define LoadLibraryEx WINELIB_NAME_AW(LoadLibraryEx)
WINBASEAPI DWORD WINAPI LoadModule(LPCSTR,LPVOID); WINBASEAPI DWORD WINAPI LoadModule(LPCSTR,LPVOID);
WINBASEAPI HMODULE WINAPI LoadPackagedLibrary(LPCWSTR,DWORD);
WINBASEAPI HGLOBAL WINAPI LoadResource(HMODULE,HRSRC); WINBASEAPI HGLOBAL WINAPI LoadResource(HMODULE,HRSRC);
WINBASEAPI HLOCAL WINAPI LocalAlloc(UINT,SIZE_T) __WINE_ALLOC_SIZE(2); WINBASEAPI HLOCAL WINAPI LocalAlloc(UINT,SIZE_T) __WINE_ALLOC_SIZE(2);
WINBASEAPI SIZE_T WINAPI LocalCompact(UINT); WINBASEAPI SIZE_T WINAPI LocalCompact(UINT);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment