Reemplazar CreateObject

Reemplazar CreateObject

Postby cmsoft » Wed Jul 01, 2015 2:50 am

Estimados:
Como puedo reemplazar la funcion CreateObjet, sin tener que compilar con una version actual de FiveWin + Harbour
Tengo una aplicacion de muchos años y solo tengo que agregarle una funcionalidad que requiere manejar una libreria de terceros usandola con CreateObject
La version con la que tengo esa aplicacion es muy antigua (2.7), pero no deseo tener que migrar todo, pues es para AYER!
Hay alguna manera de reemplazarlo con CreateOleObject?
Desde ya muchas gracias
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Reemplazar CreateObject

Postby Antonio Linares » Wed Jul 01, 2015 7:54 am

César,

Que versión de Harbour usas en esa aplicación ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Reemplazar CreateObject

Postby cmsoft » Wed Jul 01, 2015 12:04 pm

Harbour 2.0.0 (Rev. 13372)
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Reemplazar CreateObject

Postby cmsoft » Wed Jul 01, 2015 2:31 pm

Antonio, logre compilar sin problemas cambiando este codigo
Code: Select all  Expand view  RUN
wsfev1 := CreateObject("FEAFIPLib.wsfev1")
wsfev1:CUIT := 20939802593  
nPuntoVta := 110
wsfev1:URL  := URLWSW
If wsfev1:login("certificado.crt", "clave.key", URLWSAA)
   If wsfev1:SFRecuperaLastCMP(nPuntoVta, Tipocomp)
      nFacturaNro := wsfev1:SFLastCmp
      ELSE
      MsgInfo(wsfev1:ErrorDesc, "FEAFIP RECURANDO ULTIMO COMPROBANTE")
      RETURN nil
   ENDIF
ENDIF

Por este otro
Code: Select all  Expand view  RUN

wsfev1 := CreateOleObject("FEAFIPLib.wsfev1")
OleSetProperty(wsfev1,"CUIT",20939802593)
nPuntoVta := 110
OleSetProperty(wsfev1,"URL",URLWSW)
i := OleInvoke(wsfev1,"login","MiCertificado", "MiClavePrivada", URLWSAA)
IF i
   i := OleInvoke(wsfev1,"SFRecuperaLastCMP",nPuntoVta,Tipocomp)  
   IF i
      nFacturaNro := OleGetProperty(wsfev1,"SFLastCmp")
      ELSE
      MsgInfo(OleGetProperty(wsfev1,"ErrorDesc"), "FEAFIP RECURANDO ULTIMO COMPROBANTE")
      RETURN .f.
   ENDIF
ENDIF


Pero no se si la forma de pasar los parametros es otra, o el objeto no se mantiene, porque me da un error la libreria, me dice que el parametro que le pase antes es otro... No me mantiene el CUIT ... Me guarda un numero negativo... Será por el tamaño del dato que mando?
Alguna sugerencia?
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Reemplazar CreateObject

Postby Antonio Linares » Wed Jul 01, 2015 7:59 pm

César,

Para el valor 20939802593 que valor negativo te aparece ?

Efectivamente debe tratarse del signo. Si me dices ese valor podemos intentar corregirlo.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Reemplazar CreateObject

Postby cmsoft » Thu Jul 02, 2015 1:16 am

Cambie el valor porque cambie el CUIT (se me vencio el certificado que tenia)
Ahora para el valor 20214424666 me devuelve -1260411814
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Reemplazar CreateObject

Postby Antonio Linares » Thu Jul 02, 2015 6:03 pm

César,

En vez de usar:

OleSetProperty( wsfev1,"CUIT", 20214424666 )

prueba con:

__ObjSendMsg( wsfev1, "_CUIT", 20214424666 )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Reemplazar CreateObject

Postby cmsoft » Fri Jul 03, 2015 12:11 pm

Me da error!
Code: Select all  Expand view  RUN
Application
===========
   Path and name: D:\Sistemas\LAURA\fuenelec\GESTION.exe (32 bits)
   Size: 2,211,328 bytes
   Time from start: 0 hours 0 mins 16 secs
   Error occurred at: 03/07/2015, 09:10:46
   Error description: Error BASE/3000  Argument error: __OBJSENDMSG
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Reemplazar CreateObject

Postby Antonio Linares » Fri Jul 03, 2015 12:33 pm

César,

Puedes copiar el error.log completo ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Reemplazar CreateObject

Postby cmsoft » Fri Jul 03, 2015 1:04 pm

Aca lo dejo
Code: Select all  Expand view  RUN

Application
===========
   Path and name: D:\Sistemas\LAURA\fuenelec\GESTION.exe (32 bits)
   Size: 2,211,328 bytes
   Time from start: 0 hours 0 mins 16 secs
   Error occurred at: 03/07/2015, 09:10:46
   Error description: Error BASE/3000  Argument error: __OBJSENDMSG

Stack Calls
===========
   Called from:  => __OBJSENDMSG(0)
   Called from:  => FACTURAELEC(54)
   Called from:  => GRABA(355)
   Called from:  => (b)VENTA(246)
   Called from:  => TBUTTON:CLICK(0)
   Called from:  => TCONTROL:HANDLEEVENT(0)
   Called from:  => _FWH(0)
   Called from:  => SENDMESSAGE(0)
   Called from:  => TWINDOW:COMMAND(0)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from:  => DIALOGBOX(0)
   Called from:  => TWINDOW:ACTIVATE(0)
   Called from:  => VENTA(256)
   Called from:  => (b)MAIN(108)
   Called from:  => TBTNBMP:CLICK(0)
   Called from:  => TWINDOW:LBUTTONUP(0)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from:  => _FWH(0)
   Called from:  => WINRUN(0)
   Called from:  => TWINDOW:ACTIVATE(0)
   Called from:  => MAIN(147)

System
======
   CPU type: AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ 1066 Mhz
   Hardware memory: 1919 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Compiler version: Harbour Alpha build 45.0 Intl. (Flex)
   Windows version: 6.1, Build 7600

   Windows total applications running: 47
      1 MSCTFIME UI
      2 Default IME
      3 Inicio
      4 Panel de TeamViewer
      5 Panel de TeamViewer (minimizado)
      6 Conmutación de tareas
      7 CiceroUIWndFrame
      8 FACTURAS
      9 EMPRESA DEMOSTRACION - Sistema GESTION para Windows
     10 Administrador: Símbolo del sistema - 2
     11 D:\Sistemas\LAURA\FUENELEC\fe.prg - Sublime Text (UNREGISTERED)
     12 Menú Inicio
     13 Gmail - Google Chrome
     14 CESAR
     15 Jump List
     16 Ordenadores & contactos
     17 TeamViewer - Registro de sucesos de transferencia de archivos
     18 TVMainThreadCall
     19 Medidor de la batería
     20 SQLyog Ultimate - [Local/diemar - root@localhost]
     21 GDI+ Window
     22 DDE Server Window
     23 Microsoft Excel - Libro1
     24 AMD:CCC-AEMCapturingWindow
     25 Network Flyout
     26 TF_FloatingLangBar_WndTitle
     27 MCI command handling window
     28 .NET-BroadcastEventWindow.2.0.0.0.33c0d9d.0
     29 MS_WebcheckMonitor
     30 BluetoothNotificationAreaIconWindowClass
     31 HiddenFaxWindow
     32 AvgTrayMainWnd
     33 Media Center SSO
     34 MediaContextNotificationWindow
     35 PDF24 Notify Icon
     36 KiesTrayAgent
     37 Realtek HD Audio CPL for Vista
     38 Adobe Reader Updater
     39 TaskEng - Proceso del Motor de Programador de tareas
     40 .NET-BroadcastEventWindow.2.0.0.0.3d893c.0
     41 Task Host Window
     42 VProtector
     43 ATI video bios poller client
     44 DWM Notification Window
     45 .NET-BroadcastEventWindow.4.0.0.0.26ea292.0
     46 SystemResourceNotifyWindow
     47 Program Manager

Variables in use
================
   Procedure     Type   Value
   ==========================
   __OBJSENDMSG
     Param   1:    N    51914940
     Param   2:    C    "_CUIT"
     Param   3:    N    20214424666
     Local   1:    U    
     Local   2:    L    .F.
   FACTURAELEC
     Param   1:    C    "A"
     Param   2:    N    80
     Param   3:    N    1
     Param   4:    D    03/07/2015
     Param   5:    C    "20-26153322-8"
     Param   6:    N    5.00
     Param   7:    N    6.05
     Param   8:    A    Len:    3
     Param   9:    U    
     Param  10:    U    
     Param  11:    U    
     Param  12:    U    
     Local   1:    C    "https://wsaahomo.afip.gov.ar/ws/services/LoginCms"
     Local   2:    C    "https://wswhomo.afip.gov.ar/wsfev1/service.asmx"
     Local   3:    N    51914940
     Local   4:    U    
     Local   5:    L    .F.
     Local   6:    U    
     Local   7:    N    1
     Local   8:    C    "20150703"
     Local   9:    U    
     Local  10:    N    20261533228
     Local  11:    U    
     Local  12:    U    
     Local  13:    U    
     Local  14:    N    1
   GRABA
     Param   1:    L    .T.
     Param   2:    C    "FC"
     Local   1:    U    
     Local   2:    A    Len:    2
     Local   3:    U    
     Local   4:    C    "factvent"
     Local   5:    U    
     Local   6:    A    Len:    0
     Local   7:    U    
     Local   8:    U    
     Local   9:    U    
     Local  10:    U    
     Local  11:    U    
     Local  12:    A    Len:    3
     Local  13:    N    5.00
   (b)VENTA
   TBUTTON:CLICK
     Local   1:    O    Class: TBUTTON
   TCONTROL:HANDLEEVENT
     Param   1:    N    2048
     Param   2:    N    0
     Param   3:    N    0
     Local   1:    O    Class: TBUTTON
   _FWH
     Param   1:    N    0
     Param   2:    N    2048
     Param   3:    N    0
     Param   4:    N    0
     Param   5:    N    41
     Local   1:    O    Class: TBUTTON
   SENDMESSAGE
     Param   1:    N    7865712
     Param   2:    N    2048
     Param   3:    N    0
     Param   4:    N    0
   TWINDOW:COMMAND
     Param   1:    N    104
     Param   2:    N    7865712
     Local   1:    O    Class: TDIALOG
     Local   2:    O    Class: TBUTTON
     Local   3:    N    0
     Local   4:    N    104
     Local   5:    N    7865712
   TWINDOW:HANDLEEVENT
     Param   1:    N    273
     Param   2:    N    104
     Param   3:    N    7865712
   TWINDOW:HANDLEEVENT
     Param   1:    N    273
     Param   2:    N    104
     Param   3:    N    7865712
     Local   1:    O    Class: TDIALOG
   DIALOGBOX
     Param   1:    N    4194304
     Param   2:    C    "VENTAS"
     Param   3:    N    984280
     Param   4:    O    Class: TDIALOG
   TWINDOW:ACTIVATE
     Param   1:    U    
     Param   2:    U    
     Param   3:    U    
     Param   4:    L    .T.
     Param   5:    B    {|| ... }
     Param   6:    L    .T.
     Param   7:    U    
     Param   8:    U    
     Param   9:    U    
     Param  10:    L    .F.
     Local   1:    O    Class: TDIALOG
     Local   2:    N    984280
     Local   3:    U    
     Local   4:    U    
     Local   5:    U    
     Local   6:    O    Class: TDIALOG
   VENTA
     Local   1:    C    "FC"
     Local   2:    D    03/07/2015
     Local   3:    C    "COUETTE ANGEL ADRIAN                              "
     Local   4:    N    10
     Local   5:    C    "A0001-00000074"
     Local   6:    N    5.00
     Local   7:    N    1.05
     Local   8:    N    0
     Local   9:    N    1
     Local  10:    L    .F.
     Local  11:    C    "                                                  "
     Local  12:    N    0
     Local  13:    N    0
     Local  14:    N    0.00
     Local  15:    N    0.00
     Local  16:    N    0.00
     Local  17:    N    72192.64
     Local  18:    U    
     Local  19:    U    
     Local  20:    O    Class: TFONT
     Local  21:    N    1
     Local  22:    C    "VENDEDOR 1                    "
     Local  23:    O    Class: TDIALOG
     Local  24:    U    
     Local  25:    O    Class: TGET
     Local  26:    L    .T.
     Local  27:    U    
     Local  28:    C    "factvent"
     Local  29:    O    Class: TSBROWSE
     Local  30:    C    "vent01"
     Local  31:    O    Class: TFONT
     Local  32:    N    0
   (b)MAIN
     Param   1:    O    Class: TBTNBMP
   TBTNBMP:CLICK
     Local   1:    O    Class: TBTNBMP
   TWINDOW:LBUTTONUP
     Param   1:    N    45
     Param   2:    N    4
     Param   3:    O    Class: TBTNBMP
     Local   1:    U    
     Local   2:    L    .T.
   TWINDOW:HANDLEEVENT
     Param   1:    N    514
     Param   2:    N    0
     Param   3:    N    2949124
   TWINDOW:HANDLEEVENT
     Param   1:    N    514
     Param   2:    N    0
     Param   3:    N    2949124
     Local   1:    O    Class: TBTNBMP
   _FWH
     Param   1:    N    2949124
     Param   2:    N    514
     Param   3:    N    0
     Param   4:    N    2949124
     Param   5:    N    8
     Local   1:    O    Class: TBTNBMP
   WINRUN
     Param   1:    N    984280
   TWINDOW:ACTIVATE
     Param   1:    C    "MAXIMIZED"
     Param   2:    U    
     Param   3:    U    
     Param   4:    U    
     Param   5:    U    
     Param   6:    U    
     Param   7:    U    
     Param   8:    U    
     Param   9:    U    
     Param  10:    U    
     Param  11:    U    
     Param  12:    U    
     Param  13:    U    
     Param  14:    U    
     Param  15:    U    
     Param  16:    U    
     Param  17:    U    
     Param  18:    U    
     Param  19:    U    
     Local   1:    O    Class: TMDIFRAME
     Local   2:    U    
     Local   3:    U    
   MAIN
     Local   1:    O    Class: TBAR
     Local   2:    U    
     Local   3:    N    8
     Local   4:    U    
     Local   5:    O    Class: TMSGITEM
     Local   6:    O    Class: TMSGITEM
     Local   7:    C    "C:\Windows"
     Local   8:    A    Len:    3

Linked RDDs
===========
   DBF
   DBFFPT
   DBFNTX

DataBases in use
================

  1:    DATO01                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        1          1      .F.   .F.

     Indexes in use                        TagName

     Relations in use

  2:    VENT01                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        9        121      .F.   .F.

     Indexes in use                        TagName
        => CODCLI                             VENTCLI
           TICOMP+NUMCOMP                     VENTFAC
           DTOS(FECHA)+TICOMP+NUMCOMP         VENTFEC

     Relations in use

  3:    REMI03                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
       15         21      .F.   .F.

     Indexes in use                        TagName
        => CODCLI                             REMICLI
           TICOMP+NUMCOMP                     REMINUM
           FECHA                              REMIFEC

     Relations in use

  4:    REMD03                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        4         31      .F.   .F.

     Indexes in use                        TagName
        => NUMFAC                             REMDNUM

     Relations in use

  5:    IVAS04                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        1          2      .F.   .F.

     Indexes in use                        TagName
        => CODIGO                             IVASCOD

     Relations in use

  6:    SALI03                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        1         59      .F.   .F.

     Indexes in use                        TagName
        => CODART                             SALICOD
           FECHA                              SALIFEC
           NUMFAC                             SALIFAC

     Relations in use

  7:    CLIE03                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
       10        129      .F.   .F.

     Indexes in use                        TagName
        => CODIGO                             CLIECOD
           NOMBRE                             CLIENOM

     Relations in use

  8:    ARTI03                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        1        187      .F.   .F.

     Indexes in use                        TagName
        => CODIGO                             ARTICOD
           NOMBRE                             ARTINOM
           BARRA1                             ARTIBA1
           BARRA2                             ARTIBA2
           BARRA3                             ARTIBA3

     Relations in use
                 1: TO arti03->bulto INTO BULT03

  9:    BULT03                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        3          2      .F.   .T.

     Indexes in use                        TagName
        => CODIGO                             BULTCOD
           NOMBRE                             BULTNOM

     Relations in use

 10:    VEND03                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        1          1      .F.   .F.

     Indexes in use                        TagName
        => CODIGO                             VENDCOD
           NOMBRE                             VENDNOM

     Relations in use

 11:    PROM12                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        3          2      .F.   .T.

     Indexes in use                        TagName
        => CODPRO                             PRO1COD

     Relations in use

 12:    PROM13                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        1          1      .F.   .F.

     Indexes in use                        TagName
        => CODPRO                             PRO2COD

     Relations in use

 13:    PROM10                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        1          1      .F.   .F.

     Indexes in use                        TagName
        => CODIGO                             PROMCOD

     Relations in use

 14:    PROP12                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        4          3      .F.   .T.

     Indexes in use                        TagName
        => CODPRO                             PRP1COD

     Relations in use

 15:    PROP10                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        2          2      .F.   .F.

     Indexes in use                        TagName
        => CODIGO                             PROPCOD

     Relations in use

 16:    DATOS                              RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        1          1      .F.   .F.

     Indexes in use                        TagName

     Relations in use

 17: => FACTVENT                           RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        1          1      .F.   .F.

     Indexes in use                        TagName

     Relations in use

 18:    CONFIG                             RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
        1          1      .F.   .F.

     Indexes in use                        TagName

     Relations in use

Classes in use:
===============
     1 HBCLASS
     2 HBOBJECT
     3 TWINDOW
     4 TDIALOG
     5 TBRUSH
     6 TCONTROL
     7 TGET
     8 GET
     9 TCLIPGET
    10 TBUTTON
    11 TFONT
    12 TICON
    13 TMDIFRAME
    14 TMENU
    15 TMENUITEM
    16 TMDICLIENT
    17 TBAR
    18 TRECT
    19 TBTNBMP
    20 TMSGBAR
    21 TMSGITEM
    22 TTIMER
    23 TSAY
    24 TCOMBOBOX
    25 TSBROWSE
    26 TBITMAP
    27 ERROR
    28 TSCOLUMN
    29 TFGET
    30 TSBSCRLBAR
    31 TFLINE
    32 TREG32

Memory Analysis
===============
      399 Static variables

   Dynamic memory consume:
      Actual  Value:          0 bytes
      Highest Value:          0 bytes

 
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Reemplazar CreateObject

Postby Antonio Linares » Fri Jul 03, 2015 1:54 pm

César,

El primer parámertro tendría que ser un objeto de Harbour y no un número, mira:

__OBJSENDMSG
Param 1: N 51914940
Param 2: C "_CUIT"
Param 3: N 20214424666
Local 1: U
Local 2: L .F.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Reemplazar CreateObject

Postby Antonio Linares » Fri Jul 03, 2015 1:55 pm

Prueba esto:

wsfev1 := CreateOleObject("FEAFIPLib.wsfev1")

MsgInfo( ValType( wsfev1 ) )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Reemplazar CreateObject

Postby cmsoft » Fri Jul 03, 2015 2:15 pm

Me devuelve N. Valor 52635836
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Reemplazar CreateObject

Postby Antonio Linares » Fri Jul 03, 2015 2:27 pm

Prueba asi:

local oObj := TOleAuto():New( wsfev1 )

__ObjSendMsg( oObj, "_CUIT", 20214424666 )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Reemplazar CreateObject

Postby cmsoft » Fri Jul 03, 2015 5:28 pm

Antonio, que libreria de HB tengo que agregar, porque me da error
Code: Select all  Expand view  RUN
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
GESTION.c:
Borland Resource Compiler  Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation.  All rights reserved.
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_TOLEAUTO' referenced from D:\SISTEMAS\LAURA\
FUENELEC\FE.OBJ
* There are errors
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 113 guests