FHW64 llamadas a DLL/COM/ACTIVEX 32 bits

Re: FHW64 llamadas a DLL/COM/ACTIVEX 32 bits

Postby Antonio Linares » Sat Jul 13, 2013 5:46 pm

Esté código funciona bien en FWH 64, lo que descarta que sea un problema de Adobe en 64 bits:

Code: Select all  Expand view
#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
User avatar
Antonio Linares
Site Admin
 
Posts: 41461
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FHW64 llamadas a DLL/COM/ACTIVEX 32 bits

Postby fgondi » Sat Jul 13, 2013 7:47 pm

Sobre 32 bits uso esto:
Code: Select all  Expand view

    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
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: FHW64 llamadas a DLL/COM/ACTIVEX 32 bits

Postby Antonio Linares » Sat Jul 13, 2013 8: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41461
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 140 guests

cron