GlobalAlloc as GlobalAlloc16 should round size to 32.
Call SetLastError in GlobalLock.
diff --git a/memory/global.c b/memory/global.c
index 0b00ee2..57d1e7f 100644
--- a/memory/global.c
+++ b/memory/global.c
@@ -1049,6 +1049,7 @@
if (!pintern) return NULL;
if(size)
{
+ size = (size + 0x1f) & ~0x1f;
if (!(palloc=HeapAlloc(heap, hpflags, size+sizeof(HGLOBAL)))) {
HeapFree(heap, 0, pintern);
return NULL;
@@ -1097,6 +1098,7 @@
{
WARN("invalid handle\n");
palloc=(LPVOID) NULL;
+ SetLastError(ERROR_INVALID_HANDLE);
}
/* HeapUnlock(GetProcessHeap()); */;
return palloc;