urlmon: Added Switch implementation.
This commit is contained in:
parent
675fd219ad
commit
8b69bf72da
|
@ -78,6 +78,7 @@ struct ProtocolStream {
|
||||||
#define STREAM(x) ((IStream*) &(x)->lpStreamVtbl)
|
#define STREAM(x) ((IStream*) &(x)->lpStreamVtbl)
|
||||||
|
|
||||||
#define WM_MK_ONPROGRESS (WM_USER+100)
|
#define WM_MK_ONPROGRESS (WM_USER+100)
|
||||||
|
#define WM_MK_CONTINUE (WM_USER+101)
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
Binding *binding;
|
Binding *binding;
|
||||||
|
@ -87,6 +88,11 @@ typedef struct {
|
||||||
LPWSTR status_text;
|
LPWSTR status_text;
|
||||||
} on_progress_data;
|
} on_progress_data;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
Binding *binding;
|
||||||
|
PROTOCOLDATA *data;
|
||||||
|
} switch_data;
|
||||||
|
|
||||||
static LRESULT WINAPI notif_wnd_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
static LRESULT WINAPI notif_wnd_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
switch(msg) {
|
switch(msg) {
|
||||||
|
@ -104,6 +110,15 @@ static LRESULT WINAPI notif_wnd_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
case WM_MK_CONTINUE: {
|
||||||
|
switch_data *data = (switch_data*)lParam;
|
||||||
|
|
||||||
|
IInternetProtocol_Continue(data->binding->protocol, data->data);
|
||||||
|
|
||||||
|
IBinding_Release(BINDING(data->binding));
|
||||||
|
HeapFree(GetProcessHeap(), 0, data);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return DefWindowProcW(hwnd, msg, wParam, lParam);
|
return DefWindowProcW(hwnd, msg, wParam, lParam);
|
||||||
|
@ -631,8 +646,19 @@ static HRESULT WINAPI InternetProtocolSink_Switch(IInternetProtocolSink *iface,
|
||||||
PROTOCOLDATA *pProtocolData)
|
PROTOCOLDATA *pProtocolData)
|
||||||
{
|
{
|
||||||
Binding *This = PROTSINK_THIS(iface);
|
Binding *This = PROTSINK_THIS(iface);
|
||||||
FIXME("(%p)->(%p)\n", This, pProtocolData);
|
switch_data *data;
|
||||||
return E_NOTIMPL;
|
|
||||||
|
TRACE("(%p)->(%p)\n", This, pProtocolData);
|
||||||
|
|
||||||
|
data = HeapAlloc(GetProcessHeap(), 0, sizeof(switch_data));
|
||||||
|
|
||||||
|
IBinding_AddRef(BINDING(This));
|
||||||
|
data->binding = This;
|
||||||
|
data->data = pProtocolData;
|
||||||
|
|
||||||
|
PostMessageW(This->notif_hwnd, WM_MK_CONTINUE, 0, (LPARAM)data);
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI InternetProtocolSink_ReportProgress(IInternetProtocolSink *iface,
|
static HRESULT WINAPI InternetProtocolSink_ReportProgress(IInternetProtocolSink *iface,
|
||||||
|
|
Loading…
Reference in New Issue