Information générale
Catégorie:
COM/DCOM et OLE Automation
Titre:
Calling a COM (C++) dll with parameters...
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
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement