mirror of
https://github.com/reactos/reactos.git
synced 2024-06-29 01:12:06 +00:00
- Use LoadLibrary and only free it only when loaded.
svn path=/trunk/; revision=60862
This commit is contained in:
parent
821b74d168
commit
d6132d4c02
|
@ -241,8 +241,7 @@ VersionRegisterClass(
|
|||
{
|
||||
_SEH2_TRY
|
||||
{
|
||||
hLibModule = GetModuleHandleW( comctl32W );
|
||||
if (!hLibModule) hLibModule = LoadLibraryW(comctl32W);
|
||||
hLibModule = LoadLibraryW(comctl32W);
|
||||
if ( hLibModule )
|
||||
{
|
||||
if ((pRegisterClassNameW = (void*) GetProcAddress(hLibModule, "RegisterClassNameW")))
|
||||
|
|
|
@ -571,8 +571,9 @@ User32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength)
|
|||
WPARAM wParam = 0;
|
||||
LPARAM lParam = 0;
|
||||
LRESULT Result = 0;
|
||||
BOOL Hit = FALSE;
|
||||
BOOL Hit = FALSE, Loaded = FALSE;
|
||||
HMODULE mod = NULL;
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
|
||||
Common = (PHOOKPROC_CALLBACK_ARGUMENTS) Arguments;
|
||||
|
||||
|
@ -587,6 +588,10 @@ User32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength)
|
|||
{
|
||||
ERR("Failed to load Hook Module.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
Loaded = TRUE; // Free it only when loaded.
|
||||
}
|
||||
}
|
||||
if (mod)
|
||||
{
|
||||
|
@ -634,7 +639,7 @@ User32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength)
|
|||
lParam = Common->lParam;
|
||||
break;
|
||||
default:
|
||||
if (mod) FreeLibrary(mod);
|
||||
if (Loaded) FreeLibrary(mod);
|
||||
ERR("HCBT_ not supported = %d\n", Common->Code);
|
||||
return ZwCallbackReturn(NULL, 0, STATUS_NOT_SUPPORTED);
|
||||
}
|
||||
|
@ -758,15 +763,16 @@ User32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength)
|
|||
_SEH2_END;
|
||||
break;
|
||||
default:
|
||||
if (mod) FreeLibrary(mod);
|
||||
if (Loaded) FreeLibrary(mod);
|
||||
return ZwCallbackReturn(NULL, 0, STATUS_NOT_SUPPORTED);
|
||||
}
|
||||
if (Hit)
|
||||
{
|
||||
ERR("Hook Exception! Id: %d, Code %d, Proc 0x%x\n",Common->HookId,Common->Code,Proc);
|
||||
Status = STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
if (mod) FreeLibrary(mod);
|
||||
return ZwCallbackReturn(&Result, sizeof(LRESULT), STATUS_SUCCESS);
|
||||
if (Loaded) FreeLibrary(mod);
|
||||
return ZwCallbackReturn(&Result, sizeof(LRESULT), Status);
|
||||
}
|
||||
|
||||
NTSTATUS WINAPI
|
||||
|
|
Loading…
Reference in a new issue