[PATCH] Implement HTMLDocument get/put designMode
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Tue Oct 28 04:36:52 CDT 2008
---
dlls/mshtml/htmldoc.c | 31 +++++++++++++++++++++++++++----
dlls/mshtml/mshtml_private.h | 8 ++++++++
2 files changed, 35 insertions(+), 4 deletions(-)
diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index 01d52a2..4fa0641 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -37,6 +37,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
#define HTMLDOC_THIS(iface) DEFINE_THIS(HTMLDocument, HTMLDocument2, iface)
+static WCHAR szOff[] = {'O','F','f',0};
+static WCHAR szOn[] = {'O','n',0};
+static WCHAR szInherit[] = {'I','n','h','e','r','i','t',0};
+
static HRESULT WINAPI HTMLDocument_QueryInterface(IHTMLDocument2 *iface, REFIID riid, void **ppvObject)
{
HTMLDocument *This = HTMLDOC_THIS(iface);
@@ -433,15 +437,34 @@ static HRESULT WINAPI HTMLDocument_get_scripts(IHTMLDocument2 *iface, IHTMLEleme
static HRESULT WINAPI HTMLDocument_put_designMode(IHTMLDocument2 *iface, BSTR v)
{
HTMLDocument *This = HTMLDOC_THIS(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ if(strcmpW(v, szOff) == 0)
+ This->designmode = DESIGNMODE_OFF;
+ else if(strcmpW(v, szOn) == 0)
+ This->designmode = DESIGNMODE_ON;
+ else if(strcmpW(v, szInherit) == 0)
+ This->designmode = DESIGNMODE_INHERIT;
+
+ return S_OK;
}
static HRESULT WINAPI HTMLDocument_get_designMode(IHTMLDocument2 *iface, BSTR *p)
{
HTMLDocument *This = HTMLDOC_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+
+ if(!p)
+ return E_INVALIDARG;
+
+ if(This->designmode == DESIGNMODE_ON)
+ *p = SysAllocString(szOn);
+ else if(This->designmode == DESIGNMODE_INHERIT)
+ *p = SysAllocString(szInherit);
+ else
+ *p = SysAllocString(szOff);
+
+ return S_OK;
}
static HRESULT WINAPI HTMLDocument_get_selection(IHTMLDocument2 *iface, IHTMLSelectionObject **p)
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 888669f..bd468a5 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -170,6 +170,12 @@ typedef enum {
} USERMODE;
typedef enum {
+ DESIGNMODE_ON,
+ DESIGNMODE_OFF,
+ DESIGNMODE_INHERIT
+} DESIGNMODE;
+
+typedef enum {
SCRIPTMODE_GECKO,
SCRIPTMODE_ACTIVESCRIPT
} SCRIPTMODE;
@@ -289,6 +295,8 @@ struct HTMLDocument {
struct list range_list;
HTMLDOMNode *nodes;
+
+ DESIGNMODE designmode;
};
typedef struct {
--
1.5.4.3
--------------010400090905030107060802--
More information about the wine-patches
mailing list