zoukankan      html  css  js  c++  java
  • VC++ 程 序 中 用 对 话 框 的 形 式 显 示HTML 文 件 (转载,优点在于动态载入COM DLL)

     

    zhou daibing

    ---- 在 安 装 了IE 4 后, 可 以 在 程 序 中 用 对 话 框 的 形 式 显 示HTML 文 件, 如 弹 出 用HTML 写 的 帮 助 文 件 等 等, 如 同 直 接 用 浏 览 器, 但 又 与 浏 览 器 风 格 不 同。

    ---- 其 实 现 如 下:

    //在头文件或.cpp文件的开头
    包含文件urlmon.h,定义函数
    /////
    #include "urlmon.h"
    typedef HRESULT STDAPICALLTYPE SHOWHTMLDIALOGFN
     (HWND hwndParent, IMoniker
    *pmk, VARIANT *pvarArgIn, TCHAR* pchOptions,
       VARIANT *pvArgOut);
    //////
    
    //函数显示对话框,成功返回TRUE,失败返回FALSE
    BOOL ShowHtml()
    {
    HINSTANCE  hinstMSHTML = LoadLibrary
       (TEXT("MSHTML.DLL")); //装载动态连
    接库
    WCHAR url[]=L"HTTP://www.ccw.com.cn";
     //此地址名称可直接用html文件名代替
    
      if(hinstMSHTML)//装载动态连接库成功
      {
         SHOWHTMLDIALOGFN *pfnShowHTMLDialog;
    
         pfnShowHTMLDialog = (SHOWHTMLDIALOGFN*)
       GetProcAddress(hinstMSHTML,
    TEXT  ("ShowHTMLDialog"));
    
         if(pfnShowHTMLDialog)
         {
         IMoniker *moniker=NULL;
    
            //
         if( FAILED(CreateURLMoniker(NULL,
         (LPWSTR)url,&moniker ) ))
         {
            FreeLibrary(hinstMSHTML);
           return FALSE;
          }
    
            //调用ShowHTMLDialog函数显示URL上的HTML文件
          pfnShowHTMLDialog(m_hWnd,moniker,NULL,NULL,NULL);
    
          if(moniker!=NULL)
              moniker->Release();
    
          //显示成功,返回TRUE
           return TRUE;
    
         }
         else //GetProcessAddress失败
          return FALSE;
    
       FreeLibrary(hinstMSHTML);
      }
      else //装载动态连接库失败
       return FALSE;
    }
    
  • 相关阅读:
    找细胞(题解)
    关于dfs
    奇怪的电梯(题解)
    信息解码(Message Decoding ACM/ICPC 1991)
    查找最大元素
    8皇后问题(dfs)
    如何利用dfs遍历树
    dfs(计算细胞数量)
    决策树减支问题(优化)dfs减支问题
    组合数问题
  • 原文地址:https://www.cnblogs.com/xiaotaoliang/p/235591.html
Copyright © 2011-2022 走看看