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
3ebdcb84
Commit
3ebdcb84
authored
Jan 03, 2008
by
Jacek Caban
Committed by
Alexandre Julliard
Jan 04, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
shdocvw: Store DocHost in BindStatusCallback.
parent
4a5339ae
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
20 additions
and
5 deletions
+20
-5
navigate.c
dlls/shdocvw/navigate.c
+20
-5
No files found.
dlls/shdocvw/navigate.c
View file @
3ebdcb84
...
...
@@ -36,6 +36,8 @@ typedef struct {
LONG
ref
;
DocHost
*
doc_host
;
HGLOBAL
post_data
;
LPWSTR
headers
;
ULONG
post_data_len
;
...
...
@@ -135,6 +137,8 @@ static ULONG WINAPI BindStatusCallback_Release(IBindStatusCallback *iface)
TRACE
(
"(%p) ref=%d
\n
"
,
This
,
ref
);
if
(
!
ref
)
{
if
(
This
->
doc_host
)
IOleClientSite_Release
(
CLIENTSITE
(
This
->
doc_host
));
if
(
This
->
post_data
)
GlobalFree
(
This
->
post_data
);
heap_free
(
This
->
headers
);
...
...
@@ -181,7 +185,14 @@ static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *ifac
HRESULT
hresult
,
LPCWSTR
szError
)
{
BindStatusCallback
*
This
=
BINDSC_THIS
(
iface
);
FIXME
(
"(%p)->(%08x %s)
\n
"
,
This
,
hresult
,
debugstr_w
(
szError
));
if
(
This
->
doc_host
)
{
IOleClientSite_Release
(
CLIENTSITE
(
This
->
doc_host
));
This
->
doc_host
=
NULL
;
}
return
E_NOTIMPL
;
}
...
...
@@ -299,8 +310,8 @@ static const IHttpNegotiateVtbl HttpNegotiateVtbl = {
HttpNegotiate_OnResponse
};
static
IBindStatusCallback
*
create_callback
(
DocHost
*
This
,
PBYTE
post_data
,
ULONG
post_data_len
,
LPWSTR
headers
,
VARIANT_BOOL
*
cancel
)
static
IBindStatusCallback
*
create_callback
(
DocHost
*
doc_host
,
PBYTE
post_data
,
ULONG
post_data_len
,
LPWSTR
headers
)
{
BindStatusCallback
*
ret
=
heap_alloc
(
sizeof
(
BindStatusCallback
));
...
...
@@ -312,6 +323,9 @@ static IBindStatusCallback *create_callback(DocHost *This, PBYTE post_data,
ret
->
post_data_len
=
post_data_len
;
ret
->
headers
=
NULL
;
ret
->
doc_host
=
doc_host
;
IOleClientSite_AddRef
(
CLIENTSITE
(
doc_host
));
if
(
post_data
)
{
ret
->
post_data
=
GlobalAlloc
(
0
,
post_data_len
);
memcpy
(
ret
->
post_data
,
post_data
,
post_data_len
);
...
...
@@ -496,7 +510,6 @@ static HRESULT bind_url_to_object(DocHost *This, LPCWSTR url, PBYTE post_data, U
IBindStatusCallback
*
callback
;
IMoniker
*
mon
;
IBindCtx
*
bindctx
;
VARIANT_BOOL
cancel
=
VARIANT_FALSE
;
HRESULT
hres
;
if
(
!
This
->
hwnd
)
...
...
@@ -511,12 +524,14 @@ static HRESULT bind_url_to_object(DocHost *This, LPCWSTR url, PBYTE post_data, U
IMoniker_GetDisplayName
(
mon
,
NULL
,
NULL
,
&
This
->
url
);
TRACE
(
"navigating to %s
\n
"
,
debugstr_w
(
This
->
url
));
callback
=
create_callback
(
This
,
post_data
,
post_data_len
,
(
LPWSTR
)
headers
,
&
cancel
);
callback
=
create_callback
(
This
,
post_data
,
post_data_len
,
(
LPWSTR
)
headers
);
CreateAsyncBindCtx
(
0
,
callback
,
0
,
&
bindctx
);
IBindStatusCallback_Release
(
callback
);
hres
=
navigate
(
This
,
mon
,
bindctx
);
IBindStatusCallback_OnStopBinding
(
callback
,
hres
,
NULL
);
IBindStatusCallback_Release
(
callback
);
IBindCtx_Release
(
bindctx
);
IMoniker_Release
(
mon
);
...
...
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