I've got a little further, I've found out about Holders now. So I changed the xmlESDO parameter to StringHolder and the wsdl that got generated had the StringHolder defined as a complex type and put the parameter in the response message definition.
However, it doesn't work. I still get the same error in vb. I used tcpmon to see what conversations were going back and forth and the client only gets the wsdl definition. So is the mssoap com object doing something wrong with this type? I'm just passing in a vb String type when I make the call, should I be using a different type? Chris. -----Original Message----- From: Chris Warr [mailto:[EMAIL PROTECTED]] Sent: Thursday, 23 May 2002 12:00 To: [EMAIL PROTECTED] Subject: Returning a parameter, ie. an [out] parameter Hi, I need to change a parameters value and return it to the caller (xmlESDO below). My Method looks like this. public int ValidateTailorDetails(String esid, String ScreenID, String xmlESDO, int index) { xmlESDO = "blah"; return 0; } I'm just letting axis generate the WSDL. I tried taking the axis generated xml and adding an element to the response message, like below, and then using this wsdl file in my call. <wsdl:message name="ValidateTailorDetailsRequest"> <wsdl:part name="esid" type="xsd:string"/> <wsdl:part name="ScreenID" type="xsd:string"/> <wsdl:part name="xmlESDO" type="xsd:string"/> <wsdl:part name="index" type="xsd:int"/> </wsdl:message> <wsdl:message name="ValidateTailorDetailsResponse"> <wsdl:part name="xmlESDO" type="xsd:string"/> <------------- Added this bit <wsdl:part name="return" type="xsd:int"/> </wsdl:message> For mine this should work, but my VB test app. gets an error - 'Invalid procedure call or argument' Anyone got any ideas as to anything else I need to do? Chris.