Olá Itamar,
A versão da HwGui é 2.17 de 16/01/2013 compilado com msvc
Essa rotina é para um sistema console/janelado:
Código: Selecionar todos
#include "hbcompat.ch"
#include "inkey.ch"
#include "setcurs.ch"
#include "error.ch"
#include "achoice.ch"
#include "fileio.ch"
#include "common.ch"
#include "dbinfo.ch"
#include "hbver.ch"
#include "hbdyn.ch"
#include "wvtwin.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"
#include "wvgparts.ch"
#include "hbclass.ch"
#include "hbwin.ch"
#include "hbthread.ch"
FUNCTION MAIN(cPara1, cPara2)
PUBLIC cPDF, nThread, cTeste
SetColor( "N/W,N/GR*,,,N/W*" )
CLS
WHILE .T.
cTeste:="AcroPDF.PDF.1"
ConsultaPDF(cPDF)
InkeyGui(0)
ConsultaPDF(cPDF) //Na segunda chamada acontece o erro. //::oParent:handle no fonte h_activex.prg (linha 74)
InkeyGui(0)
If LastKey() = 27
EXIT
Endif
ENDDO
RETURN Nil
INIT FUNCTION AppSetup()
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT("PT")
HB_CDPSELECT( "PT850" ) //pt850
SET TYPEAHEAD TO 0
SET INTENSITY ON
SET SCOREBOARD OFF
SET DELETED ON
SET SAFETY OFF
SET ESCAPE ON
SET DATE FORMAT "DD/MM/YYYY"
SET DELIMITERS TO
SET EXCLUSIVE OFF
SET WRAP ON
SET EPOCH TO 1920
SET OPTIMIZE ON
SET AUTOPEN OFF
SET DBFLOCKSCHEME TO DB_DBFLOCK_CLIPPER
SET MESSAGE TO 23 CENTER
REQUEST DBFNTX
RddSetDefault("DBFNTX")
hb_gtReload( "WVT" )
GtSetupPalette()
SETMODE(25,80)
SetColor("W+/B")
CLS
SetColor("W+/B")
IniciaJanela()
RETURN Nil
FUNCTION IniciaJanela(nLi,nCi,nLf,nCf)
LOCAL oCrt
HB_Default(@nLi,0)
HB_Default(@nCi,0)
HB_Default(@nLf,MaxRow())
HB_Default(@nCf,MaxCol())
cTituloJanela:="Visualização de PDF"
HB_gtInfo(HB_GTI_FONTNAME, "Lucida Console")
HB_gtInfo(HB_GTI_WINTITLE, cTituloJanela)
HB_gtInfo(HB_GTI_ICONFILE, "P:\GERAL\HARBOUR\HARB_WIN.ICO" )
HB_gtInfo(HB_GTI_CLOSABLE, .F. )
HB_gtInfo(HB_GTI_ISGRAPHIC, .T. )
HB_gtInfo(HB_GTI_STDERRCON, .T. )
HB_gtInfo(HB_GTI_COMPATBUFFER, .T. )
HB_gtInfo(HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
HB_gtInfo(HB_GTI_SPEC, HB_GTS_SHOWWINDOW, SW_NORMAL )
HB_GtInfo( HB_GTI_MAXIMIZED, .T. )
RETURN Nil
FUNCTION HB_GTSYS()
REQUEST HB_GT_WVT_DEFAULT
REQUEST HB_GT_WVT
REQUEST HB_GT_WGU
REQUEST HB_GT_WVG
RETURN Nil
#pragma BEGINDUMP
#include <windows.h>
#include "hbapi.h"
HB_FUNC( INKEYGUI )
{
MSG Msg;
BOOL lNoLoop=FALSE;
UINT dwTimer, nRet=0, uTimeout=10;
if( HB_ISNUM(1) ) uTimeout = hb_parni(1);
if( uTimeout==0 ) uTimeout = 0x0FFFFFFF;
if( uTimeout>0 ) uTimeout = uTimeout * 1000;
dwTimer = SetTimer( NULL, 0, uTimeout, NULL);
while( GetMessage(&Msg, NULL, 0, 0) )
{
switch( Msg.message )
{
case WM_KEYDOWN :
case WM_SYSKEYDOWN : { nRet = Msg.wParam; lNoLoop = TRUE; break; }
case WM_TIMER : { lNoLoop = Msg.wParam == dwTimer; break; }
}
if( lNoLoop )
{
KillTimer( NULL, dwTimer );
hb_retni( nRet );
return ;
}
else
{
TranslateMessage( &Msg ); // Translates virtual key codes
DispatchMessage( &Msg ); // Dispatches message to window
}
}
}
HB_FUNC( SENDMESSAGESTRING )
{
hb_retnl( ( LONG ) SendMessage( ( HWND ) hb_parnl( 1 ), ( UINT ) hb_parni( 2 ), ( WPARAM ) hb_parnl( 3 ), ( LPARAM ) ( LPSTR ) hb_parc( 4 ) ) );
}
HB_FUNC( SHOWTELA )
{
BOOL WINAPI ShowWindow(
_In_ HWND hWnd,
_In_ int nCmdShow
);
}
#pragma ENDDUMP
O erro ocorre nesta chamada ::oParent:handle no fonte h_activex.prg (linha 74)
O código completo está no zip anexo.