8 #ifndef COM_NO_WINDOWS_H
14 #ifndef __WINE_URLMON_H
15 #define __WINE_URLMON_H
18 #include "wine/obj_base.h"
22 #endif /* defined(__cplusplus) */
24 DEFINE_GUID(IID_IBinding
, 0x79EAC9C0, 0xBAF9, 0x11CE,
25 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);
26 typedef struct IBinding IBinding
,*LPBINDING
;
28 DEFINE_GUID(IID_IBindStatusCallback
, 0x79EAC9C1, 0xBAF9, 0x11CE,
29 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);
30 typedef struct IBindStatusCallback IBindStatusCallback
,*LPBINDSTATUSCALLBACK
;
32 DEFINE_GUID(IID_IBindHost
, 0XFC4801A1, 0X2BA9, 0X11CF,
33 0XA2, 0X29, 0X00, 0XAA, 0X00, 0X3D, 0X73, 0X52);
34 typedef struct IBindHost IBindHost
,*LPBINDHOST
;
36 DEFINE_GUID(IID_IWinInetInfo
, 0x79EAC9D6, 0xBAFA, 0x11CE,
37 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0X0B);
38 typedef struct IWinInetInfo IWinInetInfo
,*LPWININETINFO
;
40 DEFINE_GUID(IID_IWinInetHttpInfo
, 0x79EAC9D8, 0xBAFA, 0x11CE,
41 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0X0B);
42 typedef struct IWinInetHttpInfo IWinInetHttpInfo
,*LPWININETHTTPINFO
;
45 BINDF_ASYNCHRONOUS
= 0x00000001,
46 BINDF_ASYNCSTORAGE
= 0x00000002,
47 BINDF_NOPROGRESSIVERENDERING
= 0x00000004,
48 BINDF_OFFLINEOPERATION
= 0x00000008,
49 BINDF_GETNEWESTVERSION
= 0x00000010,
50 BINDF_NOWRITECACHE
= 0x00000020,
51 BINDF_NEEDFILE
= 0x00000040,
52 BINDF_PULLDATA
= 0x00000080,
53 BINDF_IGNORESECURITYPROBLEM
= 0x00000100,
54 BINDF_RESYNCHRONIZE
= 0x00000200,
55 BINDF_HYPERLINK
= 0x00000400,
56 BINDF_NO_UI
= 0x00000800,
57 BINDF_SILENTOPERATION
= 0x00001000,
58 BINDF_PRAGMA_NO_CACHE
= 0x00002000,
59 BINDF_GETCLASSOBJECT
= 0x00004000,
60 BINDF_RESERVED_1
= 0x00008000,
61 BINDF_FREE_THREADED
= 0x00010000,
62 BINDF_DIRECT_READ
= 0x00020000,
63 BINDF_FORMS_SUBMIT
= 0x00040000,
64 BINDF_GETFROMCACHE_IF_NET_FAIL
= 0x00080000,
65 BINDF_FROMURLMON
= 0x00100000,
66 BINDF_FWD_BACK
= 0x00200000,
67 BINDF_PREFERDEFAULTHANDLER
= 0x00400000,
68 BINDF_RESERVED_3
= 0x00800000
71 typedef struct _tagBINDINFO
{
81 SECURITY_ATTRIBUTES securityAttributes
;
88 BSCF_FIRSTDATANOTIFICATION
= 0x01,
89 BSCF_INTERMEDIATEDATANOTIFICATION
= 0x02,
90 BSCF_LASTDATANOTIFICATION
= 0x04,
91 BSCF_DATAFULLYAVAILABLE
= 0x08,
92 BSCF_AVAILABLEDATASIZEUNKNOWN
= 0x10
95 typedef enum BINDSTATUS
{
96 BINDSTATUS_FINDINGRESOURCE
,
97 BINDSTATUS_CONNECTING
,
98 BINDSTATUS_REDIRECTING
,
99 BINDSTATUS_BEGINDOWNLOADDATA
,
100 BINDSTATUS_DOWNLOADINGDATA
,
101 BINDSTATUS_ENDDOWNLOADDATA
,
102 BINDSTATUS_BEGINDOWNLOADCOMPONENTS
,
103 BINDSTATUS_INSTALLINGCOMPONENTS
,
104 BINDSTATUS_ENDDOWNLOADCOMPONENTS
,
105 BINDSTATUS_USINGCACHEDCOPY
,
106 BINDSTATUS_SENDINGREQUEST
,
107 BINDSTATUS_CLASSIDAVAILABLE
,
108 BINDSTATUS_MIMETYPEAVAILABLE
,
109 BINDSTATUS_CACHEFILENAMEAVAILABLE
,
110 BINDSTATUS_BEGINSYNCOPERATION
,
111 BINDSTATUS_ENDSYNCOPERATION
,
112 BINDSTATUS_BEGINUPLOADDATA
,
113 BINDSTATUS_UPLOADINGDATA
,
114 BINDSTATUS_ENDUPLOADINGDATA
,
115 BINDSTATUS_PROTOCOLCLASSID
,
117 BINDSTATUS_VERFIEDMIMETYPEAVAILABLE
,
118 BINDSTATUS_CLASSINSTALLLOCATION
,
120 BINDSTATUS_LOADINGMIMEHANDLER
,
121 BINDSTATUS_CONTENTDISPOSITIONATTACH
,
122 BINDSTATUS_FILTERREPORTMIMETYPE
,
123 BINDSTATUS_CLSIDCANINSTANTIATE
,
124 BINDSTATUS_IUNKNOWNAVAILABLE
,
125 BINDSTATUS_DIRECTBIND
,
126 BINDSTATUS_RAWMIMETYPE
,
127 BINDSTATUS_PROXYDETECTING
,
128 BINDSTATUS_ACCEPTRANGES
131 #define MK_S_ASYNCHRONOUS 0x000401E8
132 #define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS
134 /*****************************************************************************
137 #define ICOM_INTERFACE IBinding
138 #define IBinding_METHODS \
139 ICOM_METHOD (HRESULT,Abort) \
140 ICOM_METHOD (HRESULT,Suspend) \
141 ICOM_METHOD (HRESULT,Resume) \
142 ICOM_METHOD1 (HRESULT,SetPriority, LONG,nPriority) \
143 ICOM_METHOD1 (HRESULT,GetPriority, LONG*,pnPriority) \
144 ICOM_METHOD4 (HRESULT,GetBindResult, CLSID*,pclsidProtocol, DWORD*,pdwResult, LPOLESTR*,pszResult, DWORD*,pdwReserved)
145 #define IBinding_IMETHODS \
148 ICOM_DEFINE(IBinding
,IUnknown
)
149 #undef ICOM_INTERFACE
151 /*** IUnknown methods ***/
152 #define IBinding_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
153 #define IBinding_AddRef(p) ICOM_CALL (AddRef,p)
154 #define IBinding_Release(p) ICOM_CALL (Release,p)
155 /*** IBinding methods ***/
156 #define IBinding_Abort(p) ICOM_CALL (Abort,p)
157 #define IBinding_Suspend(p) ICOM_CALL (Suspend,p)
158 #define IBinding_Resume(p) ICOM_CALL (Resume,p)
159 #define IBinding_SetPriority(p,a) ICOM_CALL2(SetPriority,p,a)
160 #define IBinding_GetPriority(p,a) ICOM_CALL2(GetPriority,p,a)
161 #define IBinding_GetBindResult(p,a,b,c,d) ICOM_CALL4(GetBindResult,p,a,b,c,d)
163 /*****************************************************************************
164 * IBindStatusCallback interface
166 #define ICOM_INTERFACE IBindStatusCallback
167 #define IBindStatusCallback_METHODS \
168 ICOM_METHOD2 (HRESULT,OnStartBinding, DWORD,dwReserved, IBinding*,pib) \
169 ICOM_METHOD1 (HRESULT,GetPriority, LONG*,pnPriority) \
170 ICOM_METHOD (HRESULT,OnLowResource) \
171 ICOM_METHOD4 (HRESULT,OnProgress, ULONG,ulProgress, ULONG,ulProgressMax, ULONG,ulStatusCode, LPCWSTR,szStatusText) \
172 ICOM_METHOD2 (HRESULT,OnStopBinding, HRESULT,hresult, LPCWSTR,szError) \
173 ICOM_METHOD2 (HRESULT,GetBindInfo, DWORD*,grfBINDF, BINDINFO*,pbindinfo) \
174 ICOM_METHOD4 (HRESULT,OnDataAvailable, DWORD,grfBSCF, DWORD,dwSize, FORMATETC*,pformatetc, STGMEDIUM*,pstgmed) \
175 ICOM_METHOD2 (HRESULT,OnObjectAvailable, REFIID,iid, IUnknown*,punk)
176 #define IBindStatusCallback_IMETHODS \
178 IBindStatusCallback_METHODS
179 ICOM_DEFINE(IBindStatusCallback
,IUnknown
)
180 #undef ICOM_INTERFACE
182 /*** IUnknown methods ***/
183 #define IBindStatusCallback_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
184 #define IBindStatusCallback_AddRef(p) ICOM_CALL (AddRef,p)
185 #define IBindStatusCallback_Release(p) ICOM_CALL (Release,p)
186 /*** IBindStatusCallback methods ***/
187 #define IBindStatusCallback_OnStartBinding(p,a,b) ICOM_CALL2(OnStartBinding,p,a,b)
188 #define IBindStatusCallback_GetPriority(p,a) ICOM_CALL1(GetPriority,p,a)
189 #define IBindStatusCallback_OnLowResource(p) ICOM_CALL (OnLowResource,p)
190 #define IBindStatusCallback_OnProgress(p,a,b,c,d) ICOM_CALL4(OnProgress,p,a,b,c,d)
191 #define IBindStatusCallback_OnStopBinding(p,a,b) ICOM_CALL2(OnStopBinding,p,a,b)
192 #define IBindStatusCallback_GetBindInfo(p,a,b) ICOM_CALL2(GetBindInfo,p,a,b)
193 #define IBindStatusCallback_OnDataAvailable(p,a,b,c,d) ICOM_CALL4(OnDataAvailable,p,a,b,c,d)
194 #define IBindStatusCallback_OnObjectAvailable(p,a,b) ICOM_CALL2(OnObjectAvailable,p,a,b)
196 /*****************************************************************************
197 * IBindHost interface
199 #define ICOM_INTERFACE IBindHost
200 #define IBindHost_METHODS \
201 ICOM_METHOD4 (HRESULT,CreateMoniker, LPOLESTR,szName, IBindCtx*,pBC, IMoniker**,ppmk, DWORD,dwReserved) \
202 ICOM_METHOD5 (HRESULT,MonikerBindToStorage, IMoniker*,pMk, IBindCtx*,pBC, IBindStatusCallback*,pBSC, REFIID,riid, LPVOID*,ppvObj) \
203 ICOM_METHOD5 (HRESULT,MonikerBindToObject, IMoniker*,pMk, IBindCtx*,pBC, IBindStatusCallback*,pBSC, REFIID,riid, LPVOID*,ppvObj)
204 #define IBindHost_IMETHODS \
207 ICOM_DEFINE(IBindHost
,IUnknown
)
208 #undef ICOM_INTERFACE
210 /*** IUnknown methods ***/
211 #define IBindHost_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
212 #define IBindHost_AddRef(p) ICOM_CALL (AddRef,p)
213 #define IBindHost_Release(p) ICOM_CALL (Release,p)
214 /*** IBindHost methods ***/
215 #define IBindHost_CreateMoniker(p,a,b,c,d) ICOM_CALL4(CreateMoniker,p,a,b,c,d)
216 #define IBindHost_MonikerBindToStorage(p,a,b,c,d,e) ICOM_CALL5(MonikerBindToStorage,p,a,b,c,d,e)
217 #define IBindHost_MonikerBindToObject(p,a,b,c,d,e) ICOM_CALL5(MonikerBindToObject,p,a,b,c,d,e)
219 /*** IUnknown methods ***/
220 typedef enum _tagQUERYOPTION
{
221 QUERY_EXPIRATION_DATE
= 1,
222 QUERY_TIME_OF_LAST_CHANGE
,
223 QUERY_CONTENT_ENCODING
,
230 QUERY_IS_INSTALLEDENTRY
,
231 QUERY_IS_CACHED_OR_MAPPED
,
237 /*****************************************************************************
238 * IWinInetInfo interface
240 #define ICOM_INTERFACE IWinInetInfo
241 #define IWinInetInfo_METHODS \
242 ICOM_METHOD3 (HRESULT,QueryOption, DWORD,dwOption, LPVOID,pBuffer, DWORD*,pcbBuf)
243 #define IWinInetInfo_IMETHODS \
246 ICOM_DEFINE(IWinInetInfo
,IUnknown
)
247 #undef ICOM_INTERFACE
249 /*** IUnknown methods ***/
250 #define IWinInetInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
251 #define IWinInetInfo_AddRef(p) ICOM_CALL (AddRef,p)
252 #define IWinInetInfo_Release(p) ICOM_CALL (Release,p)
253 /*** IWinInetInfo methods ***/
254 #define IWinInetInfo_QueryOption(p,a,b,c) ICOM_CALL3(QueryOption,p,a,b,c)
256 /*****************************************************************************
257 * IWinInetHttpInfo interface
259 #define ICOM_INTERFACE IWinInetHttpInfo
260 #define IWinInetHttpInfo_METHODS \
261 ICOM_METHOD5 (HRESULT,QueryInfo, DWORD,dwOption, LPVOID,pBuffer, DWORD*,pcbBuf, DWORD*,pdwFlags, DWORD*,pdwReserved)
262 #define IWinInetHttpInfo_IMETHODS \
263 IWinInetInfo_IMETHODS \
264 IWinInetHttpInfo_METHODS
265 ICOM_DEFINE(IWinInetHttpInfo
,IWinInetInfo
)
266 #undef ICOM_INTERFACE
268 /*** IUnknown methods ***/
269 #define IWinInetHttpInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
270 #define IWinInetHttpInfo_AddRef(p) ICOM_CALL (AddRef,p)
271 #define IWinInetHttpInfo_Release(p) ICOM_CALL (Release,p)
272 /*** IWinInetHttpInfo methods ***/
273 #define IWinInetHttpInfo_QueryInfo(p,a,b,c,d,e) ICOM_CALL5(QueryInfo,p,a,b,c,d,e)
275 HRESULT WINAPI
CreateURLMoniker(IMoniker
*pmkContext
, LPWSTR szURL
, IMoniker
**ppmk
);
276 HRESULT WINAPI
RegisterBindStatusCallback(IBindCtx
*pbc
, IBindStatusCallback
*pbsc
, IBindStatusCallback
**ppbsc
, DWORD dwReserved
);
280 #endif /* defined(__cplusplus) */
282 #endif /* __WINE_URLMON_H */