Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-fonts
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
Aleksandr Isakov
wine-fonts
Commits
91938977
Commit
91938977
authored
Dec 30, 2007
by
Jacek Caban
Committed by
Alexandre Julliard
Dec 31, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
urlmon: Better error handling.
parent
2f34d009
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
10 deletions
+24
-10
binding.c
dlls/urlmon/binding.c
+24
-10
No files found.
dlls/urlmon/binding.c
View file @
91938977
...
...
@@ -913,16 +913,23 @@ static HRESULT WINAPI InternetProtocolSink_ReportData(IInternetProtocolSink *ifa
return
S_OK
;
}
typedef
struct
{
task_header_t
header
;
HRESULT
hres
;
LPWSTR
str
;
}
report_result_task_t
;
static
void
report_result_proc
(
Binding
*
binding
,
task_header_t
*
t
)
{
report_result_task_t
*
task
=
(
report_result_task_t
*
)
t
;
IInternetProtocol_Terminate
(
binding
->
protocol
,
0
);
if
(
binding
->
state
&
BINDING_LOCKED
)
{
IInternetProtocol_UnlockRequest
(
binding
->
protocol
);
binding
->
state
&=
~
BINDING_LOCKED
;
}
stop_binding
(
binding
,
task
->
hres
,
task
->
str
);
heap_free
(
t
);
heap_free
(
task
->
str
);
heap_free
(
task
);
}
static
HRESULT
WINAPI
InternetProtocolSink_ReportResult
(
IInternetProtocolSink
*
iface
,
...
...
@@ -934,9 +941,14 @@ static HRESULT WINAPI InternetProtocolSink_ReportResult(IInternetProtocolSink *i
if
(
GetCurrentThreadId
()
==
This
->
apartment_thread
&&
!
This
->
continue_call
)
{
IInternetProtocol_Terminate
(
This
->
protocol
,
0
);
stop_binding
(
This
,
hrResult
,
szResult
);
}
else
{
task_header_t
*
task
=
heap_alloc
(
sizeof
(
task_header_t
));
push_task
(
This
,
task
,
report_result_proc
);
report_result_task_t
*
task
=
heap_alloc
(
sizeof
(
report_result_task_t
));
task
->
hres
=
hrResult
;
task
->
str
=
heap_strdupW
(
szResult
);
push_task
(
This
,
&
task
->
header
,
report_result_proc
);
}
return
S_OK
;
...
...
@@ -1269,7 +1281,7 @@ static HRESULT start_binding(LPCWSTR url, IBindCtx *pbc, REFIID riid, Binding **
}
while
(
!
(
binding
->
bindf
&
BINDF_ASYNCHRONOUS
)
&&
binding
->
download_state
!=
END_DOWNLOAD
)
{
!
(
binding
->
state
&
BINDING_STOPPED
)
)
{
MsgWaitForMultipleObjects
(
0
,
NULL
,
FALSE
,
5000
,
QS_POSTMESSAGE
);
while
(
PeekMessageW
(
&
msg
,
binding
->
notif_hwnd
,
WM_USER
,
WM_USER
+
117
,
PM_REMOVE
|
PM_NOYIELD
))
{
TranslateMessage
(
&
msg
);
...
...
@@ -1292,8 +1304,10 @@ HRESULT bind_to_storage(LPCWSTR url, IBindCtx *pbc, REFIID riid, void **ppv)
if
(
FAILED
(
hres
))
return
hres
;
if
(
binding
->
stream
->
init_buf
)
{
if
(
binding
->
state
&
BINDING_LOCKED
)
if
(
binding
->
hres
!=
S_OK
)
{
hres
=
SUCCEEDED
(
binding
->
hres
)
?
S_OK
:
binding
->
hres
;
}
else
if
(
binding
->
stream
->
init_buf
)
{
if
((
binding
->
state
&
BINDING_STOPPED
)
&&
(
binding
->
state
&
BINDING_LOCKED
))
IInternetProtocol_UnlockRequest
(
binding
->
protocol
);
IStream_AddRef
(
STREAM
(
binding
->
stream
));
...
...
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