mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 08:55:19 +00:00
sync mshtml to wine 1.1.4
svn path=/trunk/; revision=36108
This commit is contained in:
parent
929b9dfa89
commit
124ae67cb4
19 changed files with 475 additions and 117 deletions
17
reactos/dll/win32/mshtml.tlb/mshtml.tlb.rbuild
Normal file
17
reactos/dll/win32/mshtml.tlb/mshtml.tlb.rbuild
Normal file
|
@ -0,0 +1,17 @@
|
|||
<group>
|
||||
<module name="mshtml_tlb" type="embeddedtypelib">
|
||||
<file>mshtml_tlb.idl</file>
|
||||
</module>
|
||||
<module name="mshtml.tlb" type="win32dll" extension=".tlb" installbase="system32" installname="mshtml.tlb" entrypoint="0">
|
||||
<importlibrary definition="mshtml.tlb.spec.def" />
|
||||
<include base="mshtml.tlb" root="intermediate">.</include>
|
||||
<dependency>mshtml_tlb</dependency>
|
||||
<define name="__WINESRC__" />
|
||||
<define name="_WIN32_IE">0x600</define>
|
||||
<define name="_WIN32_WINNT">0x501</define>
|
||||
<define name="WINVER">0x501</define>
|
||||
<library>kernel32</library>
|
||||
<file>mshtml.tlb.spec</file>
|
||||
<file>rsrc.rc</file>
|
||||
</module>
|
||||
</group>
|
1
reactos/dll/win32/mshtml.tlb/mshtml.tlb.spec
Normal file
1
reactos/dll/win32/mshtml.tlb/mshtml.tlb.spec
Normal file
|
@ -0,0 +1 @@
|
|||
# no exported entry points
|
19
reactos/dll/win32/mshtml.tlb/mshtml_tlb.idl
Normal file
19
reactos/dll/win32/mshtml.tlb/mshtml_tlb.idl
Normal file
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* Copyright 2007 Jacek Caban for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "mshtml.idl"
|
24
reactos/dll/win32/mshtml.tlb/rsrc.rc
Normal file
24
reactos/dll/win32/mshtml.tlb/rsrc.rc
Normal file
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* Copyright 2007 Jacek Caban for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "windef.h"
|
||||
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
|
||||
/* @makedep: mshtml_tlb.tlb */
|
||||
1 TYPELIB LOADONCALL DISCARDABLE mshtml_tlb.tlb
|
98
reactos/dll/win32/mshtml/Zh.rc
Normal file
98
reactos/dll/win32/mshtml/Zh.rc
Normal file
|
@ -0,0 +1,98 @@
|
|||
/*
|
||||
* mshtml (Simplified and Traditional Chinese Resources)
|
||||
*
|
||||
* Copyright 2008 Hongbo Ni <hongbo.at.njstar.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
/* Chinese text is encoded in UTF-8 */
|
||||
#pragma code_page(65001)
|
||||
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
IDS_HTMLDISABLED "HTML 功能目前已被停用."
|
||||
IDS_HTMLDOCUMENT "HTML 文件"
|
||||
IDS_DOWNLOADING "正在下载..."
|
||||
IDS_INSTALLING "正在安装..."
|
||||
}
|
||||
|
||||
ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 85
|
||||
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Wine Gecko 安装"
|
||||
FONT 9, "MS Song"
|
||||
{
|
||||
LTEXT "这个运用程序要显示一个HTML 网页. Wine 需要装上 Gecko (Mozilla HTML " \
|
||||
"engine)才能显示HTML网页. 如果你想自动下载和安装Gecko," \
|
||||
"请按'安装'.", ID_DWL_STATUS, 10, 10, 240, 30, SS_LEFT
|
||||
CONTROL "Progress", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 40, 240, 12
|
||||
DEFPUSHBUTTON "安装(&I)", ID_DWL_INSTALL, 200, 60, 50, 15, WS_GROUP | WS_TABSTOP
|
||||
PUSHBUTTON "取消(&C)", IDCANCEL, 140, 60, 50, 15, WS_GROUP | WS_TABSTOP
|
||||
}
|
||||
|
||||
IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65
|
||||
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "超链接"
|
||||
FONT 9, "MS Song"
|
||||
{
|
||||
GROUPBOX "超链接信息", IDC_STATIC, 5, 5, 190, 55
|
||||
LTEXT "类型(&T):", IDC_STATIC, 10, 22, 20, 10
|
||||
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
|
||||
LTEXT "网址(&U):", IDC_STATIC, 10, 42, 20, 10
|
||||
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
|
||||
PUSHBUTTON "确定", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
|
||||
PUSHBUTTON "取消", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
|
||||
}
|
||||
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
IDS_HTMLDISABLED "HTML 功能目前已被停用."
|
||||
IDS_HTMLDOCUMENT "HTML 檔案"
|
||||
IDS_DOWNLOADING "正在下載..."
|
||||
IDS_INSTALLING "正在安裝..."
|
||||
}
|
||||
|
||||
ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 85
|
||||
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Wine Gecko 安裝"
|
||||
FONT 8, "PMingLiu"
|
||||
{
|
||||
LTEXT "這個運用程式要顯示一個HTML 網頁. Wine 需要裝上 Gecko (Mozilla HTML " \
|
||||
"engine)才能顯示HTML網頁. 如果你想自動下載和安裝Gecko," \
|
||||
"請按'安裝'.", ID_DWL_STATUS, 10, 10, 240, 30, SS_LEFT
|
||||
CONTROL "Progress", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 40, 240, 12
|
||||
DEFPUSHBUTTON "安裝(&I)", ID_DWL_INSTALL, 200, 60, 50, 15, WS_GROUP | WS_TABSTOP
|
||||
PUSHBUTTON "取消(&C)", IDCANCEL, 140, 60, 50, 15, WS_GROUP | WS_TABSTOP
|
||||
}
|
||||
|
||||
IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65
|
||||
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "超鏈接"
|
||||
FONT 8, "PMingLiu"
|
||||
{
|
||||
GROUPBOX "超鏈接資訊", IDC_STATIC, 5, 5, 190, 55
|
||||
LTEXT "類型(&T):", IDC_STATIC, 10, 22, 20, 10
|
||||
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
|
||||
LTEXT "網址(&U):", IDC_STATIC, 10, 42, 20, 10
|
||||
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
|
||||
PUSHBUTTON "確定", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
|
||||
PUSHBUTTON "取消", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
|
||||
}
|
||||
|
||||
#pragma code_page(default)
|
|
@ -66,6 +66,7 @@ static struct list dispex_data_list = LIST_INIT(dispex_data_list);
|
|||
static REFIID tid_ids[] = {
|
||||
&IID_NULL,
|
||||
&DIID_DispDOMChildrenCollection,
|
||||
&DIID_DispHTMLBody,
|
||||
&DIID_DispHTMLCommentElement,
|
||||
&DIID_DispHTMLDocument,
|
||||
&DIID_DispHTMLDOMTextNode,
|
||||
|
@ -78,7 +79,10 @@ static REFIID tid_ids[] = {
|
|||
&DIID_DispHTMLStyle,
|
||||
&DIID_DispHTMLUnknownElement,
|
||||
&DIID_DispHTMLWindow2,
|
||||
&IID_IHTMLBodyElement,
|
||||
&IID_IHTMLBodyElement2,
|
||||
&IID_IHTMLCommentElement,
|
||||
&IID_IHTMLControlElement,
|
||||
&IID_IHTMLDocument2,
|
||||
&IID_IHTMLDocument3,
|
||||
&IID_IHTMLDocument4,
|
||||
|
@ -89,6 +93,8 @@ static REFIID tid_ids[] = {
|
|||
&IID_IHTMLDOMTextNode,
|
||||
&IID_IHTMLElement,
|
||||
&IID_IHTMLElement2,
|
||||
&IID_IHTMLElement3,
|
||||
&IID_IHTMLElement4,
|
||||
&IID_IHTMLElementCollection,
|
||||
&IID_IHTMLGenericElement,
|
||||
&IID_IHTMLImgElement,
|
||||
|
@ -96,6 +102,8 @@ static REFIID tid_ids[] = {
|
|||
&IID_IHTMLOptionElement,
|
||||
&IID_IHTMLSelectElement,
|
||||
&IID_IHTMLStyle,
|
||||
&IID_IHTMLTextContainer,
|
||||
&IID_IHTMLUniqueName,
|
||||
&IID_IHTMLWindow2,
|
||||
&IID_IHTMLWindow3,
|
||||
&IID_IOmNavigator
|
||||
|
|
|
@ -67,16 +67,14 @@ static ULONG WINAPI HTMLAnchorElement_Release(IHTMLAnchorElement *iface)
|
|||
static HRESULT WINAPI HTMLAnchorElement_GetTypeInfoCount(IHTMLAnchorElement *iface, UINT *pctinfo)
|
||||
{
|
||||
HTMLAnchorElement *This = HTMLANCHOR_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, pctinfo);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->element.node.dispex), pctinfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLAnchorElement_GetTypeInfo(IHTMLAnchorElement *iface, UINT iTInfo,
|
||||
LCID lcid, ITypeInfo **ppTInfo)
|
||||
{
|
||||
HTMLAnchorElement *This = HTMLANCHOR_THIS(iface);
|
||||
FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->element.node.dispex), iTInfo, lcid, ppTInfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLAnchorElement_GetIDsOfNames(IHTMLAnchorElement *iface, REFIID riid,
|
||||
|
@ -84,9 +82,7 @@ static HRESULT WINAPI HTMLAnchorElement_GetIDsOfNames(IHTMLAnchorElement *iface,
|
|||
LCID lcid, DISPID *rgDispId)
|
||||
{
|
||||
HTMLAnchorElement *This = HTMLANCHOR_THIS(iface);
|
||||
FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
|
||||
lcid, rgDispId);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->element.node.dispex), riid, rgszNames, cNames, lcid, rgDispId);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLAnchorElement_Invoke(IHTMLAnchorElement *iface, DISPID dispIdMember,
|
||||
|
@ -94,9 +90,8 @@ static HRESULT WINAPI HTMLAnchorElement_Invoke(IHTMLAnchorElement *iface, DISPID
|
|||
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
|
||||
{
|
||||
HTMLAnchorElement *This = HTMLANCHOR_THIS(iface);
|
||||
FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
|
||||
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_Invoke(DISPATCHEX(&This->element.node.dispex), dispIdMember, riid, lcid,
|
||||
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLAnchorElement_put_href(IHTMLAnchorElement *iface, BSTR v)
|
||||
|
|
|
@ -110,16 +110,14 @@ static ULONG WINAPI HTMLBodyElement_Release(IHTMLBodyElement *iface)
|
|||
static HRESULT WINAPI HTMLBodyElement_GetTypeInfoCount(IHTMLBodyElement *iface, UINT *pctinfo)
|
||||
{
|
||||
HTMLBodyElement *This = HTMLBODY_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, pctinfo);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->textcont.element.node.dispex), pctinfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLBodyElement_GetTypeInfo(IHTMLBodyElement *iface, UINT iTInfo,
|
||||
LCID lcid, ITypeInfo **ppTInfo)
|
||||
{
|
||||
HTMLBodyElement *This = HTMLBODY_THIS(iface);
|
||||
FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->textcont.element.node.dispex), iTInfo, lcid, ppTInfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLBodyElement_GetIDsOfNames(IHTMLBodyElement *iface, REFIID riid,
|
||||
|
@ -127,9 +125,7 @@ static HRESULT WINAPI HTMLBodyElement_GetIDsOfNames(IHTMLBodyElement *iface, REF
|
|||
LCID lcid, DISPID *rgDispId)
|
||||
{
|
||||
HTMLBodyElement *This = HTMLBODY_THIS(iface);
|
||||
FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
|
||||
lcid, rgDispId);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->textcont.element.node.dispex), riid, rgszNames, cNames, lcid, rgDispId);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLBodyElement_Invoke(IHTMLBodyElement *iface, DISPID dispIdMember,
|
||||
|
@ -137,9 +133,8 @@ static HRESULT WINAPI HTMLBodyElement_Invoke(IHTMLBodyElement *iface, DISPID dis
|
|||
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
|
||||
{
|
||||
HTMLBodyElement *This = HTMLBODY_THIS(iface);
|
||||
FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
|
||||
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_Invoke(DISPATCHEX(&This->textcont.element.node.dispex), dispIdMember, riid, lcid,
|
||||
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLBodyElement_put_background(IHTMLBodyElement *iface, BSTR v)
|
||||
|
@ -596,6 +591,28 @@ static const NodeImplVtbl HTMLBodyElementImplVtbl = {
|
|||
HTMLBodyElement_destructor
|
||||
};
|
||||
|
||||
static const tid_t HTMLBodyElement_iface_tids[] = {
|
||||
IHTMLBodyElement_tid,
|
||||
IHTMLBodyElement2_tid,
|
||||
IHTMLControlElement_tid,
|
||||
IHTMLDOMNode_tid,
|
||||
IHTMLDOMNode2_tid,
|
||||
IHTMLElement_tid,
|
||||
IHTMLElement2_tid,
|
||||
IHTMLElement3_tid,
|
||||
IHTMLElement4_tid,
|
||||
IHTMLTextContainer_tid,
|
||||
IHTMLUniqueName_tid,
|
||||
0
|
||||
};
|
||||
|
||||
static dispex_static_data_t HTMLBodyElement_dispex = {
|
||||
NULL,
|
||||
DispHTMLBody_tid,
|
||||
NULL,
|
||||
HTMLBodyElement_iface_tids
|
||||
};
|
||||
|
||||
HTMLElement *HTMLBodyElement_Create(nsIDOMHTMLElement *nselem)
|
||||
{
|
||||
HTMLBodyElement *ret = heap_alloc_zero(sizeof(HTMLBodyElement));
|
||||
|
@ -606,6 +623,8 @@ HTMLElement *HTMLBodyElement_Create(nsIDOMHTMLElement *nselem)
|
|||
HTMLTextContainer_Init(&ret->textcont);
|
||||
|
||||
ret->lpHTMLBodyElementVtbl = &HTMLBodyElementVtbl;
|
||||
|
||||
init_dispex(&ret->textcont.element.node.dispex, (IUnknown*)HTMLBODY(ret), &HTMLBodyElement_dispex);
|
||||
ret->textcont.element.node.vtbl = &HTMLBodyElementImplVtbl;
|
||||
|
||||
ConnectionPoint_Init(&ret->cp_propnotif, &ret->textcont.element.cp_container, &IID_IPropertyNotifySink);
|
||||
|
|
|
@ -252,8 +252,12 @@ static HRESULT WINAPI HTMLDocument_Invoke(IHTMLDocument2 *iface, DISPID dispIdMe
|
|||
static HRESULT WINAPI HTMLDocument_get_Script(IHTMLDocument2 *iface, IDispatch **p)
|
||||
{
|
||||
HTMLDocument *This = HTMLDOC_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
*p = (IDispatch*)HTMLWINDOW2(This->window);
|
||||
IDispatch_AddRef(*p);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLDocument_get_all(IHTMLDocument2 *iface, IHTMLElementCollection **p)
|
||||
|
@ -381,15 +385,70 @@ static HRESULT WINAPI HTMLDocument_get_anchors(IHTMLDocument2 *iface, IHTMLEleme
|
|||
static HRESULT WINAPI HTMLDocument_put_title(IHTMLDocument2 *iface, BSTR v)
|
||||
{
|
||||
HTMLDocument *This = HTMLDOC_THIS(iface);
|
||||
FIXME("(%p)->(%s)\n", This, debugstr_w(v));
|
||||
return E_NOTIMPL;
|
||||
nsIDOMHTMLDocument *nshtmldoc;
|
||||
nsIDOMDocument *nsdoc;
|
||||
nsAString nsstr;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%s)\n", This, debugstr_w(v));
|
||||
|
||||
if(!This->nscontainer)
|
||||
return E_FAIL;
|
||||
|
||||
nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc);
|
||||
if(NS_FAILED(nsres) || !nsdoc) {
|
||||
ERR("GetDocument failed: %08x\n", nsres);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
nsIDOMDocument_QueryInterface(nsdoc, &IID_nsIDOMHTMLDocument, (void**)&nshtmldoc);
|
||||
nsIDOMDocument_Release(nsdoc);
|
||||
|
||||
nsAString_Init(&nsstr, v);
|
||||
nsres = nsIDOMHTMLDocument_SetTitle(nshtmldoc, &nsstr);
|
||||
nsIDOMHTMLDocument_Release(nshtmldoc);
|
||||
nsAString_Finish(&nsstr);
|
||||
if(NS_FAILED(nsres))
|
||||
ERR("SetTitle failed: %08x\n", nsres);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLDocument_get_title(IHTMLDocument2 *iface, BSTR *p)
|
||||
{
|
||||
HTMLDocument *This = HTMLDOC_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
nsIDOMHTMLDocument *nshtmldoc;
|
||||
nsIDOMDocument *nsdoc;
|
||||
const PRUnichar *ret;
|
||||
nsAString nsstr;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
if(!This->nscontainer)
|
||||
return E_FAIL;
|
||||
|
||||
nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc);
|
||||
if(NS_FAILED(nsres) || !nsdoc) {
|
||||
ERR("GetDocument failed: %08x\n", nsres);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
nsIDOMDocument_QueryInterface(nsdoc, &IID_nsIDOMHTMLDocument, (void**)&nshtmldoc);
|
||||
nsIDOMDocument_Release(nsdoc);
|
||||
|
||||
nsAString_Init(&nsstr, NULL);
|
||||
|
||||
nsres = nsIDOMHTMLDocument_GetTitle(nshtmldoc, &nsstr);
|
||||
nsIDOMHTMLDocument_Release(nshtmldoc);
|
||||
if (NS_FAILED(nsres))
|
||||
ERR("GetTitle failed: %08x\n", nsres);
|
||||
|
||||
nsAString_GetData(&nsstr, &ret);
|
||||
*p = SysAllocString(ret);
|
||||
nsAString_Finish(&nsstr);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLDocument_get_scripts(IHTMLDocument2 *iface, IHTMLElementCollection **p)
|
||||
|
|
|
@ -103,16 +103,14 @@ static ULONG WINAPI HTMLElement_Release(IHTMLElement *iface)
|
|||
static HRESULT WINAPI HTMLElement_GetTypeInfoCount(IHTMLElement *iface, UINT *pctinfo)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, pctinfo);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->node.dispex), pctinfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement_GetTypeInfo(IHTMLElement *iface, UINT iTInfo,
|
||||
LCID lcid, ITypeInfo **ppTInfo)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM_THIS(iface);
|
||||
FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->node.dispex), iTInfo, lcid, ppTInfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement_GetIDsOfNames(IHTMLElement *iface, REFIID riid,
|
||||
|
@ -120,9 +118,7 @@ static HRESULT WINAPI HTMLElement_GetIDsOfNames(IHTMLElement *iface, REFIID riid
|
|||
LCID lcid, DISPID *rgDispId)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM_THIS(iface);
|
||||
FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
|
||||
lcid, rgDispId);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->node.dispex), riid, rgszNames, cNames, lcid, rgDispId);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement_Invoke(IHTMLElement *iface, DISPID dispIdMember,
|
||||
|
@ -130,9 +126,8 @@ static HRESULT WINAPI HTMLElement_Invoke(IHTMLElement *iface, DISPID dispIdMembe
|
|||
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM_THIS(iface);
|
||||
FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
|
||||
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_Invoke(DISPATCHEX(&This->node.dispex), dispIdMember, riid, lcid,
|
||||
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement_setAttribute(IHTMLElement *iface, BSTR strAttributeName,
|
||||
|
@ -387,8 +382,21 @@ static HRESULT WINAPI HTMLElement_get_tagName(IHTMLElement *iface, BSTR *p)
|
|||
static HRESULT WINAPI HTMLElement_get_parentElement(IHTMLElement *iface, IHTMLElement **p)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
IHTMLDOMNode *node;
|
||||
HRESULT hres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
hres = IHTMLDOMNode_get_parentNode(HTMLDOMNODE(&This->node), &node);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
|
||||
hres = IHTMLDOMNode_QueryInterface(node, &IID_IHTMLElement, (void**)p);
|
||||
IHTMLDOMNode_Release(node);
|
||||
if(FAILED(hres))
|
||||
*p = NULL;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement_get_style(IHTMLElement *iface, IHTMLStyle **p)
|
||||
|
@ -745,8 +753,27 @@ static HRESULT WINAPI HTMLElement_get_offsetWidth(IHTMLElement *iface, long *p)
|
|||
static HRESULT WINAPI HTMLElement_get_offsetHeight(IHTMLElement *iface, long *p)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
PRInt32 offset = 0;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
if(NS_FAILED(nsres)) {
|
||||
ERR("Could not get nsIDOMNSHTMLElement: %08x\n", nsres);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
nsres = nsIDOMNSHTMLElement_GetOffsetHeight(nselem, &offset);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
if(NS_FAILED(nsres)) {
|
||||
ERR("GetOffsetHeight failed: %08x\n", nsres);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
*p = offset;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement_get_offsetParent(IHTMLElement *iface, IHTMLElement **p)
|
||||
|
@ -1896,6 +1923,31 @@ IHTMLElementCollection *create_all_collection(HTMLDOMNode *node)
|
|||
return HTMLElementCollection_Create((IUnknown*)HTMLDOMNODE(node), buf.buf, buf.len);
|
||||
}
|
||||
|
||||
IHTMLElementCollection *create_collection_from_nodelist(HTMLDocument *doc, IUnknown *unk, nsIDOMNodeList *nslist)
|
||||
{
|
||||
PRUint32 length = 0, i;
|
||||
elem_vector buf;
|
||||
|
||||
nsIDOMNodeList_GetLength(nslist, &length);
|
||||
|
||||
buf.len = buf.size = length;
|
||||
if(buf.len) {
|
||||
nsIDOMNode *nsnode;
|
||||
|
||||
buf.buf = heap_alloc(buf.size*sizeof(HTMLElement*));
|
||||
|
||||
for(i=0; i<length; i++) {
|
||||
nsIDOMNodeList_Item(nslist, i, &nsnode);
|
||||
buf.buf[i] = HTMLELEM_NODE_THIS(get_node(doc, nsnode, TRUE));
|
||||
nsIDOMNode_Release(nsnode);
|
||||
}
|
||||
}else {
|
||||
buf.buf = NULL;
|
||||
}
|
||||
|
||||
return HTMLElementCollection_Create(unk, buf.buf, buf.len);
|
||||
}
|
||||
|
||||
static IHTMLElementCollection *HTMLElementCollection_Create(IUnknown *ref_unk,
|
||||
HTMLElement **elems, DWORD len)
|
||||
{
|
||||
|
|
|
@ -56,16 +56,14 @@ static ULONG WINAPI HTMLElement2_Release(IHTMLElement2 *iface)
|
|||
static HRESULT WINAPI HTMLElement2_GetTypeInfoCount(IHTMLElement2 *iface, UINT *pctinfo)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, pctinfo);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->node.dispex), pctinfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement2_GetTypeInfo(IHTMLElement2 *iface, UINT iTInfo,
|
||||
LCID lcid, ITypeInfo **ppTInfo)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->node.dispex), iTInfo, lcid, ppTInfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement2_GetIDsOfNames(IHTMLElement2 *iface, REFIID riid,
|
||||
|
@ -73,9 +71,7 @@ static HRESULT WINAPI HTMLElement2_GetIDsOfNames(IHTMLElement2 *iface, REFIID ri
|
|||
LCID lcid, DISPID *rgDispId)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
|
||||
lcid, rgDispId);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->node.dispex), riid, rgszNames, cNames, lcid, rgDispId);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement2_Invoke(IHTMLElement2 *iface, DISPID dispIdMember,
|
||||
|
@ -83,9 +79,8 @@ static HRESULT WINAPI HTMLElement2_Invoke(IHTMLElement2 *iface, DISPID dispIdMem
|
|||
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
|
||||
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_Invoke(DISPATCHEX(&This->node.dispex), dispIdMember, riid, lcid,
|
||||
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement2_get_scopeName(IHTMLElement2 *iface, BSTR *p)
|
||||
|
@ -713,15 +708,51 @@ static HRESULT WINAPI HTMLElement2_createControlRange(IHTMLElement2 *iface, IDis
|
|||
static HRESULT WINAPI HTMLElement2_get_scrollHeight(IHTMLElement2 *iface, long *p)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
PRInt32 height = 0;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
nsres = nsIDOMNSHTMLElement_GetScrollHeight(nselem, &height);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
if(NS_FAILED(nsres))
|
||||
ERR("GetScrollHeight failed: %08x\n", nsres);
|
||||
}else {
|
||||
ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres);
|
||||
}
|
||||
|
||||
*p = height;
|
||||
TRACE("*p = %ld\n", *p);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement2_get_scrollWidth(IHTMLElement2 *iface, long *p)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
PRInt32 width = 0;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
nsres = nsIDOMNSHTMLElement_GetScrollWidth(nselem, &width);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
if(NS_FAILED(nsres))
|
||||
ERR("GetScrollWidth failed: %08x\n", nsres);
|
||||
}else {
|
||||
ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres);
|
||||
}
|
||||
|
||||
*p = width;
|
||||
TRACE("*p = %ld\n", *p);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement2_put_scrollTop(IHTMLElement2 *iface, long v)
|
||||
|
@ -751,8 +782,26 @@ static HRESULT WINAPI HTMLElement2_put_scrollTop(IHTMLElement2 *iface, long v)
|
|||
static HRESULT WINAPI HTMLElement2_get_scrollTop(IHTMLElement2 *iface, long *p)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
PRInt32 top = 0;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
nsres = nsIDOMNSHTMLElement_GetScrollTop(nselem, &top);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
if(NS_FAILED(nsres))
|
||||
ERR("GetScrollTop failed: %08x\n", nsres);
|
||||
}else {
|
||||
ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres);
|
||||
}
|
||||
|
||||
*p = top;
|
||||
TRACE("*p = %ld\n", *p);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement2_put_scrollLeft(IHTMLElement2 *iface, long v)
|
||||
|
@ -917,12 +966,27 @@ static HRESULT WINAPI HTMLElement2_get_readyStateValue(IHTMLElement2 *iface, lon
|
|||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement2_getElementByTagName(IHTMLElement2 *iface, BSTR v,
|
||||
static HRESULT WINAPI HTMLElement2_getElementsByTagName(IHTMLElement2 *iface, BSTR v,
|
||||
IHTMLElementCollection **pelColl)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
FIXME("(%p)->(%s %p)\n", This, debugstr_w(v), pelColl);
|
||||
return E_NOTIMPL;
|
||||
nsIDOMNodeList *nslist;
|
||||
nsAString tag_str;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%s %p)\n", This, debugstr_w(v), pelColl);
|
||||
|
||||
nsAString_Init(&tag_str, v);
|
||||
nsres = nsIDOMHTMLElement_GetElementsByTagName(This->nselem, &tag_str, &nslist);
|
||||
nsAString_Finish(&tag_str);
|
||||
if(NS_FAILED(nsres)) {
|
||||
ERR("GetElementByTagName failed: %08x\n", nsres);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
*pelColl = create_collection_from_nodelist(This->node.doc, (IUnknown*)HTMLELEM(This), nslist);
|
||||
nsIDOMNodeList_Release(nslist);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
#undef HTMLELEM2_THIS
|
||||
|
@ -1032,7 +1096,7 @@ static const IHTMLElement2Vtbl HTMLElement2Vtbl = {
|
|||
HTMLElement2_put_onbeforeeditfocus,
|
||||
HTMLElement2_get_onbeforeeditfocus,
|
||||
HTMLElement2_get_readyStateValue,
|
||||
HTMLElement2_getElementByTagName,
|
||||
HTMLElement2_getElementsByTagName,
|
||||
};
|
||||
|
||||
void HTMLElement2_Init(HTMLElement *This)
|
||||
|
|
|
@ -279,16 +279,14 @@ static ULONG WINAPI HTMLStyle_Release(IHTMLStyle *iface)
|
|||
static HRESULT WINAPI HTMLStyle_GetTypeInfoCount(IHTMLStyle *iface, UINT *pctinfo)
|
||||
{
|
||||
HTMLStyle *This = HTMLSTYLE_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, pctinfo);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->dispex), pctinfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLStyle_GetTypeInfo(IHTMLStyle *iface, UINT iTInfo,
|
||||
LCID lcid, ITypeInfo **ppTInfo)
|
||||
{
|
||||
HTMLStyle *This = HTMLSTYLE_THIS(iface);
|
||||
FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->dispex), iTInfo, lcid, ppTInfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLStyle_GetIDsOfNames(IHTMLStyle *iface, REFIID riid,
|
||||
|
@ -296,9 +294,7 @@ static HRESULT WINAPI HTMLStyle_GetIDsOfNames(IHTMLStyle *iface, REFIID riid,
|
|||
LCID lcid, DISPID *rgDispId)
|
||||
{
|
||||
HTMLStyle *This = HTMLSTYLE_THIS(iface);
|
||||
FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
|
||||
lcid, rgDispId);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->dispex), riid, rgszNames, cNames, lcid, rgDispId);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLStyle_Invoke(IHTMLStyle *iface, DISPID dispIdMember,
|
||||
|
@ -306,9 +302,8 @@ static HRESULT WINAPI HTMLStyle_Invoke(IHTMLStyle *iface, DISPID dispIdMember,
|
|||
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
|
||||
{
|
||||
HTMLStyle *This = HTMLSTYLE_THIS(iface);
|
||||
FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
|
||||
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
return E_NOTIMPL;
|
||||
return IDispatchEx_Invoke(DISPATCHEX(&This->dispex), dispIdMember, riid, lcid,
|
||||
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLStyle_put_fontFamily(IHTMLStyle *iface, BSTR v)
|
||||
|
@ -455,8 +450,10 @@ static HRESULT WINAPI HTMLStyle_put_background(IHTMLStyle *iface, BSTR v)
|
|||
static HRESULT WINAPI HTMLStyle_get_background(IHTMLStyle *iface, BSTR *p)
|
||||
{
|
||||
HTMLStyle *This = HTMLSTYLE_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
return get_style_attr(This, attrBackground, p);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLStyle_put_backgroundColor(IHTMLStyle *iface, VARIANT v)
|
||||
|
|
|
@ -101,47 +101,19 @@ static HRESULT WINAPI HTMLTextContainer_createControlRange(IHTMLTextContainer *i
|
|||
static HRESULT WINAPI HTMLTextContainer_get_scrollHeight(IHTMLTextContainer *iface, long *p)
|
||||
{
|
||||
HTMLTextContainer *This = HTMLTEXTCONT_THIS(iface);
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
PRInt32 height = 0;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
nsres = nsIDOMElement_QueryInterface(This->element.nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
nsIDOMNSHTMLElement_GetScrollHeight(nselem, &height);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
}else {
|
||||
ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres);
|
||||
}
|
||||
|
||||
*p = height;
|
||||
TRACE("*p = %ld\n", *p);
|
||||
|
||||
return S_OK;
|
||||
return IHTMLElement2_get_scrollHeight(HTMLELEM2(&This->element), p);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLTextContainer_get_scrollWidth(IHTMLTextContainer *iface, long *p)
|
||||
{
|
||||
HTMLTextContainer *This = HTMLTEXTCONT_THIS(iface);
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
PRInt32 width = 0;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
nsres = nsIDOMElement_QueryInterface(This->element.nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
nsIDOMNSHTMLElement_GetScrollWidth(nselem, &width);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
}else {
|
||||
ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres);
|
||||
}
|
||||
|
||||
*p = width;
|
||||
TRACE("*p = %ld\n", *p);
|
||||
|
||||
return S_OK;
|
||||
return IHTMLElement2_get_scrollWidth(HTMLELEM2(&This->element), p);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLTextContainer_put_scrollTop(IHTMLTextContainer *iface, long v)
|
||||
|
@ -156,8 +128,10 @@ static HRESULT WINAPI HTMLTextContainer_put_scrollTop(IHTMLTextContainer *iface,
|
|||
static HRESULT WINAPI HTMLTextContainer_get_scrollTop(IHTMLTextContainer *iface, long *p)
|
||||
{
|
||||
HTMLTextContainer *This = HTMLTEXTCONT_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
return IHTMLElement2_get_scrollTop(HTMLELEM2(&This->element), p);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLTextContainer_put_scrollLeft(IHTMLTextContainer *iface, long v)
|
||||
|
|
|
@ -1281,7 +1281,7 @@ void setup_nswindow(HTMLWindow *This)
|
|||
|
||||
HTMLWindow *HTMLWindow_Create(HTMLDocument *doc)
|
||||
{
|
||||
HTMLWindow *ret = heap_alloc(sizeof(HTMLWindow));
|
||||
HTMLWindow *ret = heap_alloc_zero(sizeof(HTMLWindow));
|
||||
|
||||
ret->lpHTMLWindow2Vtbl = &HTMLWindow2Vtbl;
|
||||
ret->lpHTMLWindow3Vtbl = &HTMLWindow3Vtbl;
|
||||
|
|
|
@ -62,6 +62,7 @@ typedef struct event_target_t event_target_t;
|
|||
typedef enum {
|
||||
NULL_tid,
|
||||
DispDOMChildrenCollection_tid,
|
||||
DispHTMLBody_tid,
|
||||
DispHTMLCommentElement_tid,
|
||||
DispHTMLDocument_tid,
|
||||
DispHTMLDOMTextNode_tid,
|
||||
|
@ -74,7 +75,10 @@ typedef enum {
|
|||
DispHTMLStyle_tid,
|
||||
DispHTMLUnknownElement_tid,
|
||||
DispHTMLWindow2_tid,
|
||||
IHTMLBodyElement_tid,
|
||||
IHTMLBodyElement2_tid,
|
||||
IHTMLCommentElement_tid,
|
||||
IHTMLControlElement_tid,
|
||||
IHTMLDocument2_tid,
|
||||
IHTMLDocument3_tid,
|
||||
IHTMLDocument4_tid,
|
||||
|
@ -85,6 +89,8 @@ typedef enum {
|
|||
IHTMLDOMTextNode_tid,
|
||||
IHTMLElement_tid,
|
||||
IHTMLElement2_tid,
|
||||
IHTMLElement3_tid,
|
||||
IHTMLElement4_tid,
|
||||
IHTMLElementCollection_tid,
|
||||
IHTMLGenericElement_tid,
|
||||
IHTMLImgElement_tid,
|
||||
|
@ -92,6 +98,8 @@ typedef enum {
|
|||
IHTMLOptionElement_tid,
|
||||
IHTMLSelectElement_tid,
|
||||
IHTMLStyle_tid,
|
||||
IHTMLTextContainer_tid,
|
||||
IHTMLUniqueName_tid,
|
||||
IHTMLWindow2_tid,
|
||||
IHTMLWindow3_tid,
|
||||
IOmNavigator_tid,
|
||||
|
@ -482,7 +490,7 @@ void hlink_frame_navigate(HTMLDocument*,IHlinkFrame*,LPCWSTR,nsIInputStream*,DWO
|
|||
void call_property_onchanged(ConnectionPoint*,DISPID);
|
||||
HRESULT call_set_active_object(IOleInPlaceUIWindow*,IOleInPlaceActiveObject*);
|
||||
|
||||
void *nsalloc(size_t);
|
||||
void *nsalloc(size_t) __WINE_ALLOC_SIZE(1);
|
||||
void nsfree(void*);
|
||||
|
||||
void nsACString_Init(nsACString*,const char*);
|
||||
|
@ -566,6 +574,7 @@ void doc_insert_script(HTMLDocument*,nsIDOMHTMLScriptElement*);
|
|||
IDispatch *script_parse_event(HTMLDocument*,LPCWSTR);
|
||||
|
||||
IHTMLElementCollection *create_all_collection(HTMLDOMNode*);
|
||||
IHTMLElementCollection *create_collection_from_nodelist(HTMLDocument*,IUnknown*,nsIDOMNodeList*);
|
||||
|
||||
/* commands */
|
||||
typedef struct {
|
||||
|
@ -645,17 +654,17 @@ extern LONG module_ref;
|
|||
|
||||
/* memory allocation functions */
|
||||
|
||||
static inline void *heap_alloc(size_t len)
|
||||
static inline void __WINE_ALLOC_SIZE(1) *heap_alloc(size_t len)
|
||||
{
|
||||
return HeapAlloc(GetProcessHeap(), 0, len);
|
||||
}
|
||||
|
||||
static inline void *heap_alloc_zero(size_t len)
|
||||
static inline void __WINE_ALLOC_SIZE(1) *heap_alloc_zero(size_t len)
|
||||
{
|
||||
return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
|
||||
}
|
||||
|
||||
static inline void *heap_realloc(void *mem, size_t len)
|
||||
static inline void __WINE_ALLOC_SIZE(2) *heap_realloc(void *mem, size_t len)
|
||||
{
|
||||
return HeapReAlloc(GetProcessHeap(), 0, mem, len);
|
||||
}
|
||||
|
|
|
@ -127,8 +127,13 @@ static HRESULT WINAPI OmNavigator_Invoke(IOmNavigator *iface, DISPID dispIdMembe
|
|||
static HRESULT WINAPI OmNavigator_get_appCodeName(IOmNavigator *iface, BSTR *p)
|
||||
{
|
||||
OmNavigator *This = OMNAVIGATOR_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
|
||||
static const WCHAR mozillaW[] = {'M','o','z','i','l','l','a',0};
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
*p = SysAllocString(mozillaW);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI OmNavigator_get_appName(IOmNavigator *iface, BSTR *p)
|
||||
|
@ -232,8 +237,13 @@ static HRESULT WINAPI OmNavigator_get_userLanguage(IOmNavigator *iface, BSTR *p)
|
|||
static HRESULT WINAPI OmNavigator_get_platform(IOmNavigator *iface, BSTR *p)
|
||||
{
|
||||
OmNavigator *This = OMNAVIGATOR_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
|
||||
static const WCHAR win32W[] = {'W','i','n','3','2',0};
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
*p = SysAllocString(win32W);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI OmNavigator_get_appMinorVersion(IOmNavigator *iface, BSTR *p)
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
#include "Si.rc"
|
||||
#include "Sv.rc"
|
||||
#include "Tr.rc"
|
||||
#include "Zh.rc"
|
||||
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
|
||||
|
|
|
@ -128,6 +128,8 @@ static BOOL queue_timer(thread_data_t *thread_data, task_timer_t *timer)
|
|||
{
|
||||
task_timer_t *iter;
|
||||
|
||||
list_remove(&timer->entry);
|
||||
|
||||
if(list_empty(&thread_data->timer_list)
|
||||
|| LIST_ENTRY(list_head(&thread_data->timer_list), task_timer_t, entry)->time > timer->time) {
|
||||
|
||||
|
@ -159,6 +161,7 @@ DWORD set_task_timer(HTMLDocument *doc, DWORD msec, BOOL interval, IDispatch *di
|
|||
timer->doc = doc;
|
||||
timer->time = tc + msec;
|
||||
timer->interval = interval ? msec : 0;
|
||||
list_init(&timer->entry);
|
||||
|
||||
IDispatch_AddRef(disp);
|
||||
timer->disp = disp;
|
||||
|
@ -363,6 +366,8 @@ static void process_task(task_t *task)
|
|||
static LRESULT process_timer(void)
|
||||
{
|
||||
thread_data_t *thread_data = get_thread_data(TRUE);
|
||||
HTMLDocument *doc;
|
||||
IDispatch *disp;
|
||||
DWORD tc;
|
||||
task_timer_t *timer;
|
||||
|
||||
|
@ -377,10 +382,9 @@ static LRESULT process_timer(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
list_remove(&timer->entry);
|
||||
list_init(&timer->entry);
|
||||
|
||||
call_disp_func(timer->doc, timer->disp);
|
||||
doc = timer->doc;
|
||||
disp = timer->disp;
|
||||
IDispatch_AddRef(disp);
|
||||
|
||||
if(timer->interval) {
|
||||
timer->time += timer->interval;
|
||||
|
@ -388,6 +392,10 @@ static LRESULT process_timer(void)
|
|||
}else {
|
||||
release_task_timer(thread_data->thread_hwnd, timer);
|
||||
}
|
||||
|
||||
call_disp_func(doc, disp);
|
||||
|
||||
IDispatch_Release(disp);
|
||||
}
|
||||
|
||||
KillTimer(thread_data->thread_hwnd, TIMER_ID);
|
||||
|
|
|
@ -163,6 +163,9 @@
|
|||
<directory name="mshtml">
|
||||
<xi:include href="mshtml/mshtml.rbuild" />
|
||||
</directory>
|
||||
<directory name="mshtml.tlb">
|
||||
<xi:include href="mshtml.tlb/mshtml.tlb.rbuild" />
|
||||
</directory>
|
||||
<directory name="msi">
|
||||
<xi:include href="msi/msi.rbuild" />
|
||||
</directory>
|
||||
|
|
Loading…
Reference in a new issue