• Welcome to Theos PowerBasic Museum 2017.

News:

Attachments are only available to registered users.
Please register using your full, real name.

Main Menu

Using SOAP but not registered

Started by Edwin Knoppert, December 19, 2008, 11:31:06 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Edwin Knoppert

I have two questions:

1)
I have unregistered mssoap1.dll but the code below does not work.
When i register the dll again i get a response from the webserver.
This may be that the dll depends on others?
To bad then.

2)
How does it work?
The GetClusterUrl() does work (when registered) but seems a late bind interface?
I mean.. this function does not exist in the dll (of course), it is a wsdl call.


Function Test() As Long

    Local v As Variant
    Local o As ISOAPClient
    Local vUserName As Variant
    Local vPassword As Variant
    Local vOffice As Variant
    Local vCompany As Variant
    Local vError As Variant
    Local sError  As String
    Local oDispatch As Dispatch

    o = newcom $PROGID_SoapClient
'    o = newcom CLSID $CLSID_SoapClient Lib "C:\Program Files\Common Files\MSSoap\Binaries\mssoap1.dll"

    'MsgBox Str$( IsObject( o ) )

    o.ClientProperty( UCode$( "ServerHTTPRequest" ) ) = -1
    MsgBox Format$( ObjResult )
    o.mssoapinit( UCode$( "https://login.twinfield.com/SOAP/Redirect.wsdl" ) )
    MsgBox Format$( ObjResult )
             
    v = ""
    oDispatch = o   
    Object Call oDispatch.GetClusterUrl( vUserName, vPassword, vOffice, vCompany, vError ) To v
    sError = Variant$( vError ): Replace "//" With $CrLf In sError     
   
    MsgBox Variant$( v ) & $CrLf & sError

End Function


Since there is no account specified, you'll get (should be) the following response:

"User or company does not exist or the password is incorrect."

?

Here is a small part of the interface:


' Version Dependant ProgID's
$PROGID_SoapConnectorFactory1 = "MSSOAP.ConnectorFactory.1"
$PROGID_HttpConnector1 = "MSSOAP.HttpConnector.1"
$PROGID_SoapReader1 = "MSSOAP.SoapReader.1"
$PROGID_SoapSerializer1 = "MSSOAP.SoapSerializer.1"
$PROGID_SoapServer1 = "MSSOAP.SoapServer.1"
$PROGID_SoapClient1 = "MSSOAP.SoapClient.1"
$PROGID_WSDLReader1 = "MSSOAP.WSDLReader.1"
$PROGID_SoapTypeMapperFactory1 = "MSSOAP.SoapTypeMapperFactory.1"

' Version Independant ProgID's
$PROGID_SoapConnectorFactory = "MSSOAP.ConnectorFactory"
$PROGID_HttpConnector = "MSSOAP.HttpConnector"
$PROGID_SoapReader = "MSSOAP.SoapReader"
$PROGID_SoapSerializer = "MSSOAP.SoapSerializer"
$PROGID_SoapServer = "MSSOAP.SoapServer"
$PROGID_SoapClient = "MSSOAP.SoapClient"
$PROGID_WSDLReader = "MSSOAP.WSDLReader"
$PROGID_SoapTypeMapperFactory = "MSSOAP.SoapTypeMapperFactory"

' Class Indentifiers
$CLSID_SoapConnector = Guid$("{A295EAB4-73AC-4725-A7DE-51047843B421}")
$CLSID_SoapConnectorFactory = Guid$("{4CE546FF-9128-465E-B5C5-5A36CFC2C285}")
$CLSID_HttpConnector = Guid$("{6205B8C9-75FF-4623-A50A-88E1F14EAFF2}")
$CLSID_SoapReader = Guid$("{FDE424F3-AA10-471D-8A0A-6875C17B5914}")
$CLSID_SoapSerializer = Guid$("{ADE424F3-AA10-471D-8A0A-687534555900}")
$CLSID_SoapServer = Guid$("{EBB2FF12-861A-42B6-B815-B1AF4D944916}")
$CLSID_SoapClient = Guid$("{86D54F3D-652D-4AB3-A1A6-14D403F6C813}")
$CLSID_WSDLReader = Guid$("{BB023FC5-AA10-47CE-8A0A-6875C17B5914}")
$CLSID_SoapTypeMapperFactory = Guid$("{9C5754F7-ADF5-4D82-B181-0F8FC5EA882B}")
$CLSID_EnumWSDLService = Guid$("{86950840-D999-4902-B97A-1E80D2F31A51}")
$CLSID_WSDLService = Guid$("{C75F59D9-672E-42E0-B353-134E1EB27EEA}")
$CLSID_EnumWSDLOperations = Guid$("{D39CBFF4-46AF-459D-A8F7-61A38A1DC285}")
$CLSID_WSDLOperation = Guid$("{61FC8C46-7102-4F1C-BFA0-30CD43AFF1BB}")
$CLSID_SoapMapper = Guid$("{55429FCE-044E-4ADF-9322-2CFBFF9B7B5D}")
$CLSID_EnumSoapMappers = Guid$("{6B6B62B5-8F0A-46AD-AAFA-11AF2517DED1}")
$CLSID_EnumWSDLPorts = Guid$("{BD283625-5931-40CA-B43B-8E8A8651DC70}")
$CLSID_WSDLPort = Guid$("{DBA51E33-5D87-47AA-AF2F-2A616527808A}")

' Interface Indentifiers
$IID_IWSDLPort = Guid$("{94873E03-77DF-455F-BC1C-E83B5AB8CF0F}")
$IID_IEnumWSDLOperations = Guid$("{C4618005-691F-41FE-A318-C37CEC14B867}")
$IID_IWSDLOperation = Guid$("{2C713C3C-77FE-4997-AA30-38519C57FC15}")
$IID_IEnumSoapMappers = Guid$("{A8BF14B8-DBBA-45B5-A1ED-571697FACD4C}")
$IID_ISoapMapper = Guid$("{AC2424F3-0A74-4231-AB31-4A037C9B22A3}")
$IID_ISoapSerializer = Guid$("{ADE424F3-0474-4231-AB31-4A254897700B}")
$IID_ISoapReader = Guid$("{FDE424F3-0474-4231-AB31-4A037C9A98BB}")
$IID_ISoapConnector = Guid$("{09BC1FF4-5711-4B93-B01D-DDD826EBD353}")
$IID_IStream = Guid$("{0000000C-0000-0000-C000-000000000046}")
$IID_ISequentialStream = Guid$("{0C733A30-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ISoapConnectorFactory = Guid$("{8905303D-7ED3-40C2-A37F-27A46F98346A}")
$IID_ISOAPClient = Guid$("{4BDFD94B-415C-46F2-95E1-D145AB080F9E}")
$IID_ISOAPServer = Guid$("{E8685095-8543-4771-B2EE-E17C58379E47}")
$IID_ISoapTypeMapperFactory = Guid$("{B818238A-B709-4EB2-A4CE-6BA02C671F74}")
$IID_ISoapTypeMapper = Guid$("{CEA11D8A-258D-4863-A91F-3B4D046039E2}")
$IID_IHeaderHandler = Guid$("{504D4B91-76B8-4D88-95EA-CEB5E0FE41F3}")
$IID_ISoapTypeMapper2 = Guid$("{0571CE21-57EE-43D9-9EC7-36D7B4AF5034}")
$IID_IEnumWSDLPorts = Guid$("{6DEAE1C2-789F-430C-94CB-703F24E25D52}")
$IID_IWSDLService = Guid$("{C21A73B1-5655-4B36-BA3F-8E2DBABE82DF}")
$IID_IEnumWSDLService = Guid$("{BD5965B7-F5BF-49F3-AE7B-F817D4B7CC99}")
$IID_IWSDLReader = Guid$("{77127B0C-C47E-4861-8429-4B6DA7401663}")
$IID_ISOAPError = Guid$("{EDABBFA8-E126-402D-B65D-4EFAC1405F6E}")

'
' Interface Name  : ISOAPClient
' Description     : ISOAPClient Interface
' ClassID         : $CLSID_SoapClient
' ProgID          : $PROGID_SoapClient
' Version ProgID  : $PROGID_SoapClient1
Interface ISOAPClient $IID_ISOAPClient
    Inherit IDispatch

    Method mssoapinit <1> (ByVal bstrWSDLFile As String, Opt ByVal bstrServiceName As String, Opt ByVal bstrPort As String, _
        Opt ByVal bstrWSMLFile As String)
    Property Get faultcode <2> () As String
    Property Get faultstring <3> () As String
    Property Get faultactor <4> () As String
    Property Get detail <5> () As String
    Property Get ClientProperty <1610743813> (ByVal PropertyName As String) As Variant
    Property Set PutRef_HeaderHandler <1610743814> (ByVal Rhs As IDispatch)
    Property Set ClientProperty <1610743813> (ByVal PropertyName As String, ByVal pPropertyValue As Variant)
    Property Get ConnectorProperty <1610743816> (ByVal PropertyName As String) As Variant
    Property Set ConnectorProperty <1610743816> (ByVal PropertyName As String, ByVal pPropertyValue As Variant)
End Interface


Eckhard Seibel

Hi Edwin,
not sure if it helps:
SOAP relies completely on XML as its data format, therefore the Microsoft XML Parser is also needed for XML processing. The Microsoft XML parser is included in msxml3.dll where # is the version number. Again, you need to import this file before importing mssoap1.dll:

#import "msxml3.dll"

Edwin Knoppert

:)

This is com, not VB.NET, however, i have only unregistered this specific dll.