#endif
// For Visual C++ 6 and MinGW32. Used by webview_ie.cpp
-
-#if defined (__MINGW32__) || (_MSC_VER < 1300)
-enum
-{
- OLECMDID_OPTICAL_ZOOM = 63
-};
-#endif
-
#ifndef INET_E_INVALID_CERTIFICATE
#define INET_E_INVALID_CERTIFICATE 0x800C0019L
#endif
#ifndef DISPID_NEWWINDOW3
#define DISPID_NEWWINDOW3 273
+#endif
+
+//We need to check if we are using MinGW which doesn't inlcude the urlmon
+//defintions as opposed to MinGW-64 which does
+
+#ifdef __MINGW32__
+#include <_mingw.h>
+#endif
+
+//Definitions from w64 mingw-runtime package, in the public domain
+//Used by webview
+#if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR)
+
+EXTERN_C const IID CLSID_FileProtocol;
+
+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;
+
+
+struct IInternetBindInfo : public IUnknown
+{
+public:
+ virtual HRESULT WINAPI GetBindInfo(DWORD *grfBINDF,BINDINFO *pbindinfo) = 0;
+ virtual HRESULT WINAPI GetBindString(ULONG ulStringType,LPOLESTR *ppwzStr,
+ ULONG cEl,ULONG *pcElFetched) = 0;
+};
+
+struct IInternetProtocolSink : public IUnknown
+{
+public:
+ virtual HRESULT WINAPI Switch(PROTOCOLDATA *pProtocolData) = 0;
+ virtual HRESULT WINAPI ReportProgress(ULONG ulStatusCode,
+ LPCWSTR szStatusText) = 0;
+ virtual HRESULT WINAPI ReportData(DWORD grfBSCF,ULONG ulProgress,
+ ULONG ulProgressMax) = 0;
+ virtual HRESULT WINAPI ReportResult(HRESULT hrResult,DWORD dwError,
+ LPCWSTR szResult) = 0;
+};
+
+struct IInternetProtocolRoot : public IUnknown
+{
+public:
+ virtual HRESULT WINAPI Start(LPCWSTR szUrl,IInternetProtocolSink *pOIProtSink,
+ IInternetBindInfo *pOIBindInfo,DWORD grfPI,
+ HANDLE_PTR dwReserved) = 0;
+ virtual HRESULT WINAPI Continue(PROTOCOLDATA *pProtocolData) = 0;
+ virtual HRESULT WINAPI Abort(HRESULT hrReason,DWORD dwOptions) = 0;
+ virtual HRESULT WINAPI Terminate(DWORD dwOptions) = 0;
+ virtual HRESULT WINAPI Suspend(void) = 0;
+ virtual HRESULT WINAPI Resume(void) = 0;
+};
+
+struct IInternetProtocol : public IInternetProtocolRoot
+{
+public:
+ virtual HRESULT WINAPI Read(void *pv,ULONG cb,ULONG *pcbRead) = 0;
+ virtual HRESULT WINAPI Seek(LARGE_INTEGER dlibMove,DWORD dwOrigin,
+ ULARGE_INTEGER *plibNewPosition) = 0;
+ virtual HRESULT WINAPI LockRequest(DWORD dwOptions) = 0;
+ virtual HRESULT WINAPI UnlockRequest(void) = 0;
+};
+
+struct IInternetSession : public IUnknown
+{
+ public:
+ virtual HRESULT WINAPI RegisterNameSpace(IClassFactory *pCF,REFCLSID rclsid,
+ LPCWSTR pwzProtocol,
+ ULONG cPatterns,
+ const LPCWSTR *ppwzPatterns,
+ DWORD dwReserved) = 0;
+ virtual HRESULT WINAPI UnregisterNameSpace(IClassFactory *pCF,
+ LPCWSTR pszProtocol) = 0;
+ virtual HRESULT WINAPI RegisterMimeFilter(IClassFactory *pCF,
+ REFCLSID rclsid,
+ LPCWSTR pwzType) = 0;
+ virtual HRESULT WINAPI UnregisterMimeFilter(IClassFactory *pCF,
+ LPCWSTR pwzType) = 0;
+ virtual HRESULT WINAPI CreateBinding(LPBC pBC,LPCWSTR szUrl,
+ IUnknown *pUnkOuter,IUnknown **ppUnk,
+ IInternetProtocol **ppOInetProt,
+ DWORD dwOption) = 0;
+ virtual HRESULT WINAPI SetSessionOption(DWORD dwOption,LPVOID pBuffer,
+ DWORD dwBufferLength,
+ DWORD dwReserved) = 0;
+ virtual HRESULT WINAPI GetSessionOption(DWORD dwOption,LPVOID pBuffer,
+ DWORD *pdwBufferLength,
+ DWORD dwReserved) = 0;
+};
+
#endif
/*