ReactOS 0.4.15-dev-7928-g68a8619
bindctx.c File Reference
#include <stdio.h>
#include "urlmon_main.h"
#include "wine/debug.h"
Include dependency graph for bindctx.c:

Go to the source code of this file.

Classes

struct  BindStatusCallback
 
struct  AsyncBindCtx
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (urlmon)
 
static voidget_callback_iface (BindStatusCallback *This, REFIID riid)
 
static IBindStatusCallbackbsch_from_bctx (IBindCtx *bctx)
 
IBindStatusCallbackbsc_from_bctx (IBindCtx *bctx)
 
static BindStatusCallbackimpl_from_IBindStatusCallbackEx (IBindStatusCallbackEx *iface)
 
static HRESULT WINAPI BindStatusCallback_QueryInterface (IBindStatusCallbackEx *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI BindStatusCallback_AddRef (IBindStatusCallbackEx *iface)
 
static ULONG WINAPI BindStatusCallback_Release (IBindStatusCallbackEx *iface)
 
static HRESULT WINAPI BindStatusCallback_OnStartBinding (IBindStatusCallbackEx *iface, DWORD dwReserved, IBinding *pbind)
 
static HRESULT WINAPI BindStatusCallback_GetPriority (IBindStatusCallbackEx *iface, LONG *pnPriority)
 
static HRESULT WINAPI BindStatusCallback_OnLowResource (IBindStatusCallbackEx *iface, DWORD reserved)
 
static HRESULT WINAPI BindStatusCallback_OnProgress (IBindStatusCallbackEx *iface, ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
 
static HRESULT WINAPI BindStatusCallback_OnStopBinding (IBindStatusCallbackEx *iface, HRESULT hresult, LPCWSTR szError)
 
static HRESULT WINAPI BindStatusCallback_GetBindInfo (IBindStatusCallbackEx *iface, DWORD *grfBINDF, BINDINFO *pbindinfo)
 
static HRESULT WINAPI BindStatusCallback_OnDataAvailable (IBindStatusCallbackEx *iface, DWORD grfBSCF, DWORD dwSize, FORMATETC *pformatetc, STGMEDIUM *pstgmed)
 
static HRESULT WINAPI BindStatusCallback_OnObjectAvailable (IBindStatusCallbackEx *iface, REFIID riid, IUnknown *punk)
 
static HRESULT WINAPI BindStatusCallback_GetBindInfoEx (IBindStatusCallbackEx *iface, DWORD *grfBINDF, BINDINFO *pbindinfo, DWORD *grfBINDF2, DWORD *pdwReserved)
 
static BindStatusCallbackimpl_from_IServiceProvider (IServiceProvider *iface)
 
static HRESULT WINAPI BSCServiceProvider_QueryInterface (IServiceProvider *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI BSCServiceProvider_AddRef (IServiceProvider *iface)
 
static ULONG WINAPI BSCServiceProvider_Release (IServiceProvider *iface)
 
static HRESULT WINAPI BSCServiceProvider_QueryService (IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
 
static BindStatusCallbackimpl_from_IHttpNegotiate2 (IHttpNegotiate2 *iface)
 
static HRESULT WINAPI BSCHttpNegotiate_QueryInterface (IHttpNegotiate2 *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI BSCHttpNegotiate_AddRef (IHttpNegotiate2 *iface)
 
static ULONG WINAPI BSCHttpNegotiate_Release (IHttpNegotiate2 *iface)
 
static HRESULT WINAPI BSCHttpNegotiate_BeginningTransaction (IHttpNegotiate2 *iface, LPCWSTR szURL, LPCWSTR szHeaders, DWORD dwReserved, LPWSTR *pszAdditionalHeaders)
 
static HRESULT WINAPI BSCHttpNegotiate_OnResponse (IHttpNegotiate2 *iface, DWORD dwResponseCode, LPCWSTR szResponseHeaders, LPCWSTR szRequestHeaders, LPWSTR *pszAdditionalRequestHeaders)
 
static HRESULT WINAPI BSCHttpNegotiate_GetRootSecurityId (IHttpNegotiate2 *iface, BYTE *pbSecurityId, DWORD *pcbSecurityId, DWORD_PTR dwReserved)
 
static BindStatusCallbackimpl_from_IAuthenticate (IAuthenticate *iface)
 
static HRESULT WINAPI BSCAuthenticate_QueryInterface (IAuthenticate *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI BSCAuthenticate_AddRef (IAuthenticate *iface)
 
static ULONG WINAPI BSCAuthenticate_Release (IAuthenticate *iface)
 
static HRESULT WINAPI BSCAuthenticate_Authenticate (IAuthenticate *iface, HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword)
 
static BindStatusCallbackimpl_from_IInternetBindInfo (IInternetBindInfo *iface)
 
static HRESULT WINAPI BSCInternetBindInfo_QueryInterface (IInternetBindInfo *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI BSCInternetBindInfo_AddRef (IInternetBindInfo *iface)
 
static ULONG WINAPI BSCInternetBindInfo_Release (IInternetBindInfo *iface)
 
static HRESULT WINAPI BSCInternetBindInfo_GetBindInfo (IInternetBindInfo *iface, DWORD *bindf, BINDINFO *bindinfo)
 
static HRESULT WINAPI BSCInternetBindInfo_GetBindString (IInternetBindInfo *iface, ULONG string_type, WCHAR **strs, ULONG cnt, ULONG *fetched)
 
static void set_callback (BindStatusCallback *This, IBindStatusCallback *bsc)
 
HRESULT wrap_callback (IBindStatusCallback *bsc, IBindStatusCallback **ret_iface)
 
HRESULT WINAPI RegisterBindStatusCallback (IBindCtx *pbc, IBindStatusCallback *pbsc, IBindStatusCallback **ppbscPrevious, DWORD dwReserved)
 
HRESULT WINAPI RevokeBindStatusCallback (IBindCtx *pbc, IBindStatusCallback *pbsc)
 
static AsyncBindCtximpl_from_IBindCtx (IBindCtx *iface)
 
static HRESULT WINAPI AsyncBindCtx_QueryInterface (IBindCtx *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI AsyncBindCtx_AddRef (IBindCtx *iface)
 
static ULONG WINAPI AsyncBindCtx_Release (IBindCtx *iface)
 
static HRESULT WINAPI AsyncBindCtx_RegisterObjectBound (IBindCtx *iface, IUnknown *punk)
 
static HRESULT WINAPI AsyncBindCtx_RevokeObjectBound (IBindCtx *iface, IUnknown *punk)
 
static HRESULT WINAPI AsyncBindCtx_ReleaseBoundObjects (IBindCtx *iface)
 
static HRESULT WINAPI AsyncBindCtx_SetBindOptions (IBindCtx *iface, BIND_OPTS *pbindopts)
 
static HRESULT WINAPI AsyncBindCtx_GetBindOptions (IBindCtx *iface, BIND_OPTS *pbindopts)
 
static HRESULT WINAPI AsyncBindCtx_GetRunningObjectTable (IBindCtx *iface, IRunningObjectTable **pprot)
 
static HRESULT WINAPI AsyncBindCtx_RegisterObjectParam (IBindCtx *iface, LPOLESTR pszkey, IUnknown *punk)
 
static HRESULT WINAPI AsyncBindCtx_GetObjectParam (IBindCtx *iface, LPOLESTR pszkey, IUnknown **punk)
 
static HRESULT WINAPI AsyncBindCtx_RevokeObjectParam (IBindCtx *iface, LPOLESTR pszkey)
 
static HRESULT WINAPI AsyncBindCtx_EnumObjectParam (IBindCtx *iface, IEnumString **pszkey)
 
static HRESULT init_bindctx (IBindCtx *bindctx, DWORD options, IBindStatusCallback *callback, IEnumFORMATETC *format)
 
HRESULT WINAPI CreateAsyncBindCtx (DWORD reserved, IBindStatusCallback *callback, IEnumFORMATETC *format, IBindCtx **pbind)
 
HRESULT WINAPI CreateAsyncBindCtxEx (IBindCtx *ibind, DWORD options, IBindStatusCallback *callback, IEnumFORMATETC *format, IBindCtx **pbind, DWORD reserved)
 

Variables

static WCHAR bscb_holderW [] = { '_','B','S','C','B','_','H','o','l','d','e','r','_',0 }
 
IID IID_IBindStatusCallbackHolder
 
static const IBindStatusCallbackExVtbl BindStatusCallbackExVtbl
 
static const IServiceProviderVtbl BSCServiceProviderVtbl
 
static const IHttpNegotiate2Vtbl BSCHttpNegotiateVtbl
 
static const IAuthenticateVtbl BSCAuthenticateVtbl
 
static IInternetBindInfoVtbl BSCInternetBindInfoVtbl
 
static const IBindCtxVtbl AsyncBindCtxVtbl
 

Function Documentation

◆ AsyncBindCtx_AddRef()

static ULONG WINAPI AsyncBindCtx_AddRef ( IBindCtx iface)
static

Definition at line 735 of file bindctx.c.

736{
739
740 TRACE("(%p) ref=%d\n", This, ref);
741
742 return ref;
743}
#define InterlockedIncrement
Definition: armddk.h:53
static BindCtxImpl * impl_from_IBindCtx(IBindCtx *iface)
Definition: bindctx.c:69
long LONG
Definition: pedump.c:60
#define TRACE(s)
Definition: solgame.cpp:4
Definition: send.c:48

◆ AsyncBindCtx_EnumObjectParam()

static HRESULT WINAPI AsyncBindCtx_EnumObjectParam ( IBindCtx iface,
IEnumString **  pszkey 
)
static

Definition at line 841 of file bindctx.c.

842{
844
845 TRACE("(%p)->(%p)\n", This, pszkey);
846
847 return IBindCtx_EnumObjectParam(This->bindctx, pszkey);
848}

◆ AsyncBindCtx_GetBindOptions()

static HRESULT WINAPI AsyncBindCtx_GetBindOptions ( IBindCtx iface,
BIND_OPTS *  pbindopts 
)
static

Definition at line 796 of file bindctx.c.

797{
799
800 TRACE("(%p)->(%p)\n", This, pbindopts);
801
802 return IBindCtx_GetBindOptions(This->bindctx, pbindopts);
803}

◆ AsyncBindCtx_GetObjectParam()

static HRESULT WINAPI AsyncBindCtx_GetObjectParam ( IBindCtx iface,
LPOLESTR  pszkey,
IUnknown **  punk 
)
static

Definition at line 823 of file bindctx.c.

824{
826
827 TRACE("(%p)->(%s %p)\n", This, debugstr_w(pszkey), punk);
828
829 return IBindCtx_GetObjectParam(This->bindctx, pszkey, punk);
830}
#define debugstr_w
Definition: kernel32.h:32

◆ AsyncBindCtx_GetRunningObjectTable()

static HRESULT WINAPI AsyncBindCtx_GetRunningObjectTable ( IBindCtx iface,
IRunningObjectTable **  pprot 
)
static

Definition at line 805 of file bindctx.c.

806{
808
809 TRACE("(%p)->(%p)\n", This, pprot);
810
811 return IBindCtx_GetRunningObjectTable(This->bindctx, pprot);
812}

◆ AsyncBindCtx_QueryInterface()

static HRESULT WINAPI AsyncBindCtx_QueryInterface ( IBindCtx iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 709 of file bindctx.c.

710{
712
713 *ppv = NULL;
714
716 TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
717 *ppv = &This->IBindCtx_iface;
718 }else if(IsEqualGUID(riid, &IID_IBindCtx)) {
719 TRACE("(%p)->(IID_IBindCtx %p)\n", This, ppv);
720 *ppv = &This->IBindCtx_iface;
721 }else if(IsEqualGUID(riid, &IID_IAsyncBindCtx)) {
722 TRACE("(%p)->(IID_IAsyncBindCtx %p)\n", This, ppv);
723 *ppv = &This->IBindCtx_iface;
724 }
725
726 if(*ppv) {
727 IUnknown_AddRef((IUnknown*)*ppv);
728 return S_OK;
729 }
730
731 FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
732 return E_NOINTERFACE;
733}
const GUID IID_IUnknown
#define FIXME(fmt,...)
Definition: debug.h:111
#define NULL
Definition: types.h:112
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
#define debugstr_guid
Definition: kernel32.h:35
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ AsyncBindCtx_RegisterObjectBound()

static HRESULT WINAPI AsyncBindCtx_RegisterObjectBound ( IBindCtx iface,
IUnknown punk 
)
static

Definition at line 760 of file bindctx.c.

761{
763
764 TRACE("(%p)->(%p)\n", This, punk);
765
766 return IBindCtx_RegisterObjectBound(This->bindctx, punk);
767}

◆ AsyncBindCtx_RegisterObjectParam()

static HRESULT WINAPI AsyncBindCtx_RegisterObjectParam ( IBindCtx iface,
LPOLESTR  pszkey,
IUnknown punk 
)
static

Definition at line 814 of file bindctx.c.

815{
817
818 TRACE("(%p)->(%s %p)\n", This, debugstr_w(pszkey), punk);
819
820 return IBindCtx_RegisterObjectParam(This->bindctx, pszkey, punk);
821}

◆ AsyncBindCtx_Release()

static ULONG WINAPI AsyncBindCtx_Release ( IBindCtx iface)
static

Definition at line 745 of file bindctx.c.

746{
749
750 TRACE("(%p) ref=%d\n", This, ref);
751
752 if(!ref) {
753 IBindCtx_Release(This->bindctx);
755 }
756
757 return ref;
758}
static BOOL heap_free(void *mem)
Definition: appwiz.h:76
#define InterlockedDecrement
Definition: armddk.h:52

◆ AsyncBindCtx_ReleaseBoundObjects()

static HRESULT WINAPI AsyncBindCtx_ReleaseBoundObjects ( IBindCtx iface)
static

Definition at line 778 of file bindctx.c.

779{
781
782 TRACE("(%p)\n", This);
783
784 return IBindCtx_ReleaseBoundObjects(This->bindctx);
785}

◆ AsyncBindCtx_RevokeObjectBound()

static HRESULT WINAPI AsyncBindCtx_RevokeObjectBound ( IBindCtx iface,
IUnknown punk 
)
static

Definition at line 769 of file bindctx.c.

770{
772
773 TRACE("(%p %p)\n", This, punk);
774
775 return IBindCtx_RevokeObjectBound(This->bindctx, punk);
776}

◆ AsyncBindCtx_RevokeObjectParam()

static HRESULT WINAPI AsyncBindCtx_RevokeObjectParam ( IBindCtx iface,
LPOLESTR  pszkey 
)
static

Definition at line 832 of file bindctx.c.

833{
835
836 TRACE("(%p)->(%s)\n", This, debugstr_w(pszkey));
837
838 return IBindCtx_RevokeObjectParam(This->bindctx, pszkey);
839}

◆ AsyncBindCtx_SetBindOptions()

static HRESULT WINAPI AsyncBindCtx_SetBindOptions ( IBindCtx iface,
BIND_OPTS *  pbindopts 
)
static

Definition at line 787 of file bindctx.c.

788{
790
791 TRACE("(%p)->(%p)\n", This, pbindopts);
792
793 return IBindCtx_SetBindOptions(This->bindctx, pbindopts);
794}

◆ BindStatusCallback_AddRef()

static ULONG WINAPI BindStatusCallback_AddRef ( IBindStatusCallbackEx iface)
static

Definition at line 144 of file bindctx.c.

145{
148
149 TRACE("(%p) ref = %d\n", This, ref);
150
151 return ref;
152}
static BindStatusCallback * impl_from_IBindStatusCallbackEx(IBindStatusCallbackEx *iface)
Definition: bindctx.c:94

◆ BindStatusCallback_GetBindInfo()

static HRESULT WINAPI BindStatusCallback_GetBindInfo ( IBindStatusCallbackEx iface,
DWORD grfBINDF,
BINDINFO *  pbindinfo 
)
static

Definition at line 221 of file bindctx.c.

223{
227
228 TRACE("(%p)->(%p %p)\n", This, grfBINDF, pbindinfo);
229
230 hres = IBindStatusCallback_QueryInterface(This->callback, &IID_IBindStatusCallbackEx, (void**)&bscex);
231 if(SUCCEEDED(hres)) {
232 DWORD bindf2 = 0, reserv = 0;
233
234 hres = IBindStatusCallbackEx_GetBindInfoEx(bscex, grfBINDF, pbindinfo, &bindf2, &reserv);
235 IBindStatusCallbackEx_Release(bscex);
236 }else {
237 hres = IBindStatusCallback_GetBindInfo(This->callback, grfBINDF, pbindinfo);
238 }
239
240 return hres;
241}
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SUCCEEDED(hr)
Definition: intsafe.h:50
HRESULT hres
Definition: protocol.c:465

◆ BindStatusCallback_GetBindInfoEx()

static HRESULT WINAPI BindStatusCallback_GetBindInfoEx ( IBindStatusCallbackEx iface,
DWORD grfBINDF,
BINDINFO *  pbindinfo,
DWORD grfBINDF2,
DWORD pdwReserved 
)
static

Definition at line 263 of file bindctx.c.

265{
269
270 TRACE("(%p)->(%p %p %p %p)\n", This, grfBINDF, pbindinfo, grfBINDF2, pdwReserved);
271
272 hres = IBindStatusCallback_QueryInterface(This->callback, &IID_IBindStatusCallbackEx, (void**)&bscex);
273 if(SUCCEEDED(hres)) {
274 hres = IBindStatusCallbackEx_GetBindInfoEx(bscex, grfBINDF, pbindinfo, grfBINDF2, pdwReserved);
275 IBindStatusCallbackEx_Release(bscex);
276 }else {
277 hres = IBindStatusCallback_GetBindInfo(This->callback, grfBINDF, pbindinfo);
278 }
279
280 return hres;
281}
_Reserved_ DWORD * pdwReserved
Definition: wincrypt.h:4254

◆ BindStatusCallback_GetPriority()

static HRESULT WINAPI BindStatusCallback_GetPriority ( IBindStatusCallbackEx iface,
LONG pnPriority 
)
static

Definition at line 181 of file bindctx.c.

182{
184
185 TRACE("(%p)->(%p)\n", This, pnPriority);
186
187 return IBindStatusCallback_GetPriority(This->callback, pnPriority);
188}

◆ BindStatusCallback_OnDataAvailable()

static HRESULT WINAPI BindStatusCallback_OnDataAvailable ( IBindStatusCallbackEx iface,
DWORD  grfBSCF,
DWORD  dwSize,
FORMATETC *  pformatetc,
STGMEDIUM *  pstgmed 
)
static

Definition at line 243 of file bindctx.c.

245{
247
248 TRACE("(%p)->(%08x %d %p %p)\n", This, grfBSCF, dwSize, pformatetc, pstgmed);
249
250 return IBindStatusCallback_OnDataAvailable(This->callback, grfBSCF, dwSize, pformatetc, pstgmed);
251}
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56

◆ BindStatusCallback_OnLowResource()

static HRESULT WINAPI BindStatusCallback_OnLowResource ( IBindStatusCallbackEx iface,
DWORD  reserved 
)
static

Definition at line 190 of file bindctx.c.

191{
193
194 TRACE("(%p)->(%d)\n", This, reserved);
195
196 return IBindStatusCallback_OnLowResource(This->callback, reserved);
197}
r reserved
Definition: btrfs.c:3006

◆ BindStatusCallback_OnObjectAvailable()

static HRESULT WINAPI BindStatusCallback_OnObjectAvailable ( IBindStatusCallbackEx iface,
REFIID  riid,
IUnknown punk 
)
static

Definition at line 253 of file bindctx.c.

255{
257
258 TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), punk);
259
260 return IBindStatusCallback_OnObjectAvailable(This->callback, riid, punk);
261}

◆ BindStatusCallback_OnProgress()

static HRESULT WINAPI BindStatusCallback_OnProgress ( IBindStatusCallbackEx iface,
ULONG  ulProgress,
ULONG  ulProgressMax,
ULONG  ulStatusCode,
LPCWSTR  szStatusText 
)
static

Definition at line 199 of file bindctx.c.

201{
203
204 TRACE("%p)->(%u %u %s %s)\n", This, ulProgress, ulProgressMax, debugstr_bindstatus(ulStatusCode),
205 debugstr_w(szStatusText));
206
207 return IBindStatusCallback_OnProgress(This->callback, ulProgress,
208 ulProgressMax, ulStatusCode, szStatusText);
209}
const char * debugstr_bindstatus(ULONG status)
Definition: urlmon_main.c:175

◆ BindStatusCallback_OnStartBinding()

static HRESULT WINAPI BindStatusCallback_OnStartBinding ( IBindStatusCallbackEx iface,
DWORD  dwReserved,
IBinding pbind 
)
static

Definition at line 171 of file bindctx.c.

173{
175
176 TRACE("(%p)->(%d %p)\n", This, dwReserved, pbind);
177
178 return IBindStatusCallback_OnStartBinding(This->callback, 0xff, pbind);
179}
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:95

◆ BindStatusCallback_OnStopBinding()

static HRESULT WINAPI BindStatusCallback_OnStopBinding ( IBindStatusCallbackEx iface,
HRESULT  hresult,
LPCWSTR  szError 
)
static

Definition at line 211 of file bindctx.c.

213{
215
216 TRACE("(%p)->(%08x %s)\n", This, hresult, debugstr_w(szError));
217
218 return IBindStatusCallback_OnStopBinding(This->callback, hresult, szError);
219}

◆ BindStatusCallback_QueryInterface()

static HRESULT WINAPI BindStatusCallback_QueryInterface ( IBindStatusCallbackEx iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 99 of file bindctx.c.

101{
103
104 *ppv = NULL;
105
107 TRACE("(%p)->(IID_IUnknown, %p)\n", This, ppv);
108 *ppv = &This->IBindStatusCallbackEx_iface;
109 }else if(IsEqualGUID(&IID_IBindStatusCallback, riid)) {
110 TRACE("(%p)->(IID_IBindStatusCallback, %p)\n", This, ppv);
111 *ppv = &This->IBindStatusCallbackEx_iface;
112 }else if(IsEqualGUID(&IID_IBindStatusCallbackEx, riid)) {
113 TRACE("(%p)->(IID_IBindStatusCallback, %p)\n", This, ppv);
114 *ppv = &This->IBindStatusCallbackEx_iface;
116 TRACE("(%p)->(IID_IBindStatusCallbackHolder, %p)\n", This, ppv);
117 *ppv = This;
118 }else if(IsEqualGUID(&IID_IServiceProvider, riid)) {
119 TRACE("(%p)->(IID_IServiceProvider, %p)\n", This, ppv);
120 *ppv = &This->IServiceProvider_iface;
121 }else if(IsEqualGUID(&IID_IHttpNegotiate, riid)) {
122 TRACE("(%p)->(IID_IHttpNegotiate, %p)\n", This, ppv);
123 *ppv = &This->IHttpNegotiate2_iface;
124 }else if(IsEqualGUID(&IID_IHttpNegotiate2, riid)) {
125 TRACE("(%p)->(IID_IHttpNegotiate2, %p)\n", This, ppv);
126 *ppv = &This->IHttpNegotiate2_iface;
127 }else if(IsEqualGUID(&IID_IAuthenticate, riid)) {
128 TRACE("(%p)->(IID_IAuthenticate, %p)\n", This, ppv);
129 *ppv = &This->IAuthenticate_iface;
130 }else if(IsEqualGUID(&IID_IInternetBindInfo, riid)) {
131 TRACE("(%p)->(IID_IInternetBindInfo, %p)\n", This, ppv);
132 *ppv = &This->IInternetBindInfo_iface;
133 }
134
135 if(*ppv) {
136 IUnknown_AddRef((IUnknown*)*ppv);
137 return S_OK;
138 }
139
140 TRACE("Unsupported riid = %s\n", debugstr_guid(riid));
141 return E_NOINTERFACE;
142}
IID IID_IBindStatusCallbackHolder

◆ BindStatusCallback_Release()

static ULONG WINAPI BindStatusCallback_Release ( IBindStatusCallbackEx iface)
static

Definition at line 154 of file bindctx.c.

155{
158
159 TRACE("(%p) ref = %d\n", This, ref);
160
161 if(!ref) {
162 if(This->serv_prov)
163 IServiceProvider_Release(This->serv_prov);
164 IBindStatusCallback_Release(This->callback);
166 }
167
168 return ref;
169}

◆ bsc_from_bctx()

IBindStatusCallback * bsc_from_bctx ( IBindCtx bctx)

Definition at line 70 of file bindctx.c.

71{
72 BindStatusCallback *holder;
75
76 bsc = bsch_from_bctx(bctx);
77 if(!bsc)
78 return NULL;
79
80 hres = IBindStatusCallback_QueryInterface(bsc, &IID_IBindStatusCallbackHolder, (void**)&holder);
81 if(FAILED(hres))
82 return bsc;
83
84 if(holder->callback) {
85 IBindStatusCallback_Release(bsc);
86 bsc = holder->callback;
87 IBindStatusCallback_AddRef(bsc);
88 }
89
90 IBindStatusCallbackEx_Release(&holder->IBindStatusCallbackEx_iface);
91 return bsc;
92}
#define FAILED(hr)
Definition: intsafe.h:51
static IBindStatusCallbackEx bsc
Definition: url.c:2150
IBindStatusCallback * callback
Definition: bindctx.c:39
IBindStatusCallbackEx IBindStatusCallbackEx_iface
Definition: bindctx.c:31
static IBindStatusCallback * bsch_from_bctx(IBindCtx *bctx)
Definition: bindctx.c:55

Referenced by AsyncInstallDistributionUnit(), and RevokeBindStatusCallback().

◆ BSCAuthenticate_AddRef()

static ULONG WINAPI BSCAuthenticate_AddRef ( IAuthenticate iface)
static

Definition at line 477 of file bindctx.c.

478{
480 return IBindStatusCallbackEx_AddRef(&This->IBindStatusCallbackEx_iface);
481}
static BindStatusCallback * impl_from_IAuthenticate(IAuthenticate *iface)
Definition: bindctx.c:466

◆ BSCAuthenticate_Authenticate()

static HRESULT WINAPI BSCAuthenticate_Authenticate ( IAuthenticate iface,
HWND phwnd,
LPWSTR pszUsername,
LPWSTR pszPassword 
)
static

Definition at line 489 of file bindctx.c.

491{
493 FIXME("(%p)->(%p %p %p)\n", This, phwnd, pszUsername, pszPassword);
494 return E_NOTIMPL;
495}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ BSCAuthenticate_QueryInterface()

static HRESULT WINAPI BSCAuthenticate_QueryInterface ( IAuthenticate iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 471 of file bindctx.c.

472{
474 return IBindStatusCallbackEx_QueryInterface(&This->IBindStatusCallbackEx_iface, riid, ppv);
475}

◆ BSCAuthenticate_Release()

static ULONG WINAPI BSCAuthenticate_Release ( IAuthenticate iface)
static

Definition at line 483 of file bindctx.c.

484{
486 return IBindStatusCallbackEx_Release(&This->IBindStatusCallbackEx_iface);
487}

◆ bsch_from_bctx()

static IBindStatusCallback * bsch_from_bctx ( IBindCtx bctx)
static

Definition at line 55 of file bindctx.c.

56{
58 IUnknown *unk;
60
61 hres = IBindCtx_GetObjectParam(bctx, bscb_holderW, &unk);
62 if(FAILED(hres))
63 return NULL;
64
65 hres = IUnknown_QueryInterface(unk, &IID_IBindStatusCallback, (void**)&bsc);
66 IUnknown_Release(unk);
67 return SUCCEEDED(hres) ? bsc : NULL;
68}
static WCHAR bscb_holderW[]
Definition: bindctx.c:26

Referenced by bsc_from_bctx(), and RegisterBindStatusCallback().

◆ BSCHttpNegotiate_AddRef()

static ULONG WINAPI BSCHttpNegotiate_AddRef ( IHttpNegotiate2 iface)
static

Definition at line 377 of file bindctx.c.

378{
380 return IBindStatusCallbackEx_AddRef(&This->IBindStatusCallbackEx_iface);
381}
static BindStatusCallback * impl_from_IHttpNegotiate2(IHttpNegotiate2 *iface)
Definition: bindctx.c:365

◆ BSCHttpNegotiate_BeginningTransaction()

static HRESULT WINAPI BSCHttpNegotiate_BeginningTransaction ( IHttpNegotiate2 iface,
LPCWSTR  szURL,
LPCWSTR  szHeaders,
DWORD  dwReserved,
LPWSTR pszAdditionalHeaders 
)
static

Definition at line 389 of file bindctx.c.

391{
394 HRESULT hres = S_OK;
395
396 TRACE("(%p)->(%s %s %d %p)\n", This, debugstr_w(szURL), debugstr_w(szHeaders), dwReserved,
397 pszAdditionalHeaders);
398
399 *pszAdditionalHeaders = NULL;
400
401 http_negotiate = get_callback_iface(This, &IID_IHttpNegotiate);
402 if(http_negotiate) {
403 hres = IHttpNegotiate_BeginningTransaction(http_negotiate, szURL, szHeaders,
404 dwReserved, pszAdditionalHeaders);
405 IHttpNegotiate_Release(http_negotiate);
406 }
407
408 return hres;
409}
static IHttpNegotiate2 http_negotiate
Definition: protocol.c:395
static void * get_callback_iface(BindStatusCallback *This, REFIID riid)
Definition: bindctx.c:43

◆ BSCHttpNegotiate_GetRootSecurityId()

static HRESULT WINAPI BSCHttpNegotiate_GetRootSecurityId ( IHttpNegotiate2 iface,
BYTE pbSecurityId,
DWORD pcbSecurityId,
DWORD_PTR  dwReserved 
)
static

Definition at line 438 of file bindctx.c.

440{
442 IHttpNegotiate2 *http_negotiate2;
444
445 TRACE("(%p)->(%p %p %ld)\n", This, pbSecurityId, pcbSecurityId, dwReserved);
446
447 http_negotiate2 = get_callback_iface(This, &IID_IHttpNegotiate2);
448 if(http_negotiate2) {
449 hres = IHttpNegotiate2_GetRootSecurityId(http_negotiate2, pbSecurityId,
450 pcbSecurityId, dwReserved);
451 IHttpNegotiate2_Release(http_negotiate2);
452 }
453
454 return hres;
455}
#define E_FAIL
Definition: ddrawi.h:102

◆ BSCHttpNegotiate_OnResponse()

static HRESULT WINAPI BSCHttpNegotiate_OnResponse ( IHttpNegotiate2 iface,
DWORD  dwResponseCode,
LPCWSTR  szResponseHeaders,
LPCWSTR  szRequestHeaders,
LPWSTR pszAdditionalRequestHeaders 
)
static

Definition at line 411 of file bindctx.c.

414{
416 LPWSTR additional_headers = NULL;
418 HRESULT hres = S_OK;
419
420 TRACE("(%p)->(%d %s %s %p)\n", This, dwResponseCode, debugstr_w(szResponseHeaders),
421 debugstr_w(szRequestHeaders), pszAdditionalRequestHeaders);
422
423 http_negotiate = get_callback_iface(This, &IID_IHttpNegotiate);
424 if(http_negotiate) {
425 hres = IHttpNegotiate_OnResponse(http_negotiate, dwResponseCode, szResponseHeaders,
426 szRequestHeaders, &additional_headers);
427 IHttpNegotiate_Release(http_negotiate);
428 }
429
430 if(pszAdditionalRequestHeaders)
431 *pszAdditionalRequestHeaders = additional_headers;
432 else
433 CoTaskMemFree(additional_headers);
434
435 return hres;
436}
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
WCHAR * LPWSTR
Definition: xmlstorage.h:184

◆ BSCHttpNegotiate_QueryInterface()

static HRESULT WINAPI BSCHttpNegotiate_QueryInterface ( IHttpNegotiate2 iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 370 of file bindctx.c.

372{
374 return IBindStatusCallbackEx_QueryInterface(&This->IBindStatusCallbackEx_iface, riid, ppv);
375}

◆ BSCHttpNegotiate_Release()

static ULONG WINAPI BSCHttpNegotiate_Release ( IHttpNegotiate2 iface)
static

Definition at line 383 of file bindctx.c.

384{
386 return IBindStatusCallbackEx_Release(&This->IBindStatusCallbackEx_iface);
387}

◆ BSCInternetBindInfo_AddRef()

static ULONG WINAPI BSCInternetBindInfo_AddRef ( IInternetBindInfo iface)
static

Definition at line 515 of file bindctx.c.

516{
518 return IBindStatusCallbackEx_AddRef(&This->IBindStatusCallbackEx_iface);
519}
static BindStatusCallback * impl_from_IInternetBindInfo(IInternetBindInfo *iface)
Definition: bindctx.c:504

◆ BSCInternetBindInfo_GetBindInfo()

static HRESULT WINAPI BSCInternetBindInfo_GetBindInfo ( IInternetBindInfo iface,
DWORD bindf,
BINDINFO *  bindinfo 
)
static

Definition at line 527 of file bindctx.c.

528{
530 FIXME("(%p)->(%p %p)\n", This, bindf, bindinfo);
531 return E_NOTIMPL;
532}
static DWORD bindf
Definition: protocol.c:70

◆ BSCInternetBindInfo_GetBindString()

static HRESULT WINAPI BSCInternetBindInfo_GetBindString ( IInternetBindInfo iface,
ULONG  string_type,
WCHAR **  strs,
ULONG  cnt,
ULONG fetched 
)
static

Definition at line 534 of file bindctx.c.

536{
540
541 TRACE("(%p)->(%d %p %d %p)\n", This, string_type, strs, cnt, fetched);
542
543 hres = IBindStatusCallback_QueryInterface(This->callback, &IID_IInternetBindInfo, (void**)&bind_info);
544 if(FAILED(hres))
545 return hres;
546
547 hres = IInternetBindInfo_GetBindString(bind_info, string_type, strs, cnt, fetched);
548
549 IInternetBindInfo_Release(bind_info);
550 return hres;
551}
static IInternetBindInfo bind_info
Definition: mimeole.c:1273

◆ BSCInternetBindInfo_QueryInterface()

static HRESULT WINAPI BSCInternetBindInfo_QueryInterface ( IInternetBindInfo iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 509 of file bindctx.c.

510{
512 return IBindStatusCallbackEx_QueryInterface(&This->IBindStatusCallbackEx_iface, riid, ppv);
513}

◆ BSCInternetBindInfo_Release()

static ULONG WINAPI BSCInternetBindInfo_Release ( IInternetBindInfo iface)
static

Definition at line 521 of file bindctx.c.

522{
524 return IBindStatusCallbackEx_Release(&This->IBindStatusCallbackEx_iface);
525}

◆ BSCServiceProvider_AddRef()

static ULONG WINAPI BSCServiceProvider_AddRef ( IServiceProvider iface)
static

Definition at line 310 of file bindctx.c.

311{
313 return IBindStatusCallbackEx_AddRef(&This->IBindStatusCallbackEx_iface);
314}
static BindStatusCallback * impl_from_IServiceProvider(IServiceProvider *iface)
Definition: bindctx.c:298

◆ BSCServiceProvider_QueryInterface()

static HRESULT WINAPI BSCServiceProvider_QueryInterface ( IServiceProvider iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 303 of file bindctx.c.

305{
307 return IBindStatusCallbackEx_QueryInterface(&This->IBindStatusCallbackEx_iface, riid, ppv);
308}

◆ BSCServiceProvider_QueryService()

static HRESULT WINAPI BSCServiceProvider_QueryService ( IServiceProvider iface,
REFGUID  guidService,
REFIID  riid,
void **  ppv 
)
static

Definition at line 322 of file bindctx.c.

324{
327
328 if(IsEqualGUID(&IID_IHttpNegotiate, guidService)) {
329 TRACE("(%p)->(IID_IHttpNegotiate %s %p)\n", This, debugstr_guid(riid), ppv);
330 return IBindStatusCallbackEx_QueryInterface(&This->IBindStatusCallbackEx_iface, riid, ppv);
331 }
332
333 if(IsEqualGUID(&IID_IHttpNegotiate2, guidService)) {
334 TRACE("(%p)->(IID_IHttpNegotiate2 %s %p)\n", This, debugstr_guid(riid), ppv);
335 return IBindStatusCallbackEx_QueryInterface(&This->IBindStatusCallbackEx_iface, riid, ppv);
336 }
337
338 if(IsEqualGUID(&IID_IAuthenticate, guidService)) {
339 TRACE("(%p)->(IID_IAuthenticate %s %p)\n", This, debugstr_guid(riid), ppv);
340 return IBindStatusCallbackEx_QueryInterface(&This->IBindStatusCallbackEx_iface, riid, ppv);
341 }
342
343 TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
344
345 hres = IBindStatusCallback_QueryInterface(This->callback, riid, ppv);
346 if(SUCCEEDED(hres))
347 return S_OK;
348
349 if(This->serv_prov) {
350 hres = IServiceProvider_QueryService(This->serv_prov, guidService, riid, ppv);
351 if(SUCCEEDED(hres))
352 return S_OK;
353 }
354
355 return E_NOINTERFACE;
356}

◆ BSCServiceProvider_Release()

static ULONG WINAPI BSCServiceProvider_Release ( IServiceProvider iface)
static

Definition at line 316 of file bindctx.c.

317{
319 return IBindStatusCallbackEx_Release(&This->IBindStatusCallbackEx_iface);
320}

◆ CreateAsyncBindCtx()

HRESULT WINAPI CreateAsyncBindCtx ( DWORD  reserved,
IBindStatusCallback callback,
IEnumFORMATETC format,
IBindCtx **  pbind 
)

Definition at line 899 of file bindctx.c.

901{
902 IBindCtx *bindctx;
904
905 TRACE("(%08x %p %p %p)\n", reserved, callback, format, pbind);
906
907 if(!pbind || !callback)
908 return E_INVALIDARG;
909
910 hres = CreateBindCtx(0, &bindctx);
911 if(FAILED(hres))
912 return hres;
913
914 hres = init_bindctx(bindctx, 0, callback, format);
915 if(FAILED(hres)) {
916 IBindCtx_Release(bindctx);
917 return hres;
918 }
919
920 *pbind = bindctx;
921 return S_OK;
922}
#define E_INVALIDARG
Definition: ddrawi.h:101
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
static IPrintDialogCallback callback
Definition: printdlg.c:326
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
Definition: bindctx.c:556
static HRESULT init_bindctx(IBindCtx *bindctx, DWORD options, IBindStatusCallback *callback, IEnumFORMATETC *format)
Definition: bindctx.c:867

Referenced by BindAsyncMoniker(), download_to_cache(), download_url(), hlink_frame_navigate(), install_codebase(), MimeHtmlProtocol_Start(), navigate_bsc(), navigate_new_window(), start_binding(), test_BindToObject(), test_BindToStorage(), test_CreateAsyncBindCtx(), test_ReportResult(), test_StdURLMoniker(), and URLDownloadToFileW().

◆ CreateAsyncBindCtxEx()

HRESULT WINAPI CreateAsyncBindCtxEx ( IBindCtx ibind,
DWORD  options,
IBindStatusCallback callback,
IEnumFORMATETC format,
IBindCtx **  pbind,
DWORD  reserved 
)

Definition at line 929 of file bindctx.c.

932{
934 IBindCtx *bindctx;
936
937 TRACE("(%p %08x %p %p %p %d)\n", ibind, options, callback, format, pbind, reserved);
938
939 if(!pbind)
940 return E_INVALIDARG;
941
942 if(reserved)
943 WARN("reserved=%d\n", reserved);
944
945 if(ibind) {
946 IBindCtx_AddRef(ibind);
947 bindctx = ibind;
948 }else {
949 hres = CreateBindCtx(0, &bindctx);
950 if(FAILED(hres))
951 return hres;
952 }
953
954 ret = heap_alloc(sizeof(AsyncBindCtx));
955
956 ret->IBindCtx_iface.lpVtbl = &AsyncBindCtxVtbl;
957 ret->ref = 1;
958 ret->bindctx = bindctx;
959
960 hres = init_bindctx(&ret->IBindCtx_iface, options, callback, format);
961 if(FAILED(hres)) {
962 IBindCtx_Release(&ret->IBindCtx_iface);
963 return hres;
964 }
965
966 *pbind = &ret->IBindCtx_iface;
967 return S_OK;
968}
static void * heap_alloc(size_t len)
Definition: appwiz.h:66
#define WARN(fmt,...)
Definition: debug.h:112
static const IBindCtxVtbl AsyncBindCtxVtbl
Definition: bindctx.c:850
int ret

Referenced by load_doc_mon().

◆ get_callback_iface()

static void * get_callback_iface ( BindStatusCallback This,
REFIID  riid 
)
static

Definition at line 43 of file bindctx.c.

44{
45 void *ret;
47
48 hres = IBindStatusCallback_QueryInterface(This->callback, riid, &ret);
49 if(FAILED(hres) && This->serv_prov)
50 hres = IServiceProvider_QueryService(This->serv_prov, riid, riid, &ret);
51
52 return SUCCEEDED(hres) ? ret : NULL;
53}

Referenced by BSCHttpNegotiate_BeginningTransaction(), BSCHttpNegotiate_GetRootSecurityId(), and BSCHttpNegotiate_OnResponse().

◆ impl_from_IAuthenticate()

static BindStatusCallback * impl_from_IAuthenticate ( IAuthenticate iface)
inlinestatic

Definition at line 466 of file bindctx.c.

467{
468 return CONTAINING_RECORD(iface, BindStatusCallback, IAuthenticate_iface);
469}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by BSCAuthenticate_AddRef(), BSCAuthenticate_Authenticate(), BSCAuthenticate_QueryInterface(), and BSCAuthenticate_Release().

◆ impl_from_IBindCtx()

static AsyncBindCtx * impl_from_IBindCtx ( IBindCtx iface)
inlinestatic

Definition at line 704 of file bindctx.c.

705{
706 return CONTAINING_RECORD(iface, AsyncBindCtx, IBindCtx_iface);
707}

◆ impl_from_IBindStatusCallbackEx()

◆ impl_from_IHttpNegotiate2()

static BindStatusCallback * impl_from_IHttpNegotiate2 ( IHttpNegotiate2 iface)
inlinestatic

◆ impl_from_IInternetBindInfo()

static BindStatusCallback * impl_from_IInternetBindInfo ( IInternetBindInfo iface)
inlinestatic

◆ impl_from_IServiceProvider()

static BindStatusCallback * impl_from_IServiceProvider ( IServiceProvider iface)
inlinestatic

◆ init_bindctx()

static HRESULT init_bindctx ( IBindCtx bindctx,
DWORD  options,
IBindStatusCallback callback,
IEnumFORMATETC format 
)
static

Definition at line 867 of file bindctx.c.

869{
870 BIND_OPTS bindopts;
872
873 if(options)
874 FIXME("not supported options %08x\n", options);
875 if(format)
876 FIXME("format is not supported\n");
877
878 bindopts.cbStruct = sizeof(BIND_OPTS);
879 bindopts.grfFlags = BIND_MAYBOTHERUSER;
880 bindopts.grfMode = STGM_READWRITE | STGM_SHARE_EXCLUSIVE;
881 bindopts.dwTickCountDeadline = 0;
882
883 hres = IBindCtx_SetBindOptions(bindctx, &bindopts);
884 if(FAILED(hres))
885 return hres;
886
887 if(callback) {
889 if(FAILED(hres))
890 return hres;
891 }
892
893 return S_OK;
894}
#define STGM_READWRITE
Definition: objbase.h:919
#define STGM_SHARE_EXCLUSIVE
Definition: objbase.h:923
HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pbsc, IBindStatusCallback **ppbscPrevious, DWORD dwReserved)
Definition: bindctx.c:615

Referenced by CreateAsyncBindCtx(), and CreateAsyncBindCtxEx().

◆ RegisterBindStatusCallback()

HRESULT WINAPI RegisterBindStatusCallback ( IBindCtx pbc,
IBindStatusCallback pbsc,
IBindStatusCallback **  ppbscPrevious,
DWORD  dwReserved 
)

Definition at line 615 of file bindctx.c.

617{
618 BindStatusCallback *holder;
619 IBindStatusCallback *bsc, *prev = NULL;
621
622 TRACE("(%p %p %p %x)\n", pbc, pbsc, ppbscPrevious, dwReserved);
623
624 if (!pbc || !pbsc)
625 return E_INVALIDARG;
626
627 bsc = bsch_from_bctx(pbc);
628 if(bsc) {
629 hres = IBindStatusCallback_QueryInterface(bsc, &IID_IBindStatusCallbackHolder, (void**)&holder);
630 if(SUCCEEDED(hres)) {
631 if(ppbscPrevious) {
632 IBindStatusCallback_AddRef(holder->callback);
633 *ppbscPrevious = holder->callback;
634 }
635
636 set_callback(holder, pbsc);
637
638 IBindStatusCallback_Release(bsc);
639 IBindStatusCallbackEx_Release(&holder->IBindStatusCallbackEx_iface);
640 return S_OK;
641 }else {
642 prev = bsc;
643 }
644
645 IBindCtx_RevokeObjectParam(pbc, bscb_holderW);
646 }
647
648 hres = wrap_callback(pbsc, &bsc);
649 if(SUCCEEDED(hres)) {
650 hres = IBindCtx_RegisterObjectParam(pbc, bscb_holderW, (IUnknown*)bsc);
651 IBindStatusCallback_Release(bsc);
652 }
653 if(FAILED(hres)) {
654 if(prev)
655 IBindStatusCallback_Release(prev);
656 return hres;
657 }
658
659 if(ppbscPrevious)
660 *ppbscPrevious = prev;
661 return S_OK;
662}
HRESULT wrap_callback(IBindStatusCallback *bsc, IBindStatusCallback **ret_iface)
Definition: bindctx.c:578
static void set_callback(BindStatusCallback *This, IBindStatusCallback *bsc)
Definition: bindctx.c:561

Referenced by bind_url(), HlinkResolveMonikerForData(), IHlink_fnNavigate(), init_bindctx(), PersistMoniker_Load(), start_binding(), test_BindToStorage(), test_RegisterBindStatusCallback(), and URLStartDownload().

◆ RevokeBindStatusCallback()

HRESULT WINAPI RevokeBindStatusCallback ( IBindCtx pbc,
IBindStatusCallback pbsc 
)

Definition at line 676 of file bindctx.c.

677{
679
680 TRACE("(%p %p)\n", pbc, pbsc);
681
682 if (!pbc || !pbsc)
683 return E_INVALIDARG;
684
685 callback = bsc_from_bctx(pbc);
686 if(!callback)
687 return S_OK;
688
689 if(callback == pbsc)
690 IBindCtx_RevokeObjectParam(pbc, bscb_holderW);
691
692 IBindStatusCallback_Release(callback);
693 return S_OK;
694}
IBindStatusCallback * bsc_from_bctx(IBindCtx *bctx)
Definition: bindctx.c:70

Referenced by bind_callback_OnStopBinding(), IHlink_fnNavigate(), and test_RegisterBindStatusCallback().

◆ set_callback()

static void set_callback ( BindStatusCallback This,
IBindStatusCallback bsc 
)
static

Definition at line 561 of file bindctx.c.

562{
563 IServiceProvider *serv_prov;
565
566 if(This->callback)
567 IBindStatusCallback_Release(This->callback);
568 if(This->serv_prov)
569 IServiceProvider_Release(This->serv_prov);
570
571 IBindStatusCallback_AddRef(bsc);
572 This->callback = bsc;
573
574 hres = IBindStatusCallback_QueryInterface(bsc, &IID_IServiceProvider, (void**)&serv_prov);
575 This->serv_prov = hres == S_OK ? serv_prov : NULL;
576}

Referenced by RegisterBindStatusCallback(), and wrap_callback().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( urlmon  )

◆ wrap_callback()

HRESULT wrap_callback ( IBindStatusCallback bsc,
IBindStatusCallback **  ret_iface 
)

Definition at line 578 of file bindctx.c.

579{
581
582 ret = heap_alloc_zero(sizeof(BindStatusCallback));
583 if(!ret)
584 return E_OUTOFMEMORY;
585
586 ret->IBindStatusCallbackEx_iface.lpVtbl = &BindStatusCallbackExVtbl;
587 ret->IInternetBindInfo_iface.lpVtbl = &BSCInternetBindInfoVtbl;
588 ret->IServiceProvider_iface.lpVtbl = &BSCServiceProviderVtbl;
589 ret->IHttpNegotiate2_iface.lpVtbl = &BSCHttpNegotiateVtbl;
590 ret->IAuthenticate_iface.lpVtbl = &BSCAuthenticateVtbl;
591
592 ret->ref = 1;
594
595 *ret_iface = (IBindStatusCallback*)&ret->IBindStatusCallbackEx_iface;
596 return S_OK;
597}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static const IAuthenticateVtbl BSCAuthenticateVtbl
Definition: bindctx.c:497
static const IHttpNegotiate2Vtbl BSCHttpNegotiateVtbl
Definition: bindctx.c:457
static IInternetBindInfoVtbl BSCInternetBindInfoVtbl
Definition: bindctx.c:553
static const IBindStatusCallbackExVtbl BindStatusCallbackExVtbl
Definition: bindctx.c:283
static const IServiceProviderVtbl BSCServiceProviderVtbl
Definition: bindctx.c:358

Referenced by create_default_callback(), and RegisterBindStatusCallback().

Variable Documentation

◆ AsyncBindCtxVtbl

const IBindCtxVtbl AsyncBindCtxVtbl
static
Initial value:
=
{
}
static HRESULT WINAPI AsyncBindCtx_EnumObjectParam(IBindCtx *iface, IEnumString **pszkey)
Definition: bindctx.c:841
static HRESULT WINAPI AsyncBindCtx_RevokeObjectBound(IBindCtx *iface, IUnknown *punk)
Definition: bindctx.c:769
static HRESULT WINAPI AsyncBindCtx_ReleaseBoundObjects(IBindCtx *iface)
Definition: bindctx.c:778
static HRESULT WINAPI AsyncBindCtx_GetRunningObjectTable(IBindCtx *iface, IRunningObjectTable **pprot)
Definition: bindctx.c:805
static HRESULT WINAPI AsyncBindCtx_RegisterObjectParam(IBindCtx *iface, LPOLESTR pszkey, IUnknown *punk)
Definition: bindctx.c:814
static HRESULT WINAPI AsyncBindCtx_RevokeObjectParam(IBindCtx *iface, LPOLESTR pszkey)
Definition: bindctx.c:832
static HRESULT WINAPI AsyncBindCtx_RegisterObjectBound(IBindCtx *iface, IUnknown *punk)
Definition: bindctx.c:760
static HRESULT WINAPI AsyncBindCtx_GetBindOptions(IBindCtx *iface, BIND_OPTS *pbindopts)
Definition: bindctx.c:796
static HRESULT WINAPI AsyncBindCtx_QueryInterface(IBindCtx *iface, REFIID riid, void **ppv)
Definition: bindctx.c:709
static ULONG WINAPI AsyncBindCtx_AddRef(IBindCtx *iface)
Definition: bindctx.c:735
static HRESULT WINAPI AsyncBindCtx_GetObjectParam(IBindCtx *iface, LPOLESTR pszkey, IUnknown **punk)
Definition: bindctx.c:823
static ULONG WINAPI AsyncBindCtx_Release(IBindCtx *iface)
Definition: bindctx.c:745
static HRESULT WINAPI AsyncBindCtx_SetBindOptions(IBindCtx *iface, BIND_OPTS *pbindopts)
Definition: bindctx.c:787

Definition at line 850 of file bindctx.c.

Referenced by CreateAsyncBindCtxEx().

◆ BindStatusCallbackExVtbl

const IBindStatusCallbackExVtbl BindStatusCallbackExVtbl
static
Initial value:
= {
}
static HRESULT WINAPI BindStatusCallback_GetBindInfoEx(IBindStatusCallbackEx *iface, DWORD *grfBINDF, BINDINFO *pbindinfo, DWORD *grfBINDF2, DWORD *pdwReserved)
Definition: bindctx.c:263
static HRESULT WINAPI BindStatusCallback_GetPriority(IBindStatusCallbackEx *iface, LONG *pnPriority)
Definition: bindctx.c:181
static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallbackEx *iface, DWORD *grfBINDF, BINDINFO *pbindinfo)
Definition: bindctx.c:221
static HRESULT WINAPI BindStatusCallback_OnObjectAvailable(IBindStatusCallbackEx *iface, REFIID riid, IUnknown *punk)
Definition: bindctx.c:253
static HRESULT WINAPI BindStatusCallback_OnProgress(IBindStatusCallbackEx *iface, ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
Definition: bindctx.c:199
static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallbackEx *iface, HRESULT hresult, LPCWSTR szError)
Definition: bindctx.c:211
static ULONG WINAPI BindStatusCallback_Release(IBindStatusCallbackEx *iface)
Definition: bindctx.c:154
static HRESULT WINAPI BindStatusCallback_OnLowResource(IBindStatusCallbackEx *iface, DWORD reserved)
Definition: bindctx.c:190
static HRESULT WINAPI BindStatusCallback_OnDataAvailable(IBindStatusCallbackEx *iface, DWORD grfBSCF, DWORD dwSize, FORMATETC *pformatetc, STGMEDIUM *pstgmed)
Definition: bindctx.c:243
static HRESULT WINAPI BindStatusCallback_QueryInterface(IBindStatusCallbackEx *iface, REFIID riid, void **ppv)
Definition: bindctx.c:99
static ULONG WINAPI BindStatusCallback_AddRef(IBindStatusCallbackEx *iface)
Definition: bindctx.c:144
static HRESULT WINAPI BindStatusCallback_OnStartBinding(IBindStatusCallbackEx *iface, DWORD dwReserved, IBinding *pbind)
Definition: bindctx.c:171

Definition at line 283 of file bindctx.c.

Referenced by wrap_callback().

◆ BSCAuthenticateVtbl

const IAuthenticateVtbl BSCAuthenticateVtbl
static
Initial value:
= {
}
static ULONG WINAPI BSCAuthenticate_AddRef(IAuthenticate *iface)
Definition: bindctx.c:477
static ULONG WINAPI BSCAuthenticate_Release(IAuthenticate *iface)
Definition: bindctx.c:483
static HRESULT WINAPI BSCAuthenticate_QueryInterface(IAuthenticate *iface, REFIID riid, void **ppv)
Definition: bindctx.c:471
static HRESULT WINAPI BSCAuthenticate_Authenticate(IAuthenticate *iface, HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword)
Definition: bindctx.c:489

Definition at line 497 of file bindctx.c.

Referenced by wrap_callback().

◆ bscb_holderW

WCHAR bscb_holderW[] = { '_','B','S','C','B','_','H','o','l','d','e','r','_',0 }
static

◆ BSCHttpNegotiateVtbl

const IHttpNegotiate2Vtbl BSCHttpNegotiateVtbl
static
Initial value:
= {
}
static HRESULT WINAPI BSCHttpNegotiate_BeginningTransaction(IHttpNegotiate2 *iface, LPCWSTR szURL, LPCWSTR szHeaders, DWORD dwReserved, LPWSTR *pszAdditionalHeaders)
Definition: bindctx.c:389
static HRESULT WINAPI BSCHttpNegotiate_GetRootSecurityId(IHttpNegotiate2 *iface, BYTE *pbSecurityId, DWORD *pcbSecurityId, DWORD_PTR dwReserved)
Definition: bindctx.c:438
static HRESULT WINAPI BSCHttpNegotiate_QueryInterface(IHttpNegotiate2 *iface, REFIID riid, void **ppv)
Definition: bindctx.c:370
static HRESULT WINAPI BSCHttpNegotiate_OnResponse(IHttpNegotiate2 *iface, DWORD dwResponseCode, LPCWSTR szResponseHeaders, LPCWSTR szRequestHeaders, LPWSTR *pszAdditionalRequestHeaders)
Definition: bindctx.c:411
static ULONG WINAPI BSCHttpNegotiate_AddRef(IHttpNegotiate2 *iface)
Definition: bindctx.c:377
static ULONG WINAPI BSCHttpNegotiate_Release(IHttpNegotiate2 *iface)
Definition: bindctx.c:383

Definition at line 457 of file bindctx.c.

Referenced by wrap_callback().

◆ BSCInternetBindInfoVtbl

IInternetBindInfoVtbl BSCInternetBindInfoVtbl
static
Initial value:
= {
}
static ULONG WINAPI BSCInternetBindInfo_AddRef(IInternetBindInfo *iface)
Definition: bindctx.c:515
static ULONG WINAPI BSCInternetBindInfo_Release(IInternetBindInfo *iface)
Definition: bindctx.c:521
static HRESULT WINAPI BSCInternetBindInfo_GetBindInfo(IInternetBindInfo *iface, DWORD *bindf, BINDINFO *bindinfo)
Definition: bindctx.c:527
static HRESULT WINAPI BSCInternetBindInfo_GetBindString(IInternetBindInfo *iface, ULONG string_type, WCHAR **strs, ULONG cnt, ULONG *fetched)
Definition: bindctx.c:534
static HRESULT WINAPI BSCInternetBindInfo_QueryInterface(IInternetBindInfo *iface, REFIID riid, void **ppv)
Definition: bindctx.c:509

Definition at line 553 of file bindctx.c.

Referenced by wrap_callback().

◆ BSCServiceProviderVtbl

const IServiceProviderVtbl BSCServiceProviderVtbl
static
Initial value:
= {
}
static ULONG WINAPI BSCServiceProvider_AddRef(IServiceProvider *iface)
Definition: bindctx.c:310
static HRESULT WINAPI BSCServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
Definition: bindctx.c:303
static ULONG WINAPI BSCServiceProvider_Release(IServiceProvider *iface)
Definition: bindctx.c:316
static HRESULT WINAPI BSCServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
Definition: bindctx.c:322

Definition at line 358 of file bindctx.c.

Referenced by wrap_callback().

◆ IID_IBindStatusCallbackHolder