question regarding dibsections
Marcus Meissner
marcus at jet.franken.de
Mon Apr 24 14:44:50 CDT 2006
Hi,
While debugging twain, I came across the nativexfer method, used by 60-70%
of all twain using programs.
It has some very unfortunate programming logic.
Here is a sample snippet from:
http://hp.vector.co.jp/authors/VA011973/prg_twain.htm
TW_UINT16 rc;
TW_UINT32 hBitmap;
TW_BOOL PendingXfers = TRUE;
LPBITMAPINFOHEADER lpDib;
hBitmap = NULL;
rc = lpfnDSM_Entry(pAppId,pSourceId,DG_IMAGE,DAT_IMAGENATIVEXFER,MSG_GET,(TW_MEMREF)&hBitmap);
lpDib = (LPBITMAPINFOHEADER)GlobalLock((void*)hBitmap);
/* ... */
if(lpdib!=NULL){
GlobalUnlock((void*)hBitmap);
GlobalFree((void*)hBitmap);
}
(hBitmap is the return value of CreateDIBSection()).
This sample code apparently assumes that GlobalLock(HBITMAP) gives it
a pointer to a BITMAPINFOHEADER.
We do not do this, for us HBITMAP is a regular 16bit GDI
handle. GlobalLock will not work on it :/
Any ideas?
Ciao, Marcus
More information about the wine-devel
mailing list