2008-06-17 18:49 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/gtclip.c
! Fixed get/set clipboard when UNICODE is #defined.
(WinCE mostly).
! Fixed get/set clipboard when format is CF_UNICODETEXT.
(untested, please someone review me)
! Fixed get clipboard when CF_TEXT/CF_OEMTEXT format
is used, so that an additionaly zero byte won't be
appended anymore to the returned string.
[TOMERGE RC1 if correct]
* source/rtl/gtwvt/gtwvt.c
* "HARBOUR_WVT" -> "Harbour WVT". This text is visible,
so it's better to make it "desktop friendlier"".
[TOMERGE RC1]
This commit is contained in:
@@ -8,6 +8,22 @@
|
||||
2008-12-31 13:59 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2008-06-17 18:49 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
|
||||
* source/rtl/gtclip.c
|
||||
! Fixed get/set clipboard when UNICODE is #defined.
|
||||
(WinCE mostly).
|
||||
! Fixed get/set clipboard when format is CF_UNICODETEXT.
|
||||
(untested, please someone review me)
|
||||
! Fixed get clipboard when CF_TEXT/CF_OEMTEXT format
|
||||
is used, so that an additionaly zero byte won't be
|
||||
appended anymore to the returned string.
|
||||
[TOMERGE RC1 if correct]
|
||||
|
||||
* source/rtl/gtwvt/gtwvt.c
|
||||
* "HARBOUR_WVT" -> "Harbour WVT". This text is visible,
|
||||
so it's better to make it "desktop friendlier"".
|
||||
[TOMERGE RC1]
|
||||
|
||||
2008-06-17 13:28 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
|
||||
* contrib/hbmzip/hbmzip.ch
|
||||
* contrib/hbmzip/hbmzip.c
|
||||
|
||||
@@ -100,15 +100,23 @@ BOOL hb_gt_w32_setClipboard( UINT uFormat, char * szClipData, ULONG ulLen )
|
||||
EmptyClipboard();
|
||||
|
||||
/* Allocate a global memory object for the text. */
|
||||
hglbCopy = GlobalAlloc( GMEM_MOVEABLE, ulLen + 1 );
|
||||
hglbCopy = GlobalAlloc( GMEM_MOVEABLE, uFormat == CF_UNICODETEXT ? ( ulLen + 1 ) * sizeof( wchar_t ) : ulLen + 1 );
|
||||
if( hglbCopy )
|
||||
{
|
||||
/* Lock the handle and copy the text to the buffer. */
|
||||
lptstrCopy = ( LPTSTR ) GlobalLock( hglbCopy );
|
||||
if( lptstrCopy )
|
||||
{
|
||||
HB_TCHAR_SETTO( lptstrCopy, szClipData, ulLen );
|
||||
lptstrCopy[ ulLen ] = '\0';
|
||||
if( uFormat == CF_UNICODETEXT )
|
||||
{
|
||||
hb_mbtowcset( lptstrCopy, szClipData, ulLen );
|
||||
lptstrCopy[ ulLen * sizeof( wchar_t ) ] = L'\0';
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy( lptstrCopy, szClipData, ulLen );
|
||||
lptstrCopy[ ulLen ] = '\0';
|
||||
}
|
||||
fResult = TRUE;
|
||||
}
|
||||
GlobalUnlock( hglbCopy );
|
||||
@@ -122,27 +130,44 @@ BOOL hb_gt_w32_setClipboard( UINT uFormat, char * szClipData, ULONG ulLen )
|
||||
|
||||
BOOL hb_gt_w32_getClipboard( UINT uFormat, char ** pszClipData, ULONG *pulLen )
|
||||
{
|
||||
HGLOBAL hglb;
|
||||
LPTSTR lptstr;
|
||||
|
||||
*pulLen = 0;
|
||||
*pszClipData = NULL;
|
||||
if( IsClipboardFormatAvailable( uFormat ) && OpenClipboard( NULL ) )
|
||||
{
|
||||
hglb = GetClipboardData( uFormat );
|
||||
HGLOBAL hglb = GetClipboardData( uFormat );
|
||||
if( hglb )
|
||||
{
|
||||
lptstr = ( LPTSTR ) GlobalLock( hglb );
|
||||
LPTSTR lptstr = ( LPTSTR ) GlobalLock( hglb );
|
||||
if( lptstr != NULL )
|
||||
{
|
||||
*pulLen = GlobalSize( hglb );
|
||||
|
||||
if( *pulLen )
|
||||
switch( uFormat )
|
||||
{
|
||||
*pszClipData = ( char * ) hb_xgrab( *pulLen + 1 );
|
||||
HB_TCHAR_GETFROM( *pszClipData, lptstr, *pulLen );
|
||||
( *pszClipData )[ *pulLen ] = '\0';
|
||||
case CF_UNICODETEXT:
|
||||
*pulLen = wcslen( lptstr );
|
||||
if( *pulLen )
|
||||
*pszClipData = hb_wctomb( lptstr );
|
||||
break;
|
||||
case CF_OEMTEXT:
|
||||
case CF_TEXT:
|
||||
*pulLen = strlen( lptstr );
|
||||
if( *pulLen )
|
||||
{
|
||||
*pszClipData = ( char * ) hb_xgrab( *pulLen + 1 );
|
||||
memcpy( *pszClipData, lptstr, *pulLen );
|
||||
( *pszClipData )[ *pulLen ] = '\0';
|
||||
}
|
||||
break;
|
||||
default:
|
||||
*pulLen = GlobalSize( hglb );
|
||||
if( *pulLen )
|
||||
{
|
||||
*pszClipData = ( char * ) hb_xgrab( *pulLen + 1 );
|
||||
memcpy( *pszClipData, lptstr, *pulLen );
|
||||
( *pszClipData )[ *pulLen ] = '\0';
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
GlobalUnlock( hglb );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1554,7 +1554,7 @@ static HWND hb_gt_wvt_CreateWindow( HINSTANCE hInstance, HINSTANCE hPrevInstance
|
||||
|
||||
hWnd = CreateWindow(
|
||||
s_szAppName, /* classname */
|
||||
TEXT( "HARBOUR_WVT" ), /* window name */
|
||||
s_szAppName, /* window name */
|
||||
WS_THICKFRAME|WS_OVERLAPPED|WS_CAPTION|
|
||||
WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX, /* style */
|
||||
0, /* x */
|
||||
@@ -1568,8 +1568,7 @@ static HWND hb_gt_wvt_CreateWindow( HINSTANCE hInstance, HINSTANCE hPrevInstance
|
||||
|
||||
if( hWnd == NULL )
|
||||
{
|
||||
MessageBox( NULL, TEXT( "Failed to create window." ),
|
||||
TEXT( "HARBOUR_WVT" ), MB_ICONERROR );
|
||||
MessageBox( NULL, TEXT( "Failed to create window." ), s_szAppName, MB_ICONERROR );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -2135,8 +2134,8 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
|
||||
&szClipboardData, &ulLen ) )
|
||||
{
|
||||
pInfo->pResult = hb_itemPutCLPtr( pInfo->pResult,
|
||||
szClipboardData,
|
||||
ulLen );
|
||||
szClipboardData,
|
||||
ulLen );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user