这个帖子是回答standys2004提出的问题的,估计有些朋友还不知道,就贴出来了:)
首先,COM对象如果要支持属性页特性,那么它必须实现ISpecifyPropertyPages接口,同样我们只要实现了ISpecifyPropertyPages接口,就可以显示属性页,在vb中实现ISpecifyPropertyPages接口需要我们了解ODL语言,编好ODL文件后,再编译为TLB文件,这里,我们需要庆幸的是,网上有很多相关的资源,可以找到现成的TLB文件,这里我用的是大家普遍使用的Edanmo's OLE interfaces & functions v1.81(使用这个的好处是可以省掉好多api的声明),它可以从:http://www.mvps.org/emorcillo/download/vb6/tl_ole.zip
下载,下载后,解压,找到olelib.tlb这个文件,它是我们需要的东东,然后,注册它并进行引用(可以用工具软件注册它,也可以从 工程-引用 对话框中 浏览 找到这个文件,然后双击)下面说说具体的实现,窗体上一个flash控件,名为ShockwaveFlash1,一个按钮,代码如下:
Option Explicit
'首先,你应该确定你已经引用了Edanmo's OLE interfaces & functions v1.81
Sub ShowProperties( _
   ByVal Ctrl As Object, _
   Optional ByVal CtrlName As String, _
   Optional ByVal hWndParent As Long)
    Dim oSPP As ISpecifyPropertyPages
    Dim tPages As CAUUID   On Error Resume Next
   ' 获得控件的 ISpecifyPropertyPages 接口
   Set oSPP = Ctrl
   If oSPP Is Nothing Then
      ' 如果失败,则尝试使用控件的Object属性进行获取
      Set oSPP = Ctrl.Object
      If oSPP Is Nothing Then
         '下面是错误处理
         On Error GoTo 0
         Err.Raise 13
      End If
   End If
   ' 获得控件的所有属性页
   oSPP.GetPages tPages
   ' 显示属性页
   OleCreatePropertyFrame hWndParent, 0, 0, _
      CtrlName, 1, Ctrl, tPages.cElems, _
      ByVal tPages.pElems, 0, 0, 0
   '释放资源
   CoTaskMemFree tPages.pElems
End SubPrivate Sub Command1_Click()
    ShowProperties ShockwaveFlash1
End Sub