Classic ASP C# COM Microsoft VBScript runtime error

MitaGaves

New Member
Hi Classic ASP Experts,I am new to VBScript, COM and Classic ASP. I am getting Microsoft VBScript runtime error: Invalid procedure call or argument, while trying to pass an argument of type class to the COM method call. Although the object is created and the Visual Studio intellisense shows the method name along with parameter. I am not able make procedure call or argument.What am I missing?Please help.Here's my VBScript (ClassicASPHome.asp): \[code\]response.write("My first ASP script!") set co = Server.CreateObject("ClassicASPCOM.ComplexObject")co = ""co.Message = "Messi"co.Number = 100Dim fooSet foo = Server.CreateObject("ClassicASPCOM.ClassCOM")response.Write(bar.GetMessage("1234567890"))\[/code\]'---------------Works fine till here\[code\]Dim ret ' ---------------The following statement throws errorret = foo.PaymentDetails("co")response.Write("Fine")\[/code\]Code Snippet (C#):\[code\]// C# Code (ClassicASPCOM.dll) built with Strong Name and Registered for COM Interop:// Executed the following in Visual Studio Command Prompt in bin\Release folder// Regasm ClassicASPCOM.dll// Regasm ClassicASPCOM.dll /codebase// Regasm ClassicASPCOM.dll /tlb// gacutil/i ClassicASPCOM.dllusing System;using System.Runtime.InteropServices;namespace ClassicASPCOM{[ComVisibleAttribute(true)][Guid("D355BC25-B85F-4476-8D38-582F92F7B6F4")]public interface IComplexObject{ [DispId(2221)] int Number {get; set;} [DispId(2222)] string Message { get; set; } [DispId(2223)] int Nmbr { get; set; }}[ComVisibleAttribute(true)][Guid("4E602191-8D09-458E-A0D0-A0A267696F78"),ClassInterface(ClassInterfaceType.None)]public class ComplexObject{ int Nmbr; public int Number { get { return Nmbr; } set { Nmbr = value; } } string Msg; public string Message { get { return Msg; } set { Msg = value; } } DateTime Dt; public DateTime Dtime { get { return Dt; } set { Dt = value; } }}[ComVisibleAttribute(true)][Guid("4042FE79-8ACA-4E5D-9F14-2FF7C6AE8D88")]public interface IGetMessage{ [DispId(2224)] string GetMessage(string Message); [DispId(2225)] string PaymentDetails(ComplexObject cObject);}[ComVisibleAttribute(true)][Guid("9A133858-5893-4CA7-9048-345CD0FCF535"),ClassInterface(ClassInterfaceType.None)]public class ClassCOM : IGetMessage{ public string GetMessage(string Message) { return "Your Message: " + Message; } public string PaymentDetails(ComplexObject cObject) { return " Message: " + cObject.Message + " Number: " + cObject.Number; }} \[/code\]}Thanks
 
Top