不打码的磁力链接:Edanmo's OLE interfaces & functions 的使用

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 07:39:49
这个帖子是回答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   Sub  
   
  Private   Sub   Command1_Click()  
          ShowProperties   ShockwaveFlash1  
  End   Sub