2010-03-08 12:28 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/diskspac.c
* src/rtl/disksphb.c
+ Added comment about the reason why GetDiskFreeSpaceEx()
is called dynamically (win95 first edition support).
+ Added support for HB_NO_WIN95 build-time flag to drop
Win95 compatibility. Unfortunately current dynamic load
trick fails with UNICOWS, returning zero for disk
space related calls in this scenario. If we drop the
dynamic call, we lose support for Win95 first edition,
but these functions will work properly on Win95b/98/ME
in return. I'm still thinking about it, but maybe it's
better to drop Win95 first edition support altogether
and make newer versions work properly. Any opinions?
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_wingdi_font.c
! Fixed to use WIDE/ANSI versions of dynamically executed
functions according to UNICODE setting.
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* config/win/global.mk
! Stepping back to link against wsock32 instead of ws2_32.
The only reason is Win95 (even OSR2) compatibility.
This is a little bit less efficient unfortunately.
* src/rtl/hbsocket.c
! Fixed to use WSAioctl via dynamic call for non WinCE
builds, and if HB_NO_WIN95 macro is no defined.
WSAioctl is present in ws2_32.dll, which .dll isn't
available on Win95.
; Not tested since I don't know how to test it, pls
review and test.
; NOTE: There seem to exist a package which add ws2_32
support for Win95, but I couldn't find it, if
someone has, we can drop this ugly trick and
simply document the requirement.
* src/rtl/gtwin/gtwin.c
* Formatting.
This commit is contained in:
@@ -17,6 +17,49 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2010-03-08 12:28 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* src/rtl/diskspac.c
|
||||
* src/rtl/disksphb.c
|
||||
+ Added comment about the reason why GetDiskFreeSpaceEx()
|
||||
is called dynamically (win95 first edition support).
|
||||
+ Added support for HB_NO_WIN95 build-time flag to drop
|
||||
Win95 compatibility. Unfortunately current dynamic load
|
||||
trick fails with UNICOWS, returning zero for disk
|
||||
space related calls in this scenario. If we drop the
|
||||
dynamic call, we lose support for Win95 first edition,
|
||||
but these functions will work properly on Win95b/98/ME
|
||||
in return. I'm still thinking about it, but maybe it's
|
||||
better to drop Win95 first edition support altogether
|
||||
and make newer versions work properly. Any opinions?
|
||||
|
||||
* contrib/hbwin/wapi_winbase.c
|
||||
* contrib/hbwin/wapi_wingdi_font.c
|
||||
! Fixed to use WIDE/ANSI versions of dynamically executed
|
||||
functions according to UNICODE setting.
|
||||
|
||||
* bin/hb-mkdyn.sh
|
||||
* bin/hb-func.sh
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
* config/win/global.mk
|
||||
! Stepping back to link against wsock32 instead of ws2_32.
|
||||
The only reason is Win95 (even OSR2) compatibility.
|
||||
This is a little bit less efficient unfortunately.
|
||||
|
||||
* src/rtl/hbsocket.c
|
||||
! Fixed to use WSAioctl via dynamic call for non WinCE
|
||||
builds, and if HB_NO_WIN95 macro is no defined.
|
||||
WSAioctl is present in ws2_32.dll, which .dll isn't
|
||||
available on Win95.
|
||||
; Not tested since I don't know how to test it, pls
|
||||
review and test.
|
||||
; NOTE: There seem to exist a package which add ws2_32
|
||||
support for Win95, but I couldn't find it, if
|
||||
someone has, we can drop this ugly trick and
|
||||
simply document the requirement.
|
||||
|
||||
* src/rtl/gtwin/gtwin.c
|
||||
* Formatting.
|
||||
|
||||
2010-03-08 09:48 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* contrib/hbqt/gtqtc/gtqtcs.hbc
|
||||
* contrib/hbqt/gtqtc/gtqtc.hbc
|
||||
|
||||
@@ -209,7 +209,7 @@ mk_hbtools()
|
||||
fi
|
||||
if [ "${HB_COMPILER}" = "mingw" ] || \
|
||||
[ "${HB_COMPILER}" = "mingw64" ]; then
|
||||
HB_SYS_LIBS="${HB_SYS_LIBS} -luser32 -lwinspool -lgdi32 -lcomctl32 -ladvapi32 -lcomdlg32 -lole32 -loleaut32 -luuid -lws2_32"
|
||||
HB_SYS_LIBS="${HB_SYS_LIBS} -luser32 -lwinspool -lgdi32 -lcomctl32 -ladvapi32 -lcomdlg32 -lole32 -loleaut32 -luuid -lwsock32"
|
||||
elif [ "${HB_COMPILER}" = "mingwarm" ]; then
|
||||
HB_SYS_LIBS="${HB_SYS_LIBS} -lwininet -lws2 -lcommdlg -lcommctrl -luuid -lole32 -loleaut32"
|
||||
elif [ "${HB_COMPILER}" = "djgpp" ]; then
|
||||
@@ -823,7 +823,7 @@ mk_hblibso()
|
||||
hb_libs="${hb_libs//hbzlib/}"
|
||||
fi
|
||||
if [ "${HB_COMPILER}" = "mingw" ] || [ "${HB_COMPILER}" = "mingw64" ]; then
|
||||
linker_options="${linker_options} -luser32 -lwinspool -lgdi32 -lcomctl32 -ladvapi32 -lcomdlg32 -lole32 -loleaut32 -luuid -lws2_32"
|
||||
linker_options="${linker_options} -luser32 -lwinspool -lgdi32 -lcomctl32 -ladvapi32 -lcomdlg32 -lole32 -loleaut32 -luuid -lwsock32"
|
||||
elif [ "${HB_COMPILER}" = "mingwarm" ]; then
|
||||
linker_options="${linker_options} -lwininet -lws2 -lcommdlg -lcommctrl -luuid -lole32 -loleaut32"
|
||||
elif [ "${HB_COMPILER}" = "djgpp" ]; then
|
||||
|
||||
@@ -137,7 +137,7 @@ elif [ "${SLIB_EXT}" = ".dll" ]; then
|
||||
if [ "$HB_COMPILER" = "mingwarm" ]; then
|
||||
SYSLIBS="-lws2"
|
||||
else
|
||||
SYSLIBS="-luser32 -lws2_32 -ladvapi32 -lgdi32"
|
||||
SYSLIBS="-luser32 -lwsock32 -ladvapi32 -lgdi32"
|
||||
fi
|
||||
# -Wl,--output-def,testdll.def,--out-implib,libtestdll.a
|
||||
${HB_CCPATH}${HB_CCPREFIX}gcc -shared -o "${FULLNAME}" $OBJLST ${linker_options} ${HB_USER_DFLAGS} ${SYSLIBS} ${HB_DLLIBS} && \
|
||||
|
||||
@@ -11,7 +11,7 @@ HB_GT_LIBS += gtwvt gtgui gtwin
|
||||
|
||||
# kernel32: needed by some compilers (pocc/watcom)
|
||||
# user32: *Clipboard*(), GetKeyState(), GetKeyboardState(), SetKeyboardState(), gtwvt stuff
|
||||
# ws2_32: hbsocket
|
||||
# wsock32: hbsocket
|
||||
# advapi32: GetUserName()
|
||||
# gdi32: gtwvt
|
||||
SYSLIBS += kernel32 user32 ws2_32 advapi32 gdi32
|
||||
SYSLIBS += kernel32 user32 wsock32 advapi32 gdi32
|
||||
|
||||
@@ -366,7 +366,11 @@ HB_FUNC( WAPI_GETLONGPATHNAME )
|
||||
{
|
||||
s_getPathNameAddr = ( _HB_GETPATHNAME )
|
||||
GetProcAddress( GetModuleHandle( TEXT( "kernel32.dll" ) ),
|
||||
"GetLongPathName" );
|
||||
#if defined( UNICODE )
|
||||
"GetLongPathNameW" );
|
||||
#else
|
||||
"GetLongPathNameA" );
|
||||
#endif
|
||||
if( !s_getPathNameAddr )
|
||||
s_getPathNameAddr = GetShortPathName;
|
||||
}
|
||||
|
||||
@@ -63,7 +63,12 @@ HB_FUNC( WAPI_ADDFONTRESOURCEEX )
|
||||
static _HB_ADDFONTRESOURCEEX s_pAddFontResourceEx = NULL;
|
||||
|
||||
if( ! s_pAddFontResourceEx )
|
||||
s_pAddFontResourceEx = ( _HB_ADDFONTRESOURCEEX ) GetProcAddress( GetModuleHandle( TEXT( "gdi32.dll" ) ), "AddFontResourceEx" );
|
||||
s_pAddFontResourceEx = ( _HB_ADDFONTRESOURCEEX ) GetProcAddress( GetModuleHandle( TEXT( "gdi32.dll" ) ),
|
||||
#if defined( UNICODE )
|
||||
"AddFontResourceExW" );
|
||||
#else
|
||||
"AddFontResourceExA" );
|
||||
#endif
|
||||
|
||||
if( s_pAddFontResourceEx )
|
||||
{
|
||||
@@ -88,7 +93,12 @@ HB_FUNC( WAPI_REMOVEFONTRESOURCEEX )
|
||||
static _HB_REMOVEFONTRESOURCEEX s_pRemoveFontResourceEx = NULL;
|
||||
|
||||
if( ! s_pRemoveFontResourceEx )
|
||||
s_pRemoveFontResourceEx = ( _HB_REMOVEFONTRESOURCEEX ) GetProcAddress( GetModuleHandle( TEXT( "gdi32.dll" ) ), "RemoveFontResourceEx" );
|
||||
s_pRemoveFontResourceEx = ( _HB_REMOVEFONTRESOURCEEX ) GetProcAddress( GetModuleHandle( TEXT( "gdi32.dll" ) ),
|
||||
#if defined( UNICODE )
|
||||
"RemoveFontResourceExW" );
|
||||
#else
|
||||
"RemoveFontResourceExA" );
|
||||
#endif
|
||||
|
||||
if( s_pRemoveFontResourceEx )
|
||||
{
|
||||
|
||||
@@ -144,7 +144,7 @@ HB_FUNC( DISKSPACE )
|
||||
lpPath[ 2 ] = TEXT( '\\' );
|
||||
lpPath[ 3 ] = TEXT( '\0' );
|
||||
|
||||
#if defined( HB_OS_WIN_CE )
|
||||
#if defined( HB_OS_WIN_CE ) || defined( HB_NO_WIN95 )
|
||||
|
||||
bError = ! GetDiskFreeSpaceEx( lpPath,
|
||||
( PULARGE_INTEGER ) &i64FreeBytesToCaller,
|
||||
@@ -153,6 +153,8 @@ HB_FUNC( DISKSPACE )
|
||||
if( ! bError )
|
||||
dSpace = HB_GET_LARGE_UINT( i64FreeBytesToCaller );
|
||||
#else
|
||||
/* NOTE: We need to call this function dynamically to maintain support
|
||||
Win95 first edition. It was introduced in Win95B (aka OSR2) [vszakats] */
|
||||
{
|
||||
typedef BOOL ( WINAPI * P_GDFSE )( LPCTSTR, PULARGE_INTEGER,
|
||||
PULARGE_INTEGER, PULARGE_INTEGER );
|
||||
|
||||
@@ -180,7 +180,7 @@ HB_FUNC( HB_DISKSPACE )
|
||||
|
||||
LPTSTR lpPath = HB_TCHAR_CONVTO( szPath );
|
||||
|
||||
#if defined( HB_OS_WIN_CE )
|
||||
#if defined( HB_OS_WIN_CE ) || defined( HB_NO_WIN95 )
|
||||
|
||||
fResult = GetDiskFreeSpaceEx( lpPath,
|
||||
( PULARGE_INTEGER ) &i64FreeBytesToCaller,
|
||||
@@ -211,6 +211,8 @@ HB_FUNC( HB_DISKSPACE )
|
||||
}
|
||||
}
|
||||
#else
|
||||
/* NOTE: We need to call this function dynamically to maintain support
|
||||
Win95 first edition. It was introduced in Win95B (aka OSR2) [vszakats] */
|
||||
{
|
||||
typedef BOOL ( WINAPI * P_GDFSE )( LPCTSTR, PULARGE_INTEGER,
|
||||
PULARGE_INTEGER, PULARGE_INTEGER );
|
||||
|
||||
@@ -225,7 +225,7 @@ typedef struct _CLIPKEYCODE
|
||||
/* Keypad keys */
|
||||
|
||||
|
||||
static const CLIPKEYCODE stdKeyTab[CLIP_STDKEY_COUNT] = {
|
||||
static const CLIPKEYCODE stdKeyTab[ CLIP_STDKEY_COUNT ] = {
|
||||
{ 32, 0, 0, 0, 0}, /* ' ' */
|
||||
{ 33, 0, 0, 0, 0}, /* '!' */
|
||||
{ 34, 0, 0, 0, 0}, /* '"' */
|
||||
|
||||
@@ -3199,8 +3199,17 @@ PHB_ITEM hb_socketGetIFaces( int af, HB_BOOL fNoAliases )
|
||||
void * pBuffer = hb_xgrab( dwBuffer );
|
||||
LPINTERFACE_INFO pIfInfo = ( LPINTERFACE_INFO ) pBuffer;
|
||||
|
||||
#if defined( HB_OS_WIN_CE ) || defined( HB_NO_WIN95 )
|
||||
if( WSAIoctl( sd, SIO_GET_INTERFACE_LIST, NULL, 0, pIfInfo, dwBuffer,
|
||||
&dwBuffer, 0, 0 ) != SOCKET_ERROR )
|
||||
#else
|
||||
LPFN_WSAIOCTL pWSAIoctl =
|
||||
( LPFN_WSAIOCTL ) GetProcAddress( GetModuleHandle( TEXT( "ws2_32.dll" ) ), "WSAIoctl" );
|
||||
|
||||
if( pWSAIoctl &&
|
||||
pWSAIoctl( sd, SIO_GET_INTERFACE_LIST, NULL, 0, pIfInfo, dwBuffer,
|
||||
&dwBuffer, 0, 0 ) != SOCKET_ERROR )
|
||||
#endif
|
||||
{
|
||||
int iCount = dwBuffer / sizeof( INTERFACE_INFO );
|
||||
|
||||
|
||||
@@ -1110,7 +1110,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
cBinExt := ".exe"
|
||||
cOptPrefix := "-/"
|
||||
/* NOTE: Some targets (watcom, pocc/xcc) need kernel32 explicitly. */
|
||||
l_aLIBSYSCORE := { "kernel32", "user32", "gdi32", "advapi32", "ws2_32" }
|
||||
l_aLIBSYSCORE := { "kernel32", "user32", "gdi32", "advapi32", "wsock32" }
|
||||
l_aLIBSYSMISC := { "winspool", "comctl32", "comdlg32", "shell32", "uuid", "ole32", "oleaut32", "mpr", "winmm", "mapi32", "imm32", "msimg32", "wininet" }
|
||||
CASE hbmk[ _HBMK_cPLAT ] == "wce"
|
||||
#if ! defined( __PLATFORM__UNIX )
|
||||
|
||||
Reference in New Issue
Block a user