la función CreateCompatibleBitMap, es solamente un wrapper a api de windows, y aparenta estar correcta, a exepcion de que los parametros numero 2 y 3 segun el SDK de MS deben ser Enteros y no Long como esta en codigo de FWH, pero aun así no debería haber problemas, asi que no es por aca el problemas
ya validamos el valor del primer parametro pasado, veamos la validacion de los dos ultimos parametros.
es muy probable que en la estructura oRect sea el problema a falta de saber el valor de cBuf
- Code: Select all Expand view
...
oRect := TRect():New( 0, 0, Bin2L( SubStr( cBuf, 21, 4 ) ) / 2, ;
Bin2L( SubStr( cBuf, 17, 4 ) ) / 2 )
...
hBmp := CreateCompatibleBitmap( hDC1, oRect:nWidth, oRect:nHeight )
...
- Code: Select all Expand view
#pragma BEGINDUM
#include <Windows.h>
#include <hbapi.h>
HB_FUNC( CREATECOMPATIBLEBITMAP ) // hDC, nWidth, nHeight
{
/* hb_retnl( ( LONG ) CreateCompatibleBitmap( ( HDC ) hb_parnl( 1 ), hb_parnl( 2 ), hb_parnl( 3 ) ) );*/
hb_retnl( ( LONG ) CreateCompatibleBitmap( ( HDC ) hb_parnl( 1 ), hb_parni( 2 ), hb_parni( 3 ) ) );
}
#pragma ENDDUMP
HBITMAP CreateCompatibleBitmap(
_In_ HDC hdc,
_In_ int nWidth,
_In_ int nHeight
);
Parameters
hdc [in]
A handle to a device context.
nWidth [in]
The bitmap width, in pixels.
nHeight [in]
The bitmap height, in pixels.
Return value
If the function succeeds, the return value is a handle to the compatible bitmap (DDB).