Fixed some more overflowing string traces.
[wine/dcerpc.git] / include / urlmon.h
blob8029f6ad9ed1833d75929384a823160b61bc1a86
1 /*
2 * urlmon.h
3 */
5 #ifndef __WINE_URLMON_H
6 #define __WINE_URLMON_H
8 #include "winbase.h"
9 #include "wine/obj_base.h"
11 #ifdef __cplusplus
12 extern "C" {
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);
21 typedef struct IBindStatusCallback IBindStatusCallback,*LPBINDSTATUSCALLBACK;
23 DEFINE_GUID(IID_IBindHost, 0XFC4801A1, 0X2BA9, 0X11CF,
24 0XA2, 0X29, 0X00, 0XAA, 0X00, 0X3D, 0X73, 0X52);
25 typedef struct IBindHost IBindHost,*LPBINDHOST;
27 DEFINE_GUID(IID_IWinInetInfo, 0x79EAC9D6, 0xBAFA, 0x11CE,
28 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0X0B);
29 typedef struct IWinInetInfo IWinInetInfo,*LPWININETINFO;
31 DEFINE_GUID(IID_IWinInetHttpInfo, 0x79EAC9D8, 0xBAFA, 0x11CE,
32 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0X0B);
33 typedef struct IWinInetHttpInfo IWinInetHttpInfo,*LPWININETHTTPINFO;
35 typedef enum {
36 BINDF_ASYNCHRONOUS = 0x00000001,
37 BINDF_ASYNCSTORAGE = 0x00000002,
38 BINDF_NOPROGRESSIVERENDERING = 0x00000004,
39 BINDF_OFFLINEOPERATION = 0x00000008,
40 BINDF_GETNEWESTVERSION = 0x00000010,
41 BINDF_NOWRITECACHE = 0x00000020,
42 BINDF_NEEDFILE = 0x00000040,
43 BINDF_PULLDATA = 0x00000080,
44 BINDF_IGNORESECURITYPROBLEM = 0x00000100,
45 BINDF_RESYNCHRONIZE = 0x00000200,
46 BINDF_HYPERLINK = 0x00000400,
47 BINDF_NO_UI = 0x00000800,
48 BINDF_SILENTOPERATION = 0x00001000,
49 BINDF_PRAGMA_NO_CACHE = 0x00002000,
50 BINDF_GETCLASSOBJECT = 0x00004000,
51 BINDF_RESERVED_1 = 0x00008000,
52 BINDF_FREE_THREADED = 0x00010000,
53 BINDF_DIRECT_READ = 0x00020000,
54 BINDF_FORMS_SUBMIT = 0x00040000,
55 BINDF_GETFROMCACHE_IF_NET_FAIL = 0x00080000,
56 BINDF_FROMURLMON = 0x00100000,
57 BINDF_FWD_BACK = 0x00200000,
58 BINDF_PREFERDEFAULTHANDLER = 0x00400000,
59 BINDF_RESERVED_3 = 0x00800000
60 } BINDF;
62 typedef struct _tagBINDINFO {
63 ULONG cbSize;
64 LPWSTR szExtraInfo;
65 STGMEDIUM stgmedData;
66 DWORD dwBindVerb;
67 LPWSTR szCustomVerb;
68 DWORD cbStgmedData;
69 DWORD dwOptions;
70 DWORD dwOptionsFlags;
71 DWORD dwCodePage;
72 SECURITY_ATTRIBUTES securityAttributes;
73 IID iid;
74 IUnknown *pUnk;
75 DWORD dwReserved;
76 } BINDINFO;
78 typedef enum {
79 BSCF_FIRSTDATANOTIFICATION = 0x01,
80 BSCF_INTERMEDIATEDATANOTIFICATION = 0x02,
81 BSCF_LASTDATANOTIFICATION = 0x04,
82 BSCF_DATAFULLYAVAILABLE = 0x08,
83 BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10
84 } BSCF;
86 typedef enum BINDSTATUS {
87 BINDSTATUS_FINDINGRESOURCE,
88 BINDSTATUS_CONNECTING,
89 BINDSTATUS_REDIRECTING,
90 BINDSTATUS_BEGINDOWNLOADDATA,
91 BINDSTATUS_DOWNLOADINGDATA,
92 BINDSTATUS_ENDDOWNLOADDATA,
93 BINDSTATUS_BEGINDOWNLOADCOMPONENTS,
94 BINDSTATUS_INSTALLINGCOMPONENTS,
95 BINDSTATUS_ENDDOWNLOADCOMPONENTS,
96 BINDSTATUS_USINGCACHEDCOPY,
97 BINDSTATUS_SENDINGREQUEST,
98 BINDSTATUS_CLASSIDAVAILABLE,
99 BINDSTATUS_MIMETYPEAVAILABLE,
100 BINDSTATUS_CACHEFILENAMEAVAILABLE,
101 BINDSTATUS_BEGINSYNCOPERATION,
102 BINDSTATUS_ENDSYNCOPERATION,
103 BINDSTATUS_BEGINUPLOADDATA,
104 BINDSTATUS_UPLOADINGDATA,
105 BINDSTATUS_ENDUPLOADINGDATA,
106 BINDSTATUS_PROTOCOLCLASSID,
107 BINDSTATUS_ENCODING,
108 BINDSTATUS_VERFIEDMIMETYPEAVAILABLE,
109 BINDSTATUS_CLASSINSTALLLOCATION,
110 BINDSTATUS_DECODING,
111 BINDSTATUS_LOADINGMIMEHANDLER,
112 BINDSTATUS_CONTENTDISPOSITIONATTACH,
113 BINDSTATUS_FILTERREPORTMIMETYPE,
114 BINDSTATUS_CLSIDCANINSTANTIATE,
115 BINDSTATUS_IUNKNOWNAVAILABLE,
116 BINDSTATUS_DIRECTBIND,
117 BINDSTATUS_RAWMIMETYPE,
118 BINDSTATUS_PROXYDETECTING,
119 BINDSTATUS_ACCEPTRANGES
120 } BINDSTATUS;
122 #define MK_S_ASYNCHRONOUS 0x000401E8
123 #define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS
125 /*****************************************************************************
126 * IBinding interface
128 #define ICOM_INTERFACE IBinding
129 #define IBinding_METHODS \
130 ICOM_METHOD (HRESULT,Abort) \
131 ICOM_METHOD (HRESULT,Suspend) \
132 ICOM_METHOD (HRESULT,Resume) \
133 ICOM_METHOD1 (HRESULT,SetPriority, LONG,nPriority) \
134 ICOM_METHOD1 (HRESULT,GetPriority, LONG*,pnPriority) \
135 ICOM_METHOD4 (HRESULT,GetBindResult, CLSID*,pclsidProtocol, DWORD*,pdwResult, LPOLESTR*,pszResult, DWORD*,pdwReserved)
136 #define IBinding_IMETHODS \
137 IUnknown_IMETHODS \
138 IBinding_METHODS
139 ICOM_DEFINE(IBinding,IUnknown)
140 #undef ICOM_INTERFACE
142 /*** IUnknown methods ***/
143 #define IBinding_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
144 #define IBinding_AddRef(p) ICOM_CALL (AddRef,p)
145 #define IBinding_Release(p) ICOM_CALL (Release,p)
146 /*** IBinding methods ***/
147 #define IBinding_Abort(p) ICOM_CALL (Abort,p)
148 #define IBinding_Suspend(p) ICOM_CALL (Suspend,p)
149 #define IBinding_Resume(p) ICOM_CALL (Resume,p)
150 #define IBinding_SetPriority(p,a) ICOM_CALL2(SetPriority,p,a)
151 #define IBinding_GetPriority(p,a) ICOM_CALL2(GetPriority,p,a)
152 #define IBinding_GetBindResult(p,a,b,c,d) ICOM_CALL4(GetBindResult,p,a,b,c,d)
154 /*****************************************************************************
155 * IBindStatusCallback interface
157 #define ICOM_INTERFACE IBindStatusCallback
158 #define IBindStatusCallback_METHODS \
159 ICOM_METHOD2 (HRESULT,OnStartBinding, DWORD,dwReserved, IBinding*,pib) \
160 ICOM_METHOD1 (HRESULT,GetPriority, LONG*,pnPriority) \
161 ICOM_METHOD (HRESULT,OnLowResource) \
162 ICOM_METHOD4 (HRESULT,OnProgress, ULONG,ulProgress, ULONG,ulProgressMax, ULONG,ulStatusCode, LPCWSTR,szStatusText) \
163 ICOM_METHOD2 (HRESULT,OnStopBinding, HRESULT,hresult, LPCWSTR,szError) \
164 ICOM_METHOD2 (HRESULT,GetBindInfo, DWORD*,grfBINDF, BINDINFO*,pbindinfo) \
165 ICOM_METHOD4 (HRESULT,OnDataAvailable, DWORD,grfBSCF, DWORD,dwSize, FORMATETC*,pformatetc, STGMEDIUM*,pstgmed) \
166 ICOM_METHOD2 (HRESULT,OnObjectAvailable, REFIID,iid, IUnknown*,punk)
167 #define IBindStatusCallback_IMETHODS \
168 IUnknown_IMETHODS \
169 IBindStatusCallback_METHODS
170 ICOM_DEFINE(IBindStatusCallback,IUnknown)
171 #undef ICOM_INTERFACE
173 /*** IUnknown methods ***/
174 #define IBindStatusCallback_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
175 #define IBindStatusCallback_AddRef(p) ICOM_CALL (AddRef,p)
176 #define IBindStatusCallback_Release(p) ICOM_CALL (Release,p)
177 /*** IBindStatusCallback methods ***/
178 #define IBindStatusCallback_OnStartBinding(p,a,b) ICOM_CALL2(OnStartBinding,p,a,b)
179 #define IBindStatusCallback_GetPriority(p,a) ICOM_CALL1(GetPriority,p,a)
180 #define IBindStatusCallback_OnLowResource(p) ICOM_CALL (OnLowResource,p)
181 #define IBindStatusCallback_OnProgress(p,a,b,c,d) ICOM_CALL4(OnProgress,p,a,b,c,d)
182 #define IBindStatusCallback_OnStopBinding(p,a,b) ICOM_CALL2(OnStopBinding,p,a,b)
183 #define IBindStatusCallback_GetBindInfo(p,a,b) ICOM_CALL2(GetBindInfo,p,a,b)
184 #define IBindStatusCallback_OnDataAvailable(p,a,b,c,d) ICOM_CALL4(OnDataAvailable,p,a,b,c,d)
185 #define IBindStatusCallback_OnObjectAvailable(p,a,b) ICOM_CALL2(OnObjectAvailable,p,a,b)
187 /*****************************************************************************
188 * IBindHost interface
190 #define ICOM_INTERFACE IBindHost
191 #define IBindHost_METHODS \
192 ICOM_METHOD4 (HRESULT,CreateMoniker, LPOLESTR,szName, IBindCtx*,pBC, IMoniker**,ppmk, DWORD,dwReserved) \
193 ICOM_METHOD5 (HRESULT,MonikerBindToStorage, IMoniker*,pMk, IBindCtx*,pBC, IBindStatusCallback*,pBSC, REFIID,riid, LPVOID*,ppvObj) \
194 ICOM_METHOD5 (HRESULT,MonikerBindToObject, IMoniker*,pMk, IBindCtx*,pBC, IBindStatusCallback*,pBSC, REFIID,riid, LPVOID*,ppvObj)
195 #define IBindHost_IMETHODS \
196 IUnknown_IMETHODS \
197 IBindHost_METHODS
198 ICOM_DEFINE(IBindHost,IUnknown)
199 #undef ICOM_INTERFACE
201 /*** IUnknown methods ***/
202 #define IBindHost_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
203 #define IBindHost_AddRef(p) ICOM_CALL (AddRef,p)
204 #define IBindHost_Release(p) ICOM_CALL (Release,p)
205 /*** IBindHost methods ***/
206 #define IBindHost_CreateMoniker(p,a,b,c,d) ICOM_CALL4(CreateMoniker,p,a,b,c,d)
207 #define IBindHost_MonikerBindToStorage(p,a,b,c,d,e) ICOM_CALL5(MonikerBindToStorage,p,a,b,c,d,e)
208 #define IBindHost_MonikerBindToObject(p,a,b,c,d,e) ICOM_CALL5(MonikerBindToObject,p,a,b,c,d,e)
210 /*** IUnknown methods ***/
211 typedef enum _tagQUERYOPTION {
212 QUERY_EXPIRATION_DATE = 1,
213 QUERY_TIME_OF_LAST_CHANGE,
214 QUERY_CONTENT_ENCODING,
215 QUERY_CONTENT_TYPE,
216 QUERY_REFRESH,
217 QUERY_RECOMBINE,
218 QUERY_CAN_NAVIGATE,
219 QUERY_USES_NETWORK,
220 QUERY_IS_CACHED,
221 QUERY_IS_INSTALLEDENTRY,
222 QUERY_IS_CACHED_OR_MAPPED,
223 QUERY_USES_CACHE,
224 QUERY_IS_SECURE,
225 QUERY_IS_SAFE
226 } QUERYOPTION;
228 /*****************************************************************************
229 * IWinInetInfo interface
231 #define ICOM_INTERFACE IWinInetInfo
232 #define IWinInetInfo_METHODS \
233 ICOM_METHOD3 (HRESULT,QueryOption, DWORD,dwOption, LPVOID,pBuffer, DWORD*,pcbBuf)
234 #define IWinInetInfo_IMETHODS \
235 IUnknown_IMETHODS \
236 IWinInetInfo_METHODS
237 ICOM_DEFINE(IWinInetInfo,IUnknown)
238 #undef ICOM_INTERFACE
240 /*** IUnknown methods ***/
241 #define IWinInetInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
242 #define IWinInetInfo_AddRef(p) ICOM_CALL (AddRef,p)
243 #define IWinInetInfo_Release(p) ICOM_CALL (Release,p)
244 /*** IWinInetInfo methods ***/
245 #define IWinInetInfo_QueryOption(p,a,b,c) ICOM_CALL3(QueryOption,p,a,b,c)
247 /*****************************************************************************
248 * IWinInetHttpInfo interface
250 #define ICOM_INTERFACE IWinInetHttpInfo
251 #define IWinInetHttpInfo_METHODS \
252 ICOM_METHOD5 (HRESULT,QueryInfo, DWORD,dwOption, LPVOID,pBuffer, DWORD*,pcbBuf, DWORD*,pdwFlags, DWORD*,pdwReserved)
253 #define IWinInetHttpInfo_IMETHODS \
254 IWinInetInfo_IMETHODS \
255 IWinInetHttpInfo_METHODS
256 ICOM_DEFINE(IWinInetHttpInfo,IWinInetInfo)
257 #undef ICOM_INTERFACE
259 /*** IUnknown methods ***/
260 #define IWinInetHttpInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
261 #define IWinInetHttpInfo_AddRef(p) ICOM_CALL (AddRef,p)
262 #define IWinInetHttpInfo_Release(p) ICOM_CALL (Release,p)
263 /*** IWinInetHttpInfo methods ***/
264 #define IWinInetHttpInfo_QueryInfo(p,a,b,c,d,e) ICOM_CALL5(QueryInfo,p,a,b,c,d,e)
266 HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPWSTR szURL, IMoniker **ppmk);
267 HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pbsc, IBindStatusCallback **ppbsc, DWORD dwReserved);
269 #ifdef __cplusplus
270 } /* extern "C" */
271 #endif /* defined(__cplusplus) */
273 #endif /* __WINE_URLMON_H */