Здравствуйте.
Проблема в передаче параметров функции через MSSOAP.SoapClient30
Сами параметры на XML выглядят так:
<ns1:request>
<ns1:Login> ???? </ns1:Login>
<ns1:Password> ???? </ns1:Password>
<ns1:ContractID> ??? </ns1:ContractID>
</ns1:request>
[vba]Код
Private Type TRequest
Login As String
Password As String
ContractID As Double
End Type
Private Declare PtrSafe Function VarPtrArray Lib "VBE7" Alias _
"VarPtr" (ByRef Var() As Any) As LongPtr
Sub Test
Dim oHttp As Object
Dim oSOAPClient As Object
Dim dom_sel As MSXML2.IXMLDOMSelection
Dim ptrToVar As LongPtr
Dim aa As TRequest
Set oSOAPClient = CreateObject("MSSOAP.SoapClient30")
Call oSOAPClient.MSSoapInit(<имя сервиса wsdl>)
aa.Login = "?????"
aa.Password = "?????"
aa.ContractID = 000000000000#
ptrToVar = VarPtr(aa)
Set dom_sel = oSOAPClient.<Имя метода>(ptrToVar)
end sub
[/vba]
Причем передача одного параметра проходит без ошибок. И примеры на VBA я находил только для 1 параметра. А передать много параметров не получается.
Уже пробывал передавать и массивом и ссылкой.
p.s. К сожалению не могу расскрыть имя сервиса по соображениям конфиденциальности.