分享

OLECMDID

 liujian6916 2007-01-07
前天偶然发现m_Web.ExecWB(OLECMDID_SAVEAS,OLECMDEXECOPT_PROMPTUSER,&va_inVal,&va_outVal); 能够调出ie的对话框,而且还可以保存为*.mht格式,但试尽了参数,也没法使对话框不被弹出而保存该文件为*.mht,请问各位有什么高招?

A
IDM_SAVEAS Command ID

--------------------------------------------------------------------------------

Saves the current Web page to a file.

C++ Information

Command group CGID_MSHTML (defined in mshtmhst.h) 
Symbolic constant IDM_SAVEAS 
User interface Optional. This command displays a dialogue box if the nCmdExecOpt argument of IOleCommandTarget::Exec  is set to MSOCMDEXECOPT_DODEFAULT, MSOCMDEXECOPT_PROMPTUSER, or NULL. It does not display a dialogue box if the argument is set to MSOCMDEXECOPT_DONTPROMPTUSER.
IOleCommandTarget::Exec parameters pvaIn VARIANT of type VT_BSTR that specifies the path and file name of the file to which to save the Web page. When the path contains more than one folder name, separate the folder names with two backward slashes (\\).
pvaOut Set to NULL.
 
Header file mshtmcid.h 
Applies to IHTMLDocument2::execCommand, IHTMLDocument2::queryCommandEnabled, IHTMLDocument2::queryCommandIndeterm, IHTMLDocument2::queryCommandState, IHTMLDocument2::queryCommandSupported, IHTMLDocument2::queryCommandValue, emit_hlink;, IOleCommandTarget::QueryStatus . 

保存到一个.mht文件,并且设置DONTPROMPTUSER看看


Accomplishing this task from a Visual C++ host is very straightforward. You can use an IWebBrowser2 interface to call the QueryInterface method for the IHTMLDocument2 interface. After you obtain a pointer to the document, then call QueryInterface for the IPersistFile interface. After you obtain this interface pointer, you can call the save method to save the file to disk.

    HRESULT          hr    = E_FAIL;
    IDispatch*       pDisp = NULL;
    IHTMLDocument2*  pDoc  = NULL;
 
    pDisp                  = m_webOC.GetDocument();

   if(SUCCEEDED(hr = pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc)))
   {
       IPersistFile* pFile = NULL;
       if(SUCCEEDED(pDoc->QueryInterface(IID_IPersistFile,(void**)&pFile)))
       {
 LPCOLESTR file = L"c:\\test1.mht";
 pFile->Save(file,TRUE);
       }
   }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多