FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour FHW64 llamadas a DLL/COM/ACTIVEX 32 bits
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: FHW64 llamadas a DLL/COM/ACTIVEX 32 bits
Posted: Sat Jul 13, 2013 05:46 PM
Est茅 c贸digo funciona bien en FWH 64, lo que descarta que sea un problema de Adobe en 64 bits:

Code (fw): Select all Collapse
#include "FiveWin.ch"

function Main()

   ShellExecute( 0, "open", hb_CurDrive() + ":\" + CurDir() + "\fwintro.pdf" )

return nil

#pragma BEGINDUMP

#include <windows.h>
#include <hbapi.h>

HB_FUNC( SHELLEXECUTE )
{
   hb_retnll( ( HB_LONGLONG ) ShellExecute( ( HWND ) hb_parnll( 1 ),
              hb_parc( 2 ), hb_parc( 3 ), hb_parc( 4 ), hb_parc( 5 ), hb_parnl( 6 ) ) );  
}

#pragma ENDDUMP
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: FHW64 llamadas a DLL/COM/ACTIVEX 32 bits
Posted: Sat Jul 13, 2013 07:47 PM
Sobre 32 bits uso esto:
Code (fw): Select all Collapse
聽 聽 oPdf := TActiveX():New( oWndPdf, "AcroPDF.PDF.1" ) 聽
聽 聽 oWndPdf:oClient := oPdf

聽 聽 oPdf:Do( "SetPageMode", "thumbnail and pages" ) 
聽 聽 oPdf:SetProp( "Src", cTmp )
聽 聽 oPdf:Do( "LoadFile", Lfn2Sfn(cTmp) ) 聽 //Lfn2Sfn( cFileNew )
聽 聽 oPdf:Do( "GetVersions" )
聽 聽 oPdf:Do( "SetCurrentPage", 1 ) 
聽 聽 oPdf:Do( "SetShowToolbar", .F. )


Y funciona correctamente, con las versiones anteriores y con la versi贸n 13.06.

En el ejemplo que propones, aparece un error con caracteres muy raros tanto en la versi贸n de 32 como en la versi贸n de 64 en la siguiente l铆nea
oActiveX : LoadFile( "fwintro.pdf" )
Un saludo

Fernando Gonz谩lez Diez

ALSIS Sistemas Inform谩ticos
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: FHW64 llamadas a DLL/COM/ACTIVEX 32 bits
Posted: Sat Jul 13, 2013 08:54 PM

Fernando,

Estoy revisando los fuentes de la Clase THActiveX y aunque he creado una nueva funci贸n AsLongLong()
y he modificado AsPtr() para que soporte 64 bits, el c贸digo sigue fallando.

Revisando el c贸digo de Harbour he caido en la cuenta de que como el soporte de ActiveX de Harbour est谩
basado en "AtlAxWin" (atl.dll) que tal vez para 64 bits esos nombres sean diferentes.

Estoy buscando en google por si encuentro algun comentario que relacione AtlAxWin 贸 Atl.dll con 64 bits.

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion