diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c index f1731fb112b..e5493e52ab9 100644 --- a/dlls/mshtml/navigate.c +++ b/dlls/mshtml/navigate.c @@ -761,11 +761,14 @@ typedef struct { HRESULT hres; } BufferBSC; -#define BUFFERBSC_THIS(bsc) ((BufferBSC*) bsc) +static inline BufferBSC *BufferBSC_from_BSCallback(BSCallback *iface) +{ + return CONTAINING_RECORD(iface, BufferBSC, bsc); +} static void BufferBSC_destroy(BSCallback *bsc) { - BufferBSC *This = BUFFERBSC_THIS(bsc); + BufferBSC *This = BufferBSC_from_BSCallback(bsc); heap_free(This->buf); heap_free(This); @@ -783,7 +786,7 @@ static HRESULT BufferBSC_start_binding(BSCallback *bsc) static HRESULT BufferBSC_stop_binding(BSCallback *bsc, HRESULT result) { - BufferBSC *This = BUFFERBSC_THIS(bsc); + BufferBSC *This = BufferBSC_from_BSCallback(bsc); This->hres = result; @@ -798,7 +801,7 @@ static HRESULT BufferBSC_stop_binding(BSCallback *bsc, HRESULT result) static HRESULT BufferBSC_read_data(BSCallback *bsc, IStream *stream) { - BufferBSC *This = BUFFERBSC_THIS(bsc); + BufferBSC *This = BufferBSC_from_BSCallback(bsc); DWORD readed; HRESULT hres; @@ -837,8 +840,6 @@ static HRESULT BufferBSC_beginning_transaction(BSCallback *bsc, WCHAR **addition return S_FALSE; } -#undef BUFFERBSC_THIS - static const BSCallbackVtbl BufferBSCVtbl = { BufferBSC_destroy, BufferBSC_init_bindinfo, @@ -1029,11 +1030,14 @@ static HRESULT read_stream_data(nsChannelBSC *This, IStream *stream) return S_OK; } -#define NSCHANNELBSC_THIS(bsc) ((nsChannelBSC*) bsc) +static inline nsChannelBSC *nsChannelBSC_from_BSCallback(BSCallback *iface) +{ + return CONTAINING_RECORD(iface, nsChannelBSC, bsc); +} static void nsChannelBSC_destroy(BSCallback *bsc) { - nsChannelBSC *This = NSCHANNELBSC_THIS(bsc); + nsChannelBSC *This = nsChannelBSC_from_BSCallback(bsc); if(This->nschannel) nsIChannel_Release(&This->nschannel->nsIHttpChannel_iface); @@ -1048,7 +1052,7 @@ static void nsChannelBSC_destroy(BSCallback *bsc) static HRESULT nsChannelBSC_start_binding(BSCallback *bsc) { - nsChannelBSC *This = NSCHANNELBSC_THIS(bsc); + nsChannelBSC *This = nsChannelBSC_from_BSCallback(bsc); if(This->window) This->window->doc->skip_mutation_notif = FALSE; @@ -1058,7 +1062,7 @@ static HRESULT nsChannelBSC_start_binding(BSCallback *bsc) static HRESULT nsChannelBSC_init_bindinfo(BSCallback *bsc) { - nsChannelBSC *This = NSCHANNELBSC_THIS(bsc); + nsChannelBSC *This = nsChannelBSC_from_BSCallback(bsc); HRESULT hres; if(This->nschannel && This->nschannel->post_data_stream) { @@ -1104,7 +1108,7 @@ static HRESULT async_stop_request(nsChannelBSC *This) static HRESULT nsChannelBSC_stop_binding(BSCallback *bsc, HRESULT result) { - nsChannelBSC *This = NSCHANNELBSC_THIS(bsc); + nsChannelBSC *This = nsChannelBSC_from_BSCallback(bsc); if(This->window && SUCCEEDED(result)) { result = async_stop_request(This); @@ -1118,14 +1122,14 @@ static HRESULT nsChannelBSC_stop_binding(BSCallback *bsc, HRESULT result) static HRESULT nsChannelBSC_read_data(BSCallback *bsc, IStream *stream) { - nsChannelBSC *This = NSCHANNELBSC_THIS(bsc); + nsChannelBSC *This = nsChannelBSC_from_BSCallback(bsc); return read_stream_data(This, stream); } static HRESULT nsChannelBSC_on_progress(BSCallback *bsc, ULONG status_code, LPCWSTR status_text) { - nsChannelBSC *This = NSCHANNELBSC_THIS(bsc); + nsChannelBSC *This = nsChannelBSC_from_BSCallback(bsc); switch(status_code) { case BINDSTATUS_MIMETYPEAVAILABLE: @@ -1148,7 +1152,7 @@ static HRESULT nsChannelBSC_on_progress(BSCallback *bsc, ULONG status_code, LPCW static HRESULT nsChannelBSC_on_response(BSCallback *bsc, DWORD response_code, LPCWSTR response_headers) { - nsChannelBSC *This = NSCHANNELBSC_THIS(bsc); + nsChannelBSC *This = nsChannelBSC_from_BSCallback(bsc); HRESULT hres; This->nschannel->response_status = response_code; @@ -1172,7 +1176,7 @@ static HRESULT nsChannelBSC_on_response(BSCallback *bsc, DWORD response_code, static HRESULT nsChannelBSC_beginning_transaction(BSCallback *bsc, WCHAR **additional_headers) { - nsChannelBSC *This = NSCHANNELBSC_THIS(bsc); + nsChannelBSC *This = nsChannelBSC_from_BSCallback(bsc); http_header_t *iter; DWORD len = 0; WCHAR *ptr; @@ -1219,8 +1223,6 @@ static HRESULT nsChannelBSC_beginning_transaction(BSCallback *bsc, WCHAR **addit return S_OK; } -#undef NSCHANNELBSC_THIS - static const BSCallbackVtbl nsChannelBSCVtbl = { nsChannelBSC_destroy, nsChannelBSC_init_bindinfo,