Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Calling a COM (C++) dll with parameters...
Message
De
12/06/2002 09:53:16
Paul Hardy
Star Dot Star Business Systems, Inc.
Georgie, États-Unis
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
COM/DCOM et OLE Automation
Titre:
Calling a COM (C++) dll with parameters...
Divers
Thread ID:
00667345
Message ID:
00667345
Vues:
52
I've got a COM dll I'm trying to use and am having problems with a specific method call. After calling the method, the parameters are suppose to be populated. The dll's programmer's guide list the syntax as follows:

HRESULT GetVersion ([out] short* majorVersion,
[out] short* minorVersion, [out] ENReleaseLevel* releaseLevel,
[out] short* releaseNumber)

When I view the dll in the VFP Object Browser and select the GetVersion( ) method, the following in displayed in the object browser's description area,

Method GetVersion(MajorVersion As Numeric, MinorVersion As Numeric, releaseLevel As ENReleaseLevel, releaseNumber As Numeric) As None
Member of QBFC1Lib
method GetVersion


Here are some of my attempts from the command window:

********************************
TEST 1

SET UDFPARMS TO VALUE
majorVersion=0
minorVersion=0
releaseLevel=3
releaseNumber=0

goQBSM.GetVersion( majorVersion, minorVersion, releaseLevel, releaseNumber )

This method doesn't produce an error, but the global variables do not change
values, majorVersion is still equal to 0 instead of 1.

*********************************
TEST 2
Attempted to pass the variables by reference

SET UDFPARMS TO REFERENCE
majorVersion=0
minorVersion=0
releaseLevel=3
releaseNumber=0

goQBSM.GetVersion( majorVersion, minorVersion, releaseLevel, releaseNumber )

This method produces error,
OLE error code, 0x80020005: Type mismatch.

*********************************
TEST 3
Attempted to pass the variables by reference

SET UDFPARMS TO VALUE
majorVersion=0
minorVersion=0
releaseLevel=3
releaseNumber=0

goQBSM.GetVersion( @majorVersion, @minorVersion, @releaseLevel, @releaseNumber )

This method produces error,
OLE error code, 0x80020005: Type mismatch.

*********************************
TEST 4

Attempted to pass the variables by reference

SET UDFPARMS TO VALUE
majorVersion=0
minorVersion=0
releaseLevel=3
releaseNumber=0

goQBSM.GetVersion( @majorVersion, @minorVersion, 3, @releaseNumber )

This method produces error,
OLE error code, 0x80020005: Type mismatch.

Thanks
Répondre
Fil
Voir

Click here to load this message in the networking platform