////////////////////////////////////////////////////////////////////////////////////////////下面是VC的代码
// Mem.h : CMem 的声明#pragma once
#include "resource.h"       // 主符号// IMem
[
object,
uuid("47A631DA-EF71-44ED-99AC-3E8BDD6FBF7E"),
dual, helpstring("IMem 接口"),
pointer_default(unique)
]
__interface IMem : IDispatch
{
[id(1), helpstring("方法Do")] HRESULT Do(void);
};
// _IMemEvents
[
dispinterface,
uuid("08AFA06D-ABC4-4CA0-8037-4A807C914A7D"),
helpstring("_IMem事件接口")
]
__interface _IMemEvents
{
[id(1), helpstring("方法GoGo")] HRESULT GetData(void);
};
// CMem[
coclass,
threading("apartment"),
event_source("com"),
vi_progid("test01.Mem"),
progid("test01.Mem.1"),
version(1.0),
uuid("087AED3F-37E1-44CC-BF1A-E72556B27638"),
helpstring("Mem Class")
]
class ATL_NO_VTABLE CMem : 
public IMem
{
public:
CMem()
{
} __event __interface _IMemEvents; DECLARE_PROTECT_FINAL_CONSTRUCT() HRESULT FinalConstruct()
{
return S_OK;
}

void FinalRelease() 
{
}
STDMETHOD(Do)(void);
};
// Mem.cpp : CMem 的实现#include "stdafx.h"
#include "Mem.h"
// CMemSTDMETHODIMP CMem::Do(void)
{
// TODO: 在此添加实现代码
__raise GetData();
return S_OK;
}
///////////////////////////////////////////////////////////////////////////下面是VB的代码
Public Class Form1
    Inherits System.Windows.Forms.Form#Region " Windows 窗体设计器生成的代码 "……#End Region    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        mm.Do()    End Sub
End Class
Module Module1
    Public WithEvents eve As test01.CMemClass
    Public mm As New test01.CMemClass()    Public Sub eve_GetData() Handles eve.GetData
        MsgBox("good")
    End Sub
End Module