Arguments->wParam = wParam;
Arguments->lParam = lParam;
Arguments->lParamBufferSize = lParamBufferSize;
- ResultPointer = Arguments;
+ ResultPointer = NULL;
ResultLength = ArgumentLength;
UserLeaveCo();
&ResultPointer,
&ResultLength);
+ /* Simulate old behaviour: copy into our local buffer */
+ RtlMoveMemory(Arguments, ResultPointer, ArgumentLength);
+
UserEnterCo();
if (!NT_SUCCESS(Status))
PVOID ResultPointer;
ULONG ResultLength;
- ResultPointer = &Result;
+ ResultPointer = NULL;
ResultLength = sizeof(LRESULT);
UserLeaveCo();
&ResultPointer,
&ResultLength);
+ /* Simulate old behaviour: copy into our local buffer */
+ Result = *(LRESULT*)ResultPointer;
+
UserEnterCo();
if (!NT_SUCCESS(Status))
ULONG ResultLength;
BOOL DefaultCursor = TRUE;
- ResultPointer = &Result;
+ ResultPointer = NULL;
ResultLength = sizeof(LRESULT);
UserLeaveCo();
&ResultPointer,
&ResultLength);
+ /* Simulate old behaviour: copy into our local buffer */
+ Result = *(LRESULT*)ResultPointer;
+
UserEnterCo();
if (!NT_SUCCESS(Status))
break;
}
- ResultPointer = &Result;
+ ResultPointer = NULL;
ResultLength = sizeof(LRESULT);
UserLeaveCo();
&ResultPointer,
&ResultLength);
+ /* Simulate old behaviour: copy into our local buffer */
+ Result = *(LRESULT*)ResultPointer;
+
UserEnterCo();
IntCbFreeMemory(Argument);