Quantcast
Viewing all articles
Browse latest Browse all 26542

Classic ASP C# COM VBScript runtime error: Invalid procedure call or argument

Hi Classic ASP Experts,

Basically, I am new to Classic ASP and VBScript, and got this "VBScript runtime error: Invalid procedure call or argument", while trying to pass an argument of complex type to the COM method (vide screenshot below). While the server object is getting created and the string passed to the COM method, any attempt to pass an argument of complex type goes in vain.

Please help.

Here's the Code Snippet:

VBScript (server-side) on ClassicASPHome.asp page:

Here's my VBScript (ClassicASPHome.asp): 

  

<%

   response.write("My first ASP script!")
     set co = Server.CreateObject("ClassicASPCOM.ComplexObject")
     co.Message = "Messi"
     co.Number = 100

    Dim ccom
     Set ccom = Server.CreateObject("ClassicASPCOM.ClassCOM")

    response.Write(ccom.GetMessage("1234567890"))

   '---------------Works fine till here

    Dim ret

 

    ' ---------------The following statement throws error

   

ret = ccom.PaymentDetails(co)

    response.Write("Fine")

    %>

Code Snippet:

// 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.dll

using 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)]
         DateTime Dtime { get; set; }
     }

    [ComVisibleAttribute(true)]
     [Guid("4E602191-8D09-458E-A0D0-A0A267696F78"),
     ClassInterface(ClassInterfaceType.None)]
     public class ComplexObject :  IComplexObject
     {
         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;
         }
     }  
 }

 

Image may be NSFW.
Clik here to view.

 

Thanks


 


Viewing all articles
Browse latest Browse all 26542

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>