Hi

wapi_gdi32.c  OR  wapi_gdi.c ( removing 32, may contain gdi32 or gdi++
functions )

hbwapi.h
=======
#define wapi_parwparam( n )  ( ( WPARAM )  ( HB_PTRDIFF ) hb_parnint( n ) )
#define wapi_parlparam( n )  ( ( LPARAM )  ( HB_PTRDIFF ) hb_parnint( n ) )
#define wapi_parhandle( n )  ( ( HANDLE )  ( HB_PTRDIFF ) hb_parnint( n ) )
#define wapi_parhwnd( n )    ( ( HWND )    ( HB_PTRDIFF ) hb_parnint( n ) )
#define wapi_parwndproc( n ) ( ( WNDPROC ) ( HB_PTRDIFF ) hb_parnint( n ) )
#define wapi_parhdc( n )     ( ( HDC )     ( HB_PTRDIFF ) hb_parnint( n ) )
#define wapi_parcolor( n )   ( ( COLORREF )( HB_PTRDIFF ) hb_parnint( n ) )
#define wapi_parstruct( n ) ( hb_parc( n ) )

#define wapi_rethandle( n )  ( hb_retnint( ( HB_PTRDIFF ) n ) )
#define wapi_retstruct( x )  ( hb_retc( x ) )

#define wapi_more_most_often_used_types( x ) (...)

#define HB_HWND        HWND
#define HB_COLORREF  COLORREF
#define HB_HDC          HDC
// etc.

/*      IMO, we must avoid the direct API types at the API level       */


wapi_gdi.c
========
/*
   All functions prefixed with WAPI_* will accept parameters in 
   the same order and types, including structures. Only in cases
   where a complex structure is involved, an array of same number
   of elements corresponding members of the structure. If both
   can be implemented, the better it could be.
*/
#include <windows.h>
#include <gdi32.h>
#include "hbwapi.h"

HB_FUNC( WAPI_PRINTDLG )
{
   PRINTDLG *pd = hb_parc( 1 );  // structure WHEREEVER possible
   ...
   wapi_retstruct( pd );
}


win_printing.c  // depending upon the functions classification  
==========
#include <windows.h>
#include <gdi32.h>
#include "hbwapi.h"

#include "win_printing.h"  // If any

HB_FUNC( WIN_PRINTDLG )
{
   HB_HWND hwnd = wapi_parhwnd( 1 );
   HB_INT    iCopies = hb_parni( 2 ); 
}

HB_FUNC( WIN_GETDEFAULTPRINTER )
{
   ...
   ...
   hb_retl( GetDefaultPrinter( ... ) );
}


A rough draft.
Continue...

Regards
Pritpal Bedi

-- 
View this message in context: 
http://www.nabble.com/SF.net-SVN%3A-harbour-project%3A-10164--trunk-harbour-tp21821360p21842486.html
Sent from the Harbour - Dev mailing list archive at Nabble.com.

_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to