diff --git a/harbour/ChangeLog b/harbour/ChangeLog index f76adb972d..5f8c1c9e2f 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,19 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-02-13 23:15 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/contrib/hbwin/wapi_winbase.c + ! fixed WAPI_GETPROCADDRESS() to work in WinCE builds + (missing in previous ChangeLog entry) + + * harbour/contrib/hbwin/wapi_winbase.c + ! cleaned library handle usage in WAPI_GETLONGPATHNAME() + + * harbour/contrib/hbwin/wapi_winbase.c + * harbour/contrib/hbwin/wapi_winbase_mutex.c + * added small description for few functions excluded by + HB_OS_WIN_CE macro. + 2010-02-13 22:41 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * contrib/hbwin/hbdyn.c ! Fixed to honor length when returning HB_DYN_CTYPE_CHAR_UNSIGNED_PTR diff --git a/harbour/contrib/hbwin/wapi_winbase.c b/harbour/contrib/hbwin/wapi_winbase.c index 3d38183e6b..c88707e158 100644 --- a/harbour/contrib/hbwin/wapi_winbase.c +++ b/harbour/contrib/hbwin/wapi_winbase.c @@ -91,6 +91,10 @@ HB_FUNC( WAPI_WAITFORSINGLEOBJECTEX ) DWORD dwLastError; #if defined( HB_OS_WIN_CE ) + /* WinCE (WinMobile6) does not support + * WaitFor{Single,Multiple}Object[Ex]() though it supports: + * MsgWaitFor{Single,Multiple}Object[Ex]() + */ dwResult = 0; dwLastError = ERROR_INVALID_FUNCTION; #else @@ -152,6 +156,10 @@ HB_FUNC( WAPI_WAITFORMULTIPLEOBJECTSEX ) else hb_errRT_BASE( EG_ARG, 1001, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); #else + /* WinCE (WinMobile6) does not support + * WaitFor{Single,Multiple}Object[Ex]() though it supports: + * MsgWaitFor{Single,Multiple}Object[Ex]() + */ hbwapi_SetLastError( ERROR_INVALID_FUNCTION ); hb_retnl( 0 ); #endif @@ -163,6 +171,7 @@ HB_FUNC( WAPI_SETPROCESSWORKINGSETSIZE ) DWORD dwLastError; #if defined( HB_OS_WIN_CE ) + /* WinCE (till WinMobile6) does not support Working Set functions */ bResult = FALSE; dwLastError = ERROR_INVALID_FUNCTION; #else @@ -302,6 +311,10 @@ HB_FUNC( WAPI_MULDIV ) hb_retni( MulDiv( hb_parni( 1 ), hb_parni( 2 ), hb_parni( 3 ) ) ); } +#if !defined( HB_OS_WIN_CE ) + +/* WinCE does not support GetShortPathName()/GetLongPathName() functions */ + typedef DWORD ( WINAPI * _HB_GETPATHNAME ) ( LPCTSTR, LPTSTR, DWORD ); static void s_getPathName( _HB_GETPATHNAME getPathName ) @@ -361,13 +374,16 @@ HB_FUNC( WAPI_GETLONGPATHNAME ) HMODULE hLib = LoadLibrary( TEXT( "kernel32.dll" ) ); if( hLib ) - { getPathName = ( _HB_GETPATHNAME ) GetProcAddress( hLib, HBTEXT( "GetLongPathName" ) ); - FreeLibrary( hLib ); - } + if( !getPathName ) getPathName = GetShortPathName; s_getPathName( getPathName ); + + if( hLib ) + FreeLibrary( hLib ); } + +#endif diff --git a/harbour/contrib/hbwin/wapi_winbase_mutex.c b/harbour/contrib/hbwin/wapi_winbase_mutex.c index 2cae58b6f3..8da6df5f6c 100644 --- a/harbour/contrib/hbwin/wapi_winbase_mutex.c +++ b/harbour/contrib/hbwin/wapi_winbase_mutex.c @@ -113,6 +113,7 @@ HB_FUNC( WAPI_OPENMUTEX ) hb_strfree( hName ); #else + /* WinCE (WinMobile6) does not support OpenMutex() */ hb_retptr( NULL ); #endif }