Added some SetLastError()s in GetProcAddress() and LoadLibrary().

This commit is contained in:
Marcus Meissner 1999-04-03 16:23:47 +00:00 committed by Alexandre Julliard
parent cc08b38f95
commit 574ef76b9f

View file

@ -1179,6 +1179,11 @@ HMODULE WINAPI LoadLibraryEx32W16( LPCSTR libname, HANDLE16 hf,
HMODULE WINAPI LoadLibraryExA(LPCSTR libname,HFILE hfile,DWORD flags) HMODULE WINAPI LoadLibraryExA(LPCSTR libname,HFILE hfile,DWORD flags)
{ {
HMODULE hmod; HMODULE hmod;
if (!libname) {
SetLastError(ERROR_INVALID_PARAMETER);
return 0;
}
hmod = MODULE_LoadLibraryExA( libname, hfile, flags ); hmod = MODULE_LoadLibraryExA( libname, hfile, flags );
if ( hmod >= 32 ) if ( hmod >= 32 )
@ -1188,6 +1193,7 @@ HMODULE WINAPI LoadLibraryExA(LPCSTR libname,HFILE hfile,DWORD flags)
/* Initialize DLL just loaded */ /* Initialize DLL just loaded */
MODULE_InitializeDLLs( hmod, DLL_PROCESS_ATTACH, NULL ); MODULE_InitializeDLLs( hmod, DLL_PROCESS_ATTACH, NULL );
/* FIXME: check for failure, SLE(ERROR_DLL_INIT_FAILED) */
} }
return hmod; return hmod;
@ -1365,21 +1371,29 @@ FARPROC MODULE_GetProcAddress(
BOOL snoop ) BOOL snoop )
{ {
WINE_MODREF *wm = MODULE32_LookupHMODULE( hModule ); WINE_MODREF *wm = MODULE32_LookupHMODULE( hModule );
FARPROC retproc;
if (HIWORD(function)) if (HIWORD(function))
TRACE(win32,"(%08lx,%s)\n",(DWORD)hModule,function); TRACE(win32,"(%08lx,%s)\n",(DWORD)hModule,function);
else else
TRACE(win32,"(%08lx,%p)\n",(DWORD)hModule,function); TRACE(win32,"(%08lx,%p)\n",(DWORD)hModule,function);
if (!wm) if (!wm) {
SetLastError(ERROR_INVALID_HANDLE);
return (FARPROC)0; return (FARPROC)0;
}
switch (wm->type) switch (wm->type)
{ {
case MODULE32_PE: case MODULE32_PE:
return PE_FindExportedFunction( wm, function, snoop ); retproc = PE_FindExportedFunction( wm, function, snoop );
if (!retproc) SetLastError(ERROR_PROC_NOT_FOUND);
return retproc;
case MODULE32_ELF: case MODULE32_ELF:
return ELF_FindExportedFunction( wm, function); retproc = ELF_FindExportedFunction( wm, function);
if (!retproc) SetLastError(ERROR_PROC_NOT_FOUND);
return retproc;
default: default:
ERR(module,"wine_modref type %d not handled.\n",wm->type); ERR(module,"wine_modref type %d not handled.\n",wm->type);
SetLastError(ERROR_INVALID_HANDLE);
return (FARPROC)0; return (FARPROC)0;
} }
} }