2010-01-22 01:25 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)

* contrib/hbtip/sendmail.prg
    ! Applied set of HB_SENDMAIL() patches sent by Francesco Perillo:
      - nTimeOut defaults to 10 seconds
      - check for actually receiving "250 " to EHLO and not waiting for timeout
      - don't wait for timeout
      - check for actually receiving "250 " to HELO and not waiting for timeout
      [TOMERGE 2.0]

  * contrib/hbwin/wapi_wingdi.c
    + Added TODO to WAPI_SELECTOBJECT() to implement reference counting
      when assigning an GC collected object to another one (DC).
      Any idea how to do this properly?

  * contrib/hbwin/wapi_winuser.c
    + Added WAPI_GETSYSTEMMETRICS().

  * contrib/hbwin/hbwin.ch
    + Added WIN_SM_* constants for WAPI_GETSYSTEMMETRICS()..

  * contrib/hbwin/wapi_winuser.c
  * contrib/hbwin/wapi_shellapi.c
    - Deleted unnecessary Windows headers.

  * contrib/hbwin/win_dlg.c
    + WAPI_PRINTDLGDC() now sets owner window for better
      results (f.e. in GTWVT it will block clicking on
      app window and newer style printer dialog will be presented)

  * contrib/hbwin/win_prn1.c
    * Minor.
This commit is contained in:
Viktor Szakats
2010-01-22 00:27:53 +00:00
parent 3461fd6177
commit 948d042fc8
8 changed files with 145 additions and 8 deletions

View File

@@ -17,6 +17,38 @@
past entries belonging to author(s): Viktor Szakats.
*/
2010-01-22 01:25 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbtip/sendmail.prg
! Applied set of HB_SENDMAIL() patches sent by Francesco Perillo:
- nTimeOut defaults to 10 seconds
- check for actually receiving "250 " to EHLO and not waiting for timeout
- don't wait for timeout
- check for actually receiving "250 " to HELO and not waiting for timeout
[TOMERGE 2.0]
* contrib/hbwin/wapi_wingdi.c
+ Added TODO to WAPI_SELECTOBJECT() to implement reference counting
when assigning an GC collected object to another one (DC).
Any idea how to do this properly?
* contrib/hbwin/wapi_winuser.c
+ Added WAPI_GETSYSTEMMETRICS().
* contrib/hbwin/hbwin.ch
+ Added WIN_SM_* constants for WAPI_GETSYSTEMMETRICS()..
* contrib/hbwin/wapi_winuser.c
* contrib/hbwin/wapi_shellapi.c
- Deleted unnecessary Windows headers.
* contrib/hbwin/win_dlg.c
+ WAPI_PRINTDLGDC() now sets owner window for better
results (f.e. in GTWVT it will block clicking on
app window and newer style printer dialog will be presented)
* contrib/hbwin/win_prn1.c
* Minor.
2010-01-22 00:33 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtxwc/gtxwc.c
+ added support for independent CP setting for BOX and normal characters

View File

@@ -135,7 +135,7 @@ FUNCTION hb_SendMail( cServer, nPort, cFrom, xTo, xCC, xBCC, cBody, cSubject, aF
lNoAuth := .F.
ENDIF
IF ! ISNUMBER( nTimeOut )
nTimeOut := 1000
nTimeOut := 10000
ENDIF
IF ! ISCHARACTER( cReplyTo )
cReplyTo := ""
@@ -311,6 +311,8 @@ FUNCTION hb_SendMail( cServer, nPort, cFrom, xTo, xCC, xBCC, cBody, cSubject, aF
ELSEIF "STARTTLS" $ oInMail:cReply
lAuthTLS := .T.
#endif
ELSEIF Left( oInMail:cReply, 4 ) == "250 "
EXIT
ENDIF
ENDDO
@@ -328,7 +330,6 @@ FUNCTION hb_SendMail( cServer, nPort, cFrom, xTo, xCC, xBCC, cBody, cSubject, aF
ENDIF
ELSE
IF ! lConnectPlain
oInmail:GetOk()
lConnect := .F.
ENDIF
ENDIF
@@ -359,6 +360,9 @@ FUNCTION hb_SendMail( cServer, nPort, cFrom, xTo, xCC, xBCC, cBody, cSubject, aF
ENDIF
DO WHILE .T.
IF Left( oInMail:cReply, 4 ) == "250 "
EXIT
ENDIF
IF ! oInMail:GetOk()
EXIT
ENDIF

View File

@@ -319,6 +319,102 @@
#define WIN_SCALINGFACTORX 114 // Scaling factor x
#define WIN_SCALINGFACTORY 115 // Scaling factor y
/* WAPI_GETSYSTEMMETRICS() parameters */
#define WIN_SM_CXSCREEN 0
#define WIN_SM_CYSCREEN 1
#define WIN_SM_CXVSCROLL 2
#define WIN_SM_CYHSCROLL 3
#define WIN_SM_CYCAPTION 4
#define WIN_SM_CXBORDER 5
#define WIN_SM_CYBORDER 6
#define WIN_SM_CXDLGFRAME 7
#define WIN_SM_CXFIXEDFRAME 7
#define WIN_SM_CYDLGFRAME 8
#define WIN_SM_CYFIXEDFRAME 8
#define WIN_SM_CYVTHUMB 9
#define WIN_SM_CXHTHUMB 10
#define WIN_SM_CXICON 11
#define WIN_SM_CYICON 12
#define WIN_SM_CXCURSOR 13
#define WIN_SM_CYCURSOR 14
#define WIN_SM_CYMENU 15
#define WIN_SM_CXFULLSCREEN 16
#define WIN_SM_CYFULLSCREEN 17
#define WIN_SM_CYKANJIWINDOW 18
#define WIN_SM_MOUSEPRESENT 19
#define WIN_SM_CYVSCROLL 20
#define WIN_SM_CXHSCROLL 21
#define WIN_SM_DEBUG 22
#define WIN_SM_SWAPBUTTON 23
#define WIN_SM_RESERVED1 24
#define WIN_SM_RESERVED2 25
#define WIN_SM_RESERVED3 26
#define WIN_SM_RESERVED4 27
#define WIN_SM_CXMIN 28
#define WIN_SM_CYMIN 29
#define WIN_SM_CXSIZE 30
#define WIN_SM_CYSIZE 31
#define WIN_SM_CXSIZEFRAME 32
#define WIN_SM_CXFRAME 32
#define WIN_SM_CYSIZEFRAME 33
#define WIN_SM_CYFRAME 33
#define WIN_SM_CXMINTRACK 34
#define WIN_SM_CYMINTRACK 35
#define WIN_SM_CXDOUBLECLK 36
#define WIN_SM_CYDOUBLECLK 37
#define WIN_SM_CXICONSPACING 38
#define WIN_SM_CYICONSPACING 39
#define WIN_SM_MENUDROPALIGNMENT 40
#define WIN_SM_PENWINDOWS 41
#define WIN_SM_DBCSENABLED 42
#define WIN_SM_CMOUSEBUTTONS 43
#define WIN_SM_SECURE 44
#define WIN_SM_CXEDGE 45
#define WIN_SM_CYEDGE 46
#define WIN_SM_CXMINSPACING 47
#define WIN_SM_CYMINSPACING 48
#define WIN_SM_CXSMICON 49
#define WIN_SM_CYSMICON 50
#define WIN_SM_CYSMCAPTION 51
#define WIN_SM_CXSMSIZE 52
#define WIN_SM_CYSMSIZE 53
#define WIN_SM_CXMENUSIZE 54
#define WIN_SM_CYMENUSIZE 55
#define WIN_SM_ARRANGE 56
#define WIN_SM_CXMINIMIZED 57
#define WIN_SM_CYMINIMIZED 58
#define WIN_SM_CXMAXTRACK 59
#define WIN_SM_CYMAXTRACK 60
#define WIN_SM_CXMAXIMIZED 61
#define WIN_SM_CYMAXIMIZED 62
#define WIN_SM_NETWORK 63
#define WIN_SM_CLEANBOOT 67
#define WIN_SM_CXDRAG 68
#define WIN_SM_CYDRAG 69
#define WIN_SM_SHOWSOUNDS 70
#define WIN_SM_CXMENUCHECK 71
#define WIN_SM_CYMENUCHECK 72
#define WIN_SM_SLOWMACHINE 73
#define WIN_SM_MIDEASTENABLED 74
#define WIN_SM_MOUSEWHEELPRESENT 75
#define WIN_SM_XVIRTUALSCREEN 76
#define WIN_SM_YVIRTUALSCREEN 77
#define WIN_SM_CXVIRTUALSCREEN 78
#define WIN_SM_CYVIRTUALSCREEN 79
#define WIN_SM_CMONITORS 80
#define WIN_SM_SAMEDISPLAYFORMAT 81
#define WIN_SM_IMMENABLED 82
#define WIN_SM_CXFOCUSBORDER 83
#define WIN_SM_CYFOCUSBORDER 84
#define WIN_SM_TABLETPC 86
#define WIN_SM_MEDIACENTER 87
#define WIN_SM_STARTER 88
#define WIN_SM_SERVERR2 89
#define WIN_SM_REMOTESESSION 4096
#define WIN_SM_SHUTTINGDOWN 8192
#define WIN_SM_REMOTECONTROL 8193
#define WIN_SM_CARETBLINKINGENABLED 8194
/* WIN_TEXTOUT() text alignment modes */
#define WIN_TA_NOUPDATECP 0
#define WIN_TA_UPDATECP 1

View File

@@ -55,8 +55,6 @@
#include "hbapi.h"
#include "hbwinuni.h"
#include <shellapi.h>
HB_FUNC( WAPI_SHELLEXECUTE )
{
#if defined( HB_OS_WIN_CE )

View File

@@ -456,6 +456,7 @@ HB_FUNC( WAPI_SELECTOBJECT )
if( hDC && h )
{
/* TODO: Solve reference counting to 'h' handle. Also for returned one. */
if( bRegion )
hb_retni( ( int ) SelectObject( hDC, h ) );
else
@@ -479,7 +480,7 @@ HB_FUNC( WAPI_MOVETOEX )
hb_retl( MoveToEx( hDC, hb_parni( 2 ) /* X */, hb_parni( 3 ) /* Y */, &p ) );
/* TODO: Support both has and array */
/* TODO: Support both hash and array */
hb_arraySetNL( pPOINT, 1, p.x );
hb_arraySetNL( pPOINT, 2, p.y );
}

View File

@@ -58,7 +58,12 @@
#include "hbwinuni.h"
#include "hbwapi.h"
#include <winuser.h>
HB_FUNC( WAPI_GETSYSTEMMETRICS )
{
int iResult = GetSystemMetrics( hb_parni( 1 ) );
hbwapi_SetLastError( GetLastError() );
hb_retni( iResult );
}
HB_FUNC( WAPI_GETKEYSTATE )
{

View File

@@ -65,6 +65,7 @@ HB_FUNC( WIN_PRINTDLGDC )
memset( &pd, 0, sizeof( PRINTDLG ) );
pd.lStructSize = sizeof( PRINTDLG );
pd.hwndOwner = GetActiveWindow();
pd.Flags = PD_RETURNDC | PD_USEDEVMODECOPIESANDCOLLATE;
pd.nFromPage = ( WORD ) hb_parnidef( 2, 1 );
pd.nToPage = ( WORD ) hb_parnidef( 3, 1 );

View File

@@ -327,10 +327,10 @@ HB_FUNC( WIN_CREATEFONT )
DEFAULT_PITCH | FF_DONTCARE,
HB_PARSTR( 2, &hFontFace, NULL ) );
hb_strfree( hFontFace );
hbwapi_ret_HFONT( hFont );
hb_strfree( hFontFace );
if( hFont )
SelectObject( hDC, hFont );
}