X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/666f73c4d6f28abd99acaa747f94233de41bc668..2f70baea2fa2aa1fbcdceb0121eea1cb5c9bedf0:/include/wx/msw/webview_ie.h diff --git a/include/wx/msw/webview_ie.h b/include/wx/msw/webview_ie.h index b9d9bcfb26..aec06fc0d1 100644 --- a/include/wx/msw/webview_ie.h +++ b/include/wx/msw/webview_ie.h @@ -3,7 +3,7 @@ // Purpose: wxMSW IE wxWebView backend // Author: Marianne Gagnon // Id: $Id$ -// Copyright: (c) 2010 Marianne Gagnon, Steven Lamerton +// Copyright: (c) 2010 Marianne Gagnon, 2011 Steven Lamerton // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -12,7 +12,7 @@ #include "wx/setup.h" -#if wxUSE_WEBVIEW_IE +#if wxUSE_WEBVIEW_IE && defined(__WXMSW__) #include "wx/control.h" #include "wx/webview.h" @@ -22,9 +22,7 @@ #include "wx/vector.h" struct IHTMLDocument2; - class wxFSFile; -class wxFileSystem; class WXDLLIMPEXP_WEB wxWebViewIE : public wxWebView { @@ -111,6 +109,9 @@ public: virtual void RunScript(const wxString& javascript); + //Virtual Filesystem Support + virtual void RegisterHandler(wxWebHandler* handler); + // ---- IE-specific methods // FIXME: I seem to be able to access remote webpages even in offline mode... @@ -156,9 +157,10 @@ private: void ExecCommand(wxString command); IHTMLDocument2* GetDocument(); + wxDECLARE_DYNAMIC_CLASS(wxWebViewIE); }; -class VirtualProtocol : public IInternetProtocol, public IInternetProtocolInfo +class VirtualProtocol : public IInternetProtocol { protected: ULONG m_refCount; @@ -167,10 +169,10 @@ protected: VOID * fileP; wxFSFile* m_file; - wxFileSystem* m_fileSys; + wxWebHandler* m_handler; public: - VirtualProtocol(); + VirtualProtocol(wxWebHandler *handler); ~VirtualProtocol(); //IUnknown @@ -202,25 +204,6 @@ public: ULARGE_INTEGER* WXUNUSED(plibNewPosition)) { return E_FAIL; } HRESULT STDMETHODCALLTYPE UnlockRequest() { return S_OK; } - - //IInternetProtocolInfo - HRESULT STDMETHODCALLTYPE CombineUrl(LPCWSTR pwzBaseUrl, - LPCWSTR pwzRelativeUrl, - DWORD dwCombineFlags, - LPWSTR pwzResult, DWORD cchResult, - DWORD *pcchResult, DWORD dwReserved); - HRESULT STDMETHODCALLTYPE CompareUrl(LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, - DWORD dwCompareFlags) - { return INET_E_DEFAULT_ACTION; } - HRESULT STDMETHODCALLTYPE ParseUrl(LPCWSTR pwzUrl, PARSEACTION ParseAction, - DWORD dwParseFlags, LPWSTR pwzResult, - DWORD cchResult, DWORD *pcchResult, - DWORD dwReserved); - HRESULT STDMETHODCALLTYPE QueryInfo(LPCWSTR pwzUrl, - QUERYOPTION OueryOption, - DWORD dwQueryFlags, LPVOID pBuffer, - DWORD cbBuffer, DWORD *pcbBuf, - DWORD dwReserved); }; class ClassFactory : public IClassFactory @@ -228,6 +211,7 @@ class ClassFactory : public IClassFactory private: ULONG m_refCount; public: + ClassFactory(wxWebHandler* handler) : m_handler(handler) {} //IUnknown ULONG STDMETHODCALLTYPE AddRef(); HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject); @@ -237,8 +221,10 @@ public: HRESULT STDMETHODCALLTYPE CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject); HRESULT STDMETHODCALLTYPE LockServer(BOOL fLock); +private: + wxWebHandler* m_handler; }; -#endif // wxUSE_WEBVIEW_IE +#endif // wxUSE_WEBVIEW_IE && defined(__WXMSW__) #endif // wxWebViewIE_H