Page 1 of 1

Wrapper

Posted: Sat Nov 18, 2006 8:28 am
by Marco Turco
Salve,
qualcuno di voi potrebbe convertirmi questo codice (credo in VB) in xHarbour.

Si tratta di una funzione che restituisce la versione del driver amyuni di conversione emf->rtf

Grazie in anticipo.

Saluti

Marco Turco



************
Dim CDIntfMajor As Long
Dim CDIntfMinor As Long
Dim PrinterDriverMajor As Long
Dim PrinterDriverMinor As Long


PDF.GetVersionInformation CDIntfMajor, CDIntfMinor, PrinterDriverMajor, PrinterDriverMinor



MsgBox "Printer Info" & vbNewLine & _

"Major: " & CDIntfMajor & vbNewLine & _

"Minor: " & CDIntfMinor & vbNewLine & _

"PrinterDriverMajor: " & PrinterDriverMajor & vbNewLine & _

"PrinterDriverMinor: " & PrinterDriverMinor

**********

Re: Wrapper

Posted: Sat Nov 18, 2006 10:07 am
by Enrico Maria Giordano
Manca la cosa più importante: come viene istanziato l'oggetto PDF.

EMG

Posted: Sat Nov 18, 2006 12:00 pm
by Marco Turco
#INCLUDE "FIVEWIN.CH"

static hRtfLib
static hRtfPrinter
static cRtfPrinter
static lGuest

hRTFLib = LOADLIB32( "cdintf.dll" )
cRtfPrinter="SXP Printer"

hRTFPrinter:=RTFDriverOpen(cRTFPrinter)

*********

&& qui voglio richiamare la funzione per conoscere la versione

******

FREELIBRARY(HRTFLIB)

*********************
** amyuni wrapper **
*********************


DLL32 FUNCTION RtfDriverInit( cPrinterName AS LPSTR ) AS LONG;
PASCAL FROM "RTFDriverInit" LIB hRTFLib

DLL32 FUNCTION RtfDriverOpen( cPrinterName AS LPSTR ) AS LONG;
PASCAL FROM "DriverInit" LIB hRTFLib

DLL32 FUNCTION RtfDriverEnd(hRTFPrinter AS LONG) AS VOID;
PASCAL FROM "DriverEnd" LIB hRTFLib

DLL32 FUNCTION RtfSetDefaultPrinter(hRTFPrinter AS LONG) AS LONG;
PASCAL FROM "SetDefaultPrinter" LIB hRTFLib

DLL32 FUNCTION RtfSetDefaultConfig(hRTFPrinter AS LONG) AS LONG;
PASCAL FROM "SetDefaultConfig" LIB hRTFLib

DLL32 FUNCTION RtfRestoreDefaultPrinter(hRTFPrinter AS LONG) AS LONG;
PASCAL FROM "RestoreDefaultPrinter" LIB hRTFLib

DLL32 FUNCTION RtfSetHorizontalMargin(hRTFPrinter AS LONG, nMargin AS LONG) AS LONG;
PASCAL FROM "SetHorizontalMargin" LIB hRTFLib

DLL32 FUNCTION RtfSetVerticalMargin(hRTFPrinter AS LONG, nMargin AS LONG) AS LONG;
PASCAL FROM "SetVerticalMargin" LIB hRTFLib

DLL32 FUNCTION EnablePrinter(hRTFPrinter AS LONG, cRTFCompany AS LPSTR, cRTFCode AS LPSTR) AS LONG;
PASCAL FROM "EnablePrinter" LIB hRTFLib

DLL32 FUNCTION RTFSetDefaultFileName(hRTFPrinter AS LONG, cRTFCompany AS LPSTR) AS LONG;
PASCAL FROM "SetDefaultFileName" LIB hRTFLib

DLL32 FUNCTION RTFFileNameOptions(hRTFPrinter AS LONG, nRTFOption AS _INT) AS LONG;
PASCAL FROM "SetFileNameOptions" LIB hRTFLib

DLL32 FUNCTION RTFSetPrinterParam(hRTFPrinter AS LONG, cRTFParam AS LPSTR, nRTFValue AS LONG) AS _INT;
PASCAL FROM "SetPrinterParamInt" LIB hRTFLib

DLL32 FUNCTION RTFSetDefaultDirectory(hRTFPrinter AS LONG, cRTFParam AS LPSTR) AS LONG;
PASCAL FROM "SetDefaultDirectory" LIB hRTFLib

Posted: Sat Nov 18, 2006 12:26 pm
by Enrico Maria Giordano
Non vedo traccia nel tuo esempio dell'oggetto PDF. A quanto riporti sembra che GetVersionInformation() sia un metodo dell'oggetto PDF ma questo oggetto da dove salta fuori?

EMG

Posted: Sat Nov 18, 2006 12:42 pm
by Marco Turco
Scusa,
l'oggetto PDF non è altro che hRTFPrinter.

Marco

Posted: Sat Nov 18, 2006 1:15 pm
by Enrico Maria Giordano
No, hRTFPrinter è solo un handle restituito, a quanto scrivi, dalla funzione RTFDriverOpen. Non essendo né un oggetto Fivewin né un oggetto OLE non puoi chiamare suoi metodi. Devi vedere da dove proviene l'oggetto PDF dell'esempio in VB.

EMG