Skip to Content
COM+ Programming with Visual Basic
book

COM+ Programming with Visual Basic

by Jose Mojica
June 2001
Intermediate to advanced
368 pages
11h 3m
English
O'Reilly Media, Inc.
Content preview from COM+ Programming with Visual Basic

COM Standard Interfaces: IUnknown and IDispatch

So far you have seen how interfaces are represented in memory and what an object like CChecking looks like in memory when it has a single interface, the default interface. Let’s shift now to the case in which a developer adds functionality to the CChecking class by defining another interface, IAccount, and implementing the interface in the object. The following code shows how a developer might do this:

' Class IAccount

Option Explicit

Public Property Get Balance(  ) As Currency
End Property

Public Sub MakeDeposit(ByVal Amount As Currency)
End Sub

' Class CChecking
Option Explicit
Implements IAccount

Private m_cBalance As Currency

Private Property Get IAccount_Balance(  ) As Currency
    Balance = m_cBalance
End Property

Private Sub IAccount_MakeDeposit(ByVal Amount As Currency)
    m_cBalance = m_cBalance + Amount
End Sub

The client code using this code would look like the following:

Dim Acct As IAccount
Set Acct = new CChecking
Call Acct.MakeDeposit(5000)
Set Acct = Nothing

What VB does in this case is a little different. When the object is allocated in memory on the server side, VB builds two vtables. One vtable contains the public members of the _CChecking default interface. As it is right now, there are no public functions in CChecking. Nonetheless, if there were, then they would be part of a vtable. When VB sees the Implements statement in the server code, VB allocates a separate vtable to contain the public functions for the IAccount interface. ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Subclassing and Hooking with Visual Basic

Subclassing and Hooking with Visual Basic

Stephen Teilhet
VB .NET Language in a Nutshell

VB .NET Language in a Nutshell

Steven Roman PhD, Ron Petrusha, Paul Lomax
Programming in the .NET Environment

Programming in the .NET Environment

Damien Watkins, Mark Hammond, Brad Abrams

Publisher Resources

ISBN: 1565928407Supplemental ContentCatalog PageErrata