123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #pragma once
- #include "resource.h"
- #include "explorer1.h"
- // CWebBrowserDlg 对话框
- #define WM_LOADURLMESSAGE WM_USER+100
- #define WM_PRINTMESSAGE WM_USER+101
- // 打印错误代码
- enum ErrorCode {
- HTTP_STATUS_BAD_REQUEST=400,
- HTTP_STATUS_DENIED=401,
- HTTP_STATUS_PAYMENT_REQ=402,
- HTTP_STATUS_FORBIDDEN=403,
- HTTP_STATUS_NOT_FOUND=404,
- HTTP_STATUS_BAD_METHOD=405,
- HTTP_STATUS_NONE_ACCEPTABLE=406,
- HTTP_STATUS_PROXY_AUTH_REQ=407,
- HTTP_STATUS_REQUEST_TIMEOUT=408,
- HTTP_STATUS_CONFLICT=409,
- HTTP_STATUS_GONE=410,
- HTTP_STATUS_LENGTH_REQUIRED=411,
- HTTP_STATUS_PRECOND_FAILED=412,
- HTTP_STATUS_REQUEST_TOO_LARGE=413,
- HTTP_STATUS_URI_TOO_LONG=414,
- HTTP_STATUS_UNSUPPORTED_MEDIA=415,
- HTTP_STATUS_RETRY_WITH=449,
- HTTP_STATUS_SERVER_ERROR=500,
- HTTP_STATUS_NOT_SUPPORTED=501,
- HTTP_STATUS_BAD_GATEWAY=502,
- HTTP_STATUS_SERVICE_UNAVAIL=503,
- HTTP_STATUS_GATEWAY_TIMEOUT=504,
- HTTP_STATUS_VERSION_NOT_SUP=505,
- URL_INET_E_INVALID_URL=0x800C0002L-0x800C0000L,
- URL_INET_E_NO_SESSION,
- URL_INET_E_CANNOT_CONNECT,
- URL_INET_E_RESOURCE_NOT_FOUND,
- URL_INET_E_OBJECT_NOT_FOUND,
- URL_INET_E_DATA_NOT_AVAILABLE,
- URL_INET_E_DOWNLOAD_FAILURE,
- URL_INET_E_AUTHENTICATION_REQUIRED,
- URL_INET_E_NO_VALID_MEDIA,
- URL_INET_E_CONNECTION_TIMEOUT,
- URL_INET_E_INVALID_REQUEST,
- URL_INET_E_UNKNOWN_PROTOCOL,
- URL_INET_E_SECURITY_PROBLEM,
- URL_INET_E_CANNOT_LOAD_DATA,
- URL_INET_E_CANNOT_INSTANTIATE_OBJECT,
- URL_INET_E_REDIRECT_FAILED=0x800C0014L-0x800C0000L,
- URL_INET_E_REDIRECT_TO_DIR,
- URL_INET_E_CANNOT_LOCK_REQUEST,
- URL_INET_E_USE_EXTEND_BINDING,
- URL_INET_E_TERMINATED_BIND,
- URL_INET_E_INVALID_CERTIFICATE,
- URL_INET_E_CODE_DOWNLOAD_DECLINED=0x800C0100L-0x800C0000L,
- URL_INET_E_RESULT_DISPATCHED=0x800C0200L-0x800C0000L,
- URL_INET_E_CANNOT_REPLACE_SFP_FILE=0x800C0300L-0x800C0000L,
- URL_INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY=0x800C0500L-0x800C0000L,
- URL_INET_E_CODE_INSTALL_SUPPRESSED=0x800C0400L-0x800C0000L
- };
- class CWebBrowserDlg : public CDialogEx
- {
- DECLARE_DYNAMIC(CWebBrowserDlg)
- private:
- // ActiveX WebBrowser控件
- CExplorer1 *m_WebIE;
- CPrintHostApi *m_pHost;
- IWebPrintCallBack *m_pICallBack;
- BOOL bNaviError; // 是否出现导航错误
- BOOL bLoadSucc; // 页面是否加载成功
- //HANDLE m_hLoadEvent; // 加载页面等待事件
- public:
- //// 获取Html元素
- //void GetHtmlElement(LPDISPATCH pDisp, VARIANT* URL);
- DECLARE_EVENTSINK_MAP()
- // WebBrowser Navigate失败事件
- void NavigateErrorExplorer1(LPDISPATCH pDisp, VARIANT* URL, VARIANT* Frame, VARIANT* StatusCode, BOOL* Cancel);
- // WebBrowser成功Navigate并结束事件
- void DocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL);
- public:
- CWebBrowserDlg(CWnd* pParent = NULL); // 标准构造函数
- CWebBrowserDlg(CPrintHostApi *pHost, IWebPrintCallBack* pICallBack, CWnd* pParent = NULL);
- virtual ~CWebBrowserDlg();
- // 对话框数据
- enum { IDD = IDD_WEBBROWSER_DIALOG };
- protected:
- virtual BOOL OnInitDialog();
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
- DECLARE_MESSAGE_MAP()
- protected:
- afx_msg LRESULT OnLoadUrlMessage(WPARAM wParam, LPARAM lParam);
- afx_msg LRESULT OnPrintMessage(WPARAM wParam, LPARAM lParam);
- public:
- afx_msg void OnClose();
- void BeforeNavigate2Explorer1(LPDISPATCH pDisp, VARIANT* URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers, BOOL* Cancel);
- void NavigateComplete2Explorer1(LPDISPATCH pDisp, VARIANT* URL);
- };
|