From 2112ca2d61731c7de8019e296f0102e2cdf45a5e Mon Sep 17 00:00:00 2001 From: Steve Lamerton Date: Sun, 2 Oct 2011 12:21:22 +0000 Subject: [PATCH] Remove copied class definitions from missing.h. Disable custom scheme handling under MinGW as it lacks the correct definitions. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/missing.h | 113 ------------------------------------ include/wx/msw/webview_ie.h | 4 ++ interface/wx/webview.h | 3 +- src/msw/webview_ie.cpp | 6 ++ 4 files changed, 12 insertions(+), 114 deletions(-) diff --git a/include/wx/msw/missing.h b/include/wx/msw/missing.h index 2b6280b287..392d05679d 100644 --- a/include/wx/msw/missing.h +++ b/include/wx/msw/missing.h @@ -577,119 +577,6 @@ typedef enum CommandStateChangeConstants { #ifndef DISPID_NEWWINDOW3 #define DISPID_NEWWINDOW3 273 -#endif - -//As MinGW is missing urlmon we replicate the definitions here for wxWebView -#ifdef __MINGW32__ - -EXTERN_C const IID CLSID_FileProtocol; -EXTERN_C const IID IID_IInternetProtocolRoot; -EXTERN_C const IID IID_IInternetProtocol; - -DEFINE_GUID(IID_IInternetProtocolRoot,0x79eac9e3,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IInternetProtocol,0x79eac9e4,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); - -typedef enum __MIDL_IBindStatusCallback_0006 -{ - BSCF_FIRSTDATANOTIFICATION = 0x1, - BSCF_INTERMEDIATEDATANOTIFICATION = 0x2, - BSCF_LASTDATANOTIFICATION = 0x4, - BSCF_DATAFULLYAVAILABLE = 0x8, - BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10 -} BSCF; - -typedef struct _tagPROTOCOLDATA -{ - DWORD grfFlags; - DWORD dwState; - LPVOID pData; - ULONG cbData; -} PROTOCOLDATA; - -typedef struct _tagBINDINFO -{ - ULONG cbSize; - LPWSTR szExtraInfo; - STGMEDIUM stgmedData; - DWORD grfBindInfoF; - DWORD dwBindVerb; - LPWSTR szCustomVerb; - DWORD cbstgmedData; - DWORD dwOptions; - DWORD dwOptionsFlags; - DWORD dwCodePage; - SECURITY_ATTRIBUTES securityAttributes; - IID iid; - IUnknown *pUnk; - DWORD dwReserved; -} BINDINFO; - -class IInternetProtocolSink : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE Switch(PROTOCOLDATA*) = 0; - virtual HRESULT STDMETHODCALLTYPE ReportProgress(ULONG, LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE ReportData(DWORD, ULONG, ULONG) = 0; - virtual HRESULT STDMETHODCALLTYPE ReportResult(HRESULT, DWORD, LPCWSTR) = 0; -}; - -class IInternetBindInfo : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE GetBindInfo(DWORD*, BINDINFO*) = 0; - virtual HRESULT STDMETHODCALLTYPE GetBindString(ULONG, LPOLESTR*, ULONG, - ULONG*) = 0; -}; - -class IInternetProtocolRoot : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE Start(LPCWSTR, IInternetProtocolSink*, - IInternetBindInfo*, DWORD, - HANDLE_PTR) = 0; - virtual HRESULT STDMETHODCALLTYPE Continue(PROTOCOLDATA*) = 0; - virtual HRESULT STDMETHODCALLTYPE Abort(HRESULT, DWORD) = 0; - virtual HRESULT STDMETHODCALLTYPE Terminate(DWORD) = 0; - virtual HRESULT STDMETHODCALLTYPE Suspend() = 0; - virtual HRESULT STDMETHODCALLTYPE Resume() = 0; -}; - -class IInternetProtocol : public IInternetProtocolRoot -{ -public: - virtual HRESULT STDMETHODCALLTYPE Read(void*, ULONG, ULONG*) = 0; - virtual HRESULT STDMETHODCALLTYPE Seek(LARGE_INTEGER, DWORD, - ULARGE_INTEGER*) = 0; - virtual HRESULT STDMETHODCALLTYPE LockRequest(DWORD) = 0; - virtual HRESULT STDMETHODCALLTYPE UnlockRequest() = 0; -}; - -class IInternetSession : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE RegisterNameSpace(IClassFactory*, - REFCLSID, LPCWSTR, - ULONG, const LPCWSTR*, - DWORD) = 0; - virtual HRESULT STDMETHODCALLTYPE UnregisterNameSpace(IClassFactory*, - LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE RegisterMimeFilter(IClassFactory*, - REFCLSID, - LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE UnregisterMimeFilter(IClassFactory*, - LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateBinding(LPBC, LPCWSTR, IUnknown*, - IUnknown**, - IInternetProtocol**, - DWORD) = 0; - virtual HRESULT STDMETHODCALLTYPE SetSessionOption(DWORD, LPVOID, DWORD, - DWORD) = 0; - virtual HRESULT STDMETHODCALLTYPE GetSessionOption(DWORD, LPVOID, DWORD*, - DWORD) = 0; -}; - -STDAPI CoInternetGetSession(DWORD, IInternetSession**, DWORD); - #endif /* diff --git a/include/wx/msw/webview_ie.h b/include/wx/msw/webview_ie.h index 407174b0e5..9da57a36fb 100644 --- a/include/wx/msw/webview_ie.h +++ b/include/wx/msw/webview_ie.h @@ -161,6 +161,8 @@ private: wxDECLARE_DYNAMIC_CLASS(wxWebViewIE); }; +#ifndef __MINGW32__ + class VirtualProtocol : public IInternetProtocol { protected: @@ -225,6 +227,8 @@ private: wxSharedPtr m_handler; }; +#endif // __MINGW32__ + #endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_IE && defined(__WXMSW__) #endif // wxWebViewIE_H diff --git a/interface/wx/webview.h b/interface/wx/webview.h index 94d3c68bb1..2a837de1c1 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -171,7 +171,8 @@ public: changed with a registry setting, see this article for more information. This backend has full support for - custom schemes and virtual file systems. + custom schemes and virtual file systems, except when compiling under MinGW + where they are disabled. @par wxWEB_VIEW_WEBKIT (GTK) diff --git a/src/msw/webview_ie.cpp b/src/msw/webview_ie.cpp index 8374dc87b8..0a6a640232 100644 --- a/src/msw/webview_ie.cpp +++ b/src/msw/webview_ie.cpp @@ -665,6 +665,7 @@ void wxWebViewIE::RunScript(const wxString& javascript) void wxWebViewIE::RegisterHandler(wxSharedPtr handler) { +#ifndef __MINGW32__ wxDynamicLibrary urlMon(wxT("urlmon.dll")); if(urlMon.HasSymbol(wxT("CoInternetGetSession"))) { @@ -689,6 +690,7 @@ void wxWebViewIE::RegisterHandler(wxSharedPtr handler) { wxFAIL_MSG("urlmon does not contain CoInternetGetSession"); } +#endif } bool wxWebViewIE::CanExecCommand(wxString command) const @@ -975,6 +977,8 @@ void wxWebViewIE::onActiveXEvent(wxActiveXEvent& evt) evt.Skip(); } +#ifndef __MINGW32__ + VirtualProtocol::VirtualProtocol(wxSharedPtr handler) { m_refCount = 0; @@ -1144,4 +1148,6 @@ ULONG ClassFactory::Release(void) } +#endif // __MINGW32__ + #endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_IE -- 2.45.2