e924e848f7
Fixes #13509 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69209 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
722 lines
19 KiB
C++
722 lines
19 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/msw/missing.h
|
|
// Purpose: Declarations for parts of the Win32 SDK that are missing in
|
|
// the versions that come with some compilers
|
|
// Created: 2002/04/23
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) 2002 Mattia Barbon
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_MISSING_H_
|
|
#define _WX_MISSING_H_
|
|
|
|
/*
|
|
* The following are required for VC++ 6.
|
|
*/
|
|
|
|
// Needed by cursor.cpp
|
|
#ifndef IDC_HAND
|
|
#define IDC_HAND MAKEINTRESOURCE(32649)
|
|
#endif
|
|
|
|
// Needed by strconv.cpp
|
|
#ifndef WC_NO_BEST_FIT_CHARS
|
|
#define WC_NO_BEST_FIT_CHARS 0x400
|
|
#endif
|
|
|
|
#ifndef WM_CONTEXTMENU
|
|
#define WM_CONTEXTMENU 0x007B
|
|
#endif
|
|
|
|
#ifndef WM_CHANGEUISTATE
|
|
#define WM_CHANGEUISTATE 0x0127
|
|
#endif
|
|
|
|
#ifndef WM_UPDATEUISTATE
|
|
#define WM_UPDATEUISTATE 0x0128
|
|
#endif
|
|
|
|
#ifndef WM_QUERYUISTATE
|
|
#define WM_QUERYUISTATE 0x0129
|
|
#endif
|
|
|
|
#ifndef WM_PRINTCLIENT
|
|
#define WM_PRINTCLIENT 0x318
|
|
#endif
|
|
|
|
#ifndef DT_HIDEPREFIX
|
|
#define DT_HIDEPREFIX 0x00100000
|
|
#endif
|
|
|
|
// Needed by toplevel.cpp
|
|
#ifndef UIS_SET
|
|
#define UIS_SET 1
|
|
#define UIS_CLEAR 2
|
|
#define UIS_INITIALIZE 3
|
|
#endif
|
|
|
|
#ifndef UISF_HIDEFOCUS
|
|
#define UISF_HIDEFOCUS 1
|
|
#endif
|
|
|
|
#ifndef UISF_HIDEACCEL
|
|
#define UISF_HIDEACCEL 2
|
|
#endif
|
|
|
|
#ifndef OFN_EXPLORER
|
|
#define OFN_EXPLORER 0x00080000
|
|
#endif
|
|
|
|
#ifndef OFN_ENABLESIZING
|
|
#define OFN_ENABLESIZING 0x00800000
|
|
#endif
|
|
|
|
// Needed by window.cpp
|
|
#if wxUSE_MOUSEWHEEL
|
|
#ifndef WM_MOUSEWHEEL
|
|
#define WM_MOUSEWHEEL 0x020A
|
|
#endif
|
|
#ifndef WHEEL_DELTA
|
|
#define WHEEL_DELTA 120
|
|
#endif
|
|
#ifndef SPI_GETWHEELSCROLLLINES
|
|
#define SPI_GETWHEELSCROLLLINES 104
|
|
#endif
|
|
#endif // wxUSE_MOUSEWHEEL
|
|
|
|
// Needed by window.cpp
|
|
#ifndef VK_OEM_1
|
|
#define VK_OEM_1 0xBA
|
|
#define VK_OEM_2 0xBF
|
|
#define VK_OEM_3 0xC0
|
|
#define VK_OEM_4 0xDB
|
|
#define VK_OEM_5 0xDC
|
|
#define VK_OEM_6 0xDD
|
|
#define VK_OEM_7 0xDE
|
|
#endif
|
|
|
|
#ifndef VK_OEM_COMMA
|
|
#define VK_OEM_PLUS 0xBB
|
|
#define VK_OEM_COMMA 0xBC
|
|
#define VK_OEM_MINUS 0xBD
|
|
#define VK_OEM_PERIOD 0xBE
|
|
#endif
|
|
|
|
#ifndef SM_TABLETPC
|
|
#define SM_TABLETPC 86
|
|
#endif
|
|
|
|
#ifndef INKEDIT_CLASS
|
|
# define INKEDIT_CLASSW L"INKEDIT"
|
|
# ifdef UNICODE
|
|
# define INKEDIT_CLASS INKEDIT_CLASSW
|
|
# else
|
|
# define INKEDIT_CLASS "INKEDIT"
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef EM_SETINKINSERTMODE
|
|
# define EM_SETINKINSERTMODE (WM_USER + 0x0204)
|
|
#endif
|
|
|
|
#ifndef EM_SETUSEMOUSEFORINPUT
|
|
#define EM_SETUSEMOUSEFORINPUT (WM_USER + 0x224)
|
|
#endif
|
|
|
|
#ifndef TPM_RECURSE
|
|
#define TPM_RECURSE 1
|
|
#endif
|
|
|
|
|
|
#ifndef WS_EX_LAYOUTRTL
|
|
#define WS_EX_LAYOUTRTL 0x00400000
|
|
#endif
|
|
|
|
#ifndef WS_EX_COMPOSITED
|
|
#define WS_EX_COMPOSITED 0x02000000L
|
|
#endif
|
|
|
|
#ifndef WS_EX_LAYERED
|
|
#define WS_EX_LAYERED 0x00080000
|
|
#endif
|
|
|
|
#ifndef LWA_ALPHA
|
|
#define LWA_ALPHA 2
|
|
#endif
|
|
|
|
#ifndef QS_ALLPOSTMESSAGE
|
|
#define QS_ALLPOSTMESSAGE 0
|
|
#endif
|
|
|
|
/*
|
|
* The following are required for VC++ 5 when the PSDK is not available.
|
|
*/
|
|
|
|
#if defined __VISUALC__ && __VISUALC__ <= 1100
|
|
|
|
#ifndef VER_NT_WORKSTATION
|
|
|
|
typedef struct _OSVERSIONINFOEXA {
|
|
DWORD dwOSVersionInfoSize;
|
|
DWORD dwMajorVersion;
|
|
DWORD dwMinorVersion;
|
|
DWORD dwBuildNumber;
|
|
DWORD dwPlatformId;
|
|
CHAR szCSDVersion[128];
|
|
WORD wServicePackMajor;
|
|
WORD wServicePackMinor;
|
|
WORD wSuiteMask;
|
|
BYTE wProductType;
|
|
BYTE wReserved;
|
|
} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
|
|
typedef struct _OSVERSIONINFOEXW {
|
|
DWORD dwOSVersionInfoSize;
|
|
DWORD dwMajorVersion;
|
|
DWORD dwMinorVersion;
|
|
DWORD dwBuildNumber;
|
|
DWORD dwPlatformId;
|
|
WCHAR szCSDVersion[128];
|
|
WORD wServicePackMajor;
|
|
WORD wServicePackMinor;
|
|
WORD wSuiteMask;
|
|
BYTE wProductType;
|
|
BYTE wReserved;
|
|
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW;
|
|
|
|
#ifdef UNICODE
|
|
typedef OSVERSIONINFOW OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
|
|
typedef OSVERSIONINFOEXW OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
|
|
#else
|
|
typedef OSVERSIONINFOA OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
|
|
typedef OSVERSIONINFOEXA OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
|
|
#endif
|
|
|
|
#endif // defined VER_NT_WORKSTATION
|
|
|
|
#ifndef CP_SYMBOL
|
|
#define CP_SYMBOL 42
|
|
#endif
|
|
|
|
// NMLVCUSTOMDRAW originally didn't have the iSubItem member. It was added
|
|
// with IE4, as was IPN_FIRST which is used as a test :-(.
|
|
//
|
|
#ifndef IPN_FIRST
|
|
|
|
typedef struct wxtagNMLVCUSTOMDRAW_ {
|
|
NMCUSTOMDRAW nmcd;
|
|
COLORREF clrText;
|
|
COLORREF clrTextBk;
|
|
int iSubItem;
|
|
} wxNMLVCUSTOMDRAW_, *wxLPNMLVCUSTOMDRAW_;
|
|
|
|
#define NMLVCUSTOMDRAW wxNMLVCUSTOMDRAW_
|
|
#define LPNMLVCUSTOMDRAW wxLPNMLVCUSTOMDRAW_
|
|
|
|
#endif // defined IPN_FIRST
|
|
|
|
#endif // defined __VISUALC__ && __VISUALC__ <= 1100
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// menu stuff
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#ifndef MIIM_BITMAP
|
|
#define MIIM_STRING 0x00000040
|
|
#define MIIM_BITMAP 0x00000080
|
|
#define MIIM_FTYPE 0x00000100
|
|
#define HBMMENU_CALLBACK ((HBITMAP) -1)
|
|
|
|
typedef struct tagMENUINFO
|
|
{
|
|
DWORD cbSize;
|
|
DWORD fMask;
|
|
DWORD dwStyle;
|
|
UINT cyMax;
|
|
HBRUSH hbrBack;
|
|
DWORD dwContextHelpID;
|
|
DWORD dwMenuData;
|
|
} MENUINFO, FAR *LPMENUINFO;
|
|
#endif // MIIM_BITMAP &c
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// definitions related to ListView and Header common controls, needed by
|
|
// msw/listctrl.cpp and msw/headerctrl.cpp
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#ifndef I_IMAGENONE
|
|
#define I_IMAGENONE (-2)
|
|
#endif
|
|
|
|
#ifndef LVS_EX_FULLROWSELECT
|
|
#define LVS_EX_FULLROWSELECT 0x00000020
|
|
#endif
|
|
|
|
// LVS_EX_LABELTIP is not supported by Windows CE, don't define it there
|
|
#if !defined(LVS_EX_LABELTIP) && !defined(__WXWINCE__)
|
|
#define LVS_EX_LABELTIP 0x00004000
|
|
#endif
|
|
|
|
#ifndef LVS_EX_SUBITEMIMAGES
|
|
#define LVS_EX_SUBITEMIMAGES 0x00000002
|
|
#endif
|
|
|
|
#ifndef HDN_GETDISPINFOW
|
|
#define HDN_GETDISPINFOW (HDN_FIRST-29)
|
|
#endif
|
|
|
|
#ifndef HDS_HOTTRACK
|
|
#define HDS_HOTTRACK 4
|
|
#endif
|
|
#ifndef HDS_FLAT
|
|
#define HDS_FLAT 0x0200
|
|
#endif
|
|
|
|
#ifndef HDF_SORTUP
|
|
#define HDF_SORTUP 0x0400
|
|
#define HDF_SORTDOWN 0x0200
|
|
#endif
|
|
|
|
/*
|
|
* In addition to the above, the following are required for several compilers.
|
|
*/
|
|
|
|
#if !defined(CCS_VERT)
|
|
#define CCS_VERT 0x00000080L
|
|
#endif
|
|
|
|
#if !defined(CCS_RIGHT)
|
|
#define CCS_RIGHT (CCS_VERT|CCS_BOTTOM)
|
|
#endif
|
|
|
|
#if !defined(TB_SETDISABLEDIMAGELIST)
|
|
#define TB_SETDISABLEDIMAGELIST (WM_USER + 54)
|
|
#endif // !defined(TB_SETDISABLEDIMAGELIST)
|
|
|
|
#ifndef CFM_BACKCOLOR
|
|
#define CFM_BACKCOLOR 0x04000000
|
|
#endif
|
|
|
|
#ifndef HANGUL_CHARSET
|
|
#define HANGUL_CHARSET 129
|
|
#endif
|
|
|
|
#ifndef CCM_SETUNICODEFORMAT
|
|
#define CCM_SETUNICODEFORMAT 8197
|
|
#endif
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Tree control
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#ifndef TV_FIRST
|
|
#define TV_FIRST 0x1100
|
|
#endif
|
|
|
|
#ifndef TVS_FULLROWSELECT
|
|
#define TVS_FULLROWSELECT 0x1000
|
|
#endif
|
|
|
|
#ifndef TVM_SETBKCOLOR
|
|
#define TVM_SETBKCOLOR (TV_FIRST + 29)
|
|
#define TVM_SETTEXTCOLOR (TV_FIRST + 30)
|
|
#endif
|
|
|
|
/*
|
|
* The following are required for BC++ 5.5 (none at present.)
|
|
*/
|
|
|
|
/*
|
|
* The following are specifically required for Digital Mars C++
|
|
*/
|
|
|
|
#ifdef __DMC__
|
|
|
|
#ifndef VER_NT_WORKSTATION
|
|
typedef struct _OSVERSIONINFOEX {
|
|
DWORD dwOSVersionInfoSize;
|
|
DWORD dwMajorVersion;
|
|
DWORD dwMinorVersion;
|
|
DWORD dwBuildNumber;
|
|
DWORD dwPlatformId;
|
|
TCHAR szCSDVersion[ 128 ];
|
|
WORD wServicePackMajor;
|
|
WORD wServicePackMinor;
|
|
WORD wSuiteMask;
|
|
BYTE wProductType;
|
|
BYTE wReserved;
|
|
} OSVERSIONINFOEX;
|
|
#endif // !defined(VER_NT_WORKSTATION)
|
|
|
|
#ifndef _TrackMouseEvent
|
|
#define _TrackMouseEvent TrackMouseEvent
|
|
#endif
|
|
|
|
#ifndef LVM_SETEXTENDEDLISTVIEWSTYLE
|
|
#define LVM_SETEXTENDEDLISTVIEWSTYLE (0x1000 + 54)
|
|
#endif
|
|
|
|
#ifndef LVM_GETSUBITEMRECT
|
|
#define LVM_GETSUBITEMRECT (0x1000 + 56)
|
|
#endif
|
|
|
|
#ifndef LVCF_IMAGE
|
|
#define LVCF_IMAGE 0x0010
|
|
#endif
|
|
|
|
#ifndef Header_GetItemRect
|
|
#define Header_GetItemRect(w,i,r) \
|
|
(BOOL)SendMessage((w),HDM_GETITEMRECT,(WPARAM)(i),(LPARAM)(r))
|
|
#endif
|
|
|
|
#ifndef HDM_GETITEMRECT
|
|
#define HDM_GETITEMRECT (HDM_FIRST+7)
|
|
#endif
|
|
|
|
#ifndef ListView_GetHeader
|
|
#define ListView_GetHeader(w) (HWND)SendMessage((w),LVM_GETHEADER,0,0)
|
|
#endif
|
|
|
|
#ifndef ListView_GetSubItemRect
|
|
#define ListView_GetSubItemRect(w, i, s, c, p) (HWND)SendMessage(w,LVM_GETSUBITEMRECT,i, ((p) ? ((((LPRECT)(p))->top = s), (((LPRECT)(p))->left = c), (LPARAM)(p)) : (LPARAM)(LPRECT)NULL))
|
|
#endif
|
|
|
|
#ifndef LVM_GETHEADER
|
|
#define LVM_GETHEADER (LVM_FIRST+31)
|
|
#endif
|
|
|
|
#ifndef HDLAYOUT
|
|
#define HDLAYOUT HD_LAYOUT
|
|
#endif
|
|
|
|
#ifndef HDITEM
|
|
#define HDITEM HD_ITEM
|
|
#endif
|
|
|
|
#ifndef NMHEADER
|
|
#define NMHEADER HD_NOTIFY
|
|
#endif
|
|
|
|
#ifndef HDS_DRAGDROP
|
|
#define HDS_DRAGDROP 0x0040
|
|
#endif
|
|
#ifndef HDS_FULLDRAG
|
|
#define HDS_FULLDRAG 0x0080
|
|
#endif
|
|
|
|
|
|
#ifndef HDN_BEGINDRAG
|
|
#define HDN_BEGINDRAG (HDN_FIRST - 11)
|
|
#endif
|
|
|
|
#ifndef HDN_ENDDRAG
|
|
#define HDN_ENDDRAG (HDN_FIRST - 10)
|
|
#endif
|
|
|
|
#ifndef LVSICF_NOSCROLL
|
|
#define LVSICF_NOINVALIDATEALL 0x0001
|
|
#define LVSICF_NOSCROLL 0x0002
|
|
#endif
|
|
|
|
#ifndef CP_SYMBOL
|
|
#define CP_SYMBOL 42
|
|
#endif
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxDisplay
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// The windows headers with Digital Mars lack some typedefs.
|
|
// typedef them as my_XXX and then #define to rename to XXX in case
|
|
// a newer version of Digital Mars fixes the headers
|
|
// (or up to date PSDK is in use with older version)
|
|
// also we use any required definition (MONITOR_DEFAULTTONULL) to recognize
|
|
// whether whole missing block needs to be included
|
|
|
|
#ifndef MONITOR_DEFAULTTONULL
|
|
|
|
#define HMONITOR_DECLARED
|
|
DECLARE_HANDLE(HMONITOR);
|
|
typedef BOOL(CALLBACK* my_MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM);
|
|
#define MONITORENUMPROC my_MONITORENUMPROC
|
|
typedef struct my_tagMONITORINFO {
|
|
DWORD cbSize;
|
|
RECT rcMonitor;
|
|
RECT rcWork;
|
|
DWORD dwFlags;
|
|
} my_MONITORINFO,*my_LPMONITORINFO;
|
|
#define MONITORINFO my_MONITORINFO
|
|
#define LPMONITORINFO my_LPMONITORINFO
|
|
|
|
typedef struct my_MONITORINFOEX : public my_tagMONITORINFO
|
|
{
|
|
TCHAR szDevice[CCHDEVICENAME];
|
|
} my_MONITORINFOEX, *my_LPMONITORINFOEX;
|
|
#define MONITORINFOEX my_MONITORINFOEX
|
|
#define LPMONITORINFOEX my_LPMONITORINFOEX
|
|
|
|
#ifndef MONITOR_DEFAULTTONULL
|
|
#define MONITOR_DEFAULTTONULL 0
|
|
#endif // MONITOR_DEFAULTTONULL
|
|
|
|
#ifndef MONITORINFOF_PRIMARY
|
|
#define MONITORINFOF_PRIMARY 1
|
|
#endif // MONITORINFOF_PRIMARY
|
|
|
|
#ifndef DDENUM_ATTACHEDSECONDARYDEVICES
|
|
#define DDENUM_ATTACHEDSECONDARYDEVICES 1
|
|
#endif
|
|
|
|
#endif // MONITOR_DEFAULTTONULL
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Tree control
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#ifndef TVIS_FOCUSED
|
|
#define TVIS_FOCUSED 0x0001
|
|
#endif
|
|
|
|
#ifndef TVS_CHECKBOXES
|
|
#define TVS_CHECKBOXES 0x0100
|
|
#endif
|
|
|
|
#ifndef TVITEM
|
|
#define TVITEM TV_ITEM
|
|
#endif
|
|
|
|
#endif
|
|
// DMC++
|
|
|
|
/*
|
|
* The following are specifically required for OpenWatcom C++ (none at present)
|
|
*/
|
|
|
|
#if defined(__WATCOMC__)
|
|
#endif
|
|
|
|
/*
|
|
* The following are specifically required for MinGW (none at present)
|
|
*/
|
|
|
|
#if defined (__MINGW32__)
|
|
|
|
#if !wxCHECK_W32API_VERSION(3,1)
|
|
|
|
#include <windows.h>
|
|
#include "wx/msw/winundef.h"
|
|
|
|
typedef struct
|
|
{
|
|
RECT rgrc[3];
|
|
WINDOWPOS *lppos;
|
|
} NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
// Various definitions are missing from mingw
|
|
// Used by webview_ie.cpp
|
|
#ifdef __MINGW32__
|
|
typedef enum CommandStateChangeConstants {
|
|
CSC_UPDATECOMMANDS = (int) 0xFFFFFFFF,
|
|
CSC_NAVIGATEFORWARD = 0x1,
|
|
CSC_NAVIGATEBACK = 0x2
|
|
} CommandStateChangeConstants;
|
|
|
|
#define DISPID_COMMANDSTATECHANGE 105
|
|
#define DISPID_NAVIGATECOMPLETE2 252
|
|
#define DISPID_NAVIGATEERROR 271
|
|
#define DISPID_NEWWINDOW3 273
|
|
#define INET_E_ERROR_FIRST 0x800C0002L
|
|
#define INET_E_INVALID_URL 0x800C0002L
|
|
#define INET_E_NO_SESSION 0x800C0003L
|
|
#define INET_E_CANNOT_CONNECT 0x800C0004L
|
|
#define INET_E_RESOURCE_NOT_FOUND 0x800C0005L
|
|
#define INET_E_OBJECT_NOT_FOUND 0x800C0006L
|
|
#define INET_E_DATA_NOT_AVAILABLE 0x800C0007L
|
|
#define INET_E_DOWNLOAD_FAILURE 0x800C0008L
|
|
#define INET_E_AUTHENTICATION_REQUIRED 0x800C0009L
|
|
#define INET_E_NO_VALID_MEDIA 0x800C000AL
|
|
#define INET_E_CONNECTION_TIMEOUT 0x800C000BL
|
|
#define INET_E_INVALID_REQUEST 0x800C000CL
|
|
#define INET_E_UNKNOWN_PROTOCOL 0x800C000DL
|
|
#define INET_E_SECURITY_PROBLEM 0x800C000EL
|
|
#define INET_E_CANNOT_LOAD_DATA 0x800C000FL
|
|
#define INET_E_CANNOT_INSTANTIATE_OBJECT 0x800C0010L
|
|
#define INET_E_QUERYOPTION_UNKNOWN 0x800C0013L
|
|
#define INET_E_REDIRECT_FAILED 0x800C0014L
|
|
#define INET_E_REDIRECT_TO_DIR 0x800C0015L
|
|
#define INET_E_CANNOT_LOCK_REQUEST 0x800C0016L
|
|
#define INET_E_USE_EXTEND_BINDING 0x800C0017L
|
|
#define INET_E_TERMINATED_BIND 0x800C0018L
|
|
#define INET_E_INVALID_CERTIFICATE 0x800C0019L
|
|
#define INET_E_CODE_DOWNLOAD_DECLINED 0x800C0100L
|
|
#define INET_E_RESULT_DISPATCHED 0x800C0200L
|
|
#define INET_E_CANNOT_REPLACE_SFP_FILE 0x800C0300L
|
|
#define INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY 0x800C0500L
|
|
#define INET_E_CODE_INSTALL_SUPPRESSED 0x800C0400L
|
|
|
|
#define REFRESH_NORMAL 0
|
|
#define REFRESH_COMPLETELY 3
|
|
#endif
|
|
|
|
// For Visual C++ 6 and MinGW32. Used by webview_ie.cpp
|
|
#ifndef INET_E_INVALID_CERTIFICATE
|
|
#define INET_E_INVALID_CERTIFICATE 0x800C0019L
|
|
#endif
|
|
|
|
#ifndef INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY
|
|
#define INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY 0x800C0500L
|
|
#endif
|
|
|
|
#ifndef INET_E_CODE_INSTALL_SUPPRESSED
|
|
#define INET_E_CODE_INSTALL_SUPPRESSED 0x800C0400L
|
|
#endif
|
|
|
|
#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
|
|
|
|
/*
|
|
* In addition to the declarations for VC++, the following are required for WinCE
|
|
*/
|
|
|
|
#ifdef __WXWINCE__
|
|
#include "wx/msw/wince/missing.h"
|
|
#endif
|
|
|
|
/*
|
|
* The following are specifically required for Wine
|
|
*/
|
|
|
|
#ifdef __WINE__
|
|
#ifndef ENUM_CURRENT_SETTINGS
|
|
#define ENUM_CURRENT_SETTINGS ((DWORD)-1)
|
|
#endif
|
|
#ifndef BROADCAST_QUERY_DENY
|
|
#define BROADCAST_QUERY_DENY 1112363332
|
|
#endif
|
|
#endif // defined __WINE__
|
|
|
|
#ifndef INVALID_FILE_ATTRIBUTES
|
|
#define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
|
|
#endif
|
|
|
|
#endif
|
|
// _WX_MISSING_H_
|