Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
50393191
Commit
50393191
authored
Oct 10, 2008
by
Jacek Caban
Committed by
Alexandre Julliard
Oct 13, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mshtml: Added open and close implementation.
parent
f27386fb
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
111 additions
and
4 deletions
+111
-4
htmldoc.c
dlls/mshtml/htmldoc.c
+41
-4
dom.c
dlls/mshtml/tests/dom.c
+70
-0
No files found.
dlls/mshtml/htmldoc.c
View file @
50393191
...
...
@@ -815,15 +815,52 @@ static HRESULT WINAPI HTMLDocument_open(IHTMLDocument2 *iface, BSTR url, VARIANT
VARIANT
features
,
VARIANT
replace
,
IDispatch
**
pomWindowResult
)
{
HTMLDocument
*
This
=
HTMLDOC_THIS
(
iface
);
FIXME
(
"(%p)->(%s %p)
\n
"
,
This
,
debugstr_w
(
url
),
pomWindowResult
);
return
E_NOTIMPL
;
nsresult
nsres
;
static
const
WCHAR
text_htmlW
[]
=
{
't'
,
'e'
,
'x'
,
't'
,
'/'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
TRACE
(
"(%p)->(%s %s %s %s %p)
\n
"
,
This
,
debugstr_w
(
url
),
debugstr_variant
(
&
name
),
debugstr_variant
(
&
features
),
debugstr_variant
(
&
replace
),
pomWindowResult
);
if
(
!
This
->
nsdoc
)
{
ERR
(
"!nsdoc
\n
"
);
return
E_NOTIMPL
;
}
if
(
!
url
||
strcmpW
(
url
,
text_htmlW
)
||
V_VT
(
&
name
)
!=
VT_ERROR
||
V_VT
(
&
features
)
!=
VT_ERROR
||
V_VT
(
&
replace
)
!=
VT_ERROR
)
FIXME
(
"unsupported args
\n
"
);
nsres
=
nsIDOMHTMLDocument_Open
(
This
->
nsdoc
);
if
(
NS_FAILED
(
nsres
))
{
ERR
(
"Open failed: %08x
\n
"
,
nsres
);
return
E_FAIL
;
}
*
pomWindowResult
=
(
IDispatch
*
)
HTMLWINDOW2
(
This
->
window
);
IHTMLWindow2_AddRef
(
HTMLWINDOW2
(
This
->
window
));
return
S_OK
;
}
static
HRESULT
WINAPI
HTMLDocument_close
(
IHTMLDocument2
*
iface
)
{
HTMLDocument
*
This
=
HTMLDOC_THIS
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
return
E_NOTIMPL
;
nsresult
nsres
;
TRACE
(
"(%p)
\n
"
,
This
);
if
(
!
This
->
nsdoc
)
{
ERR
(
"!nsdoc
\n
"
);
return
E_NOTIMPL
;
}
nsres
=
nsIDOMHTMLDocument_Close
(
This
->
nsdoc
);
if
(
NS_FAILED
(
nsres
))
{
ERR
(
"Close failed: %08x
\n
"
,
nsres
);
return
E_FAIL
;
}
return
S_OK
;
}
static
HRESULT
WINAPI
HTMLDocument_clear
(
IHTMLDocument2
*
iface
)
...
...
dlls/mshtml/tests/dom.c
View file @
50393191
...
...
@@ -387,6 +387,21 @@ static BSTR a2bstr(const char *str)
return
ret
;
}
static
BOOL
iface_cmp
(
IUnknown
*
iface1
,
IUnknown
*
iface2
)
{
IUnknown
*
unk1
,
*
unk2
;
if
(
iface1
==
iface2
)
return
TRUE
;
IUnknown_QueryInterface
(
iface1
,
&
IID_IUnknown
,
(
void
**
)
&
unk1
);
IUnknown_Release
(
unk1
);
IUnknown_QueryInterface
(
iface1
,
&
IID_IUnknown
,
(
void
**
)
&
unk2
);
IUnknown_Release
(
unk2
);
return
unk1
==
unk2
;
}
static
IHTMLDocument2
*
create_document
(
void
)
{
IHTMLDocument2
*
doc
;
...
...
@@ -2630,13 +2645,48 @@ static void test_table_elem(IHTMLElement *elem)
IHTMLTable_Release
(
table
);
}
static
void
doc_write
(
IHTMLDocument2
*
doc
,
const
char
*
text
)
{
SAFEARRAYBOUND
dim
;
SAFEARRAY
*
sa
;
VARIANT
*
var
;
BSTR
str
;
HRESULT
hres
;
dim
.
lLbound
=
0
;
dim
.
cElements
=
1
;
sa
=
SafeArrayCreate
(
VT_VARIANT
,
1
,
&
dim
);
SafeArrayAccessData
(
sa
,
(
void
**
)
&
var
);
V_VT
(
var
)
=
VT_BSTR
;
V_BSTR
(
var
)
=
str
=
a2bstr
(
text
);
SafeArrayUnaccessData
(
sa
);
hres
=
IHTMLDocument2_write
(
doc
,
sa
);
ok
(
hres
==
S_OK
,
"write failed: %08x
\n
"
,
hres
);
SysFreeString
(
str
);
SafeArrayDestroy
(
sa
);
}
static
void
test_iframe_elem
(
IHTMLElement
*
elem
)
{
IHTMLElementCollection
*
col
;
IHTMLDocument2
*
content_doc
;
IHTMLWindow2
*
content_window
;
IHTMLFrameBase2
*
base2
;
IDispatch
*
disp
;
VARIANT
errv
;
BSTR
str
;
HRESULT
hres
;
static
const
elem_type_t
all_types
[]
=
{
ET_HTML
,
ET_HEAD
,
ET_TITLE
,
ET_BODY
,
ET_BR
};
hres
=
IHTMLElement_QueryInterface
(
elem
,
&
IID_IHTMLFrameBase2
,
(
void
**
)
&
base2
);
ok
(
hres
==
S_OK
,
"Could not get IHTMFrameBase2 iface: %08x
\n
"
,
hres
);
...
...
@@ -2652,6 +2702,26 @@ static void test_iframe_elem(IHTMLElement *elem)
ok
(
hres
==
S_OK
,
"get_document failed: %08x
\n
"
,
hres
);
ok
(
content_doc
!=
NULL
,
"content_doc = NULL
\n
"
);
str
=
a2bstr
(
"text/html"
);
V_VT
(
&
errv
)
=
VT_ERROR
;
disp
=
NULL
;
hres
=
IHTMLDocument2_open
(
content_doc
,
str
,
errv
,
errv
,
errv
,
&
disp
);
SysFreeString
(
str
);
ok
(
hres
==
S_OK
,
"open failed: %08x
\n
"
,
hres
);
ok
(
disp
!=
NULL
,
"disp == NULL
\n
"
);
ok
(
iface_cmp
((
IUnknown
*
)
disp
,
(
IUnknown
*
)
content_window
),
"disp != content_window
\n
"
);
IDispatch_Release
(
disp
);
doc_write
(
content_doc
,
"<html><head><title>test</title></head><body><br /></body></html>"
);
hres
=
IHTMLDocument2_get_all
(
content_doc
,
&
col
);
ok
(
hres
==
S_OK
,
"get_all failed: %08x
\n
"
,
hres
);
test_elem_collection
((
IUnknown
*
)
col
,
all_types
,
sizeof
(
all_types
)
/
sizeof
(
all_types
[
0
]));
IHTMLElementCollection_Release
(
col
);
hres
=
IHTMLDocument2_close
(
content_doc
);
ok
(
hres
==
S_OK
,
"close failed: %08x
\n
"
,
hres
);
IHTMLDocument2_Release
(
content_doc
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment