[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] IDispatch and VB ?



PureBytes Links

Trading Reference Links

Hello,

I would like to create a static object in AFL and after send this 
pointer (called IDispatch type variable) to a Visual Basic 
COM/ActiveX DLL.
After i would like to call this object created in AFL amibroker from 
the VB code.

I need to use VB code because the COM object created fom AFL return 
matrix, so i need to change the result to array before sending it 
back to Amibroker.
And another purpose of this is that create.object is long because it 
is a heavy object, so during recursion with multiple call to the VB 
code in AFL it is really slow. I would like to create the object just 
one time with amibroker, and after call directly the method from 
Visual Basic without create a new object.

The code i use are :

AFL code :
------------------------------------------
aClass = CreateObject("carre.carreclass"); //object to be called in 
the VB code, we can use CreateStaticObject too here
myobj = CreateObject("Project1.Class1"); // VB COM/ActiveX DLL
_TRACE("aClass:"+aClass); // return IDispatch type variable
_TRACE("myobj:"+myobj); // return IDispatch type variable

result = myobj.test(200, aClass);
------------------------------------------

VB code :
------------------------------------------
Public Function testVB(n As Variant, aClass As Variant) As Variant
'IF I DEBUG HERE "aClass" is empty !!
    Dim matrix As Variant
    Dim result() As Variant
    
    Call aClass.fct1(matrix, n)

... processing matrix variable and VB code here ...
    
' IF I SEND BACK testVB = aClass to amibroker, a _trace under 
amibroker no more say that variable is IDispatch, but say it is 
empty !!

    testVB = result

End Function
------------------------------------------


Any help is welcome ! Thanks.

Cheers,
Mich





Content-Description: "AVG certification"
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.432 / Virus Database: 268.15.16/582 - Release Date: 12/11/2006 4:32 PM