Newsgroup: it.comp.lang.vo-clipper
Titolo: Problema con richiamo di librerie esterne

Salve a tutto il ng.
Ho un problema che mi sta facendo impazzire!
Utilizzo delle librerie di terze parti per poter utilizzare dei controlli 
particolari.
In questo caso sto realizzando un'applicazione che legge e scrive il formato 
DICOM, ho degli esempi scritti in VB, che funzionano correttamente.
Devo riscrivere questi esempi in VO per poterli integrarli completamente 
come servono a me in un'applicazione già esistente.
Genero le classi di queste lib dal menù SETUP OLE CONTROL, tutto viene 
generato correttamente e senza errori.
Quando vado a richiamare le funzioni non ho nessun tipo di problema.
Ma quando utilizzo un ACCESS di questo controllo non riesco ad utilizzare 
tutti gli ACCESS correlati.
In parole povere ho un :
ACCESS CurrentModule() CLASS DicomControl
 // Current LEAD DICOM DS Module
 LOCAL a               AS ARRAY
 LOCAL uRetValue       AS USUAL
 LOCAL pRetDesc        IS VOOLEARGDESC
 a := {String2Symbol("CurrentModule"), 99, INVOKE_PROPERTYGET, 0, 0, FALSE, 
NULL, @pRetDesc}
 pRetDesc.dwIDLFlag := 0
 pRetDesc.dwVarType := VT_PTR
 pRetDesc.dwArrPtrType := VT_USERDEFINED
 uRetValue := SELF:oAuto:__InvokeMethod(a, DWORD(_bp+16),PCount())
 uRetValue := IDICOMDSModule{uRetValue}
RETURN(uRetValue)
e quà tutto ok, lo richiamo senza problemi.
Da notare che questa classe richiama la classe IDICOMDSModule (nella 3ultima 
riga)
Quando invece vado a richiamare questo di seguito non riesce a trovarlo.
ACCESS Element(;
  lIndex;  // AS LONG
  ) CLASS IDICOMDSModule
  // Array of DICOM Data Set Elements
 LOCAL a               AS ARRAY
 LOCAL pFirstParamDesc AS VOOLEARGDESC
 LOCAL pParamDesc      AS VOOLEARGDESC
 LOCAL uRetValue       AS USUAL
 LOCAL pRetDesc        IS VOOLEARGDESC
 a := {String2Symbol("Element"), 3, INVOKE_PROPERTYGET, 1, 0, FALSE, NULL, 
@pRetDesc}
 pParamDesc := pFirstParamDesc := SELF:__AllocArgDescs(1)
 a[OFD_PARAMDESC] := pParamDesc
 pParamDesc.dwIDLFlag := 1
 pParamDesc.dwVarType := VT_I4
 pParamDesc += 1
 pRetDesc.dwIDLFlag := 0
 pRetDesc.dwVarType := VT_PTR
 pRetDesc.dwArrPtrType := VT_USERDEFINED
 uRetValue := SELF:__InvokeMethod(a, DWORD(_bp+16),PCount())
 uRetValue := IDICOMDSElement{uRetValue}
 MemFree(pFirstParamDesc)
 RETURN(uRetValue)
se invece richiamo questo va tutto ok
ACCESS ElementCount() CLASS IDICOMDSModule
 // The number of Elements in the Element array
 LOCAL a               AS ARRAY
 LOCAL uRetValue       AS USUAL
 LOCAL pRetDesc        IS VOOLEARGDESC
 a := {String2Symbol("ElementCount"), 2, INVOKE_PROPERTYGET, 0, 0, FALSE, 
NULL, @pRetDesc}
 pRetDesc.dwIDLFlag := 0
 pRetDesc.dwVarType := VT_I4
 uRetValue := SELF:__InvokeMethod(a, DWORD(_bp+16),PCount())
 RETURN(uRetValue)
Non capisco che differenza ci sia e per quale motivo non lo richiami.
Vi prego aiutatemi perchè sto impazzendo.
Il codice che scrivo io è :
SELF:oDCOleControl1:CurrentModule:Element(y)
questo non funziona, se invece scrivo:
SELF:oDCOleControl1:CurrentModule:ElementCount
FUNZIONAAA!!!!
VI PREGO AIUTATEMI DATEMI QUALCHE IDEA.
Saluti
Massimo Friargiu
La mia versione di VO è la 2.7b e l'ultima patch.
Grazie per ogni possibile aiuto. 

Nessuno ha qualche idea?
Massimo 

 Massimo
Mi dispiace Massimo, io non utilizzo librerire di terze parti. Tra l'altro 
anche io avevo cominciato a studiare gli standard DICOM per un mio cliente, 
ma ho dovuto sospendere per questioni di tempo.
Se dovessi riprendere magari ti aggiorno sugli sviluppi...
Ciao.
                        Francesco Leo 

Ho risolto, mi hanno risposto dal ng internazionale.
Grazie cmq dell'interessamento
Saluti
Massimo