Summary
Getting the error message Run time error 424 Object Required when attempting
to assign a value to a C# COM visible property of type object.
I have created a COM visible class as below
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace ComObjectTest
{
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[Guid("6350DE7F-8F6E-4623-88B1-C218CB557BBB")]
public interface IComInterface
{
string String {get;set;}
int Long {get;set;}
DateTime Date {get;set;}
Object Value {get;set;}
}
[Guid("42653F00-FD97-4a8d-AF1B-9CB81842C922")]
[ClassInterface(ClassInterfaceType.None),Serializab le]
public class ComObject : IComInterface
{
Object m_Value = null;
string m_String = string.Empty;
int m_Integer = 0;
DateTime m_Date = new DateTime();
public ComObject()
{
}
#region IComInterface Members
public Object Value
{
get {return m_Value;}
set {m_Value = value;}
}
public string String
{
get {return m_String;}
set { m_String = value;}
}
public int Long
{
get { return m_Integer; }
set { m_Integer = value;}
}
public DateTime Date
{
get { return m_Date; }
set { m_Date = value; }
}
}
#endregion
}
In VB6 I have added a reference to this class.
The class is displayed as expected in the VB6 object viewer
I have the following VB6 code
Dim o As ComObject
Set o = New ComObject
o.Date = Now()
o.Long = 100
o.String = "Hello World"
o.Value = 123
The final line causes the Object expected error.
Could someone please explain where I am going wrong?
Many thanks