1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        include/wx/msw/private/webview_missing.h
3 // Purpose:     Definitions / classes commonly missing used by wxWebViewIE
4 // Author:      Steven Lamerton
5 // Copyright:   (c) 2012 Steven Lamerton
6 // Licence:     wxWindows licence
7 /////////////////////////////////////////////////////////////////////////////
8 
9 /*
10  * Classes and definitions used by wxWebViewIE vary in their
11  * completeness between compilers and versions of compilers.
12  * We implement our own versions here which should work
13  * for all compilers. The definitions are taken from the
14  * mingw-w64 headers which are public domain.
15 */
16 
17 /* urlmon.h */
18 
19 struct IHTMLElement;
20 struct IHTMLDocument2;
21 
22 #ifndef REFRESH_NORMAL
23 #define REFRESH_NORMAL 0
24 #endif
25 
26 #ifndef REFRESH_COMPLETELY
27 #define REFRESH_COMPLETELY 3
28 #endif
29 
30 #ifndef INET_E_DEFAULT_ACTION
31 #define INET_E_DEFAULT_ACTION ((HRESULT)0x800C0011L)
32 #endif
33 
34 typedef enum __wxMIDL_IBindStatusCallback_0006
35 {
36     wxBSCF_FIRSTDATANOTIFICATION = 0x1,
37     wxBSCF_INTERMEDIATEDATANOTIFICATION = 0x2,
38     wxBSCF_LASTDATANOTIFICATION = 0x4,
39     wxBSCF_DATAFULLYAVAILABLE = 0x8,
40     wxBSCF_AVAILABLEDATASIZEUNKNOWN = 0x10
41 }   wxBSCF;
42 
43 EXTERN_C const IID CLSID_FileProtocol;
44 
45 typedef struct _tagwxBINDINFO
46 {
47     ULONG cbSize;
48     LPWSTR szExtraInfo;
49     STGMEDIUM stgmedData;
50     DWORD grfBindInfoF;
51     DWORD dwBindVerb;
52     LPWSTR szCustomVerb;
53     DWORD cbstgmedData;
54     DWORD dwOptions;
55     DWORD dwOptionsFlags;
56     DWORD dwCodePage;
57     SECURITY_ATTRIBUTES securityAttributes;
58     IID iid;
59     IUnknown *pUnk;
60     DWORD dwReserved;
61 }   wxBINDINFO;
62 
63 typedef struct _tagwxPROTOCOLDATA
64 {
65     DWORD grfFlags;
66     DWORD dwState;
67     LPVOID pData;
68     ULONG cbData;
69 }   wxPROTOCOLDATA;
70 
71 class wxIInternetBindInfo : public IUnknown
72 {
73 public:
74     virtual HRESULT wxSTDCALL GetBindInfo(DWORD *grfBINDF, wxBINDINFO *pbindinfo) = 0;
75     virtual HRESULT wxSTDCALL GetBindString(ULONG ulStringType, LPOLESTR *ppwzStr,
76                                             ULONG cEl, ULONG *pcElFetched) = 0;
77 };
78 
79 class wxIInternetProtocolSink : public IUnknown
80 {
81 public:
82     virtual HRESULT wxSTDCALL Switch(wxPROTOCOLDATA *pProtocolData) = 0;
83     virtual HRESULT wxSTDCALL ReportProgress(ULONG ulStatusCode,
84             LPCWSTR szStatusText) = 0;
85     virtual HRESULT wxSTDCALL ReportData(DWORD grfBSCF, ULONG ulProgress,
86                                          ULONG ulProgressMax) = 0;
87     virtual HRESULT wxSTDCALL ReportResult(HRESULT hrResult, DWORD dwError,
88                                            LPCWSTR szResult) = 0;
89 };
90 
91 class wxIInternetProtocolRoot : public IUnknown
92 {
93 public:
94     virtual HRESULT wxSTDCALL Start(LPCWSTR szUrl, wxIInternetProtocolSink *pOIProtSink,
95                                     wxIInternetBindInfo *pOIBindInfo, DWORD grfPI,
96                                     HANDLE_PTR dwReserved) = 0;
97     virtual HRESULT wxSTDCALL Continue(wxPROTOCOLDATA *pProtocolData) = 0;
98     virtual HRESULT wxSTDCALL Abort(HRESULT hrReason, DWORD dwOptions) = 0;
99     virtual HRESULT wxSTDCALL Terminate(DWORD dwOptions) = 0;
100     virtual HRESULT wxSTDCALL Suspend(void) = 0;
101     virtual HRESULT wxSTDCALL Resume(void) = 0;
102 };
103 
104 
105 class wxIInternetProtocol : public wxIInternetProtocolRoot
106 {
107 public:
108     virtual HRESULT wxSTDCALL Read(void *pv, ULONG cb, ULONG *pcbRead) = 0;
109     virtual HRESULT wxSTDCALL Seek(LARGE_INTEGER dlibMove, DWORD dwOrigin,
110                                    ULARGE_INTEGER *plibNewPosition) = 0;
111     virtual HRESULT wxSTDCALL LockRequest(DWORD dwOptions) = 0;
112     virtual HRESULT wxSTDCALL UnlockRequest(void) = 0;
113 };
114 
115 
116 class wxIInternetSession : public IUnknown
117 {
118 public:
119     virtual HRESULT wxSTDCALL RegisterNameSpace(IClassFactory *pCF, REFCLSID rclsid,
120             LPCWSTR pwzProtocol,
121             ULONG cPatterns,
122             const LPCWSTR *ppwzPatterns,
123             DWORD dwReserved) = 0;
124     virtual HRESULT wxSTDCALL UnregisterNameSpace(IClassFactory *pCF,
125             LPCWSTR pszProtocol) = 0;
126     virtual HRESULT wxSTDCALL RegisterMimeFilter(IClassFactory *pCF,
127             REFCLSID rclsid,
128             LPCWSTR pwzType) = 0;
129     virtual HRESULT wxSTDCALL UnregisterMimeFilter(IClassFactory *pCF,
130             LPCWSTR pwzType) = 0;
131     virtual HRESULT wxSTDCALL CreateBinding(LPBC pBC, LPCWSTR szUrl,
132                                             IUnknown *pUnkOuter, IUnknown **ppUnk,
133                                             wxIInternetProtocol **ppOInetProt,
134                                             DWORD dwOption) = 0;
135     virtual HRESULT wxSTDCALL SetSessionOption(DWORD dwOption, LPVOID pBuffer,
136             DWORD dwBufferLength,
137             DWORD dwReserved) = 0;
138     virtual HRESULT wxSTDCALL GetSessionOption(DWORD dwOption, LPVOID pBuffer,
139             DWORD *pdwBufferLength,
140             DWORD dwReserved) = 0;
141 };
142 
143 // This interface uses a couple of enums which are not defined in old MinGW
144 // SDK headers, but we don't have any reliable way to test if they're actually
145 // defined, so define our own enums, containing just the values we need: this
146 // compiles everywhere and is ABI-compatible with the real enums.
147 enum wxPARSEACTION
148 {
149     wxPARSE_SECURITY_URL = 3,
150     wxPARSE_SECURITY_DOMAIN = 17
151 };
152 
153 enum wxQUERYOPTION
154 {
155     // We don't actually need any values in this one.
156 };
157 
158 class wxIInternetProtocolInfo : public IUnknown
159 {
160 public:
161     virtual HRESULT STDMETHODCALLTYPE ParseUrl(LPCWSTR pwzUrl,
162         wxPARSEACTION ParseAction,
163         DWORD dwParseFlags,
164         LPWSTR pwzResult,
165         DWORD cchResult,
166         DWORD *pcchResult,
167         DWORD dwReserved) = 0;
168 
169     virtual HRESULT STDMETHODCALLTYPE CombineUrl(LPCWSTR pwzBaseUrl,
170         LPCWSTR pwzRelativeUrl,
171         DWORD dwCombineFlags,
172         LPWSTR pwzResult,
173         DWORD cchResult,
174         DWORD *pcchResult,
175         DWORD dwReserved) = 0;
176 
177     virtual HRESULT STDMETHODCALLTYPE CompareUrl(LPCWSTR pwzUrl1,
178         LPCWSTR pwzUrl2,
179         DWORD dwCompareFlags) = 0;
180 
181     virtual HRESULT STDMETHODCALLTYPE QueryInfo(LPCWSTR pwzUrl,
182         wxQUERYOPTION OueryOption,
183         DWORD dwQueryFlags,
184         LPVOID pBuffer,
185         DWORD cbBuffer,
186         DWORD *pcbBuf,
187         DWORD dwReserved) = 0;
188 };
189 
190 /* end of urlmon.h */
191 
192 /* mshtmhst.h */
193 
194 typedef enum _tagwxDOCHOSTUIFLAG
195 {
196     DOCHOSTUIFLAG_DIALOG = 0x1,
197     DOCHOSTUIFLAG_DISABLE_HELP_MENU = 0x2,
198     DOCHOSTUIFLAG_NO3DBORDER = 0x4,
199     DOCHOSTUIFLAG_SCROLL_NO = 0x8,
200     DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE = 0x10,
201     DOCHOSTUIFLAG_OPENNEWWIN = 0x20,
202     DOCHOSTUIFLAG_DISABLE_OFFSCREEN = 0x40,
203     DOCHOSTUIFLAG_FLAT_SCROLLBAR = 0x80,
204     DOCHOSTUIFLAG_DIV_BLOCKDEFAULT = 0x100,
205     DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY = 0x200,
206     DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY = 0x400,
207     DOCHOSTUIFLAG_CODEPAGELINKEDFONTS = 0x800,
208     DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 = 0x1000,
209     DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 = 0x2000,
210     DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE = 0x4000,
211     DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION = 0x10000,
212     DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION = 0x20000,
213     DOCHOSTUIFLAG_THEME = 0x40000,
214     DOCHOSTUIFLAG_NOTHEME = 0x80000,
215     DOCHOSTUIFLAG_NOPICS = 0x100000,
216     DOCHOSTUIFLAG_NO3DOUTERBORDER = 0x200000,
217     DOCHOSTUIFLAG_DISABLE_EDIT_NS_FIXUP = 0x400000,
218     DOCHOSTUIFLAG_LOCAL_MACHINE_ACCESS_CHECK = 0x800000,
219     DOCHOSTUIFLAG_DISABLE_UNTRUSTEDPROTOCOL = 0x1000000,
220     DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION = 0x4000000,
221     DOCHOSTUIFLAG_DPI_AWARE = 0x40000000
222 } DOCHOSTUIFLAG;
223 
224 typedef struct _tagwxDOCHOSTUIINFO
225 {
226     ULONG cbSize;
227     DWORD dwFlags;
228     DWORD dwDoubleClick;
229     OLECHAR *pchHostCss;
230     OLECHAR *pchHostNS;
231 } DOCHOSTUIINFO;
232 
233 class wxIDocHostUIHandler : public IUnknown
234 {
235 public:
236     virtual HRESULT wxSTDCALL ShowContextMenu(DWORD dwID, POINT *ppt,
237             IUnknown *pcmdtReserved,
238             IDispatch *pdispReserved) = 0;
239 
240     virtual HRESULT wxSTDCALL GetHostInfo(DOCHOSTUIINFO *pInfo) = 0;
241 
242     virtual HRESULT wxSTDCALL ShowUI(DWORD dwID,
243                                      IOleInPlaceActiveObject *pActiveObject,
244                                      IOleCommandTarget *pCommandTarget,
245                                      IOleInPlaceFrame *pFrame,
246                                      IOleInPlaceUIWindow *pDoc) = 0;
247 
248     virtual HRESULT wxSTDCALL HideUI(void) = 0;
249 
250     virtual HRESULT wxSTDCALL UpdateUI(void) = 0;
251 
252     virtual HRESULT wxSTDCALL EnableModeless(BOOL fEnable) = 0;
253 
254     virtual HRESULT wxSTDCALL OnDocWindowActivate(BOOL fActivate) = 0;
255 
256     virtual HRESULT wxSTDCALL OnFrameWindowActivate(BOOL fActivate) = 0;
257 
258     virtual HRESULT wxSTDCALL ResizeBorder(LPCRECT prcBorder,
259                                            IOleInPlaceUIWindow *pUIWindow,
260                                            BOOL fRameWindow) = 0;
261 
262     virtual HRESULT wxSTDCALL TranslateAccelerator(LPMSG lpMsg,
263             const GUID *pguidCmdGroup,
264             DWORD nCmdID) = 0;
265 
266     virtual HRESULT wxSTDCALL GetOptionKeyPath(LPOLESTR *pchKey,
267             DWORD dw) = 0;
268 
269     virtual HRESULT wxSTDCALL GetDropTarget(IDropTarget *pDropTarget,
270                                             IDropTarget **ppDropTarget) = 0;
271 
272     virtual HRESULT wxSTDCALL GetExternal(IDispatch **ppDispatch) = 0;
273 
274     virtual HRESULT wxSTDCALL TranslateUrl(DWORD dwTranslate,
275                                            OLECHAR *pchURLIn,
276                                            OLECHAR **ppchURLOut) = 0;
277 
278     virtual HRESULT wxSTDCALL FilterDataObject(IDataObject *pDO,
279             IDataObject **ppDORet) = 0;
280 };
281 
282 /* end of mshtmhst.h */
283 
284 /* mshtml.h */
285 
286 typedef enum _tagwxPOINTER_GRAVITY
287 {
288     wxPOINTER_GRAVITY_Left = 0,
289     wxPOINTER_GRAVITY_Right = 1,
290     wxPOINTER_GRAVITY_Max = 2147483647
291 } wxPOINTER_GRAVITY;
292 
293 typedef enum _tagwxELEMENT_ADJACENCY
294 {
295     wxELEM_ADJ_BeforeBegin = 0,
296     wxELEM_ADJ_AfterBegin = 1,
297     wxELEM_ADJ_BeforeEnd = 2,
298     wxELEM_ADJ_AfterEnd = 3,
299     wxELEMENT_ADJACENCY_Max = 2147483647
300 } wxELEMENT_ADJACENCY;
301 
302 typedef enum _tagwxMARKUP_CONTEXT_TYPE
303 {
304     wxCONTEXT_TYPE_None = 0,
305     wxCONTEXT_TYPE_Text = 1,
306     wxCONTEXT_TYPE_EnterScope = 2,
307     wxCONTEXT_TYPE_ExitScope = 3,
308     wxCONTEXT_TYPE_NoScope = 4,
309     wxMARKUP_CONTEXT_TYPE_Max = 2147483647
310 } wxMARKUP_CONTEXT_TYPE;
311 
312 typedef enum _tagwxFINDTEXT_FLAGS
313 {
314     wxFINDTEXT_BACKWARDS = 0x1,
315     wxFINDTEXT_WHOLEWORD = 0x2,
316     wxFINDTEXT_MATCHCASE = 0x4,
317     wxFINDTEXT_RAW = 0x20000,
318     wxFINDTEXT_MATCHDIAC = 0x20000000,
319     wxFINDTEXT_MATCHKASHIDA = 0x40000000,
320     wxFINDTEXT_MATCHALEFHAMZA = 0x80000000,
321     wxFINDTEXT_FLAGS_Max = 2147483647
322 } wxFINDTEXT_FLAGS;
323 
324 typedef enum _tagwxMOVEUNIT_ACTION
325 {
326     wxMOVEUNIT_PREVCHAR = 0,
327     wxMOVEUNIT_NEXTCHAR = 1,
328     wxMOVEUNIT_PREVCLUSTERBEGIN = 2,
329     wxMOVEUNIT_NEXTCLUSTERBEGIN = 3,
330     wxMOVEUNIT_PREVCLUSTEREND = 4,
331     wxMOVEUNIT_NEXTCLUSTEREND = 5,
332     wxMOVEUNIT_PREVWORDBEGIN = 6,
333     wxMOVEUNIT_NEXTWORDBEGIN = 7,
334     wxMOVEUNIT_PREVWORDEND = 8,
335     wxMOVEUNIT_NEXTWORDEND = 9,
336     wxMOVEUNIT_PREVPROOFWORD = 10,
337     wxMOVEUNIT_NEXTPROOFWORD = 11,
338     wxMOVEUNIT_NEXTURLBEGIN = 12,
339     wxMOVEUNIT_PREVURLBEGIN = 13,
340     wxMOVEUNIT_NEXTURLEND = 14,
341     wxMOVEUNIT_PREVURLEND = 15,
342     wxMOVEUNIT_PREVSENTENCE = 16,
343     wxMOVEUNIT_NEXTSENTENCE = 17,
344     wxMOVEUNIT_PREVBLOCK = 18,
345     wxMOVEUNIT_NEXTBLOCK = 19,
346     wxMOVEUNIT_ACTION_Max = 2147483647
347 } wxMOVEUNIT_ACTION;
348 
349 typedef enum _tagwxELEMENT_TAG_ID
350 {
351     wxTAGID_NULL = 0, wxTAGID_UNKNOWN = 1, wxTAGID_A = 2, wxTAGID_ACRONYM = 3,
352     wxTAGID_ADDRESS = 4, wxTAGID_APPLET = 5, wxTAGID_AREA = 6, wxTAGID_B = 7,
353     wxTAGID_BASE = 8, wxTAGID_BASEFONT = 9, wxTAGID_BDO = 10,
354     wxTAGID_BGSOUND = 11, wxTAGID_BIG = 12, wxTAGID_BLINK = 13,
355     wxTAGID_BLOCKQUOTE = 14, wxTAGID_BODY = 15, wxTAGID_BR = 16,
356     wxTAGID_BUTTON = 17, wxTAGID_CAPTION = 18, wxTAGID_CENTER = 19,
357     wxTAGID_CITE = 20, wxTAGID_CODE = 21, wxTAGID_COL = 22,
358     wxTAGID_COLGROUP = 23, wxTAGID_COMMENT = 24, wxTAGID_COMMENT_RAW = 25,
359     wxTAGID_DD = 26, wxTAGID_DEL = 27, wxTAGID_DFN = 28, wxTAGID_DIR = 29,
360     wxTAGID_DIV = 30, wxTAGID_DL = 31, wxTAGID_DT = 32, wxTAGID_EM = 33,
361     wxTAGID_EMBED = 34, wxTAGID_FIELDSET = 35, wxTAGID_FONT = 36,
362     wxTAGID_FORM = 37, wxTAGID_FRAME = 38, wxTAGID_FRAMESET = 39,
363     wxTAGID_GENERIC = 40, wxTAGID_H1 = 41, wxTAGID_H2 = 42, wxTAGID_H3 = 43,
364     wxTAGID_H4 = 44, wxTAGID_H5 = 45, wxTAGID_H6 = 46, wxTAGID_HEAD = 47,
365     wxTAGID_HR = 48, wxTAGID_HTML = 49, wxTAGID_I = 50, wxTAGID_IFRAME = 51,
366     wxTAGID_IMG = 52, wxTAGID_INPUT = 53, wxTAGID_INS = 54, wxTAGID_KBD = 55,
367     wxTAGID_LABEL = 56, wxTAGID_LEGEND = 57, wxTAGID_LI = 58, wxTAGID_LINK = 59,
368     wxTAGID_LISTING = 60, wxTAGID_MAP = 61, wxTAGID_MARQUEE = 62,
369     wxTAGID_MENU = 63, wxTAGID_META = 64, wxTAGID_NEXTID = 65,
370     wxTAGID_NOBR = 66, wxTAGID_NOEMBED = 67, wxTAGID_NOFRAMES = 68,
371     wxTAGID_NOSCRIPT = 69, wxTAGID_OBJECT = 70, wxTAGID_OL = 71,
372     wxTAGID_OPTION = 72, wxTAGID_P = 73, wxTAGID_PARAM = 74,
373     wxTAGID_PLAINTEXT = 75, wxTAGID_PRE = 76, wxTAGID_Q = 77, wxTAGID_RP = 78,
374     wxTAGID_RT = 79, wxTAGID_RUBY = 80, wxTAGID_S = 81, wxTAGID_SAMP = 82,
375     wxTAGID_SCRIPT = 83, wxTAGID_SELECT = 84, wxTAGID_SMALL = 85,
376     wxTAGID_SPAN = 86, wxTAGID_STRIKE = 87, wxTAGID_STRONG = 88,
377     wxTAGID_STYLE = 89, wxTAGID_SUB = 90, wxTAGID_SUP = 91, wxTAGID_TABLE = 92,
378     wxTAGID_TBODY = 93, wxTAGID_TC = 94, wxTAGID_TD = 95, wxTAGID_TEXTAREA = 96,
379     wxTAGID_TFOOT = 97, wxTAGID_TH = 98, wxTAGID_THEAD = 99,
380     wxTAGID_TITLE = 100, wxTAGID_TR = 101, wxTAGID_TT = 102, wxTAGID_U = 103,
381     wxTAGID_UL = 104, wxTAGID_VAR = 105, wxTAGID_WBR = 106, wxTAGID_XMP = 107,
382     wxTAGID_ROOT = 108, wxTAGID_OPTGROUP = 109, wxTAGID_COUNT = 110,
383     wxTAGID_LAST_PREDEFINED = 10000, wxELEMENT_TAG_ID_Max = 2147483647
384 } wxELEMENT_TAG_ID;
385 
386 struct wxIHTMLStyle : public IDispatch
387 {
388 public:
389     virtual HRESULT wxSTDCALL put_fontFamily(BSTR v) = 0;
390     virtual HRESULT wxSTDCALL get_fontFamily(BSTR *p) = 0;
391     virtual HRESULT wxSTDCALL put_fontStyle(BSTR v) = 0;
392     virtual HRESULT wxSTDCALL get_fontStyle(BSTR *p) = 0;
393     virtual HRESULT wxSTDCALL put_fontVariant(BSTR v) = 0;
394     virtual HRESULT wxSTDCALL get_fontVariant(BSTR *p) = 0;
395     virtual HRESULT wxSTDCALL put_fontWeight(BSTR v) = 0;
396     virtual HRESULT wxSTDCALL get_fontWeight(BSTR *p) = 0;
397     virtual HRESULT wxSTDCALL put_fontSize(VARIANT v) = 0;
398     virtual HRESULT wxSTDCALL get_fontSize(VARIANT *p) = 0;
399     virtual HRESULT wxSTDCALL put_font(BSTR v) = 0;
400     virtual HRESULT wxSTDCALL get_font(BSTR *p) = 0;
401     virtual HRESULT wxSTDCALL put_color(VARIANT v) = 0;
402     virtual HRESULT wxSTDCALL get_color(VARIANT *p) = 0;
403     virtual HRESULT wxSTDCALL put_background(BSTR v) = 0;
404     virtual HRESULT wxSTDCALL get_background(BSTR *p) = 0;
405     virtual HRESULT wxSTDCALL put_backgroundColor(VARIANT v) = 0;
406     virtual HRESULT wxSTDCALL get_backgroundColor(VARIANT *p) = 0;
407     virtual HRESULT wxSTDCALL put_backgroundImage(BSTR v) = 0;
408     virtual HRESULT wxSTDCALL get_backgroundImage(BSTR *p) = 0;
409     virtual HRESULT wxSTDCALL put_backgroundRepeat(BSTR v) = 0;
410     virtual HRESULT wxSTDCALL get_backgroundRepeat(BSTR *p) = 0;
411     virtual HRESULT wxSTDCALL put_backgroundAttachment(BSTR v) = 0;
412     virtual HRESULT wxSTDCALL get_backgroundAttachment(BSTR *p) = 0;
413     virtual HRESULT wxSTDCALL put_backgroundPosition(BSTR v) = 0;
414     virtual HRESULT wxSTDCALL get_backgroundPosition(BSTR *p) = 0;
415     virtual HRESULT wxSTDCALL put_backgroundPositionX(VARIANT v) = 0;
416     virtual HRESULT wxSTDCALL get_backgroundPositionX(VARIANT *p) = 0;
417     virtual HRESULT wxSTDCALL put_backgroundPositionY(VARIANT v) = 0;
418     virtual HRESULT wxSTDCALL get_backgroundPositionY(VARIANT *p) = 0;
419     virtual HRESULT wxSTDCALL put_wordSpacing(VARIANT v) = 0;
420     virtual HRESULT wxSTDCALL get_wordSpacing(VARIANT *p) = 0;
421     virtual HRESULT wxSTDCALL put_letterSpacing(VARIANT v) = 0;
422     virtual HRESULT wxSTDCALL get_letterSpacing(VARIANT *p) = 0;
423     virtual HRESULT wxSTDCALL put_textDecoration(BSTR v) = 0;
424     virtual HRESULT wxSTDCALL get_textDecoration(BSTR *p) = 0;
425     virtual HRESULT wxSTDCALL put_textDecorationNone(VARIANT_BOOL v) = 0;
426     virtual HRESULT wxSTDCALL get_textDecorationNone(VARIANT_BOOL *p) = 0;
427     virtual HRESULT wxSTDCALL put_textDecorationUnderline(VARIANT_BOOL v) = 0;
428     virtual HRESULT wxSTDCALL get_textDecorationUnderline(VARIANT_BOOL *p) = 0;
429     virtual HRESULT wxSTDCALL put_textDecorationOverline(VARIANT_BOOL v) = 0;
430     virtual HRESULT wxSTDCALL get_textDecorationOverline(VARIANT_BOOL *p) = 0;
431     virtual HRESULT wxSTDCALL put_textDecorationLineThrough(VARIANT_BOOL v) = 0;
432     virtual HRESULT wxSTDCALL get_textDecorationLineThrough(VARIANT_BOOL *p) = 0;
433     virtual HRESULT wxSTDCALL put_textDecorationBlink(VARIANT_BOOL v) = 0;
434     virtual HRESULT wxSTDCALL get_textDecorationBlink(VARIANT_BOOL *p) = 0;
435     virtual HRESULT wxSTDCALL put_verticalAlign(VARIANT v) = 0;
436     virtual HRESULT wxSTDCALL get_verticalAlign(VARIANT *p) = 0;
437     virtual HRESULT wxSTDCALL put_textTransform(BSTR v) = 0;
438     virtual HRESULT wxSTDCALL get_textTransform(BSTR *p) = 0;
439     virtual HRESULT wxSTDCALL put_textAlign(BSTR v) = 0;
440     virtual HRESULT wxSTDCALL get_textAlign(BSTR *p) = 0;
441     virtual HRESULT wxSTDCALL put_textIndent(VARIANT v) = 0;
442     virtual HRESULT wxSTDCALL get_textIndent(VARIANT *p) = 0;
443     virtual HRESULT wxSTDCALL put_lineHeight(VARIANT v) = 0;
444     virtual HRESULT wxSTDCALL get_lineHeight(VARIANT *p) = 0;
445     virtual HRESULT wxSTDCALL put_marginTop(VARIANT v) = 0;
446     virtual HRESULT wxSTDCALL get_marginTop(VARIANT *p) = 0;
447     virtual HRESULT wxSTDCALL put_marginRight(VARIANT v) = 0;
448     virtual HRESULT wxSTDCALL get_marginRight(VARIANT *p) = 0;
449     virtual HRESULT wxSTDCALL put_marginBottom(VARIANT v) = 0;
450     virtual HRESULT wxSTDCALL get_marginBottom(VARIANT *p) = 0;
451     virtual HRESULT wxSTDCALL put_marginLeft(VARIANT v) = 0;
452     virtual HRESULT wxSTDCALL get_marginLeft(VARIANT *p) = 0;
453     virtual HRESULT wxSTDCALL put_margin(BSTR v) = 0;
454     virtual HRESULT wxSTDCALL get_margin(BSTR *p) = 0;
455     virtual HRESULT wxSTDCALL put_paddingTop(VARIANT v) = 0;
456     virtual HRESULT wxSTDCALL get_paddingTop(VARIANT *p) = 0;
457     virtual HRESULT wxSTDCALL put_paddingRight(VARIANT v) = 0;
458     virtual HRESULT wxSTDCALL get_paddingRight(VARIANT *p) = 0;
459     virtual HRESULT wxSTDCALL put_paddingBottom(VARIANT v) = 0;
460     virtual HRESULT wxSTDCALL get_paddingBottom(VARIANT *p) = 0;
461     virtual HRESULT wxSTDCALL put_paddingLeft(VARIANT v) = 0;
462     virtual HRESULT wxSTDCALL get_paddingLeft(VARIANT *p) = 0;
463     virtual HRESULT wxSTDCALL put_padding(BSTR v) = 0;
464     virtual HRESULT wxSTDCALL get_padding(BSTR *p) = 0;
465     virtual HRESULT wxSTDCALL put_border(BSTR v) = 0;
466     virtual HRESULT wxSTDCALL get_border(BSTR *p) = 0;
467     virtual HRESULT wxSTDCALL put_borderTop(BSTR v) = 0;
468     virtual HRESULT wxSTDCALL get_borderTop(BSTR *p) = 0;
469     virtual HRESULT wxSTDCALL put_borderRight(BSTR v) = 0;
470     virtual HRESULT wxSTDCALL get_borderRight(BSTR *p) = 0;
471     virtual HRESULT wxSTDCALL put_borderBottom(BSTR v) = 0;
472     virtual HRESULT wxSTDCALL get_borderBottom(BSTR *p) = 0;
473     virtual HRESULT wxSTDCALL put_borderLeft(BSTR v) = 0;
474     virtual HRESULT wxSTDCALL get_borderLeft(BSTR *p) = 0;
475     virtual HRESULT wxSTDCALL put_borderColor(BSTR v) = 0;
476     virtual HRESULT wxSTDCALL get_borderColor(BSTR *p) = 0;
477     virtual HRESULT wxSTDCALL put_borderTopColor(VARIANT v) = 0;
478     virtual HRESULT wxSTDCALL get_borderTopColor(VARIANT *p) = 0;
479     virtual HRESULT wxSTDCALL put_borderRightColor(VARIANT v) = 0;
480     virtual HRESULT wxSTDCALL get_borderRightColor(VARIANT *p) = 0;
481     virtual HRESULT wxSTDCALL put_borderBottomColor(VARIANT v) = 0;
482     virtual HRESULT wxSTDCALL get_borderBottomColor(VARIANT *p) = 0;
483     virtual HRESULT wxSTDCALL put_borderLeftColor(VARIANT v) = 0;
484     virtual HRESULT wxSTDCALL get_borderLeftColor(VARIANT *p) = 0;
485     virtual HRESULT wxSTDCALL put_borderWidth(BSTR v) = 0;
486     virtual HRESULT wxSTDCALL get_borderWidth(BSTR *p) = 0;
487     virtual HRESULT wxSTDCALL put_borderTopWidth(VARIANT v) = 0;
488     virtual HRESULT wxSTDCALL get_borderTopWidth(VARIANT *p) = 0;
489     virtual HRESULT wxSTDCALL put_borderRightWidth(VARIANT v) = 0;
490     virtual HRESULT wxSTDCALL get_borderRightWidth(VARIANT *p) = 0;
491     virtual HRESULT wxSTDCALL put_borderBottomWidth(VARIANT v) = 0;
492     virtual HRESULT wxSTDCALL get_borderBottomWidth(VARIANT *p) = 0;
493     virtual HRESULT wxSTDCALL put_borderLeftWidth(VARIANT v) = 0;
494     virtual HRESULT wxSTDCALL get_borderLeftWidth(VARIANT *p) = 0;
495     virtual HRESULT wxSTDCALL put_borderStyle(BSTR v) = 0;
496     virtual HRESULT wxSTDCALL get_borderStyle(BSTR *p) = 0;
497     virtual HRESULT wxSTDCALL put_borderTopStyle(BSTR v) = 0;
498     virtual HRESULT wxSTDCALL get_borderTopStyle(BSTR *p) = 0;
499     virtual HRESULT wxSTDCALL put_borderRightStyle(BSTR v) = 0;
500     virtual HRESULT wxSTDCALL get_borderRightStyle(BSTR *p) = 0;
501     virtual HRESULT wxSTDCALL put_borderBottomStyle(BSTR v) = 0;
502     virtual HRESULT wxSTDCALL get_borderBottomStyle(BSTR *p) = 0;
503     virtual HRESULT wxSTDCALL put_borderLeftStyle(BSTR v) = 0;
504     virtual HRESULT wxSTDCALL get_borderLeftStyle(BSTR *p) = 0;
505     virtual HRESULT wxSTDCALL put_width(VARIANT v) = 0;
506     virtual HRESULT wxSTDCALL get_width(VARIANT *p) = 0;
507     virtual HRESULT wxSTDCALL put_height(VARIANT v) = 0;
508     virtual HRESULT wxSTDCALL get_height(VARIANT *p) = 0;
509     virtual HRESULT wxSTDCALL put_styleFloat(BSTR v) = 0;
510     virtual HRESULT wxSTDCALL get_styleFloat(BSTR *p) = 0;
511     virtual HRESULT wxSTDCALL put_clear(BSTR v) = 0;
512     virtual HRESULT wxSTDCALL get_clear(BSTR *p) = 0;
513     virtual HRESULT wxSTDCALL put_display(BSTR v) = 0;
514     virtual HRESULT wxSTDCALL get_display(BSTR *p) = 0;
515     virtual HRESULT wxSTDCALL put_visibility(BSTR v) = 0;
516     virtual HRESULT wxSTDCALL get_visibility(BSTR *p) = 0;
517     virtual HRESULT wxSTDCALL put_listStyleType(BSTR v) = 0;
518     virtual HRESULT wxSTDCALL get_listStyleType(BSTR *p) = 0;
519     virtual HRESULT wxSTDCALL put_listStylePosition(BSTR v) = 0;
520     virtual HRESULT wxSTDCALL get_listStylePosition(BSTR *p) = 0;
521     virtual HRESULT wxSTDCALL put_listStyleImage(BSTR v) = 0;
522     virtual HRESULT wxSTDCALL get_listStyleImage(BSTR *p) = 0;
523     virtual HRESULT wxSTDCALL put_listStyle(BSTR v) = 0;
524     virtual HRESULT wxSTDCALL get_listStyle(BSTR *p) = 0;
525     virtual HRESULT wxSTDCALL put_whiteSpace(BSTR v) = 0;
526     virtual HRESULT wxSTDCALL get_whiteSpace(BSTR *p) = 0;
527     virtual HRESULT wxSTDCALL put_top(VARIANT v) = 0;
528     virtual HRESULT wxSTDCALL get_top(VARIANT *p) = 0;
529     virtual HRESULT wxSTDCALL put_left(VARIANT v) = 0;
530     virtual HRESULT wxSTDCALL get_left(VARIANT *p) = 0;
531     virtual HRESULT wxSTDCALL get_position(BSTR *p) = 0;
532     virtual HRESULT wxSTDCALL put_zIndex(VARIANT v) = 0;
533     virtual HRESULT wxSTDCALL get_zIndex(VARIANT *p) = 0;
534     virtual HRESULT wxSTDCALL put_overflow(BSTR v) = 0;
535     virtual HRESULT wxSTDCALL get_overflow(BSTR *p) = 0;
536     virtual HRESULT wxSTDCALL put_pageBreakBefore(BSTR v) = 0;
537     virtual HRESULT wxSTDCALL get_pageBreakBefore(BSTR *p) = 0;
538     virtual HRESULT wxSTDCALL put_pageBreakAfter(BSTR v) = 0;
539     virtual HRESULT wxSTDCALL get_pageBreakAfter(BSTR *p) = 0;
540     virtual HRESULT wxSTDCALL put_cssText(BSTR v) = 0;
541     virtual HRESULT wxSTDCALL get_cssText(BSTR *p) = 0;
542     virtual HRESULT wxSTDCALL put_pixelTop(long v) = 0;
543     virtual HRESULT wxSTDCALL get_pixelTop(long *p) = 0;
544     virtual HRESULT wxSTDCALL put_pixelLeft(long v) = 0;
545     virtual HRESULT wxSTDCALL get_pixelLeft(long *p) = 0;
546     virtual HRESULT wxSTDCALL put_pixelWidth(long v) = 0;
547     virtual HRESULT wxSTDCALL get_pixelWidth(long *p) = 0;
548     virtual HRESULT wxSTDCALL put_pixelHeight(long v) = 0;
549     virtual HRESULT wxSTDCALL get_pixelHeight(long *p) = 0;
550     virtual HRESULT wxSTDCALL put_posTop(float v) = 0;
551     virtual HRESULT wxSTDCALL get_posTop(float *p) = 0;
552     virtual HRESULT wxSTDCALL put_posLeft(float v) = 0;
553     virtual HRESULT wxSTDCALL get_posLeft(float *p) = 0;
554     virtual HRESULT wxSTDCALL put_posWidth(float v) = 0;
555     virtual HRESULT wxSTDCALL get_posWidth(float *p) = 0;
556     virtual HRESULT wxSTDCALL put_posHeight(float v) = 0;
557     virtual HRESULT wxSTDCALL get_posHeight(float *p) = 0;
558     virtual HRESULT wxSTDCALL put_cursor(BSTR v) = 0;
559     virtual HRESULT wxSTDCALL get_cursor(BSTR *p) = 0;
560     virtual HRESULT wxSTDCALL put_clip(BSTR v) = 0;
561     virtual HRESULT wxSTDCALL get_clip(BSTR *p) = 0;
562     virtual HRESULT wxSTDCALL put_filter(BSTR v) = 0;
563     virtual HRESULT wxSTDCALL get_filter(BSTR *p) = 0;
564     virtual HRESULT wxSTDCALL setAttribute(BSTR strAttributeName, VARIANT AttributeValue, LONG lFlags = 1) = 0;
565     virtual HRESULT wxSTDCALL getAttribute(BSTR strAttributeName, LONG lFlags, VARIANT *AttributeValue) = 0;
566     virtual HRESULT wxSTDCALL removeAttribute(BSTR strAttributeName, LONG lFlags, VARIANT_BOOL *pfSuccess) = 0;
567     virtual HRESULT wxSTDCALL toString(BSTR *String) = 0;
568 };
569 
570 struct wxIHTMLCurrentStyle : public IDispatch
571 {
572 public:
573     virtual HRESULT wxSTDCALL get_position(BSTR *p) = 0;
574     virtual HRESULT wxSTDCALL get_styleFloat(BSTR *p) = 0;
575     virtual HRESULT wxSTDCALL get_color(VARIANT *p) = 0;
576     virtual HRESULT wxSTDCALL get_backgroundColor(VARIANT *p) = 0;
577     virtual HRESULT wxSTDCALL get_fontFamily(BSTR *p) = 0;
578     virtual HRESULT wxSTDCALL get_fontStyle(BSTR *p) = 0;
579     virtual HRESULT wxSTDCALL get_fontVariant(BSTR *p) = 0;
580     virtual HRESULT wxSTDCALL get_fontWeight(VARIANT *p) = 0;
581     virtual HRESULT wxSTDCALL get_fontSize(VARIANT *p) = 0;
582     virtual HRESULT wxSTDCALL get_backgroundImage(BSTR *p) = 0;
583     virtual HRESULT wxSTDCALL get_backgroundPositionX(VARIANT *p) = 0;
584     virtual HRESULT wxSTDCALL get_backgroundPositionY(VARIANT *p) = 0;
585     virtual HRESULT wxSTDCALL get_backgroundRepeat(BSTR *p) = 0;
586     virtual HRESULT wxSTDCALL get_borderLeftColor(VARIANT *p) = 0;
587     virtual HRESULT wxSTDCALL get_borderTopColor(VARIANT *p) = 0;
588     virtual HRESULT wxSTDCALL get_borderRightColor(VARIANT *p) = 0;
589     virtual HRESULT wxSTDCALL get_borderBottomColor(VARIANT *p) = 0;
590     virtual HRESULT wxSTDCALL get_borderTopStyle(BSTR *p) = 0;
591     virtual HRESULT wxSTDCALL get_borderRightStyle(BSTR *p) = 0;
592     virtual HRESULT wxSTDCALL get_borderBottomStyle(BSTR *p) = 0;
593     virtual HRESULT wxSTDCALL get_borderLeftStyle(BSTR *p) = 0;
594     virtual HRESULT wxSTDCALL get_borderTopWidth(VARIANT *p) = 0;
595     virtual HRESULT wxSTDCALL get_borderRightWidth(VARIANT *p) = 0;
596     virtual HRESULT wxSTDCALL get_borderBottomWidth(VARIANT *p) = 0;
597     virtual HRESULT wxSTDCALL get_borderLeftWidth(VARIANT *p) = 0;
598     virtual HRESULT wxSTDCALL get_left(VARIANT *p) = 0;
599     virtual HRESULT wxSTDCALL get_top(VARIANT *p) = 0;
600     virtual HRESULT wxSTDCALL get_width(VARIANT *p) = 0;
601     virtual HRESULT wxSTDCALL get_height(VARIANT *p) = 0;
602     virtual HRESULT wxSTDCALL get_paddingLeft(VARIANT *p) = 0;
603     virtual HRESULT wxSTDCALL get_paddingTop(VARIANT *p) = 0;
604     virtual HRESULT wxSTDCALL get_paddingRight(VARIANT *p) = 0;
605     virtual HRESULT wxSTDCALL get_paddingBottom(VARIANT *p) = 0;
606     virtual HRESULT wxSTDCALL get_textAlign(BSTR *p) = 0;
607     virtual HRESULT wxSTDCALL get_textDecoration(BSTR *p) = 0;
608     virtual HRESULT wxSTDCALL get_display(BSTR *p) = 0;
609     virtual HRESULT wxSTDCALL get_visibility(BSTR *p) = 0;
610     virtual HRESULT wxSTDCALL get_zIndex(VARIANT *p) = 0;
611     virtual HRESULT wxSTDCALL get_letterSpacing(VARIANT *p) = 0;
612     virtual HRESULT wxSTDCALL get_lineHeight(VARIANT *p) = 0;
613     virtual HRESULT wxSTDCALL get_textIndent(VARIANT *p) = 0;
614     virtual HRESULT wxSTDCALL get_verticalAlign(VARIANT *p) = 0;
615     virtual HRESULT wxSTDCALL get_backgroundAttachment(BSTR *p) = 0;
616     virtual HRESULT wxSTDCALL get_marginTop(VARIANT *p) = 0;
617     virtual HRESULT wxSTDCALL get_marginRight(VARIANT *p) = 0;
618     virtual HRESULT wxSTDCALL get_marginBottom(VARIANT *p) = 0;
619     virtual HRESULT wxSTDCALL get_marginLeft(VARIANT *p) = 0;
620     virtual HRESULT wxSTDCALL get_clear(BSTR *p) = 0;
621     virtual HRESULT wxSTDCALL get_listStyleType(BSTR *p) = 0;
622     virtual HRESULT wxSTDCALL get_listStylePosition(BSTR *p) = 0;
623     virtual HRESULT wxSTDCALL get_listStyleImage(BSTR *p) = 0;
624     virtual HRESULT wxSTDCALL get_clipTop(VARIANT *p) = 0;
625     virtual HRESULT wxSTDCALL get_clipRight(VARIANT *p) = 0;
626     virtual HRESULT wxSTDCALL get_clipBottom(VARIANT *p) = 0;
627     virtual HRESULT wxSTDCALL get_clipLeft(VARIANT *p) = 0;
628     virtual HRESULT wxSTDCALL get_overflow(BSTR *p) = 0;
629     virtual HRESULT wxSTDCALL get_pageBreakBefore(BSTR *p) = 0;
630     virtual HRESULT wxSTDCALL get_pageBreakAfter(BSTR *p) = 0;
631     virtual HRESULT wxSTDCALL get_cursor(BSTR *p) = 0;
632     virtual HRESULT wxSTDCALL get_tableLayout(BSTR *p) = 0;
633     virtual HRESULT wxSTDCALL get_borderCollapse(BSTR *p) = 0;
634     virtual HRESULT wxSTDCALL get_direction(BSTR *p) = 0;
635     virtual HRESULT wxSTDCALL get_behavior(BSTR *p) = 0;
636     virtual HRESULT wxSTDCALL getAttribute(BSTR strAttributeName, LONG lFlags, VARIANT *AttributeValue) = 0;
637     virtual HRESULT wxSTDCALL get_unicodeBidi(BSTR *p) = 0;
638     virtual HRESULT wxSTDCALL get_right(VARIANT *p) = 0;
639     virtual HRESULT wxSTDCALL get_bottom(VARIANT *p) = 0;
640     virtual HRESULT wxSTDCALL get_imeMode(BSTR *p) = 0;
641     virtual HRESULT wxSTDCALL get_rubyAlign(BSTR *p) = 0;
642     virtual HRESULT wxSTDCALL get_rubyPosition(BSTR *p) = 0;
643     virtual HRESULT wxSTDCALL get_rubyOverhang(BSTR *p) = 0;
644     virtual HRESULT wxSTDCALL get_textAutospace(BSTR *p) = 0;
645     virtual HRESULT wxSTDCALL get_lineBreak(BSTR *p) = 0;
646     virtual HRESULT wxSTDCALL get_wordBreak(BSTR *p) = 0;
647     virtual HRESULT wxSTDCALL get_textJustify(BSTR *p) = 0;
648     virtual HRESULT wxSTDCALL get_textJustifyTrim(BSTR *p) = 0;
649     virtual HRESULT wxSTDCALL get_textKashida(VARIANT *p) = 0;
650     virtual HRESULT wxSTDCALL get_blockDirection(BSTR *p) = 0;
651     virtual HRESULT wxSTDCALL get_layoutGridChar(VARIANT *p) = 0;
652     virtual HRESULT wxSTDCALL get_layoutGridLine(VARIANT *p) = 0;
653     virtual HRESULT wxSTDCALL get_layoutGridMode(BSTR *p) = 0;
654     virtual HRESULT wxSTDCALL get_layoutGridType(BSTR *p) = 0;
655     virtual HRESULT wxSTDCALL get_borderStyle(BSTR *p) = 0;
656     virtual HRESULT wxSTDCALL get_borderColor(BSTR *p) = 0;
657     virtual HRESULT wxSTDCALL get_borderWidth(BSTR *p) = 0;
658     virtual HRESULT wxSTDCALL get_padding(BSTR *p) = 0;
659     virtual HRESULT wxSTDCALL get_margin(BSTR *p) = 0;
660     virtual HRESULT wxSTDCALL get_accelerator(BSTR *p) = 0;
661     virtual HRESULT wxSTDCALL get_overflowX(BSTR *p) = 0;
662     virtual HRESULT wxSTDCALL get_overflowY(BSTR *p) = 0;
663     virtual HRESULT wxSTDCALL get_textTransform(BSTR *p) = 0;
664 };
665 
666 
667 struct wxIHTMLRect : public IDispatch
668 {
669 public:
670     virtual HRESULT wxSTDCALL put_left(long v) = 0;
671     virtual HRESULT wxSTDCALL get_left(long *p) = 0;
672     virtual HRESULT wxSTDCALL put_top(long v) = 0;
673     virtual HRESULT wxSTDCALL get_top(long *p) = 0;
674     virtual HRESULT wxSTDCALL put_right(long v) = 0;
675     virtual HRESULT wxSTDCALL get_right(long *p) = 0;
676     virtual HRESULT wxSTDCALL put_bottom(long v) = 0;
677     virtual HRESULT wxSTDCALL get_bottom(long *p) = 0;
678 };
679 
680 struct wxIHTMLRectCollection : public IDispatch
681 {
682 public:
683     virtual HRESULT wxSTDCALL get_length(long *p) = 0;
684     virtual HRESULT wxSTDCALL get__newEnum(IUnknown **p) = 0;
685     virtual HRESULT wxSTDCALL item(VARIANT *pvarIndex, VARIANT *pvarResult) = 0;
686 };
687 
688 struct wxIHTMLFiltersCollection : public IDispatch
689 {
690 public:
691     virtual HRESULT wxSTDCALL get_length(long *p) = 0;
692     virtual HRESULT wxSTDCALL get__newEnum(IUnknown **p) = 0;
693     virtual HRESULT wxSTDCALL item(VARIANT *pvarIndex, VARIANT *pvarResult) = 0;
694 };
695 
696 struct wxIHTMLElementCollection : public IDispatch
697 {
698 public:
699     virtual HRESULT wxSTDCALL toString(BSTR *String) = 0;
700     virtual HRESULT wxSTDCALL put_length(long v) = 0;
701     virtual HRESULT wxSTDCALL get_length(long *p) = 0;
702     virtual HRESULT wxSTDCALL get__newEnum(IUnknown **p) = 0;
703     virtual HRESULT wxSTDCALL item(VARIANT name, VARIANT index, IDispatch **pdisp) = 0;
704     virtual HRESULT wxSTDCALL tags(VARIANT tagName, IDispatch **pdisp) = 0;
705 };
706 
707 struct wxIHTMLElement2 : public IDispatch
708 {
709 public:
710     virtual HRESULT wxSTDCALL get_scopeName(BSTR *p) = 0;
711     virtual HRESULT wxSTDCALL setCapture(VARIANT_BOOL containerCapture = -1) = 0;
712     virtual HRESULT wxSTDCALL releaseCapture(void) = 0;
713     virtual HRESULT wxSTDCALL put_onlosecapture(VARIANT v) = 0;
714     virtual HRESULT wxSTDCALL get_onlosecapture(VARIANT *p) = 0;
715     virtual HRESULT wxSTDCALL componentFromPoint(long x, long y, BSTR *component) = 0;
716     virtual HRESULT wxSTDCALL doScroll(VARIANT component) = 0;
717     virtual HRESULT wxSTDCALL put_onscroll(VARIANT v) = 0;
718     virtual HRESULT wxSTDCALL get_onscroll(VARIANT *p) = 0;
719     virtual HRESULT wxSTDCALL put_ondrag(VARIANT v) = 0;
720     virtual HRESULT wxSTDCALL get_ondrag(VARIANT *p) = 0;
721     virtual HRESULT wxSTDCALL put_ondragend(VARIANT v) = 0;
722     virtual HRESULT wxSTDCALL get_ondragend(VARIANT *p) = 0;
723     virtual HRESULT wxSTDCALL put_ondragenter(VARIANT v) = 0;
724     virtual HRESULT wxSTDCALL get_ondragenter(VARIANT *p) = 0;
725     virtual HRESULT wxSTDCALL put_ondragover(VARIANT v) = 0;
726     virtual HRESULT wxSTDCALL get_ondragover(VARIANT *p) = 0;
727     virtual HRESULT wxSTDCALL put_ondragleave(VARIANT v) = 0;
728     virtual HRESULT wxSTDCALL get_ondragleave(VARIANT *p) = 0;
729     virtual HRESULT wxSTDCALL put_ondrop(VARIANT v) = 0;
730     virtual HRESULT wxSTDCALL get_ondrop(VARIANT *p) = 0;
731     virtual HRESULT wxSTDCALL put_onbeforecut(VARIANT v) = 0;
732     virtual HRESULT wxSTDCALL get_onbeforecut(VARIANT *p) = 0;
733     virtual HRESULT wxSTDCALL put_oncut(VARIANT v) = 0;
734     virtual HRESULT wxSTDCALL get_oncut(VARIANT *p) = 0;
735     virtual HRESULT wxSTDCALL put_onbeforecopy(VARIANT v) = 0;
736     virtual HRESULT wxSTDCALL get_onbeforecopy(VARIANT *p) = 0;
737     virtual HRESULT wxSTDCALL put_oncopy(VARIANT v) = 0;
738     virtual HRESULT wxSTDCALL get_oncopy(VARIANT *p) = 0;
739     virtual HRESULT wxSTDCALL put_onbeforepaste(VARIANT v) = 0;
740     virtual HRESULT wxSTDCALL get_onbeforepaste(VARIANT *p) = 0;
741     virtual HRESULT wxSTDCALL put_onpaste(VARIANT v) = 0;
742     virtual HRESULT wxSTDCALL get_onpaste(VARIANT *p) = 0;
743     virtual HRESULT wxSTDCALL get_currentStyle(wxIHTMLCurrentStyle **p) = 0;
744     virtual HRESULT wxSTDCALL put_onpropertychange(VARIANT v) = 0;
745     virtual HRESULT wxSTDCALL get_onpropertychange(VARIANT *p) = 0;
746     virtual HRESULT wxSTDCALL getClientRects(wxIHTMLRectCollection **pRectCol) = 0;
747     virtual HRESULT wxSTDCALL getBoundingClientRect(wxIHTMLRect **pRect) = 0;
748     virtual HRESULT wxSTDCALL setExpression(BSTR propname, BSTR expression, BSTR language) = 0;
749     virtual HRESULT wxSTDCALL getExpression(BSTR propname, VARIANT *expression) = 0;
750     virtual HRESULT wxSTDCALL removeExpression(BSTR propname, VARIANT_BOOL *pfSuccess) = 0;
751     virtual HRESULT wxSTDCALL put_tabIndex(short v) = 0;
752     virtual HRESULT wxSTDCALL get_tabIndex(short *p) = 0;
753     virtual HRESULT wxSTDCALL focus(void) = 0;
754     virtual HRESULT wxSTDCALL put_accessKey(BSTR v) = 0;
755     virtual HRESULT wxSTDCALL get_accessKey(BSTR *p) = 0;
756     virtual HRESULT wxSTDCALL put_onblur(VARIANT v) = 0;
757     virtual HRESULT wxSTDCALL get_onblur(VARIANT *p) = 0;
758     virtual HRESULT wxSTDCALL put_onfocus(VARIANT v) = 0;
759     virtual HRESULT wxSTDCALL get_onfocus(VARIANT *p) = 0;
760     virtual HRESULT wxSTDCALL put_onresize(VARIANT v) = 0;
761     virtual HRESULT wxSTDCALL get_onresize(VARIANT *p) = 0;
762     virtual HRESULT wxSTDCALL blur(void) = 0;
763     virtual HRESULT wxSTDCALL addFilter(IUnknown *pUnk) = 0;
764     virtual HRESULT wxSTDCALL removeFilter(IUnknown *pUnk) = 0;
765     virtual HRESULT wxSTDCALL get_clientHeight(long *p) = 0;
766     virtual HRESULT wxSTDCALL get_clientWidth(long *p) = 0;
767     virtual HRESULT wxSTDCALL get_clientTop(long *p) = 0;
768     virtual HRESULT wxSTDCALL get_clientLeft(long *p) = 0;
769     virtual HRESULT wxSTDCALL attachEvent(BSTR event, IDispatch *pDisp, VARIANT_BOOL *pfResult) = 0;
770     virtual HRESULT wxSTDCALL detachEvent(BSTR event, IDispatch *pDisp) = 0;
771     virtual HRESULT wxSTDCALL get_readyState(VARIANT *p) = 0;
772     virtual HRESULT wxSTDCALL put_onreadystatechange(VARIANT v) = 0;
773     virtual HRESULT wxSTDCALL get_onreadystatechange(VARIANT *p) = 0;
774     virtual HRESULT wxSTDCALL put_onrowsdelete(VARIANT v) = 0;
775     virtual HRESULT wxSTDCALL get_onrowsdelete(VARIANT *p) = 0;
776     virtual HRESULT wxSTDCALL put_onrowsinserted(VARIANT v) = 0;
777     virtual HRESULT wxSTDCALL get_onrowsinserted(VARIANT *p) = 0;
778     virtual HRESULT wxSTDCALL put_oncellchange(VARIANT v) = 0;
779     virtual HRESULT wxSTDCALL get_oncellchange(VARIANT *p) = 0;
780     virtual HRESULT wxSTDCALL put_dir(BSTR v) = 0;
781     virtual HRESULT wxSTDCALL get_dir(BSTR *p) = 0;
782     virtual HRESULT wxSTDCALL createControlRange(IDispatch **range) = 0;
783     virtual HRESULT wxSTDCALL get_scrollHeight(long *p) = 0;
784     virtual HRESULT wxSTDCALL get_scrollWidth(long *p) = 0;
785     virtual HRESULT wxSTDCALL put_scrollTop(long v) = 0;
786     virtual HRESULT wxSTDCALL get_scrollTop(long *p) = 0;
787     virtual HRESULT wxSTDCALL put_scrollLeft(long v) = 0;
788     virtual HRESULT wxSTDCALL get_scrollLeft(long *p) = 0;
789     virtual HRESULT wxSTDCALL clearAttributes(void) = 0;
790     virtual HRESULT wxSTDCALL mergeAttributes(IHTMLElement *mergeThis) = 0;
791     virtual HRESULT wxSTDCALL put_oncontextmenu(VARIANT v) = 0;
792     virtual HRESULT wxSTDCALL get_oncontextmenu(VARIANT *p) = 0;
793     virtual HRESULT wxSTDCALL insertAdjacentElement(BSTR where, IHTMLElement *insertedElement, IHTMLElement **inserted) = 0;
794     virtual HRESULT wxSTDCALL applyElement(IHTMLElement *apply, BSTR where, IHTMLElement **applied) = 0;
795     virtual HRESULT wxSTDCALL getAdjacentText(BSTR where, BSTR *text) = 0;
796     virtual HRESULT wxSTDCALL replaceAdjacentText(BSTR where, BSTR newText, BSTR *oldText) = 0;
797     virtual HRESULT wxSTDCALL get_canHaveChildren(VARIANT_BOOL *p) = 0;
798     virtual HRESULT wxSTDCALL addBehavior(BSTR bstrUrl, VARIANT *pvarFactory, long *pCookie) = 0;
799     virtual HRESULT wxSTDCALL removeBehavior(long cookie, VARIANT_BOOL *pfResult) = 0;
800     virtual HRESULT wxSTDCALL get_runtimeStyle(wxIHTMLStyle **p) = 0;
801     virtual HRESULT wxSTDCALL get_behaviorUrns(IDispatch **p) = 0;
802     virtual HRESULT wxSTDCALL put_tagUrn(BSTR v) = 0;
803     virtual HRESULT wxSTDCALL get_tagUrn(BSTR *p) = 0;
804     virtual HRESULT wxSTDCALL put_onbeforeeditfocus(VARIANT v) = 0;
805     virtual HRESULT wxSTDCALL get_onbeforeeditfocus(VARIANT *p) = 0;
806     virtual HRESULT wxSTDCALL get_readyStateValue(long *p) = 0;
807     virtual HRESULT wxSTDCALL getElementsByTagName(BSTR v,
808             wxIHTMLElementCollection **pelColl) = 0;
809 };
810 
811 struct wxIHTMLTxtRange : public IDispatch
812 {
813 public:
814     virtual HRESULT wxSTDCALL get_htmlText(BSTR *p) = 0;
815     virtual HRESULT wxSTDCALL put_text(BSTR v) = 0;
816     virtual HRESULT wxSTDCALL get_text(BSTR *p) = 0;
817     virtual HRESULT wxSTDCALL parentElement(IHTMLElement **parent) = 0;
818     virtual HRESULT wxSTDCALL duplicate(wxIHTMLTxtRange **Duplicate) = 0;
819     virtual HRESULT wxSTDCALL inRange(wxIHTMLTxtRange *Range, VARIANT_BOOL *InRange) = 0;
820     virtual HRESULT wxSTDCALL isEqual(wxIHTMLTxtRange *Range, VARIANT_BOOL *IsEqual) = 0;
821     virtual HRESULT wxSTDCALL scrollIntoView(VARIANT_BOOL fStart = -1) = 0;
822     virtual HRESULT wxSTDCALL collapse(VARIANT_BOOL Start = -1) = 0;
823     virtual HRESULT wxSTDCALL expand(BSTR Unit, VARIANT_BOOL *Success) = 0;
824     virtual HRESULT wxSTDCALL move(BSTR Unit, long Count, long *ActualCount) = 0;
825     virtual HRESULT wxSTDCALL moveStart(BSTR Unit, long Count, long *ActualCount) = 0;
826     virtual HRESULT wxSTDCALL moveEnd(BSTR Unit, long Count, long *ActualCount) = 0;
827     virtual HRESULT wxSTDCALL select(void) = 0;
828     virtual HRESULT wxSTDCALL pasteHTML(BSTR html) = 0;
829     virtual HRESULT wxSTDCALL moveToElementText(IHTMLElement *element) = 0;
830     virtual HRESULT wxSTDCALL setEndPoint(BSTR how, wxIHTMLTxtRange *SourceRange) = 0;
831     virtual HRESULT wxSTDCALL compareEndPoints(BSTR how, wxIHTMLTxtRange *SourceRange, long *ret) = 0;
832     virtual HRESULT wxSTDCALL findText(BSTR String, long count, long Flags, VARIANT_BOOL *Success) = 0;
833     virtual HRESULT wxSTDCALL moveToPoint(long x, long y) = 0;
834     virtual HRESULT wxSTDCALL getBookmark(BSTR *Boolmark) = 0;
835     virtual HRESULT wxSTDCALL moveToBookmark(BSTR Bookmark, VARIANT_BOOL *Success) = 0;
836     virtual HRESULT wxSTDCALL queryCommandSupported(BSTR cmdID, VARIANT_BOOL *pfRet) = 0;
837     virtual HRESULT wxSTDCALL queryCommandEnabled(BSTR cmdID, VARIANT_BOOL *pfRet) = 0;
838     virtual HRESULT wxSTDCALL queryCommandState(BSTR cmdID, VARIANT_BOOL *pfRet) = 0;
839     virtual HRESULT wxSTDCALL queryCommandIndeterm(BSTR cmdID, VARIANT_BOOL *pfRet) = 0;
840     virtual HRESULT wxSTDCALL queryCommandText(BSTR cmdID, BSTR *pcmdText) = 0;
841     virtual HRESULT wxSTDCALL queryCommandValue(BSTR cmdID, VARIANT *pcmdValue) = 0;
842     virtual HRESULT wxSTDCALL execCommand(BSTR cmdID, VARIANT_BOOL showUI, VARIANT value, VARIANT_BOOL *pfRet) = 0;
843     virtual HRESULT wxSTDCALL execCommandShowHelp(BSTR cmdID, VARIANT_BOOL *pfRet) = 0;
844 };
845 
846 struct wxIMarkupContainer : public IUnknown
847 {
848 public:
849     virtual HRESULT wxSTDCALL OwningDoc(IHTMLDocument2 **ppDoc) = 0;
850 };
851 
852 struct wxIMarkupPointer : public IUnknown
853 {
854 public:
855     virtual HRESULT wxSTDCALL OwningDoc(IHTMLDocument2 **ppDoc) = 0;
856     virtual HRESULT wxSTDCALL Gravity(wxPOINTER_GRAVITY *pGravity) = 0;
857     virtual HRESULT wxSTDCALL SetGravity(wxPOINTER_GRAVITY Gravity) = 0;
858     virtual HRESULT wxSTDCALL Cling(BOOL *pfCling) = 0;
859     virtual HRESULT wxSTDCALL SetCling(BOOL fCLing) = 0;
860     virtual HRESULT wxSTDCALL Unposition(void) = 0;
861     virtual HRESULT wxSTDCALL IsPositioned(BOOL *pfPositioned) = 0;
862     virtual HRESULT wxSTDCALL GetContainer(wxIMarkupContainer **ppContainer) = 0;
863     virtual HRESULT wxSTDCALL MoveAdjacentToElement(IHTMLElement *pElement, wxELEMENT_ADJACENCY eAdj) = 0;
864     virtual HRESULT wxSTDCALL MoveToPointer(wxIMarkupPointer *pPointer) = 0;
865     virtual HRESULT wxSTDCALL MoveToContainer(wxIMarkupContainer *pContainer, BOOL fAtStart) = 0;
866     virtual HRESULT wxSTDCALL Left(BOOL fMove, wxMARKUP_CONTEXT_TYPE *pContext, IHTMLElement **ppElement, long *pcch, OLECHAR *pchText) = 0;
867     virtual HRESULT wxSTDCALL Right(BOOL fMove, wxMARKUP_CONTEXT_TYPE *pContext, IHTMLElement **ppElement, long *pcch, OLECHAR *pchText) = 0;
868     virtual HRESULT wxSTDCALL CurrentScope(IHTMLElement **ppElemCurrent) = 0;
869     virtual HRESULT wxSTDCALL IsLeftOf(wxIMarkupPointer *pPointerThat, BOOL *pfResult) = 0;
870     virtual HRESULT wxSTDCALL IsLeftOfOrEqualTo(wxIMarkupPointer *pPointerThat, BOOL *pfResult) = 0;
871     virtual HRESULT wxSTDCALL IsRightOf(wxIMarkupPointer *pPointerThat, BOOL *pfResult) = 0;
872     virtual HRESULT wxSTDCALL IsRightOfOrEqualTo(wxIMarkupPointer *pPointerThat, BOOL *pfResult) = 0;
873     virtual HRESULT wxSTDCALL IsEqualTo(wxIMarkupPointer *pPointerThat, BOOL *pfAreEqual) = 0;
874     virtual HRESULT wxSTDCALL MoveUnit(wxMOVEUNIT_ACTION muAction) = 0;
875     virtual HRESULT wxSTDCALL FindText(OLECHAR *pchFindText, DWORD dwFlags, wxIMarkupPointer *pIEndMatch, wxIMarkupPointer *pIEndSearch) = 0;
876 };
877 
878 struct wxIMarkupServices : public IUnknown
879 {
880 public:
881     virtual HRESULT wxSTDCALL CreateMarkupPointer(wxIMarkupPointer **ppPointer) = 0;
882     virtual HRESULT wxSTDCALL CreateMarkupContainer(wxIMarkupContainer **ppMarkupContainer) = 0;
883     virtual HRESULT wxSTDCALL CreateElement(wxELEMENT_TAG_ID tagID, OLECHAR *pchAttributes, IHTMLElement **ppElement) = 0;
884     virtual HRESULT wxSTDCALL CloneElement(IHTMLElement *pElemCloneThis, IHTMLElement **ppElementTheClone) = 0;
885     virtual HRESULT wxSTDCALL InsertElement(IHTMLElement *pElementInsert, wxIMarkupPointer *pPointerStart, wxIMarkupPointer *pPointerFinish) = 0;
886     virtual HRESULT wxSTDCALL RemoveElement(IHTMLElement *pElementRemove) = 0;
887     virtual HRESULT wxSTDCALL Remove(wxIMarkupPointer *pPointerStart, wxIMarkupPointer *pPointerFinish) = 0;
888     virtual HRESULT wxSTDCALL Copy(wxIMarkupPointer *pPointerSourceStart, wxIMarkupPointer *pPointerSourceFinish, wxIMarkupPointer *pPointerTarget) = 0;
889     virtual HRESULT wxSTDCALL Move(wxIMarkupPointer *pPointerSourceStart, wxIMarkupPointer *pPointerSourceFinish, wxIMarkupPointer *pPointerTarget) = 0;
890     virtual HRESULT wxSTDCALL InsertText(OLECHAR *pchText, long cch, wxIMarkupPointer *pPointerTarget) = 0;
891     virtual HRESULT wxSTDCALL ParseString(OLECHAR *pchHTML, DWORD dwFlags, wxIMarkupContainer **ppContainerResult, wxIMarkupPointer *ppPointerStart, wxIMarkupPointer *ppPointerFinish) = 0;
892     virtual HRESULT wxSTDCALL ParseGlobal(HGLOBAL hglobalHTML, DWORD dwFlags, wxIMarkupContainer **ppContainerResult, wxIMarkupPointer *pPointerStart, wxIMarkupPointer *pPointerFinish) = 0;
893     virtual HRESULT wxSTDCALL IsScopedElement(IHTMLElement *pElement, BOOL *pfScoped) = 0;
894     virtual HRESULT wxSTDCALL GetElementTagId(IHTMLElement *pElement, wxELEMENT_TAG_ID *ptagId) = 0;
895     virtual HRESULT wxSTDCALL GetTagIDForName(BSTR bstrName, wxELEMENT_TAG_ID *ptagId) = 0;
896     virtual HRESULT wxSTDCALL GetNameForTagID(wxELEMENT_TAG_ID tagId, BSTR *pbstrName) = 0;
897     virtual HRESULT wxSTDCALL MovePointersToRange(wxIHTMLTxtRange *pIRange, wxIMarkupPointer *pPointerStart, wxIMarkupPointer *pPointerFinish) = 0;
898     virtual HRESULT wxSTDCALL MoveRangeToPointers(wxIMarkupPointer *pPointerStart, wxIMarkupPointer *pPointerFinish, wxIHTMLTxtRange *pIRange) = 0;
899     virtual HRESULT wxSTDCALL BeginUndoUnit(OLECHAR *pchTitle) = 0;
900     virtual HRESULT wxSTDCALL EndUndoUnit(void) = 0;
901 };
902 
903 /* end of mshtml.h */
904 
905 /* WinInet.h */
906 
907 #ifndef HTTP_STATUS_BAD_REQUEST
908 #define HTTP_STATUS_BAD_REQUEST 400
909 #endif
910 
911 #ifndef HTTP_STATUS_DENIED
912 #define HTTP_STATUS_DENIED 401
913 #endif
914 
915 #ifndef HTTP_STATUS_PAYMENT_REQ
916 #define HTTP_STATUS_PAYMENT_REQ 402
917 #endif
918 
919 #ifndef HTTP_STATUS_FORBIDDEN
920 #define HTTP_STATUS_FORBIDDEN 403
921 #endif
922 
923 #ifndef HTTP_STATUS_NOT_FOUND
924 #define HTTP_STATUS_NOT_FOUND 404
925 #endif
926 
927 #ifndef HTTP_STATUS_BAD_METHOD
928 #define HTTP_STATUS_BAD_METHOD 405
929 #endif
930 
931 #ifndef HTTP_STATUS_NONE_ACCEPTABLE
932 #define HTTP_STATUS_NONE_ACCEPTABLE 406
933 #endif
934 
935 #ifndef HTTP_STATUS_PROXY_AUTH_REQ
936 #define HTTP_STATUS_PROXY_AUTH_REQ 407
937 #endif
938 
939 #ifndef HTTP_STATUS_REQUEST_TIMEOUT
940 #define HTTP_STATUS_REQUEST_TIMEOUT 408
941 #endif
942 
943 #ifndef HTTP_STATUS_CONFLICT
944 #define HTTP_STATUS_CONFLICT 409
945 #endif
946 
947 #ifndef HTTP_STATUS_GONE
948 #define HTTP_STATUS_GONE 410
949 #endif
950 
951 #ifndef HTTP_STATUS_LENGTH_REQUIRED
952 #define HTTP_STATUS_LENGTH_REQUIRED 411
953 #endif
954 
955 #ifndef HTTP_STATUS_PRECOND_FAILED
956 #define HTTP_STATUS_PRECOND_FAILED 412
957 #endif
958 
959 #ifndef HTTP_STATUS_REQUEST_TOO_LARGE
960 #define HTTP_STATUS_REQUEST_TOO_LARGE 413
961 #endif
962 
963 #ifndef HTTP_STATUS_URI_TOO_LONG
964 #define HTTP_STATUS_URI_TOO_LONG 414
965 #endif
966 
967 #ifndef HTTP_STATUS_UNSUPPORTED_MEDIA
968 #define HTTP_STATUS_UNSUPPORTED_MEDIA 415
969 #endif
970 
971 #ifndef HTTP_STATUS_RETRY_WITH
972 #define HTTP_STATUS_RETRY_WITH 449
973 #endif
974 
975 #ifndef HTTP_STATUS_SERVER_ERROR
976 #define HTTP_STATUS_SERVER_ERROR 500
977 #endif
978 
979 #ifndef HTTP_STATUS_NOT_SUPPORTED
980 #define HTTP_STATUS_NOT_SUPPORTED 501
981 #endif
982 
983 #ifndef HTTP_STATUS_BAD_GATEWAY
984 #define HTTP_STATUS_BAD_GATEWAY 502
985 #endif
986 
987 #ifndef HTTP_STATUS_SERVICE_UNAVAIL
988 #define HTTP_STATUS_SERVICE_UNAVAIL 503
989 #endif
990 
991 #ifndef HTTP_STATUS_GATEWAY_TIMEOUT
992 #define HTTP_STATUS_GATEWAY_TIMEOUT 504
993 #endif
994 
995 #ifndef HTTP_STATUS_VERSION_NOT_SUP
996 #define HTTP_STATUS_VERSION_NOT_SUP 505
997 #endif
998 
999 /* end of WinInet.h */
1000 
1001 /* ShObjldl_core.h */
1002 
1003 typedef enum _wxNWMF
1004 {
1005     wxNWMF_UNLOADING = 0x1,
1006     wxNWMF_USERINITED = 0x2,
1007     wxNWMF_FIRST = 0x4,
1008     wxNWMF_OVERRIDEKEY = 0x8,
1009     wxNWMF_SHOWHELP = 0x10,
1010     wxNWMF_HTMLDIALOG = 0x20,
1011     wxNWMF_FROMDIALOGCHILD = 0x40,
1012     wxNWMF_USERREQUESTED = 0x80,
1013     wxNWMF_USERALLOWED = 0x100,
1014     wxNWMF_FORCEWINDOW = 0x10000,
1015     wxNWMF_FORCETAB = 0x20000,
1016     wxNWMF_SUGGESTWINDOW = 0x40000,
1017     wxNWMF_SUGGESTTAB = 0x80000,
1018     wxNWMF_INACTIVETAB = 0x100000
1019 } _wxNWMF;
1020 
1021 /* end of ShObjldl_core.h */
1022