Francois Gouget <fgouget(a)free.fr> writes:
Grrr, HGLOBAL is not a void* pointer... yet => casts :-(
GlobalLock would be better... -- Alexandre Julliard julliard(a)winehq.com
On 8 Oct 2001, Alexandre Julliard wrote:
Francois Gouget <fgouget(a)free.fr> writes:
Grrr, HGLOBAL is not a void* pointer... yet => casts :-(
GlobalLock would be better...
The problem is that CommandLineToArgvW is supposed to return a pointer, not a handle. But I cannot do: hargv=GlobalAlloc(...); argv=GlobalLock(hargv); ... return argv; Because then the the memory object is going to be locked and freeing a locked memory object is bad according to the MSDN. And they don't say that you should to a GlobalUnlock before the GlobalFree. So I could do: hargv=GlobalAlloc(...); argv=GlobalLock(hargv); GlobalUnlock(hargv); ... return argv; After all this memory object is GMEM_FIXED, it has to since I return a pointer to it. But the MSDN says that in that case GlobalAlloc returns a pointer, not a mere handle. And Invoking GlobalLock+GlobalUnlock just to avoid a cast seems a bit extreme. Sigh. What a stupid memory API. -- Francois Gouget fgouget(a)free.fr http://fgouget.free.fr/ The nice thing about meditation is that it makes doing nothing quite respectable -- Paul Dean
participants (2)
-
Alexandre Julliard -
Francois Gouget