<p>I have two vb.net class:</p>

<pre><code>Public MustInherit Class Class1
    Private m_sProperty1 As String = ""
    Public Property sProperty1() As String
        Get
            Return m_sProperty1
        End Get
        Set(ByVal value As String)
            m_sProperty1 = value
        End Set
    End Property
End Class

&lt;ComClass("classid","interfaceid","eventid")&gt; _
Public Class Class2
    Inherits Class1

    Private m_sProperty2 As String = ""
    Public Property sProperty2() As String
        Get
            Return m_sProperty2
        End Get
        Set(ByVal value As String)
            m_sProperty2 = value
        End Set
    End Property
End Class
</code></pre>

<p>When I reference the compiled DLL through VB6, Class2 only exposes sProperty2.  How can I access the inherited property of the base class (sProperty1) through COM?</p>

I'll take a guess as I'm not up to speed on .NET
I would imagine your declaration is taking your public methods of Class2 and creating a COM interface out of them.  It will only take methods (and properties) on Class2 and not inherited ones (otherwise you would get all public methods all the way down to your base class).
The solution would probably be to declare Class1 as a COM class also (it may be possible to mark it as private) then specify that the COM interfaceid of Class2 descends from the COM interfaceid of Class1.
Some thing like that shoudl do the trick.