5 #ifndef __WINE_URLMON_H
6 #define __WINE_URLMON_H
9 #include "wine/obj_base.h"
13 #endif /* defined(__cplusplus) */
15 DEFINE_GUID(IID_IBinding, 0x79EAC9C0, 0xBAF9, 0x11CE,
16 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);
17 typedef struct IBinding IBinding,*LPBINDING;
19 DEFINE_GUID(IID_IBindStatusCallback, 0x79EAC9C1, 0xBAF9, 0x11CE,
20 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);
22 typedef struct IBindStatusCallback IBindStatusCallback,*LPBINDSTATUSCALLBACK;
24 typedef struct _tagBINDINFO {
34 SECURITY_ATTRIBUTES securityAttributes;
41 BSCF_FIRSTDATANOTIFICATION = 0x01,
42 BSCF_INTERMEDIATEDATANOTIFICATION = 0x02,
43 BSCF_LASTDATANOTIFICATION = 0x04,
44 BSCF_DATAFULLYAVAILABLE = 0x08,
45 BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10
48 #define MK_S_ASYNCHRONOUS 0x000401E8
49 #define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS
51 /*****************************************************************************
54 #define ICOM_INTERFACE IBinding
55 #define IBinding_METHODS \
56 ICOM_METHOD (HRESULT,Abort) \
57 ICOM_METHOD (HRESULT,Suspend) \
58 ICOM_METHOD (HRESULT,Resume) \
59 ICOM_METHOD1 (HRESULT,SetPriority, LONG,nPriority) \
60 ICOM_METHOD1 (HRESULT,GetPriority, LONG*,pnPriority) \
61 ICOM_METHOD4 (HRESULT,GetBindResult, CLSID*,pclsidProtocol, DWORD*,pdwResult, LPOLESTR*,pszResult, DWORD*,pdwReserved)
62 #define IBinding_IMETHODS \
65 ICOM_DEFINE(IBinding,IUnknown)
68 /*** IUnknown methods ***/
69 #define IBinding_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
70 #define IBinding_AddRef(p) ICOM_CALL (AddRef,p)
71 #define IBinding_Release(p) ICOM_CALL (Release,p)
72 /*** IBinding methods ***/
73 #define IBinding_Abort(p) ICOM_CALL (Abort,p)
74 #define IBinding_Suspend(p) ICOM_CALL (Suspend,p)
75 #define IBinding_Resume(p) ICOM_CALL (Resume,p)
76 #define IBinding_SetPriority(p,a) ICOM_CALL2(SetPriority,p,a)
77 #define IBinding_GetPriority(p,a) ICOM_CALL2(GetPriority,p,a)
78 #define IBinding_GetBindResult(p,a,b,c,d) ICOM_CALL4(GetBindResult,p,a,b,c,d)
80 /*****************************************************************************
81 * IBindStatusCallback interface
83 #define ICOM_INTERFACE IBindStatusCallback
84 #define IBindStatusCallback_METHODS \
85 ICOM_METHOD2 (HRESULT,OnStartBinding, DWORD,dwReserved, IBinding*,pib) \
86 ICOM_METHOD1 (HRESULT,GetPriority, LONG*,pnPriority) \
87 ICOM_METHOD (HRESULT,OnLowResource) \
88 ICOM_METHOD4 (HRESULT,OnProgress, ULONG,ulProgress, ULONG,ulProgressMax, ULONG,ulStatusCode, LPCWSTR,szStatusText) \
89 ICOM_METHOD2 (HRESULT,OnStopBinding, HRESULT,hresult, LPCWSTR,szError) \
90 ICOM_METHOD2 (HRESULT,GetBindInfo, DWORD*,grfBINDF, BINDINFO*,pbindinfo) \
91 ICOM_METHOD4 (HRESULT,OnDataAvailable, DWORD,grfBSCF, DWORD,dwSize, FORMATETC*,pformatetc, STGMEDIUM*,pstgmed) \
92 ICOM_METHOD2 (HRESULT,OnObjectAvailable, REFIID,iid, IUnknown*,punk)
93 #define IBindStatusCallback_IMETHODS \
95 IBindStatusCallback_METHODS
96 ICOM_DEFINE(IBindStatusCallback,IUnknown)
99 /*** IUnknown methods ***/
100 #define IBindStatusCallback_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
101 #define IBindStatusCallback_AddRef(p) ICOM_CALL (AddRef,p)
102 #define IBindStatusCallback_Release(p) ICOM_CALL (Release,p)
103 /*** IBindStatusCallback methods ***/
104 #define IBindStatusCallback_OnStartBinding(p,a,b) ICOM_CALL2(OnStartBinding,p,a,b)
105 #define IBindStatusCallback_GetPriority(p,a) ICOM_CALL1(GetPriority,p,a)
106 #define IBindStatusCallback_OnLowResource(p) ICOM_CALL (OnLowResource,p)
107 #define IBindStatusCallback_OnProgress(p,a,b,c,d) ICOM_CALL4(OnProgress,p,a,b,c,d)
108 #define IBindStatusCallback_OnStopBinding(p,a,b) ICOM_CALL2(OnStopBinding,p,a,b)
109 #define IBindStatusCallback_GetBindInfo(p,a,b) ICOM_CALL2(GetBindInfo,p,a,b)
110 #define IBindStatusCallback_OnDataAvailable(p,a,b,c,d) ICOM_CALL4(OnDataAvailable,p,a,b,c,d)
111 #define IBindStatusCallback_OnObjectAvailable(p,a,b) ICOM_CALL2(OnObjectAvailable,p,a,b)
113 HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPWSTR szURL, IMoniker **ppmk);
114 HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pbsc, IBindStatusCallback **ppbsc, DWORD dwReserved);
118 #endif /* defined(__cplusplus) */
120 #endif /* __WINE_URLMON_H */