I have a 16-bit DLL which allocates memory via GlobalAlloc(GHND | GMEM_SHARE). The DLL posts messages with the HGLOBAL returned by GlobalAlloc to an HWND which is created by a 16-bit DLL in the same application. This gave me access to the memory created by the first DLL. I am converting the second DLL to 32-bits. I am having trouble calling GlobalLock in the 32-bit DLL on the handle returned by GlobalAlloc in the first 16-bit DLL (confused yet?). Does anyone have any idea how I can pull this off?