zoukankan      html  css  js  c++  java
  • BOOL EnumInternetExplorer( ProcessWebBrowser pHander )

    //...
    #import <shdocvw.dll>
    #import <mshtml.tlb>
    #include <mshtml.h>
    //...

    //定义IE程序处理函数指针
    typedef  void  (*ProcessWebBrowser)( const SHDocVw::IWebBrowser2Ptr pBrowser );
    /*
    * 枚举当前打开的IE窗口,并输出网页的标题
    */
    BOOL  EnumInternetExplorer( ProcessWebBrowser pHander )
    {
        //IE属于shell的一个应用程序,再次需要枚举ShellWindows集合
        SHDocVw::IShellWindowsPtr  spSHWinds;
        if( FAILED( spSHWinds.CreateInstance( __uuidof( SHDocVw::ShellWindows ) ) ) )
            return FALSE;

        //获取ShellWindows集合的数目
        long nCount  = spSHWinds->GetCount();
        for ( long lIndex = 0; lIndex < nCount; lIndex++ )
        {
            //枚举每个项
            IDispatchPtr  spDisp;
            _variant_t  var( lIndex, VT_I4 );
            spDisp  =  spSHWinds->Item( var );

            if ( spDisp != NULL )
            {
                //Query网页接口
                SHDocVw::IWebBrowser2Ptr  spBrowser( spDisp );
                if( ( spBrowser != NULL ) && ( pHander != NULL ) )
                {
                    //调用处理函数
                    pHander( spBrowser );
                }
            }
        }

        return TRUE;
    }

    void  ShowIETitle( const  SHDocVw::IWebBrowser2Ptr  pBrowser )
    {
        //获取网页的文档接口
        MSHTML::IHTMLDocument2Ptr  spDoc( pBrowser->GetDocument() );
        if( spDoc != NULL )
        {
            CComBSTR  bstr;
            //获取标题
            spDoc->get_title( &bstr );
            //bstr即为网页标题
            _bstr_t   bstr_adapt  =  bstr;
            TCHAR* szTitle = bstr_adapt;
            AtlMessageBox( NULL, szTitle );
        }
    }

  • 相关阅读:
    nsq 启动流程讲解
    nsq 初识
    【资料】http包接口和结构体
    http包详解 2
    http包详解 1
    openstack多节点部署运维
    一款简单实用的串口通讯框架(SerialIo)
    ~MySQL Perfect~
    linux创建用户设置密码
    linux安装tomcat且配置环境变量
  • 原文地址:https://www.cnblogs.com/maifengqiang/p/2124303.html
Copyright © 2011-2022 走看看