2009-12-09 20:11 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)

* contrib/hbwin/wapi_winbase.c
    + WAPI_WAITFORSINGLEOBJECT()
    + WAPI_WAITFORSINGLEOBJECTEX()
    + WAPI_WAITFORMULTIPLEOBJECT()
    + WAPI_WAITFORMULTIPLEOBJECTEX()
      Added new wrappers. Untested.
This commit is contained in:
Viktor Szakats
2009-12-09 19:13:10 +00:00
parent 72fcc24504
commit 5c46fcf535
2 changed files with 61 additions and 0 deletions

View File

@@ -17,6 +17,14 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-12-09 20:11 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbwin/wapi_winbase.c
+ WAPI_WAITFORSINGLEOBJECT()
+ WAPI_WAITFORSINGLEOBJECTEX()
+ WAPI_WAITFORMULTIPLEOBJECT()
+ WAPI_WAITFORMULTIPLEOBJECTEX()
Added new wrappers. Untested.
2009-12-09 19:36 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbqt/Makefile
* contrib/hbqt/hbqt.ch

View File

@@ -53,6 +53,7 @@
#define HB_OS_WIN_USED
#include "hbapi.h"
#include "hbapierr.h"
#include "hbwinuni.h"
#include "hbwapi.h"
@@ -76,6 +77,58 @@ HB_FUNC( WAPI_GETCURRENTTHREAD )
wapi_ret_HANDLE( GetCurrentThread() );
}
HB_FUNC( WAPI_WAITFORSINGLEOBJECT )
{
hb_retnl( WaitForSingleObject( wapi_par_HANDLE( 1 ), ( DWORD ) hb_parnl( 2 ) ) );
}
HB_FUNC( WAPI_WAITFORSINGLEOBJECTEX )
{
hb_retnl( WaitForSingleObjectEx( wapi_par_HANDLE( 1 ), ( DWORD ) hb_parnl( 2 ), hb_parl( 3 ) ) );
}
HB_FUNC( WAPI_WAITFORMULTIPLEOBJECT )
{
PHB_ITEM pArray = hb_param( 2, HB_IT_ARRAY );
HB_SIZE nLen = pArray ? hb_arrayLen( pArray ) : 0;
if( nLen > 0 && nLen <= MAXIMUM_WAIT_OBJECTS )
{
HANDLE * handles = ( HANDLE * ) hb_xgrab( nLen * sizeof( HANDLE ) );
HB_SIZE nPos;
for( nPos = 0; nPos < nLen; ++nPos )
handles[ nPos ] = hb_arrayGetPtr( pArray, nPos + 1 );
hb_retnl( WaitForMultipleObjects( nLen, handles, hb_parl( 3 ), ( DWORD ) hb_parnl( 4 ) ) );
hb_xfree( handles );
}
else
hb_errRT_BASE( EG_ARG, 1001, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
}
HB_FUNC( WAPI_WAITFORMULTIPLEOBJECTEX )
{
PHB_ITEM pArray = hb_param( 2, HB_IT_ARRAY );
HB_SIZE nLen = pArray ? hb_arrayLen( pArray ) : 0;
if( nLen > 0 && nLen <= MAXIMUM_WAIT_OBJECTS )
{
HANDLE * handles = ( HANDLE * ) hb_xgrab( nLen * sizeof( HANDLE ) );
HB_SIZE nPos;
for( nPos = 0; nPos < nLen; ++nPos )
handles[ nPos ] = hb_arrayGetPtr( pArray, nPos + 1 );
hb_retnl( WaitForMultipleObjectsEx( nLen, handles, hb_parl( 3 ), ( DWORD ) hb_parnl( 4 ), hb_parl( 5 ) ) );
hb_xfree( handles );
}
else
hb_errRT_BASE( EG_ARG, 1001, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
}
HB_FUNC( WAPI_SETPROCESSWORKINGSETSIZE )
{
#if ! defined( HB_OS_WIN_CE )