Sync with trunk r63174.
[reactos.git] / dll / win32 / urlmon / umstream.c
index 5a942f6..3f33a23 100644 (file)
 
 #include "urlmon_main.h"
 
-#include "winreg.h"
-#include "winternl.h"
-#include "wininet.h"
-#include "shlwapi.h"
-
-#include "wine/debug.h"
-
-WINE_DEFAULT_DEBUG_CHANNEL(urlmon);
-
 typedef struct ProxyBindStatusCallback
 {
-    const IBindStatusCallbackVtbl *lpVtbl;
+    IBindStatusCallback IBindStatusCallback_iface;
 
     IBindStatusCallback *pBSC;
 } ProxyBindStatusCallback;
 
+static inline ProxyBindStatusCallback *impl_from_IBindStatusCallback(IBindStatusCallback *iface)
+{
+    return CONTAINING_RECORD(iface, ProxyBindStatusCallback, IBindStatusCallback_iface);
+}
+
 static HRESULT WINAPI ProxyBindStatusCallback_QueryInterface(IBindStatusCallback *iface, REFIID riid, void **ppv)
 {
     if (IsEqualGUID(&IID_IBindStatusCallback, riid) ||
         IsEqualGUID(&IID_IUnknown, riid))
     {
         *ppv = iface;
-        IUnknown_AddRef(iface);
+        IBindStatusCallback_AddRef(iface);
         return S_OK;
     }
 
@@ -64,7 +60,7 @@ static ULONG WINAPI ProxyBindStatusCallback_Release(IBindStatusCallback *iface)
 static HRESULT WINAPI ProxyBindStatusCallback_OnStartBinding(IBindStatusCallback *iface, DWORD dwReserved,
                                                IBinding *pib)
 {
-    ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
+    ProxyBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
 
     if(This->pBSC)
         return IBindStatusCallback_OnStartBinding(This->pBSC, dwReserved, pib);
@@ -74,7 +70,7 @@ static HRESULT WINAPI ProxyBindStatusCallback_OnStartBinding(IBindStatusCallback
 
 static HRESULT WINAPI ProxyBindStatusCallback_GetPriority(IBindStatusCallback *iface, LONG *pnPriority)
 {
-    ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
+    ProxyBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
 
     if(This->pBSC)
         return IBindStatusCallback_GetPriority(This->pBSC, pnPriority);
@@ -84,7 +80,7 @@ static HRESULT WINAPI ProxyBindStatusCallback_GetPriority(IBindStatusCallback *i
 
 static HRESULT WINAPI ProxyBindStatusCallback_OnLowResource(IBindStatusCallback *iface, DWORD reserved)
 {
-    ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
+    ProxyBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
 
     if(This->pBSC)
         return IBindStatusCallback_OnLowResource(This->pBSC, reserved);
@@ -95,7 +91,7 @@ static HRESULT WINAPI ProxyBindStatusCallback_OnLowResource(IBindStatusCallback
 static HRESULT WINAPI ProxyBindStatusCallback_OnProgress(IBindStatusCallback *iface, ULONG ulProgress,
                                            ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
 {
-    ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
+    ProxyBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
 
     if(This->pBSC)
         return IBindStatusCallback_OnProgress(This->pBSC, ulProgress,
@@ -107,7 +103,7 @@ static HRESULT WINAPI ProxyBindStatusCallback_OnProgress(IBindStatusCallback *if
 
 static HRESULT WINAPI ProxyBindStatusCallback_OnStopBinding(IBindStatusCallback *iface, HRESULT hresult, LPCWSTR szError)
 {
-    ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
+    ProxyBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
 
     if(This->pBSC)
         return IBindStatusCallback_OnStopBinding(This->pBSC, hresult, szError);
@@ -117,7 +113,7 @@ static HRESULT WINAPI ProxyBindStatusCallback_OnStopBinding(IBindStatusCallback
 
 static HRESULT WINAPI ProxyBindStatusCallback_GetBindInfo(IBindStatusCallback *iface, DWORD *grfBINDF, BINDINFO *pbindinfo)
 {
-    ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
+    ProxyBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
 
     if(This->pBSC)
         return IBindStatusCallback_GetBindInfo(This->pBSC, grfBINDF, pbindinfo);
@@ -128,7 +124,7 @@ static HRESULT WINAPI ProxyBindStatusCallback_GetBindInfo(IBindStatusCallback *i
 static HRESULT WINAPI ProxyBindStatusCallback_OnDataAvailable(IBindStatusCallback *iface, DWORD grfBSCF,
                                                               DWORD dwSize, FORMATETC* pformatetc, STGMEDIUM* pstgmed)
 {
-    ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
+    ProxyBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
 
     if(This->pBSC)
         return IBindStatusCallback_OnDataAvailable(This->pBSC, grfBSCF, dwSize,
@@ -139,7 +135,7 @@ static HRESULT WINAPI ProxyBindStatusCallback_OnDataAvailable(IBindStatusCallbac
 
 static HRESULT WINAPI ProxyBindStatusCallback_OnObjectAvailable(IBindStatusCallback *iface, REFIID riid, IUnknown *punk)
 {
-    ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
+    ProxyBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
 
     if(This->pBSC)
         return IBindStatusCallback_OnObjectAvailable(This->pBSC, riid, punk);
@@ -170,7 +166,7 @@ static const IBindStatusCallbackVtbl BlockingBindStatusCallbackVtbl =
 
 static HRESULT WINAPI AsyncBindStatusCallback_GetBindInfo(IBindStatusCallback *iface, DWORD *grfBINDF, BINDINFO *pbindinfo)
 {
-    ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
+    ProxyBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
     HRESULT hr = IBindStatusCallback_GetBindInfo(This->pBSC, grfBINDF, pbindinfo);
     *grfBINDF |= BINDF_PULLDATA | BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE;
     return hr;
@@ -276,10 +272,10 @@ HRESULT WINAPI URLOpenBlockingStreamW(LPUNKNOWN pCaller, LPCWSTR szURL,
     if (!szURL || !ppStream)
         return E_INVALIDARG;
 
-    blocking_bsc.lpVtbl = &BlockingBindStatusCallbackVtbl;
+    blocking_bsc.IBindStatusCallback_iface.lpVtbl = &BlockingBindStatusCallbackVtbl;
     blocking_bsc.pBSC = lpfnCB;
 
-    return URLStartDownload(szURL, ppStream, (IBindStatusCallback *)&blocking_bsc);
+    return URLStartDownload(szURL, ppStream, &blocking_bsc.IBindStatusCallback_iface);
 }
 
 /***********************************************************************
@@ -326,10 +322,10 @@ HRESULT WINAPI URLOpenStreamW(LPUNKNOWN pCaller, LPCWSTR szURL, DWORD dwReserved
     if (!szURL)
         return E_INVALIDARG;
 
-    async_bsc.lpVtbl = &AsyncBindStatusCallbackVtbl;
+    async_bsc.IBindStatusCallback_iface.lpVtbl = &AsyncBindStatusCallbackVtbl;
     async_bsc.pBSC = lpfnCB;
 
-    hr = URLStartDownload(szURL, &pStream, (IBindStatusCallback *)&async_bsc);
+    hr = URLStartDownload(szURL, &pStream, &async_bsc.IBindStatusCallback_iface);
     if (SUCCEEDED(hr) && pStream)
         IStream_Release(pStream);