1 /*** Autogenerated by WIDL 1.6 from include/urlmon.idl - Do not edit ***/
2 
3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
5 #endif
6 
7 #include <rpc.h>
8 #include <rpcndr.h>
9 
10 #ifndef COM_NO_WINDOWS_H
11 #include <windows.h>
12 #include <ole2.h>
13 #endif
14 
15 #ifndef __urlmon_h__
16 #define __urlmon_h__
17 
18 /* Forward declarations */
19 
20 #ifndef __IPersistMoniker_FWD_DEFINED__
21 #define __IPersistMoniker_FWD_DEFINED__
22 typedef interface IPersistMoniker IPersistMoniker;
23 #endif
24 
25 #ifndef __IMonikerProp_FWD_DEFINED__
26 #define __IMonikerProp_FWD_DEFINED__
27 typedef interface IMonikerProp IMonikerProp;
28 #endif
29 
30 #ifndef __IBindProtocol_FWD_DEFINED__
31 #define __IBindProtocol_FWD_DEFINED__
32 typedef interface IBindProtocol IBindProtocol;
33 #endif
34 
35 #ifndef __IBinding_FWD_DEFINED__
36 #define __IBinding_FWD_DEFINED__
37 typedef interface IBinding IBinding;
38 #endif
39 
40 #ifndef __IBindStatusCallback_FWD_DEFINED__
41 #define __IBindStatusCallback_FWD_DEFINED__
42 typedef interface IBindStatusCallback IBindStatusCallback;
43 #endif
44 
45 #ifndef __IBindStatusCallbackEx_FWD_DEFINED__
46 #define __IBindStatusCallbackEx_FWD_DEFINED__
47 typedef interface IBindStatusCallbackEx IBindStatusCallbackEx;
48 #endif
49 
50 #ifndef __IAuthenticate_FWD_DEFINED__
51 #define __IAuthenticate_FWD_DEFINED__
52 typedef interface IAuthenticate IAuthenticate;
53 #endif
54 
55 #ifndef __IAuthenticateEx_FWD_DEFINED__
56 #define __IAuthenticateEx_FWD_DEFINED__
57 typedef interface IAuthenticateEx IAuthenticateEx;
58 #endif
59 
60 #ifndef __IHttpNegotiate_FWD_DEFINED__
61 #define __IHttpNegotiate_FWD_DEFINED__
62 typedef interface IHttpNegotiate IHttpNegotiate;
63 #endif
64 
65 #ifndef __IHttpNegotiate2_FWD_DEFINED__
66 #define __IHttpNegotiate2_FWD_DEFINED__
67 typedef interface IHttpNegotiate2 IHttpNegotiate2;
68 #endif
69 
70 #ifndef __IHttpNegotiate3_FWD_DEFINED__
71 #define __IHttpNegotiate3_FWD_DEFINED__
72 typedef interface IHttpNegotiate3 IHttpNegotiate3;
73 #endif
74 
75 #ifndef __IWinInetFileStream_FWD_DEFINED__
76 #define __IWinInetFileStream_FWD_DEFINED__
77 typedef interface IWinInetFileStream IWinInetFileStream;
78 #endif
79 
80 #ifndef __IWindowForBindingUI_FWD_DEFINED__
81 #define __IWindowForBindingUI_FWD_DEFINED__
82 typedef interface IWindowForBindingUI IWindowForBindingUI;
83 #endif
84 
85 #ifndef __ICodeInstall_FWD_DEFINED__
86 #define __ICodeInstall_FWD_DEFINED__
87 typedef interface ICodeInstall ICodeInstall;
88 #endif
89 
90 #ifndef __IUri_FWD_DEFINED__
91 #define __IUri_FWD_DEFINED__
92 typedef interface IUri IUri;
93 #endif
94 
95 #ifndef __IUriContainer_FWD_DEFINED__
96 #define __IUriContainer_FWD_DEFINED__
97 typedef interface IUriContainer IUriContainer;
98 #endif
99 
100 #ifndef __IUriBuilder_FWD_DEFINED__
101 #define __IUriBuilder_FWD_DEFINED__
102 typedef interface IUriBuilder IUriBuilder;
103 #endif
104 
105 #ifndef __IUriBuilderFactory_FWD_DEFINED__
106 #define __IUriBuilderFactory_FWD_DEFINED__
107 typedef interface IUriBuilderFactory IUriBuilderFactory;
108 #endif
109 
110 #ifndef __IWinInetInfo_FWD_DEFINED__
111 #define __IWinInetInfo_FWD_DEFINED__
112 typedef interface IWinInetInfo IWinInetInfo;
113 #endif
114 
115 #ifndef __IHttpSecurity_FWD_DEFINED__
116 #define __IHttpSecurity_FWD_DEFINED__
117 typedef interface IHttpSecurity IHttpSecurity;
118 #endif
119 
120 #ifndef __IWinInetHttpInfo_FWD_DEFINED__
121 #define __IWinInetHttpInfo_FWD_DEFINED__
122 typedef interface IWinInetHttpInfo IWinInetHttpInfo;
123 #endif
124 
125 #ifndef __IWinInetHttpTimeouts_FWD_DEFINED__
126 #define __IWinInetHttpTimeouts_FWD_DEFINED__
127 typedef interface IWinInetHttpTimeouts IWinInetHttpTimeouts;
128 #endif
129 
130 #ifndef __IWinInetCacheHints_FWD_DEFINED__
131 #define __IWinInetCacheHints_FWD_DEFINED__
132 typedef interface IWinInetCacheHints IWinInetCacheHints;
133 #endif
134 
135 #ifndef __IWinInetCacheHints2_FWD_DEFINED__
136 #define __IWinInetCacheHints2_FWD_DEFINED__
137 typedef interface IWinInetCacheHints2 IWinInetCacheHints2;
138 #endif
139 
140 #ifndef __IBindHost_FWD_DEFINED__
141 #define __IBindHost_FWD_DEFINED__
142 typedef interface IBindHost IBindHost;
143 #endif
144 
145 #ifndef __IInternet_FWD_DEFINED__
146 #define __IInternet_FWD_DEFINED__
147 typedef interface IInternet IInternet;
148 #endif
149 
150 #ifndef __IInternetBindInfo_FWD_DEFINED__
151 #define __IInternetBindInfo_FWD_DEFINED__
152 typedef interface IInternetBindInfo IInternetBindInfo;
153 #endif
154 
155 #ifndef __IInternetBindInfoEx_FWD_DEFINED__
156 #define __IInternetBindInfoEx_FWD_DEFINED__
157 typedef interface IInternetBindInfoEx IInternetBindInfoEx;
158 #endif
159 
160 #ifndef __IInternetProtocolRoot_FWD_DEFINED__
161 #define __IInternetProtocolRoot_FWD_DEFINED__
162 typedef interface IInternetProtocolRoot IInternetProtocolRoot;
163 #endif
164 
165 #ifndef __IInternetProtocol_FWD_DEFINED__
166 #define __IInternetProtocol_FWD_DEFINED__
167 typedef interface IInternetProtocol IInternetProtocol;
168 #endif
169 
170 #ifndef __IInternetProtocolEx_FWD_DEFINED__
171 #define __IInternetProtocolEx_FWD_DEFINED__
172 typedef interface IInternetProtocolEx IInternetProtocolEx;
173 #endif
174 
175 #ifndef __IInternetProtocolSink_FWD_DEFINED__
176 #define __IInternetProtocolSink_FWD_DEFINED__
177 typedef interface IInternetProtocolSink IInternetProtocolSink;
178 #endif
179 
180 #ifndef __IInternetProtocolSinkStackable_FWD_DEFINED__
181 #define __IInternetProtocolSinkStackable_FWD_DEFINED__
182 typedef interface IInternetProtocolSinkStackable IInternetProtocolSinkStackable;
183 #endif
184 
185 #ifndef __IInternetSession_FWD_DEFINED__
186 #define __IInternetSession_FWD_DEFINED__
187 typedef interface IInternetSession IInternetSession;
188 #endif
189 
190 #ifndef __IInternetThreadSwitch_FWD_DEFINED__
191 #define __IInternetThreadSwitch_FWD_DEFINED__
192 typedef interface IInternetThreadSwitch IInternetThreadSwitch;
193 #endif
194 
195 #ifndef __IInternetPriority_FWD_DEFINED__
196 #define __IInternetPriority_FWD_DEFINED__
197 typedef interface IInternetPriority IInternetPriority;
198 #endif
199 
200 #ifndef __IInternetProtocolInfo_FWD_DEFINED__
201 #define __IInternetProtocolInfo_FWD_DEFINED__
202 typedef interface IInternetProtocolInfo IInternetProtocolInfo;
203 #endif
204 
205 #ifndef __IInternetSecurityMgrSite_FWD_DEFINED__
206 #define __IInternetSecurityMgrSite_FWD_DEFINED__
207 typedef interface IInternetSecurityMgrSite IInternetSecurityMgrSite;
208 #endif
209 
210 #ifndef __IInternetSecurityManager_FWD_DEFINED__
211 #define __IInternetSecurityManager_FWD_DEFINED__
212 typedef interface IInternetSecurityManager IInternetSecurityManager;
213 #endif
214 
215 #ifndef __IInternetSecurityManagerEx_FWD_DEFINED__
216 #define __IInternetSecurityManagerEx_FWD_DEFINED__
217 typedef interface IInternetSecurityManagerEx IInternetSecurityManagerEx;
218 #endif
219 
220 #ifndef __IInternetSecurityManagerEx2_FWD_DEFINED__
221 #define __IInternetSecurityManagerEx2_FWD_DEFINED__
222 typedef interface IInternetSecurityManagerEx2 IInternetSecurityManagerEx2;
223 #endif
224 
225 #ifndef __IZoneIdentifier_FWD_DEFINED__
226 #define __IZoneIdentifier_FWD_DEFINED__
227 typedef interface IZoneIdentifier IZoneIdentifier;
228 #endif
229 
230 #ifndef __IInternetHostSecurityManager_FWD_DEFINED__
231 #define __IInternetHostSecurityManager_FWD_DEFINED__
232 typedef interface IInternetHostSecurityManager IInternetHostSecurityManager;
233 #endif
234 
235 #ifndef __IInternetZoneManager_FWD_DEFINED__
236 #define __IInternetZoneManager_FWD_DEFINED__
237 typedef interface IInternetZoneManager IInternetZoneManager;
238 #endif
239 
240 #ifndef __IInternetZoneManagerEx_FWD_DEFINED__
241 #define __IInternetZoneManagerEx_FWD_DEFINED__
242 typedef interface IInternetZoneManagerEx IInternetZoneManagerEx;
243 #endif
244 
245 #ifndef __IInternetZoneManagerEx2_FWD_DEFINED__
246 #define __IInternetZoneManagerEx2_FWD_DEFINED__
247 typedef interface IInternetZoneManagerEx2 IInternetZoneManagerEx2;
248 #endif
249 
250 #ifndef __ISoftDistExt_FWD_DEFINED__
251 #define __ISoftDistExt_FWD_DEFINED__
252 typedef interface ISoftDistExt ISoftDistExt;
253 #endif
254 
255 #ifndef __ICatalogFileInfo_FWD_DEFINED__
256 #define __ICatalogFileInfo_FWD_DEFINED__
257 typedef interface ICatalogFileInfo ICatalogFileInfo;
258 #endif
259 
260 #ifndef __IDataFilter_FWD_DEFINED__
261 #define __IDataFilter_FWD_DEFINED__
262 typedef interface IDataFilter IDataFilter;
263 #endif
264 
265 #ifndef __IEncodingFilterFactory_FWD_DEFINED__
266 #define __IEncodingFilterFactory_FWD_DEFINED__
267 typedef interface IEncodingFilterFactory IEncodingFilterFactory;
268 #endif
269 
270 #ifndef __IWrappedProtocol_FWD_DEFINED__
271 #define __IWrappedProtocol_FWD_DEFINED__
272 typedef interface IWrappedProtocol IWrappedProtocol;
273 #endif
274 
275 #ifndef __IGetBindHandle_FWD_DEFINED__
276 #define __IGetBindHandle_FWD_DEFINED__
277 typedef interface IGetBindHandle IGetBindHandle;
278 #endif
279 
280 #ifndef __IBindCallbackRedirect_FWD_DEFINED__
281 #define __IBindCallbackRedirect_FWD_DEFINED__
282 typedef interface IBindCallbackRedirect IBindCallbackRedirect;
283 #endif
284 
285 /* Headers for imported files */
286 
287 #include <objidl.h>
288 #include <oleidl.h>
289 #include <servprov.h>
290 #include <msxml.h>
291 
292 #ifdef __cplusplus
293 extern "C" {
294 #endif
295 
296 /**
297  * This file is part of the mingw-w64 runtime package.
298  * No warranty is given; refer to the file DISCLAIMER within this package.
299  */
300 
301 #include <winapifamily.h>
302 
303 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
304 
305 
306 #ifndef __IPersistMoniker_FWD_DEFINED__
307 #define __IPersistMoniker_FWD_DEFINED__
308 typedef interface IPersistMoniker IPersistMoniker;
309 #endif
310 
311 #ifndef __IBindProtocol_FWD_DEFINED__
312 #define __IBindProtocol_FWD_DEFINED__
313 typedef interface IBindProtocol IBindProtocol;
314 #endif
315 
316 #ifndef __IBinding_FWD_DEFINED__
317 #define __IBinding_FWD_DEFINED__
318 typedef interface IBinding IBinding;
319 #endif
320 
321 #ifndef __IBindStatusCallback_FWD_DEFINED__
322 #define __IBindStatusCallback_FWD_DEFINED__
323 typedef interface IBindStatusCallback IBindStatusCallback;
324 #endif
325 
326 #ifndef __IBindStatusCallbackEx_FWD_DEFINED__
327 #define __IBindStatusCallbackEx_FWD_DEFINED__
328 typedef interface IBindStatusCallbackEx IBindStatusCallbackEx;
329 #endif
330 
331 #ifndef __IBindStatusCallbackMsg_FWD_DEFINED__
332 #define __IBindStatusCallbackMsg_FWD_DEFINED__
333 typedef interface IBindStatusCallbackMsg IBindStatusCallbackMsg;
334 #endif
335 
336 #ifndef __IAuthenticate_FWD_DEFINED__
337 #define __IAuthenticate_FWD_DEFINED__
338 typedef interface IAuthenticate IAuthenticate;
339 #endif
340 
341 #ifndef __IAuthenticateEx_FWD_DEFINED__
342 #define __IAuthenticateEx_FWD_DEFINED__
343 typedef interface IAuthenticateEx IAuthenticateEx;
344 #endif
345 
346 #ifndef __IWindowForBindingUI_FWD_DEFINED__
347 #define __IWindowForBindingUI_FWD_DEFINED__
348 typedef interface IWindowForBindingUI IWindowForBindingUI;
349 #endif
350 
351 #ifndef __ICodeInstall_FWD_DEFINED__
352 #define __ICodeInstall_FWD_DEFINED__
353 typedef interface ICodeInstall ICodeInstall;
354 #endif
355 
356 #ifndef __IHttpNegotiate_FWD_DEFINED__
357 #define __IHttpNegotiate_FWD_DEFINED__
358 typedef interface IHttpNegotiate IHttpNegotiate;
359 #endif
360 
361 #ifndef __IHttpNegotiate2_FWD_DEFINED__
362 #define __IHttpNegotiate2_FWD_DEFINED__
363 typedef interface IHttpNegotiate2 IHttpNegotiate2;
364 #endif
365 
366 #ifndef __IHttpNegotiate3_FWD_DEFINED__
367 #define __IHttpNegotiate3_FWD_DEFINED__
368 typedef interface IHttpNegotiate3 IHttpNegotiate3;
369 #endif
370 
371 #ifndef __IWinInetFileStream_FWD_DEFINED__
372 #define __IWinInetFileStream_FWD_DEFINED__
373 typedef interface IWinInetFileStream IWinInetFileStream;
374 #endif
375 
376 #ifndef __IXMLElement_FWD_DEFINED__
377 #define __IXMLElement_FWD_DEFINED__
378 typedef interface IXMLElement IXMLElement;
379 #endif
380 
381 
382 EXTERN_C const IID CLSID_SBS_StdURLMoniker;
383 EXTERN_C const IID CLSID_SBS_HttpProtocol;
384 EXTERN_C const IID CLSID_SBS_FtpProtocol;
385 EXTERN_C const IID CLSID_SBS_GopherProtocol;
386 EXTERN_C const IID CLSID_SBS_HttpSProtocol;
387 EXTERN_C const IID CLSID_SBS_FileProtocol;
388 EXTERN_C const IID CLSID_SBS_MkProtocol;
389 EXTERN_C const IID CLSID_SBS_UrlMkBindCtx;
390 EXTERN_C const IID CLSID_SBS_SoftDistExt;
391 EXTERN_C const IID CLSID_SBS_CdlProtocol;
392 EXTERN_C const IID CLSID_SBS_ClassInstallFilter;
393 EXTERN_C const IID CLSID_SBS_InternetSecurityManager;
394 EXTERN_C const IID CLSID_SBS_InternetZoneManager;
395 
396 #define BINDF_DONTUSECACHE BINDF_GETNEWESTVERSION
397 #define BINDF_DONTPUTINCACHE BINDF_NOWRITECACHE
398 #define BINDF_NOCOPYDATA BINDF_PULLDATA
399 #define INVALID_P_ROOT_SECURITY_ID ((BYTE*)-1)
400 
401 #define PI_DOCFILECLSIDLOOKUP PI_CLSIDLOOKUP
402 
403 EXTERN_C const IID IID_IAsyncMoniker;
404 EXTERN_C const IID CLSID_StdURLMoniker;
405 EXTERN_C const IID CLSID_HttpProtocol;
406 EXTERN_C const IID CLSID_FtpProtocol;
407 EXTERN_C const IID CLSID_GopherProtocol;
408 EXTERN_C const IID CLSID_HttpSProtocol;
409 EXTERN_C const IID CLSID_FileProtocol;
410 EXTERN_C const IID CLSID_MkProtocol;
411 EXTERN_C const IID CLSID_StdURLProtocol;
412 EXTERN_C const IID CLSID_UrlMkBindCtx;
413 EXTERN_C const IID CLSID_CdlProtocol;
414 EXTERN_C const IID CLSID_ClassInstallFilter;
415 EXTERN_C const IID IID_IAsyncBindCtx;
416 
417 #define SZ_URLCONTEXT           OLESTR("URL Context")
418 #define SZ_ASYNC_CALLEE         OLESTR("AsyncCallee")
419 
420 #define MKSYS_URLMONIKER         6
421 #define URL_MK_LEGACY            0
422 #define URL_MK_UNIFORM           1
423 #define URL_MK_NO_CANONICALIZE   2
424 
425 STDAPI CreateURLMoniker(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER *ppmk);
426 STDAPI CreateURLMonikerEx(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER *ppmk, DWORD dwFlags);
427 STDAPI GetClassURL(LPCWSTR szURL, CLSID *pClsID);
428 STDAPI CreateAsyncBindCtx(DWORD reserved, IBindStatusCallback *pBSCb, IEnumFORMATETC *pEFetc, IBindCtx **ppBC);
429 #if (_WIN32_IE >= _WIN32_IE_IE70)
430 STDAPI CreateURLMonikerEx2(LPMONIKER pMkCtx, IUri *pUri, LPMONIKER *ppmk, DWORD dwFlags);
431 #endif
432 STDAPI CreateAsyncBindCtxEx(IBindCtx *pbc, DWORD dwOptions, IBindStatusCallback *pBSCb, IEnumFORMATETC *pEnum, IBindCtx **ppBC, DWORD reserved);
433 STDAPI MkParseDisplayNameEx(IBindCtx *pbc, LPCWSTR szDisplayName, ULONG *pchEaten, LPMONIKER *ppmk);
434 STDAPI RegisterBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb, IBindStatusCallback **ppBSCBPrev, DWORD dwReserved);
435 STDAPI RevokeBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb);
436 STDAPI GetClassFileOrMime(LPBC pBC, LPCWSTR szFilename, LPVOID pBuffer, DWORD cbSize, LPCWSTR szMime, DWORD dwReserved, CLSID *pclsid);
437 STDAPI IsValidURL(LPBC pBC, LPCWSTR szURL, DWORD dwReserved);
438 STDAPI CoGetClassObjectFromURL(REFCLSID rCLASSID, LPCWSTR szCODE, DWORD dwFileVersionMS, DWORD dwFileVersionLS, LPCWSTR szTYPE, LPBINDCTX pBindCtx, DWORD dwClsContext, LPVOID pvReserved, REFIID riid, LPVOID *ppv);
439 STDAPI IEInstallScope(LPDWORD pdwScope);
440 STDAPI FaultInIEFeature(HWND hWnd, uCLSSPEC *pClassSpec, QUERYCONTEXT *pQuery, DWORD dwFlags);
441 STDAPI GetComponentIDFromCLSSPEC(uCLSSPEC *pClassspec, LPSTR *ppszComponentID);
442 
443 #define FIEF_FLAG_FORCE_JITUI 0x1
444 #define FIEF_FLAG_PEEK 0x2
445 #define FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK 0x4
446 
447 STDAPI IsAsyncMoniker(IMoniker *pmk);
448 STDAPI CreateURLBinding(LPCWSTR lpszUrl, IBindCtx *pbc, IBinding **ppBdg);
449 STDAPI RegisterMediaTypes(UINT ctypes, const LPCSTR *rgszTypes, CLIPFORMAT *rgcfTypes);
450 STDAPI FindMediaType(LPCSTR rgszTypes, CLIPFORMAT *rgcfTypes);
451 STDAPI CreateFormatEnumerator(UINT cfmtetc, FORMATETC *rgfmtetc, IEnumFORMATETC **ppenumfmtetc);
452 STDAPI RegisterFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc, DWORD reserved);
453 STDAPI RevokeFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc);
454 STDAPI RegisterMediaTypeClass(LPBC pBC,UINT ctypes, const LPCSTR *rgszTypes, CLSID *rgclsID, DWORD reserved);
455 STDAPI FindMediaTypeClass(LPBC pBC, LPCSTR szType, CLSID *pclsID, DWORD reserved);
456 STDAPI UrlMkSetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD dwReserved);
457 STDAPI UrlMkGetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD *pdwBufferLengthOut, DWORD dwReserved);
458 STDAPI FindMimeFromData(LPBC pBC, LPCWSTR pwzUrl, LPVOID pBuffer, DWORD cbSize, LPCWSTR pwzMimeProposed, DWORD dwMimeFlags, LPWSTR *ppwzMimeOut, DWORD dwReserved);
459 
460 #define FMFD_DEFAULT 0x0
461 #define FMFD_URLASFILENAME 0x1
462 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
463 #define FMFD_ENABLEMIMESNIFFING 0x2
464 #define FMFD_IGNOREMIMETEXTPLAIN 0x4
465 #endif
466 
467 #define FMFD_SERVERMIME 0x8
468 #define FMFD_RESPECTTEXTPLAIN 0x10
469 #define FMFD_RETURNUPDATEDIMGMIMES 0x20
470 #define UAS_EXACTLEGACY 0x1000
471 
472 STDAPI ObtainUserAgentString(DWORD dwOption, LPSTR pszUAOut, DWORD *cbSize);
473 STDAPI CompareSecurityIds(BYTE *pbSecurityId1, DWORD dwLen1, BYTE *pbSecurityId2, DWORD dwLen2, DWORD dwReserved);
474 STDAPI CompatFlagsFromClsid(CLSID *pclsid, LPDWORD pdwCompatFlags, LPDWORD pdwMiscStatusFlags);
475 
476 #define URLMON_OPTION_USERAGENT 0x10000001
477 #define URLMON_OPTION_USERAGENT_REFRESH 0x10000002
478 #define URLMON_OPTION_URL_ENCODING 0x10000004
479 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
480 #define URLMON_OPTION_USE_BINDSTRINGCREDS 0x10000008
481 #endif
482 #if (_WIN32_IE >= _WIN32_IE_IE70)
483 #define URLMON_OPTION_USE_BROWSERAPPSDOCUMENTS 0x10000010
484 #endif
485 #endif
486 
487 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
488 #define CF_NULL                 0
489 #define CFSTR_MIME_NULL         NULL
490 
491 #define CFSTR_MIME_TEXT (TEXT("text/plain"))
492 #define CFSTR_MIME_RICHTEXT (TEXT("text/richtext"))
493 #define CFSTR_MIME_MANIFEST (TEXT("text/cache-manifest"))
494 #define CFSTR_MIME_WEBVTT (TEXT("text/vtt"))
495 #define CFSTR_MIME_X_BITMAP (TEXT("image/x-xbitmap"))
496 #define CFSTR_MIME_POSTSCRIPT (TEXT("application/postscript"))
497 #define CFSTR_MIME_AIFF (TEXT("audio/aiff"))
498 #define CFSTR_MIME_BASICAUDIO (TEXT("audio/basic"))
499 #define CFSTR_MIME_WAV (TEXT("audio/wav"))
500 #define CFSTR_MIME_X_WAV (TEXT("audio/x-wav"))
501 #define CFSTR_MIME_GIF (TEXT("image/gif"))
502 #define CFSTR_MIME_PJPEG (TEXT("image/pjpeg"))
503 #define CFSTR_MIME_JPEG (TEXT("image/jpeg"))
504 #define CFSTR_MIME_TIFF (TEXT("image/tiff"))
505 #define CFSTR_MIME_JPEG_XR (TEXT("image/vnd.ms-photo"))
506 #define CFSTR_MIME_PNG (TEXT("image/png"))
507 #define CFSTR_MIME_X_PNG (TEXT("image/x-png"))
508 #define CFSTR_MIME_X_ICON (TEXT("image/x-icon"))
509 #define CFSTR_MIME_SVG_XML (TEXT("image/svg+xml"))
510 #define CFSTR_MIME_BMP (TEXT("image/bmp"))
511 #define CFSTR_MIME_X_EMF (TEXT("image/x-emf"))
512 #define CFSTR_MIME_X_WMF (TEXT("image/x-wmf"))
513 #define CFSTR_MIME_AVI (TEXT("video/avi"))
514 #define CFSTR_MIME_MPEG (TEXT("video/mpeg"))
515 #define CFSTR_MIME_FRACTALS (TEXT("application/fractals"))
516 #define CFSTR_MIME_RAWDATA (TEXT("application/octet-stream"))
517 #define CFSTR_MIME_RAWDATASTRM (TEXT("application/octet-stream"))
518 #define CFSTR_MIME_PDF (TEXT("application/pdf"))
519 #define CFSTR_MIME_HTA (TEXT("application/hta"))
520 #define CFSTR_MIME_APP_XML (TEXT("application/xml"))
521 #define CFSTR_MIME_XHTML (TEXT("application/xhtml+xml"))
522 #define CFSTR_MIME_X_AIFF (TEXT("audio/x-aiff"))
523 #define CFSTR_MIME_X_REALAUDIO (TEXT("audio/x-pn-realaudio"))
524 #define CFSTR_MIME_XBM (TEXT("image/xbm"))
525 #define CFSTR_MIME_QUICKTIME (TEXT("video/quicktime"))
526 #define CFSTR_MIME_X_MSVIDEO (TEXT("video/x-msvideo"))
527 #define CFSTR_MIME_X_SGI_MOVIE (TEXT("video/x-sgi-movie"))
528 #define CFSTR_MIME_HTML (TEXT("text/html"))
529 #define CFSTR_MIME_XML (TEXT("text/xml"))
530 #define CFSTR_MIME_TTML (TEXT("application/ttml+xml"))
531 #define CFSTR_MIME_TTAF (TEXT("application/ttaf+xml"))
532 
533 #define MK_S_ASYNCHRONOUS    _HRESULT_TYPEDEF_(0x401E8L)
534 #ifndef S_ASYNCHRONOUS
535 #define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS
536 #endif
537 
538 #ifndef E_PENDING
539 #define E_PENDING _HRESULT_TYPEDEF_(__MSABI_LONG(0x8000000a))
540 #endif
541 #define INET_E_INVALID_URL _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0002))
542 #define INET_E_NO_SESSION _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0003))
543 #define INET_E_CANNOT_CONNECT            _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0004))
544 #define INET_E_RESOURCE_NOT_FOUND        _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0005))
545 #define INET_E_OBJECT_NOT_FOUND          _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0006))
546 #define INET_E_DATA_NOT_AVAILABLE        _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0007))
547 #define INET_E_DOWNLOAD_FAILURE          _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0008))
548 #define INET_E_AUTHENTICATION_REQUIRED   _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0009))
549 #define INET_E_NO_VALID_MEDIA            _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C000A))
550 #define INET_E_CONNECTION_TIMEOUT        _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C000B))
551 #define INET_E_INVALID_REQUEST           _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C000C))
552 #define INET_E_UNKNOWN_PROTOCOL          _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C000D))
553 #define INET_E_SECURITY_PROBLEM          _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C000E))
554 #define INET_E_CANNOT_LOAD_DATA          _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C000F))
555 #define INET_E_CANNOT_INSTANTIATE_OBJECT _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0010))
556 #define INET_E_INVALID_CERTIFICATE       _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0019))
557 #define INET_E_REDIRECT_FAILED           _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0014))
558 #define INET_E_REDIRECT_TO_DIR           _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0015))
559 #define INET_E_CANNOT_LOCK_REQUEST                   _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0016))
560 #define INET_E_USE_EXTEND_BINDING                    _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0017))
561 #define INET_E_TERMINATED_BIND                       _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0018))
562 #define INET_E_RESERVED_1                            _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C001A))
563 #define INET_E_BLOCKED_REDIRECT_XSECURITYID          _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C001B))
564 #define INET_E_DOMINJECTIONVALIDATION                _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C001C))
565 #define INET_E_ERROR_FIRST                           _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0002))
566 #define INET_E_CODE_DOWNLOAD_DECLINED                _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0100))
567 #define INET_E_RESULT_DISPATCHED                     _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0200))
568 #define INET_E_CANNOT_REPLACE_SFP_FILE               _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0300))
569 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
570 #define INET_E_CODE_INSTALL_SUPPRESSED               _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0400))
571 #endif
572 #define INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY   _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0500))
573 #define INET_E_DOWNLOAD_BLOCKED_BY_INPRIVATE         _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0501))
574 #define INET_E_CODE_INSTALL_BLOCKED_IMMERSIVE        _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0502))
575 #define INET_E_FORBIDFRAMING                         _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0503))
576 #define INET_E_CODE_INSTALL_BLOCKED_ARM              _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0504))
577 #define INET_E_BLOCKED_PLUGGABLE_PROTOCOL            _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0505))
578 #define INET_E_ERROR_LAST INET_E_BLOCKED_PLUGGABLE_PROTOCOL
579 #endif
580 
581 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
582 #ifndef _LPPERSISTMONIKER_DEFINED
583 #define _LPPERSISTMONIKER_DEFINED
584 /*****************************************************************************
585  * IPersistMoniker interface
586  */
587 #ifndef __IPersistMoniker_INTERFACE_DEFINED__
588 #define __IPersistMoniker_INTERFACE_DEFINED__
589 
590 typedef IPersistMoniker *LPPERSISTMONIKER;
591 
592 DEFINE_GUID(IID_IPersistMoniker, 0x79eac9c9, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
593 #if defined(__cplusplus) && !defined(CINTERFACE)
594 MIDL_INTERFACE("79eac9c9-baf9-11ce-8c82-00aa004ba90b")
595 IPersistMoniker : public IUnknown
596 {
597     virtual HRESULT STDMETHODCALLTYPE GetClassID(
598         CLSID *pClassID) = 0;
599 
600     virtual HRESULT STDMETHODCALLTYPE IsDirty(
601         ) = 0;
602 
603     virtual HRESULT STDMETHODCALLTYPE Load(
604         WINBOOL fFullyAvailable,
605         IMoniker *pimkName,
606         LPBC pibc,
607         DWORD grfMode) = 0;
608 
609     virtual HRESULT STDMETHODCALLTYPE Save(
610         IMoniker *pimkName,
611         LPBC pbc,
612         WINBOOL fRemember) = 0;
613 
614     virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
615         IMoniker *pimkName,
616         LPBC pibc) = 0;
617 
618     virtual HRESULT STDMETHODCALLTYPE GetCurMoniker(
619         IMoniker **ppimkName) = 0;
620 
621 };
622 #ifdef __CRT_UUID_DECL
623 __CRT_UUID_DECL(IPersistMoniker, 0x79eac9c9, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
624 #endif
625 #else
626 typedef struct IPersistMonikerVtbl {
627     BEGIN_INTERFACE
628 
629     /*** IUnknown methods ***/
630     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
631         IPersistMoniker* This,
632         REFIID riid,
633         void **ppvObject);
634 
635     ULONG (STDMETHODCALLTYPE *AddRef)(
636         IPersistMoniker* This);
637 
638     ULONG (STDMETHODCALLTYPE *Release)(
639         IPersistMoniker* This);
640 
641     /*** IPersistMoniker methods ***/
642     HRESULT (STDMETHODCALLTYPE *GetClassID)(
643         IPersistMoniker* This,
644         CLSID *pClassID);
645 
646     HRESULT (STDMETHODCALLTYPE *IsDirty)(
647         IPersistMoniker* This);
648 
649     HRESULT (STDMETHODCALLTYPE *Load)(
650         IPersistMoniker* This,
651         WINBOOL fFullyAvailable,
652         IMoniker *pimkName,
653         LPBC pibc,
654         DWORD grfMode);
655 
656     HRESULT (STDMETHODCALLTYPE *Save)(
657         IPersistMoniker* This,
658         IMoniker *pimkName,
659         LPBC pbc,
660         WINBOOL fRemember);
661 
662     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
663         IPersistMoniker* This,
664         IMoniker *pimkName,
665         LPBC pibc);
666 
667     HRESULT (STDMETHODCALLTYPE *GetCurMoniker)(
668         IPersistMoniker* This,
669         IMoniker **ppimkName);
670 
671     END_INTERFACE
672 } IPersistMonikerVtbl;
673 interface IPersistMoniker {
674     CONST_VTBL IPersistMonikerVtbl* lpVtbl;
675 };
676 
677 #ifdef COBJMACROS
678 #ifndef WIDL_C_INLINE_WRAPPERS
679 /*** IUnknown methods ***/
680 #define IPersistMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
681 #define IPersistMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
682 #define IPersistMoniker_Release(This) (This)->lpVtbl->Release(This)
683 /*** IPersistMoniker methods ***/
684 #define IPersistMoniker_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
685 #define IPersistMoniker_IsDirty(This) (This)->lpVtbl->IsDirty(This)
686 #define IPersistMoniker_Load(This,fFullyAvailable,pimkName,pibc,grfMode) (This)->lpVtbl->Load(This,fFullyAvailable,pimkName,pibc,grfMode)
687 #define IPersistMoniker_Save(This,pimkName,pbc,fRemember) (This)->lpVtbl->Save(This,pimkName,pbc,fRemember)
688 #define IPersistMoniker_SaveCompleted(This,pimkName,pibc) (This)->lpVtbl->SaveCompleted(This,pimkName,pibc)
689 #define IPersistMoniker_GetCurMoniker(This,ppimkName) (This)->lpVtbl->GetCurMoniker(This,ppimkName)
690 #else
691 /*** IUnknown methods ***/
692 static FORCEINLINE HRESULT IPersistMoniker_QueryInterface(IPersistMoniker* This,REFIID riid,void **ppvObject) {
693     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
694 }
695 static FORCEINLINE ULONG IPersistMoniker_AddRef(IPersistMoniker* This) {
696     return This->lpVtbl->AddRef(This);
697 }
698 static FORCEINLINE ULONG IPersistMoniker_Release(IPersistMoniker* This) {
699     return This->lpVtbl->Release(This);
700 }
701 /*** IPersistMoniker methods ***/
702 static FORCEINLINE HRESULT IPersistMoniker_GetClassID(IPersistMoniker* This,CLSID *pClassID) {
703     return This->lpVtbl->GetClassID(This,pClassID);
704 }
705 static FORCEINLINE HRESULT IPersistMoniker_IsDirty(IPersistMoniker* This) {
706     return This->lpVtbl->IsDirty(This);
707 }
708 static FORCEINLINE HRESULT IPersistMoniker_Load(IPersistMoniker* This,WINBOOL fFullyAvailable,IMoniker *pimkName,LPBC pibc,DWORD grfMode) {
709     return This->lpVtbl->Load(This,fFullyAvailable,pimkName,pibc,grfMode);
710 }
711 static FORCEINLINE HRESULT IPersistMoniker_Save(IPersistMoniker* This,IMoniker *pimkName,LPBC pbc,WINBOOL fRemember) {
712     return This->lpVtbl->Save(This,pimkName,pbc,fRemember);
713 }
714 static FORCEINLINE HRESULT IPersistMoniker_SaveCompleted(IPersistMoniker* This,IMoniker *pimkName,LPBC pibc) {
715     return This->lpVtbl->SaveCompleted(This,pimkName,pibc);
716 }
717 static FORCEINLINE HRESULT IPersistMoniker_GetCurMoniker(IPersistMoniker* This,IMoniker **ppimkName) {
718     return This->lpVtbl->GetCurMoniker(This,ppimkName);
719 }
720 #endif
721 #endif
722 
723 #endif
724 
725 HRESULT STDMETHODCALLTYPE IPersistMoniker_GetClassID_Proxy(
726     IPersistMoniker* This,
727     CLSID *pClassID);
728 void __RPC_STUB IPersistMoniker_GetClassID_Stub(
729     IRpcStubBuffer* This,
730     IRpcChannelBuffer* pRpcChannelBuffer,
731     PRPC_MESSAGE pRpcMessage,
732     DWORD* pdwStubPhase);
733 HRESULT STDMETHODCALLTYPE IPersistMoniker_IsDirty_Proxy(
734     IPersistMoniker* This);
735 void __RPC_STUB IPersistMoniker_IsDirty_Stub(
736     IRpcStubBuffer* This,
737     IRpcChannelBuffer* pRpcChannelBuffer,
738     PRPC_MESSAGE pRpcMessage,
739     DWORD* pdwStubPhase);
740 HRESULT STDMETHODCALLTYPE IPersistMoniker_Load_Proxy(
741     IPersistMoniker* This,
742     WINBOOL fFullyAvailable,
743     IMoniker *pimkName,
744     LPBC pibc,
745     DWORD grfMode);
746 void __RPC_STUB IPersistMoniker_Load_Stub(
747     IRpcStubBuffer* This,
748     IRpcChannelBuffer* pRpcChannelBuffer,
749     PRPC_MESSAGE pRpcMessage,
750     DWORD* pdwStubPhase);
751 HRESULT STDMETHODCALLTYPE IPersistMoniker_Save_Proxy(
752     IPersistMoniker* This,
753     IMoniker *pimkName,
754     LPBC pbc,
755     WINBOOL fRemember);
756 void __RPC_STUB IPersistMoniker_Save_Stub(
757     IRpcStubBuffer* This,
758     IRpcChannelBuffer* pRpcChannelBuffer,
759     PRPC_MESSAGE pRpcMessage,
760     DWORD* pdwStubPhase);
761 HRESULT STDMETHODCALLTYPE IPersistMoniker_SaveCompleted_Proxy(
762     IPersistMoniker* This,
763     IMoniker *pimkName,
764     LPBC pibc);
765 void __RPC_STUB IPersistMoniker_SaveCompleted_Stub(
766     IRpcStubBuffer* This,
767     IRpcChannelBuffer* pRpcChannelBuffer,
768     PRPC_MESSAGE pRpcMessage,
769     DWORD* pdwStubPhase);
770 HRESULT STDMETHODCALLTYPE IPersistMoniker_GetCurMoniker_Proxy(
771     IPersistMoniker* This,
772     IMoniker **ppimkName);
773 void __RPC_STUB IPersistMoniker_GetCurMoniker_Stub(
774     IRpcStubBuffer* This,
775     IRpcChannelBuffer* pRpcChannelBuffer,
776     PRPC_MESSAGE pRpcMessage,
777     DWORD* pdwStubPhase);
778 
779 #endif  /* __IPersistMoniker_INTERFACE_DEFINED__ */
780 
781 #endif
782 
783 #ifndef _LPMONIKERPROP_DEFINED
784 #define _LPMONIKERPROP_DEFINED
785 /*****************************************************************************
786  * IMonikerProp interface
787  */
788 #ifndef __IMonikerProp_INTERFACE_DEFINED__
789 #define __IMonikerProp_INTERFACE_DEFINED__
790 
791 typedef IMonikerProp *LPMONIKERPROP;
792 
793 typedef enum __WIDL_urlmon_generated_name_00000002 {
794     MIMETYPEPROP = 0x0,
795     USE_SRC_URL = 0x1,
796     CLASSIDPROP = 0x2,
797     TRUSTEDDOWNLOADPROP = 0x3,
798     POPUPLEVELPROP = 0x4
799 } MONIKERPROPERTY;
800 
801 DEFINE_GUID(IID_IMonikerProp, 0xa5ca5f7f, 0x1847, 0x4d87, 0x9c,0x5b, 0x91,0x85,0x09,0xf7,0x51,0x1d);
802 #if defined(__cplusplus) && !defined(CINTERFACE)
803 MIDL_INTERFACE("a5ca5f7f-1847-4d87-9c5b-918509f7511d")
804 IMonikerProp : public IUnknown
805 {
806     virtual HRESULT STDMETHODCALLTYPE PutProperty(
807         MONIKERPROPERTY mkp,
808         LPCWSTR val) = 0;
809 
810 };
811 #ifdef __CRT_UUID_DECL
812 __CRT_UUID_DECL(IMonikerProp, 0xa5ca5f7f, 0x1847, 0x4d87, 0x9c,0x5b, 0x91,0x85,0x09,0xf7,0x51,0x1d)
813 #endif
814 #else
815 typedef struct IMonikerPropVtbl {
816     BEGIN_INTERFACE
817 
818     /*** IUnknown methods ***/
819     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
820         IMonikerProp* This,
821         REFIID riid,
822         void **ppvObject);
823 
824     ULONG (STDMETHODCALLTYPE *AddRef)(
825         IMonikerProp* This);
826 
827     ULONG (STDMETHODCALLTYPE *Release)(
828         IMonikerProp* This);
829 
830     /*** IMonikerProp methods ***/
831     HRESULT (STDMETHODCALLTYPE *PutProperty)(
832         IMonikerProp* This,
833         MONIKERPROPERTY mkp,
834         LPCWSTR val);
835 
836     END_INTERFACE
837 } IMonikerPropVtbl;
838 interface IMonikerProp {
839     CONST_VTBL IMonikerPropVtbl* lpVtbl;
840 };
841 
842 #ifdef COBJMACROS
843 #ifndef WIDL_C_INLINE_WRAPPERS
844 /*** IUnknown methods ***/
845 #define IMonikerProp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
846 #define IMonikerProp_AddRef(This) (This)->lpVtbl->AddRef(This)
847 #define IMonikerProp_Release(This) (This)->lpVtbl->Release(This)
848 /*** IMonikerProp methods ***/
849 #define IMonikerProp_PutProperty(This,mkp,val) (This)->lpVtbl->PutProperty(This,mkp,val)
850 #else
851 /*** IUnknown methods ***/
852 static FORCEINLINE HRESULT IMonikerProp_QueryInterface(IMonikerProp* This,REFIID riid,void **ppvObject) {
853     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
854 }
855 static FORCEINLINE ULONG IMonikerProp_AddRef(IMonikerProp* This) {
856     return This->lpVtbl->AddRef(This);
857 }
858 static FORCEINLINE ULONG IMonikerProp_Release(IMonikerProp* This) {
859     return This->lpVtbl->Release(This);
860 }
861 /*** IMonikerProp methods ***/
862 static FORCEINLINE HRESULT IMonikerProp_PutProperty(IMonikerProp* This,MONIKERPROPERTY mkp,LPCWSTR val) {
863     return This->lpVtbl->PutProperty(This,mkp,val);
864 }
865 #endif
866 #endif
867 
868 #endif
869 
870 HRESULT STDMETHODCALLTYPE IMonikerProp_PutProperty_Proxy(
871     IMonikerProp* This,
872     MONIKERPROPERTY mkp,
873     LPCWSTR val);
874 void __RPC_STUB IMonikerProp_PutProperty_Stub(
875     IRpcStubBuffer* This,
876     IRpcChannelBuffer* pRpcChannelBuffer,
877     PRPC_MESSAGE pRpcMessage,
878     DWORD* pdwStubPhase);
879 
880 #endif  /* __IMonikerProp_INTERFACE_DEFINED__ */
881 
882 #endif
883 
884 #ifndef _LPBINDPROTOCOL_DEFINED
885 #define _LPBINDPROTOCOL_DEFINED
886 
887 /*****************************************************************************
888  * IBindProtocol interface
889  */
890 #ifndef __IBindProtocol_INTERFACE_DEFINED__
891 #define __IBindProtocol_INTERFACE_DEFINED__
892 
893 typedef IBindProtocol *LPBINDPROTOCOL;
894 
895 DEFINE_GUID(IID_IBindProtocol, 0x79eac9cd, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
896 #if defined(__cplusplus) && !defined(CINTERFACE)
897 MIDL_INTERFACE("79eac9cd-baf9-11ce-8c82-00aa004ba90b")
898 IBindProtocol : public IUnknown
899 {
900     virtual HRESULT STDMETHODCALLTYPE CreateBinding(
901         LPCWSTR szUrl,
902         IBindCtx *pbc,
903         IBinding **ppb) = 0;
904 
905 };
906 #ifdef __CRT_UUID_DECL
907 __CRT_UUID_DECL(IBindProtocol, 0x79eac9cd, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
908 #endif
909 #else
910 typedef struct IBindProtocolVtbl {
911     BEGIN_INTERFACE
912 
913     /*** IUnknown methods ***/
914     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
915         IBindProtocol* This,
916         REFIID riid,
917         void **ppvObject);
918 
919     ULONG (STDMETHODCALLTYPE *AddRef)(
920         IBindProtocol* This);
921 
922     ULONG (STDMETHODCALLTYPE *Release)(
923         IBindProtocol* This);
924 
925     /*** IBindProtocol methods ***/
926     HRESULT (STDMETHODCALLTYPE *CreateBinding)(
927         IBindProtocol* This,
928         LPCWSTR szUrl,
929         IBindCtx *pbc,
930         IBinding **ppb);
931 
932     END_INTERFACE
933 } IBindProtocolVtbl;
934 interface IBindProtocol {
935     CONST_VTBL IBindProtocolVtbl* lpVtbl;
936 };
937 
938 #ifdef COBJMACROS
939 #ifndef WIDL_C_INLINE_WRAPPERS
940 /*** IUnknown methods ***/
941 #define IBindProtocol_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
942 #define IBindProtocol_AddRef(This) (This)->lpVtbl->AddRef(This)
943 #define IBindProtocol_Release(This) (This)->lpVtbl->Release(This)
944 /*** IBindProtocol methods ***/
945 #define IBindProtocol_CreateBinding(This,szUrl,pbc,ppb) (This)->lpVtbl->CreateBinding(This,szUrl,pbc,ppb)
946 #else
947 /*** IUnknown methods ***/
948 static FORCEINLINE HRESULT IBindProtocol_QueryInterface(IBindProtocol* This,REFIID riid,void **ppvObject) {
949     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
950 }
951 static FORCEINLINE ULONG IBindProtocol_AddRef(IBindProtocol* This) {
952     return This->lpVtbl->AddRef(This);
953 }
954 static FORCEINLINE ULONG IBindProtocol_Release(IBindProtocol* This) {
955     return This->lpVtbl->Release(This);
956 }
957 /*** IBindProtocol methods ***/
958 static FORCEINLINE HRESULT IBindProtocol_CreateBinding(IBindProtocol* This,LPCWSTR szUrl,IBindCtx *pbc,IBinding **ppb) {
959     return This->lpVtbl->CreateBinding(This,szUrl,pbc,ppb);
960 }
961 #endif
962 #endif
963 
964 #endif
965 
966 HRESULT STDMETHODCALLTYPE IBindProtocol_CreateBinding_Proxy(
967     IBindProtocol* This,
968     LPCWSTR szUrl,
969     IBindCtx *pbc,
970     IBinding **ppb);
971 void __RPC_STUB IBindProtocol_CreateBinding_Stub(
972     IRpcStubBuffer* This,
973     IRpcChannelBuffer* pRpcChannelBuffer,
974     PRPC_MESSAGE pRpcMessage,
975     DWORD* pdwStubPhase);
976 
977 #endif  /* __IBindProtocol_INTERFACE_DEFINED__ */
978 
979 #endif
980 
981 #ifndef _LPBINDING_DEFINED
982 #define _LPBINDING_DEFINED
983 
984 /*****************************************************************************
985  * IBinding interface
986  */
987 #ifndef __IBinding_INTERFACE_DEFINED__
988 #define __IBinding_INTERFACE_DEFINED__
989 
990 typedef IBinding *LPBINDING;
991 
992 DEFINE_GUID(IID_IBinding, 0x79eac9c0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
993 #if defined(__cplusplus) && !defined(CINTERFACE)
994 MIDL_INTERFACE("79eac9c0-baf9-11ce-8c82-00aa004ba90b")
995 IBinding : public IUnknown
996 {
997     virtual HRESULT STDMETHODCALLTYPE Abort(
998         ) = 0;
999 
1000     virtual HRESULT STDMETHODCALLTYPE Suspend(
1001         ) = 0;
1002 
1003     virtual HRESULT STDMETHODCALLTYPE Resume(
1004         ) = 0;
1005 
1006     virtual HRESULT STDMETHODCALLTYPE SetPriority(
1007         LONG nPriority) = 0;
1008 
1009     virtual HRESULT STDMETHODCALLTYPE GetPriority(
1010         LONG *pnPriority) = 0;
1011 
1012     virtual HRESULT STDMETHODCALLTYPE GetBindResult(
1013         CLSID *pclsidProtocol,
1014         DWORD *pdwResult,
1015         LPOLESTR *pszResult,
1016         DWORD *pdwReserved) = 0;
1017 
1018 };
1019 #ifdef __CRT_UUID_DECL
1020 __CRT_UUID_DECL(IBinding, 0x79eac9c0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
1021 #endif
1022 #else
1023 typedef struct IBindingVtbl {
1024     BEGIN_INTERFACE
1025 
1026     /*** IUnknown methods ***/
1027     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1028         IBinding* This,
1029         REFIID riid,
1030         void **ppvObject);
1031 
1032     ULONG (STDMETHODCALLTYPE *AddRef)(
1033         IBinding* This);
1034 
1035     ULONG (STDMETHODCALLTYPE *Release)(
1036         IBinding* This);
1037 
1038     /*** IBinding methods ***/
1039     HRESULT (STDMETHODCALLTYPE *Abort)(
1040         IBinding* This);
1041 
1042     HRESULT (STDMETHODCALLTYPE *Suspend)(
1043         IBinding* This);
1044 
1045     HRESULT (STDMETHODCALLTYPE *Resume)(
1046         IBinding* This);
1047 
1048     HRESULT (STDMETHODCALLTYPE *SetPriority)(
1049         IBinding* This,
1050         LONG nPriority);
1051 
1052     HRESULT (STDMETHODCALLTYPE *GetPriority)(
1053         IBinding* This,
1054         LONG *pnPriority);
1055 
1056     HRESULT (STDMETHODCALLTYPE *GetBindResult)(
1057         IBinding* This,
1058         CLSID *pclsidProtocol,
1059         DWORD *pdwResult,
1060         LPOLESTR *pszResult,
1061         DWORD *pdwReserved);
1062 
1063     END_INTERFACE
1064 } IBindingVtbl;
1065 interface IBinding {
1066     CONST_VTBL IBindingVtbl* lpVtbl;
1067 };
1068 
1069 #ifdef COBJMACROS
1070 #ifndef WIDL_C_INLINE_WRAPPERS
1071 /*** IUnknown methods ***/
1072 #define IBinding_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1073 #define IBinding_AddRef(This) (This)->lpVtbl->AddRef(This)
1074 #define IBinding_Release(This) (This)->lpVtbl->Release(This)
1075 /*** IBinding methods ***/
1076 #define IBinding_Abort(This) (This)->lpVtbl->Abort(This)
1077 #define IBinding_Suspend(This) (This)->lpVtbl->Suspend(This)
1078 #define IBinding_Resume(This) (This)->lpVtbl->Resume(This)
1079 #define IBinding_SetPriority(This,nPriority) (This)->lpVtbl->SetPriority(This,nPriority)
1080 #define IBinding_GetPriority(This,pnPriority) (This)->lpVtbl->GetPriority(This,pnPriority)
1081 #define IBinding_GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved) (This)->lpVtbl->GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved)
1082 #else
1083 /*** IUnknown methods ***/
1084 static FORCEINLINE HRESULT IBinding_QueryInterface(IBinding* This,REFIID riid,void **ppvObject) {
1085     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1086 }
1087 static FORCEINLINE ULONG IBinding_AddRef(IBinding* This) {
1088     return This->lpVtbl->AddRef(This);
1089 }
1090 static FORCEINLINE ULONG IBinding_Release(IBinding* This) {
1091     return This->lpVtbl->Release(This);
1092 }
1093 /*** IBinding methods ***/
1094 static FORCEINLINE HRESULT IBinding_Abort(IBinding* This) {
1095     return This->lpVtbl->Abort(This);
1096 }
1097 static FORCEINLINE HRESULT IBinding_Suspend(IBinding* This) {
1098     return This->lpVtbl->Suspend(This);
1099 }
1100 static FORCEINLINE HRESULT IBinding_Resume(IBinding* This) {
1101     return This->lpVtbl->Resume(This);
1102 }
1103 static FORCEINLINE HRESULT IBinding_SetPriority(IBinding* This,LONG nPriority) {
1104     return This->lpVtbl->SetPriority(This,nPriority);
1105 }
1106 static FORCEINLINE HRESULT IBinding_GetPriority(IBinding* This,LONG *pnPriority) {
1107     return This->lpVtbl->GetPriority(This,pnPriority);
1108 }
1109 static FORCEINLINE HRESULT IBinding_GetBindResult(IBinding* This,CLSID *pclsidProtocol,DWORD *pdwResult,LPOLESTR *pszResult,DWORD *pdwReserved) {
1110     return This->lpVtbl->GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved);
1111 }
1112 #endif
1113 #endif
1114 
1115 #endif
1116 
1117 HRESULT STDMETHODCALLTYPE IBinding_Abort_Proxy(
1118     IBinding* This);
1119 void __RPC_STUB IBinding_Abort_Stub(
1120     IRpcStubBuffer* This,
1121     IRpcChannelBuffer* pRpcChannelBuffer,
1122     PRPC_MESSAGE pRpcMessage,
1123     DWORD* pdwStubPhase);
1124 HRESULT STDMETHODCALLTYPE IBinding_Suspend_Proxy(
1125     IBinding* This);
1126 void __RPC_STUB IBinding_Suspend_Stub(
1127     IRpcStubBuffer* This,
1128     IRpcChannelBuffer* pRpcChannelBuffer,
1129     PRPC_MESSAGE pRpcMessage,
1130     DWORD* pdwStubPhase);
1131 HRESULT STDMETHODCALLTYPE IBinding_Resume_Proxy(
1132     IBinding* This);
1133 void __RPC_STUB IBinding_Resume_Stub(
1134     IRpcStubBuffer* This,
1135     IRpcChannelBuffer* pRpcChannelBuffer,
1136     PRPC_MESSAGE pRpcMessage,
1137     DWORD* pdwStubPhase);
1138 HRESULT STDMETHODCALLTYPE IBinding_SetPriority_Proxy(
1139     IBinding* This,
1140     LONG nPriority);
1141 void __RPC_STUB IBinding_SetPriority_Stub(
1142     IRpcStubBuffer* This,
1143     IRpcChannelBuffer* pRpcChannelBuffer,
1144     PRPC_MESSAGE pRpcMessage,
1145     DWORD* pdwStubPhase);
1146 HRESULT STDMETHODCALLTYPE IBinding_GetPriority_Proxy(
1147     IBinding* This,
1148     LONG *pnPriority);
1149 void __RPC_STUB IBinding_GetPriority_Stub(
1150     IRpcStubBuffer* This,
1151     IRpcChannelBuffer* pRpcChannelBuffer,
1152     PRPC_MESSAGE pRpcMessage,
1153     DWORD* pdwStubPhase);
1154 HRESULT STDMETHODCALLTYPE IBinding_RemoteGetBindResult_Proxy(
1155     IBinding* This,
1156     CLSID *pclsidProtocol,
1157     DWORD *pdwResult,
1158     LPOLESTR *pszResult,
1159     DWORD dwReserved);
1160 void __RPC_STUB IBinding_RemoteGetBindResult_Stub(
1161     IRpcStubBuffer* This,
1162     IRpcChannelBuffer* pRpcChannelBuffer,
1163     PRPC_MESSAGE pRpcMessage,
1164     DWORD* pdwStubPhase);
1165 HRESULT CALLBACK IBinding_GetBindResult_Proxy(
1166     IBinding* This,
1167     CLSID *pclsidProtocol,
1168     DWORD *pdwResult,
1169     LPOLESTR *pszResult,
1170     DWORD *pdwReserved);
1171 HRESULT __RPC_STUB IBinding_GetBindResult_Stub(
1172     IBinding* This,
1173     CLSID *pclsidProtocol,
1174     DWORD *pdwResult,
1175     LPOLESTR *pszResult,
1176     DWORD dwReserved);
1177 
1178 #endif  /* __IBinding_INTERFACE_DEFINED__ */
1179 
1180 #endif
1181 #endif
1182 
1183 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
1184 #ifndef _LPBINDSTATUSCALLBACK_DEFINED
1185 #define _LPBINDSTATUSCALLBACK_DEFINED
1186 
1187 /*****************************************************************************
1188  * IBindStatusCallback interface
1189  */
1190 #ifndef __IBindStatusCallback_INTERFACE_DEFINED__
1191 #define __IBindStatusCallback_INTERFACE_DEFINED__
1192 
1193 typedef IBindStatusCallback *LPBINDSTATUSCALLBACK;
1194 
1195 typedef enum __WIDL_urlmon_generated_name_00000003 {
1196     BINDVERB_GET = 0x0,
1197     BINDVERB_POST = 0x1,
1198     BINDVERB_PUT = 0x2,
1199     BINDVERB_CUSTOM = 0x3,
1200     BINDVERB_RESERVED1 = 0x4
1201 } BINDVERB;
1202 
1203 typedef enum __WIDL_urlmon_generated_name_00000004 {
1204     BINDINFOF_URLENCODESTGMEDDATA = 0x1,
1205     BINDINFOF_URLENCODEDEXTRAINFO = 0x2
1206 } BINDINFOF;
1207 
1208 typedef enum __WIDL_urlmon_generated_name_00000005 {
1209     BINDF_ASYNCHRONOUS = 0x1,
1210     BINDF_ASYNCSTORAGE = 0x2,
1211     BINDF_NOPROGRESSIVERENDERING = 0x4,
1212     BINDF_OFFLINEOPERATION = 0x8,
1213     BINDF_GETNEWESTVERSION = 0x10,
1214     BINDF_NOWRITECACHE = 0x20,
1215     BINDF_NEEDFILE = 0x40,
1216     BINDF_PULLDATA = 0x80,
1217     BINDF_IGNORESECURITYPROBLEM = 0x100,
1218     BINDF_RESYNCHRONIZE = 0x200,
1219     BINDF_HYPERLINK = 0x400,
1220     BINDF_NO_UI = 0x800,
1221     BINDF_SILENTOPERATION = 0x1000,
1222     BINDF_PRAGMA_NO_CACHE = 0x2000,
1223     BINDF_GETCLASSOBJECT = 0x4000,
1224     BINDF_RESERVED_1 = 0x8000,
1225     BINDF_FREE_THREADED = 0x10000,
1226     BINDF_DIRECT_READ = 0x20000,
1227     BINDF_FORMS_SUBMIT = 0x40000,
1228     BINDF_GETFROMCACHE_IF_NET_FAIL = 0x80000,
1229     BINDF_FROMURLMON = 0x100000,
1230     BINDF_FWD_BACK = 0x200000,
1231     BINDF_PREFERDEFAULTHANDLER = 0x400000,
1232     BINDF_ENFORCERESTRICTED = 0x800000,
1233     BINDF_RESERVED_2 = 0x80000000,
1234     BINDF_RESERVED_3 = 0x1000000,
1235     BINDF_RESERVED_4 = 0x2000000,
1236     BINDF_RESERVED_5 = 0x4000000,
1237     BINDF_RESERVED_6 = 0x8000000,
1238     BINDF_RESERVED_7 = 0x40000000,
1239     BINDF_RESERVED_8 = 0x20000000
1240 } BINDF;
1241 
1242 typedef enum __WIDL_urlmon_generated_name_00000006 {
1243     URL_ENCODING_NONE = 0x0,
1244     URL_ENCODING_ENABLE_UTF8 = 0x10000000,
1245     URL_ENCODING_DISABLE_UTF8 = 0x20000000
1246 } URL_ENCODING;
1247 
1248 typedef struct _tagBINDINFO {
1249     ULONG cbSize;
1250     LPWSTR szExtraInfo;
1251     STGMEDIUM stgmedData;
1252     DWORD grfBindInfoF;
1253     DWORD dwBindVerb;
1254     LPWSTR szCustomVerb;
1255     DWORD cbstgmedData;
1256     DWORD dwOptions;
1257     DWORD dwOptionsFlags;
1258     DWORD dwCodePage;
1259     SECURITY_ATTRIBUTES securityAttributes;
1260     IID iid;
1261     IUnknown *pUnk;
1262     DWORD dwReserved;
1263 } BINDINFO;
1264 
1265 typedef struct _REMSECURITY_ATTRIBUTES {
1266     DWORD nLength;
1267     DWORD lpSecurityDescriptor;
1268     WINBOOL bInheritHandle;
1269 } REMSECURITY_ATTRIBUTES;
1270 typedef struct _REMSECURITY_ATTRIBUTES *PREMSECURITY_ATTRIBUTES;
1271 typedef struct _REMSECURITY_ATTRIBUTES *LPREMSECURITY_ATTRIBUTES;
1272 
1273 typedef struct _tagRemBINDINFO {
1274     ULONG cbSize;
1275     LPWSTR szExtraInfo;
1276     DWORD grfBindInfoF;
1277     DWORD dwBindVerb;
1278     LPWSTR szCustomVerb;
1279     DWORD cbstgmedData;
1280     DWORD dwOptions;
1281     DWORD dwOptionsFlags;
1282     DWORD dwCodePage;
1283     REMSECURITY_ATTRIBUTES securityAttributes;
1284     IID iid;
1285     IUnknown *pUnk;
1286     DWORD dwReserved;
1287 } RemBINDINFO;
1288 
1289 typedef struct tagRemFORMATETC {
1290     DWORD cfFormat;
1291     DWORD ptd;
1292     DWORD dwAspect;
1293     LONG lindex;
1294     DWORD tymed;
1295 } RemFORMATETC;
1296 typedef struct tagRemFORMATETC *LPREMFORMATETC;
1297 
1298 typedef enum __WIDL_urlmon_generated_name_00000007 {
1299     BINDINFO_OPTIONS_WININETFLAG = 0x10000,
1300     BINDINFO_OPTIONS_ENABLE_UTF8 = 0x20000,
1301     BINDINFO_OPTIONS_DISABLE_UTF8 = 0x40000,
1302     BINDINFO_OPTIONS_USE_IE_ENCODING = 0x80000,
1303     BINDINFO_OPTIONS_BINDTOOBJECT = 0x100000,
1304     BINDINFO_OPTIONS_SECURITYOPTOUT = 0x200000,
1305     BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN = 0x400000,
1306     BINDINFO_OPTIONS_USEBINDSTRINGCREDS = 0x800000,
1307     BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS = 0x1000000,
1308     BINDINFO_OPTIONS_IGNORE_SSLERRORS_ONCE = 0x2000000,
1309     BINDINFO_WPC_DOWNLOADBLOCKED = 0x8000000,
1310     BINDINFO_WPC_LOGGING_ENABLED = 0x10000000,
1311     BINDINFO_OPTIONS_ALLOWCONNECTDATA = 0x20000000,
1312     BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS = 0x40000000,
1313     BINDINFO_OPTIONS_SHDOCVW_NAVIGATE = (int)0x80000000
1314 } BINDINFO_OPTIONS;
1315 
1316 typedef enum __WIDL_urlmon_generated_name_00000008 {
1317     BSCF_FIRSTDATANOTIFICATION = 0x1,
1318     BSCF_INTERMEDIATEDATANOTIFICATION = 0x2,
1319     BSCF_LASTDATANOTIFICATION = 0x4,
1320     BSCF_DATAFULLYAVAILABLE = 0x8,
1321     BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10,
1322     BSCF_SKIPDRAINDATAFORFILEURLS = 0x20,
1323     BSCF_64BITLENGTHDOWNLOAD = 0x40
1324 } BSCF;
1325 
1326 typedef enum tagBINDSTATUS {
1327     BINDSTATUS_FINDINGRESOURCE = 1,
1328     BINDSTATUS_CONNECTING = 2,
1329     BINDSTATUS_REDIRECTING = 3,
1330     BINDSTATUS_BEGINDOWNLOADDATA = 4,
1331     BINDSTATUS_DOWNLOADINGDATA = 5,
1332     BINDSTATUS_ENDDOWNLOADDATA = 6,
1333     BINDSTATUS_BEGINDOWNLOADCOMPONENTS = 7,
1334     BINDSTATUS_INSTALLINGCOMPONENTS = 8,
1335     BINDSTATUS_ENDDOWNLOADCOMPONENTS = 9,
1336     BINDSTATUS_USINGCACHEDCOPY = 10,
1337     BINDSTATUS_SENDINGREQUEST = 11,
1338     BINDSTATUS_CLASSIDAVAILABLE = 12,
1339     BINDSTATUS_MIMETYPEAVAILABLE = 13,
1340     BINDSTATUS_CACHEFILENAMEAVAILABLE = 14,
1341     BINDSTATUS_BEGINSYNCOPERATION = 15,
1342     BINDSTATUS_ENDSYNCOPERATION = 16,
1343     BINDSTATUS_BEGINUPLOADDATA = 17,
1344     BINDSTATUS_UPLOADINGDATA = 18,
1345     BINDSTATUS_ENDUPLOADDATA = 19,
1346     BINDSTATUS_PROTOCOLCLASSID = 20,
1347     BINDSTATUS_ENCODING = 21,
1348     BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE = 22,
1349     BINDSTATUS_CLASSINSTALLLOCATION = 23,
1350     BINDSTATUS_DECODING = 24,
1351     BINDSTATUS_LOADINGMIMEHANDLER = 25,
1352     BINDSTATUS_CONTENTDISPOSITIONATTACH = 26,
1353     BINDSTATUS_FILTERREPORTMIMETYPE = 27,
1354     BINDSTATUS_CLSIDCANINSTANTIATE = 28,
1355     BINDSTATUS_IUNKNOWNAVAILABLE = 29,
1356     BINDSTATUS_DIRECTBIND = 30,
1357     BINDSTATUS_RAWMIMETYPE = 31,
1358     BINDSTATUS_PROXYDETECTING = 32,
1359     BINDSTATUS_ACCEPTRANGES = 33,
1360     BINDSTATUS_COOKIE_SENT = 34,
1361     BINDSTATUS_COMPACT_POLICY_RECEIVED = 35,
1362     BINDSTATUS_COOKIE_SUPPRESSED = 36,
1363     BINDSTATUS_COOKIE_STATE_UNKNOWN = 37,
1364     BINDSTATUS_COOKIE_STATE_ACCEPT = 38,
1365     BINDSTATUS_COOKIE_STATE_REJECT = 39,
1366     BINDSTATUS_COOKIE_STATE_PROMPT = 40,
1367     BINDSTATUS_COOKIE_STATE_LEASH = 41,
1368     BINDSTATUS_COOKIE_STATE_DOWNGRADE = 42,
1369     BINDSTATUS_POLICY_HREF = 43,
1370     BINDSTATUS_P3P_HEADER = 44,
1371     BINDSTATUS_SESSION_COOKIE_RECEIVED = 45,
1372     BINDSTATUS_PERSISTENT_COOKIE_RECEIVED = 46,
1373     BINDSTATUS_SESSION_COOKIES_ALLOWED = 47,
1374     BINDSTATUS_CACHECONTROL = 48,
1375     BINDSTATUS_CONTENTDISPOSITIONFILENAME = 49,
1376     BINDSTATUS_MIMETEXTPLAINMISMATCH = 50,
1377     BINDSTATUS_PUBLISHERAVAILABLE = 51,
1378     BINDSTATUS_DISPLAYNAMEAVAILABLE = 52,
1379     BINDSTATUS_SSLUX_NAVBLOCKED = 53,
1380     BINDSTATUS_SERVER_MIMETYPEAVAILABLE = 54,
1381     BINDSTATUS_SNIFFED_CLASSIDAVAILABLE = 55,
1382     BINDSTATUS_64BIT_PROGRESS = 56,
1383     BINDSTATUS_LAST = BINDSTATUS_64BIT_PROGRESS,
1384     BINDSTATUS_RESERVED_0 = 57,
1385     BINDSTATUS_RESERVED_1 = 58,
1386     BINDSTATUS_RESERVED_2 = 59,
1387     BINDSTATUS_RESERVED_3 = 60,
1388     BINDSTATUS_RESERVED_4 = 61,
1389     BINDSTATUS_RESERVED_5 = 62,
1390     BINDSTATUS_RESERVED_6 = 63,
1391     BINDSTATUS_RESERVED_7 = 64,
1392     BINDSTATUS_RESERVED_8 = 65,
1393     BINDSTATUS_RESERVED_9 = 66,
1394     BINDSTATUS_LAST_PRIVATE = BINDSTATUS_RESERVED_9
1395 } BINDSTATUS;
1396 
1397 DEFINE_GUID(IID_IBindStatusCallback, 0x79eac9c1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
1398 #if defined(__cplusplus) && !defined(CINTERFACE)
1399 MIDL_INTERFACE("79eac9c1-baf9-11ce-8c82-00aa004ba90b")
1400 IBindStatusCallback : public IUnknown
1401 {
1402     virtual HRESULT STDMETHODCALLTYPE OnStartBinding(
1403         DWORD dwReserved,
1404         IBinding *pib) = 0;
1405 
1406     virtual HRESULT STDMETHODCALLTYPE GetPriority(
1407         LONG *pnPriority) = 0;
1408 
1409     virtual HRESULT STDMETHODCALLTYPE OnLowResource(
1410         DWORD reserved) = 0;
1411 
1412     virtual HRESULT STDMETHODCALLTYPE OnProgress(
1413         ULONG ulProgress,
1414         ULONG ulProgressMax,
1415         ULONG ulStatusCode,
1416         LPCWSTR szStatusText) = 0;
1417 
1418     virtual HRESULT STDMETHODCALLTYPE OnStopBinding(
1419         HRESULT hresult,
1420         LPCWSTR szError) = 0;
1421 
1422     virtual HRESULT STDMETHODCALLTYPE GetBindInfo(
1423         DWORD *grfBINDF,
1424         BINDINFO *pbindinfo) = 0;
1425 
1426     virtual HRESULT STDMETHODCALLTYPE OnDataAvailable(
1427         DWORD grfBSCF,
1428         DWORD dwSize,
1429         FORMATETC *pformatetc,
1430         STGMEDIUM *pstgmed) = 0;
1431 
1432     virtual HRESULT STDMETHODCALLTYPE OnObjectAvailable(
1433         REFIID riid,
1434         IUnknown *punk) = 0;
1435 
1436 };
1437 #ifdef __CRT_UUID_DECL
1438 __CRT_UUID_DECL(IBindStatusCallback, 0x79eac9c1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
1439 #endif
1440 #else
1441 typedef struct IBindStatusCallbackVtbl {
1442     BEGIN_INTERFACE
1443 
1444     /*** IUnknown methods ***/
1445     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1446         IBindStatusCallback* This,
1447         REFIID riid,
1448         void **ppvObject);
1449 
1450     ULONG (STDMETHODCALLTYPE *AddRef)(
1451         IBindStatusCallback* This);
1452 
1453     ULONG (STDMETHODCALLTYPE *Release)(
1454         IBindStatusCallback* This);
1455 
1456     /*** IBindStatusCallback methods ***/
1457     HRESULT (STDMETHODCALLTYPE *OnStartBinding)(
1458         IBindStatusCallback* This,
1459         DWORD dwReserved,
1460         IBinding *pib);
1461 
1462     HRESULT (STDMETHODCALLTYPE *GetPriority)(
1463         IBindStatusCallback* This,
1464         LONG *pnPriority);
1465 
1466     HRESULT (STDMETHODCALLTYPE *OnLowResource)(
1467         IBindStatusCallback* This,
1468         DWORD reserved);
1469 
1470     HRESULT (STDMETHODCALLTYPE *OnProgress)(
1471         IBindStatusCallback* This,
1472         ULONG ulProgress,
1473         ULONG ulProgressMax,
1474         ULONG ulStatusCode,
1475         LPCWSTR szStatusText);
1476 
1477     HRESULT (STDMETHODCALLTYPE *OnStopBinding)(
1478         IBindStatusCallback* This,
1479         HRESULT hresult,
1480         LPCWSTR szError);
1481 
1482     HRESULT (STDMETHODCALLTYPE *GetBindInfo)(
1483         IBindStatusCallback* This,
1484         DWORD *grfBINDF,
1485         BINDINFO *pbindinfo);
1486 
1487     HRESULT (STDMETHODCALLTYPE *OnDataAvailable)(
1488         IBindStatusCallback* This,
1489         DWORD grfBSCF,
1490         DWORD dwSize,
1491         FORMATETC *pformatetc,
1492         STGMEDIUM *pstgmed);
1493 
1494     HRESULT (STDMETHODCALLTYPE *OnObjectAvailable)(
1495         IBindStatusCallback* This,
1496         REFIID riid,
1497         IUnknown *punk);
1498 
1499     END_INTERFACE
1500 } IBindStatusCallbackVtbl;
1501 interface IBindStatusCallback {
1502     CONST_VTBL IBindStatusCallbackVtbl* lpVtbl;
1503 };
1504 
1505 #ifdef COBJMACROS
1506 #ifndef WIDL_C_INLINE_WRAPPERS
1507 /*** IUnknown methods ***/
1508 #define IBindStatusCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1509 #define IBindStatusCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
1510 #define IBindStatusCallback_Release(This) (This)->lpVtbl->Release(This)
1511 /*** IBindStatusCallback methods ***/
1512 #define IBindStatusCallback_OnStartBinding(This,dwReserved,pib) (This)->lpVtbl->OnStartBinding(This,dwReserved,pib)
1513 #define IBindStatusCallback_GetPriority(This,pnPriority) (This)->lpVtbl->GetPriority(This,pnPriority)
1514 #define IBindStatusCallback_OnLowResource(This,reserved) (This)->lpVtbl->OnLowResource(This,reserved)
1515 #define IBindStatusCallback_OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText) (This)->lpVtbl->OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText)
1516 #define IBindStatusCallback_OnStopBinding(This,hresult,szError) (This)->lpVtbl->OnStopBinding(This,hresult,szError)
1517 #define IBindStatusCallback_GetBindInfo(This,grfBINDF,pbindinfo) (This)->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo)
1518 #define IBindStatusCallback_OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed) (This)->lpVtbl->OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed)
1519 #define IBindStatusCallback_OnObjectAvailable(This,riid,punk) (This)->lpVtbl->OnObjectAvailable(This,riid,punk)
1520 #else
1521 /*** IUnknown methods ***/
1522 static FORCEINLINE HRESULT IBindStatusCallback_QueryInterface(IBindStatusCallback* This,REFIID riid,void **ppvObject) {
1523     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1524 }
1525 static FORCEINLINE ULONG IBindStatusCallback_AddRef(IBindStatusCallback* This) {
1526     return This->lpVtbl->AddRef(This);
1527 }
1528 static FORCEINLINE ULONG IBindStatusCallback_Release(IBindStatusCallback* This) {
1529     return This->lpVtbl->Release(This);
1530 }
1531 /*** IBindStatusCallback methods ***/
1532 static FORCEINLINE HRESULT IBindStatusCallback_OnStartBinding(IBindStatusCallback* This,DWORD dwReserved,IBinding *pib) {
1533     return This->lpVtbl->OnStartBinding(This,dwReserved,pib);
1534 }
1535 static FORCEINLINE HRESULT IBindStatusCallback_GetPriority(IBindStatusCallback* This,LONG *pnPriority) {
1536     return This->lpVtbl->GetPriority(This,pnPriority);
1537 }
1538 static FORCEINLINE HRESULT IBindStatusCallback_OnLowResource(IBindStatusCallback* This,DWORD reserved) {
1539     return This->lpVtbl->OnLowResource(This,reserved);
1540 }
1541 static FORCEINLINE HRESULT IBindStatusCallback_OnProgress(IBindStatusCallback* This,ULONG ulProgress,ULONG ulProgressMax,ULONG ulStatusCode,LPCWSTR szStatusText) {
1542     return This->lpVtbl->OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText);
1543 }
1544 static FORCEINLINE HRESULT IBindStatusCallback_OnStopBinding(IBindStatusCallback* This,HRESULT hresult,LPCWSTR szError) {
1545     return This->lpVtbl->OnStopBinding(This,hresult,szError);
1546 }
1547 static FORCEINLINE HRESULT IBindStatusCallback_GetBindInfo(IBindStatusCallback* This,DWORD *grfBINDF,BINDINFO *pbindinfo) {
1548     return This->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo);
1549 }
1550 static FORCEINLINE HRESULT IBindStatusCallback_OnDataAvailable(IBindStatusCallback* This,DWORD grfBSCF,DWORD dwSize,FORMATETC *pformatetc,STGMEDIUM *pstgmed) {
1551     return This->lpVtbl->OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed);
1552 }
1553 static FORCEINLINE HRESULT IBindStatusCallback_OnObjectAvailable(IBindStatusCallback* This,REFIID riid,IUnknown *punk) {
1554     return This->lpVtbl->OnObjectAvailable(This,riid,punk);
1555 }
1556 #endif
1557 #endif
1558 
1559 #endif
1560 
1561 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnStartBinding_Proxy(
1562     IBindStatusCallback* This,
1563     DWORD dwReserved,
1564     IBinding *pib);
1565 void __RPC_STUB IBindStatusCallback_OnStartBinding_Stub(
1566     IRpcStubBuffer* This,
1567     IRpcChannelBuffer* pRpcChannelBuffer,
1568     PRPC_MESSAGE pRpcMessage,
1569     DWORD* pdwStubPhase);
1570 HRESULT STDMETHODCALLTYPE IBindStatusCallback_GetPriority_Proxy(
1571     IBindStatusCallback* This,
1572     LONG *pnPriority);
1573 void __RPC_STUB IBindStatusCallback_GetPriority_Stub(
1574     IRpcStubBuffer* This,
1575     IRpcChannelBuffer* pRpcChannelBuffer,
1576     PRPC_MESSAGE pRpcMessage,
1577     DWORD* pdwStubPhase);
1578 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnLowResource_Proxy(
1579     IBindStatusCallback* This,
1580     DWORD reserved);
1581 void __RPC_STUB IBindStatusCallback_OnLowResource_Stub(
1582     IRpcStubBuffer* This,
1583     IRpcChannelBuffer* pRpcChannelBuffer,
1584     PRPC_MESSAGE pRpcMessage,
1585     DWORD* pdwStubPhase);
1586 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnProgress_Proxy(
1587     IBindStatusCallback* This,
1588     ULONG ulProgress,
1589     ULONG ulProgressMax,
1590     ULONG ulStatusCode,
1591     LPCWSTR szStatusText);
1592 void __RPC_STUB IBindStatusCallback_OnProgress_Stub(
1593     IRpcStubBuffer* This,
1594     IRpcChannelBuffer* pRpcChannelBuffer,
1595     PRPC_MESSAGE pRpcMessage,
1596     DWORD* pdwStubPhase);
1597 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnStopBinding_Proxy(
1598     IBindStatusCallback* This,
1599     HRESULT hresult,
1600     LPCWSTR szError);
1601 void __RPC_STUB IBindStatusCallback_OnStopBinding_Stub(
1602     IRpcStubBuffer* This,
1603     IRpcChannelBuffer* pRpcChannelBuffer,
1604     PRPC_MESSAGE pRpcMessage,
1605     DWORD* pdwStubPhase);
1606 HRESULT STDMETHODCALLTYPE IBindStatusCallback_RemoteGetBindInfo_Proxy(
1607     IBindStatusCallback* This,
1608     DWORD *grfBINDF,
1609     RemBINDINFO *pbindinfo,
1610     RemSTGMEDIUM *pstgmed);
1611 void __RPC_STUB IBindStatusCallback_RemoteGetBindInfo_Stub(
1612     IRpcStubBuffer* This,
1613     IRpcChannelBuffer* pRpcChannelBuffer,
1614     PRPC_MESSAGE pRpcMessage,
1615     DWORD* pdwStubPhase);
1616 HRESULT STDMETHODCALLTYPE IBindStatusCallback_RemoteOnDataAvailable_Proxy(
1617     IBindStatusCallback* This,
1618     DWORD grfBSCF,
1619     DWORD dwSize,
1620     RemFORMATETC *pformatetc,
1621     RemSTGMEDIUM *pstgmed);
1622 void __RPC_STUB IBindStatusCallback_RemoteOnDataAvailable_Stub(
1623     IRpcStubBuffer* This,
1624     IRpcChannelBuffer* pRpcChannelBuffer,
1625     PRPC_MESSAGE pRpcMessage,
1626     DWORD* pdwStubPhase);
1627 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnObjectAvailable_Proxy(
1628     IBindStatusCallback* This,
1629     REFIID riid,
1630     IUnknown *punk);
1631 void __RPC_STUB IBindStatusCallback_OnObjectAvailable_Stub(
1632     IRpcStubBuffer* This,
1633     IRpcChannelBuffer* pRpcChannelBuffer,
1634     PRPC_MESSAGE pRpcMessage,
1635     DWORD* pdwStubPhase);
1636 HRESULT CALLBACK IBindStatusCallback_GetBindInfo_Proxy(
1637     IBindStatusCallback* This,
1638     DWORD *grfBINDF,
1639     BINDINFO *pbindinfo);
1640 HRESULT __RPC_STUB IBindStatusCallback_GetBindInfo_Stub(
1641     IBindStatusCallback* This,
1642     DWORD *grfBINDF,
1643     RemBINDINFO *pbindinfo,
1644     RemSTGMEDIUM *pstgmed);
1645 HRESULT CALLBACK IBindStatusCallback_OnDataAvailable_Proxy(
1646     IBindStatusCallback* This,
1647     DWORD grfBSCF,
1648     DWORD dwSize,
1649     FORMATETC *pformatetc,
1650     STGMEDIUM *pstgmed);
1651 HRESULT __RPC_STUB IBindStatusCallback_OnDataAvailable_Stub(
1652     IBindStatusCallback* This,
1653     DWORD grfBSCF,
1654     DWORD dwSize,
1655     RemFORMATETC *pformatetc,
1656     RemSTGMEDIUM *pstgmed);
1657 
1658 #endif  /* __IBindStatusCallback_INTERFACE_DEFINED__ */
1659 
1660 #endif
1661 #endif
1662 
1663 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
1664 #ifndef _LPBINDSTATUSCALLBACKEX_DEFINED
1665 #define _LPBINDSTATUSCALLBACKEX_DEFINED
1666 
1667 /*****************************************************************************
1668  * IBindStatusCallbackEx interface
1669  */
1670 #ifndef __IBindStatusCallbackEx_INTERFACE_DEFINED__
1671 #define __IBindStatusCallbackEx_INTERFACE_DEFINED__
1672 
1673 typedef IBindStatusCallbackEx *LPBINDSTATUSCALLBACKEX;
1674 
1675 typedef enum __WIDL_urlmon_generated_name_00000009 {
1676     BINDF2_DISABLEBASICOVERHTTP = 0x1,
1677     BINDF2_DISABLEAUTOCOOKIEHANDLING = 0x2,
1678     BINDF2_READ_DATA_GREATER_THAN_4GB = 0x4,
1679     BINDF2_DISABLE_HTTP_REDIRECT_XSECURITYID = 0x8,
1680     BINDF2_SETDOWNLOADMODE = 0x20,
1681     BINDF2_DISABLE_HTTP_REDIRECT_CACHING = 0x40,
1682     BINDF2_KEEP_CALLBACK_MODULE_LOADED = 0x80,
1683     BINDF2_ALLOW_PROXY_CRED_PROMPT = 0x100,
1684     BINDF2_RESERVED_F = 0x20000,
1685     BINDF2_RESERVED_E = 0x40000,
1686     BINDF2_RESERVED_D = 0x80000,
1687     BINDF2_RESERVED_C = 0x100000,
1688     BINDF2_RESERVED_B = 0x200000,
1689     BINDF2_RESERVED_A = 0x400000,
1690     BINDF2_RESERVED_9 = 0x800000,
1691     BINDF2_RESERVED_8 = 0x1000000,
1692     BINDF2_RESERVED_7 = 0x2000000,
1693     BINDF2_RESERVED_6 = 0x4000000,
1694     BINDF2_RESERVED_5 = 0x8000000,
1695     BINDF2_RESERVED_4 = 0x10000000,
1696     BINDF2_RESERVED_3 = 0x20000000,
1697     BINDF2_RESERVED_2 = 0x40000000,
1698     BINDF2_RESERVED_1 = 0x80000000
1699 } BINDF2;
1700 
1701 DEFINE_GUID(IID_IBindStatusCallbackEx, 0xaaa74ef9, 0x8ee7, 0x4659, 0x88,0xd9, 0xf8,0xc5,0x04,0xda,0x73,0xcc);
1702 #if defined(__cplusplus) && !defined(CINTERFACE)
1703 MIDL_INTERFACE("aaa74ef9-8ee7-4659-88d9-f8c504da73cc")
1704 IBindStatusCallbackEx : public IBindStatusCallback
1705 {
1706     virtual HRESULT STDMETHODCALLTYPE GetBindInfoEx(
1707         DWORD *grfBINDF,
1708         BINDINFO *pbindinfo,
1709         DWORD *grfBINDF2,
1710         DWORD *pdwReserved) = 0;
1711 
1712 };
1713 #ifdef __CRT_UUID_DECL
1714 __CRT_UUID_DECL(IBindStatusCallbackEx, 0xaaa74ef9, 0x8ee7, 0x4659, 0x88,0xd9, 0xf8,0xc5,0x04,0xda,0x73,0xcc)
1715 #endif
1716 #else
1717 typedef struct IBindStatusCallbackExVtbl {
1718     BEGIN_INTERFACE
1719 
1720     /*** IUnknown methods ***/
1721     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1722         IBindStatusCallbackEx* This,
1723         REFIID riid,
1724         void **ppvObject);
1725 
1726     ULONG (STDMETHODCALLTYPE *AddRef)(
1727         IBindStatusCallbackEx* This);
1728 
1729     ULONG (STDMETHODCALLTYPE *Release)(
1730         IBindStatusCallbackEx* This);
1731 
1732     /*** IBindStatusCallback methods ***/
1733     HRESULT (STDMETHODCALLTYPE *OnStartBinding)(
1734         IBindStatusCallbackEx* This,
1735         DWORD dwReserved,
1736         IBinding *pib);
1737 
1738     HRESULT (STDMETHODCALLTYPE *GetPriority)(
1739         IBindStatusCallbackEx* This,
1740         LONG *pnPriority);
1741 
1742     HRESULT (STDMETHODCALLTYPE *OnLowResource)(
1743         IBindStatusCallbackEx* This,
1744         DWORD reserved);
1745 
1746     HRESULT (STDMETHODCALLTYPE *OnProgress)(
1747         IBindStatusCallbackEx* This,
1748         ULONG ulProgress,
1749         ULONG ulProgressMax,
1750         ULONG ulStatusCode,
1751         LPCWSTR szStatusText);
1752 
1753     HRESULT (STDMETHODCALLTYPE *OnStopBinding)(
1754         IBindStatusCallbackEx* This,
1755         HRESULT hresult,
1756         LPCWSTR szError);
1757 
1758     HRESULT (STDMETHODCALLTYPE *GetBindInfo)(
1759         IBindStatusCallbackEx* This,
1760         DWORD *grfBINDF,
1761         BINDINFO *pbindinfo);
1762 
1763     HRESULT (STDMETHODCALLTYPE *OnDataAvailable)(
1764         IBindStatusCallbackEx* This,
1765         DWORD grfBSCF,
1766         DWORD dwSize,
1767         FORMATETC *pformatetc,
1768         STGMEDIUM *pstgmed);
1769 
1770     HRESULT (STDMETHODCALLTYPE *OnObjectAvailable)(
1771         IBindStatusCallbackEx* This,
1772         REFIID riid,
1773         IUnknown *punk);
1774 
1775     /*** IBindStatusCallbackEx methods ***/
1776     HRESULT (STDMETHODCALLTYPE *GetBindInfoEx)(
1777         IBindStatusCallbackEx* This,
1778         DWORD *grfBINDF,
1779         BINDINFO *pbindinfo,
1780         DWORD *grfBINDF2,
1781         DWORD *pdwReserved);
1782 
1783     END_INTERFACE
1784 } IBindStatusCallbackExVtbl;
1785 interface IBindStatusCallbackEx {
1786     CONST_VTBL IBindStatusCallbackExVtbl* lpVtbl;
1787 };
1788 
1789 #ifdef COBJMACROS
1790 #ifndef WIDL_C_INLINE_WRAPPERS
1791 /*** IUnknown methods ***/
1792 #define IBindStatusCallbackEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1793 #define IBindStatusCallbackEx_AddRef(This) (This)->lpVtbl->AddRef(This)
1794 #define IBindStatusCallbackEx_Release(This) (This)->lpVtbl->Release(This)
1795 /*** IBindStatusCallback methods ***/
1796 #define IBindStatusCallbackEx_OnStartBinding(This,dwReserved,pib) (This)->lpVtbl->OnStartBinding(This,dwReserved,pib)
1797 #define IBindStatusCallbackEx_GetPriority(This,pnPriority) (This)->lpVtbl->GetPriority(This,pnPriority)
1798 #define IBindStatusCallbackEx_OnLowResource(This,reserved) (This)->lpVtbl->OnLowResource(This,reserved)
1799 #define IBindStatusCallbackEx_OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText) (This)->lpVtbl->OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText)
1800 #define IBindStatusCallbackEx_OnStopBinding(This,hresult,szError) (This)->lpVtbl->OnStopBinding(This,hresult,szError)
1801 #define IBindStatusCallbackEx_GetBindInfo(This,grfBINDF,pbindinfo) (This)->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo)
1802 #define IBindStatusCallbackEx_OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed) (This)->lpVtbl->OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed)
1803 #define IBindStatusCallbackEx_OnObjectAvailable(This,riid,punk) (This)->lpVtbl->OnObjectAvailable(This,riid,punk)
1804 /*** IBindStatusCallbackEx methods ***/
1805 #define IBindStatusCallbackEx_GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved) (This)->lpVtbl->GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved)
1806 #else
1807 /*** IUnknown methods ***/
1808 static FORCEINLINE HRESULT IBindStatusCallbackEx_QueryInterface(IBindStatusCallbackEx* This,REFIID riid,void **ppvObject) {
1809     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1810 }
1811 static FORCEINLINE ULONG IBindStatusCallbackEx_AddRef(IBindStatusCallbackEx* This) {
1812     return This->lpVtbl->AddRef(This);
1813 }
1814 static FORCEINLINE ULONG IBindStatusCallbackEx_Release(IBindStatusCallbackEx* This) {
1815     return This->lpVtbl->Release(This);
1816 }
1817 /*** IBindStatusCallback methods ***/
1818 static FORCEINLINE HRESULT IBindStatusCallbackEx_OnStartBinding(IBindStatusCallbackEx* This,DWORD dwReserved,IBinding *pib) {
1819     return This->lpVtbl->OnStartBinding(This,dwReserved,pib);
1820 }
1821 static FORCEINLINE HRESULT IBindStatusCallbackEx_GetPriority(IBindStatusCallbackEx* This,LONG *pnPriority) {
1822     return This->lpVtbl->GetPriority(This,pnPriority);
1823 }
1824 static FORCEINLINE HRESULT IBindStatusCallbackEx_OnLowResource(IBindStatusCallbackEx* This,DWORD reserved) {
1825     return This->lpVtbl->OnLowResource(This,reserved);
1826 }
1827 static FORCEINLINE HRESULT IBindStatusCallbackEx_OnProgress(IBindStatusCallbackEx* This,ULONG ulProgress,ULONG ulProgressMax,ULONG ulStatusCode,LPCWSTR szStatusText) {
1828     return This->lpVtbl->OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText);
1829 }
1830 static FORCEINLINE HRESULT IBindStatusCallbackEx_OnStopBinding(IBindStatusCallbackEx* This,HRESULT hresult,LPCWSTR szError) {
1831     return This->lpVtbl->OnStopBinding(This,hresult,szError);
1832 }
1833 static FORCEINLINE HRESULT IBindStatusCallbackEx_GetBindInfo(IBindStatusCallbackEx* This,DWORD *grfBINDF,BINDINFO *pbindinfo) {
1834     return This->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo);
1835 }
1836 static FORCEINLINE HRESULT IBindStatusCallbackEx_OnDataAvailable(IBindStatusCallbackEx* This,DWORD grfBSCF,DWORD dwSize,FORMATETC *pformatetc,STGMEDIUM *pstgmed) {
1837     return This->lpVtbl->OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed);
1838 }
1839 static FORCEINLINE HRESULT IBindStatusCallbackEx_OnObjectAvailable(IBindStatusCallbackEx* This,REFIID riid,IUnknown *punk) {
1840     return This->lpVtbl->OnObjectAvailable(This,riid,punk);
1841 }
1842 /*** IBindStatusCallbackEx methods ***/
1843 static FORCEINLINE HRESULT IBindStatusCallbackEx_GetBindInfoEx(IBindStatusCallbackEx* This,DWORD *grfBINDF,BINDINFO *pbindinfo,DWORD *grfBINDF2,DWORD *pdwReserved) {
1844     return This->lpVtbl->GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved);
1845 }
1846 #endif
1847 #endif
1848 
1849 #endif
1850 
1851 HRESULT STDMETHODCALLTYPE IBindStatusCallbackEx_RemoteGetBindInfoEx_Proxy(
1852     IBindStatusCallbackEx* This,
1853     DWORD *grfBINDF,
1854     RemBINDINFO *pbindinfo,
1855     RemSTGMEDIUM *pstgmed,
1856     DWORD *grfBINDF2,
1857     DWORD *pdwReserved);
1858 void __RPC_STUB IBindStatusCallbackEx_RemoteGetBindInfoEx_Stub(
1859     IRpcStubBuffer* This,
1860     IRpcChannelBuffer* pRpcChannelBuffer,
1861     PRPC_MESSAGE pRpcMessage,
1862     DWORD* pdwStubPhase);
1863 HRESULT CALLBACK IBindStatusCallbackEx_GetBindInfoEx_Proxy(
1864     IBindStatusCallbackEx* This,
1865     DWORD *grfBINDF,
1866     BINDINFO *pbindinfo,
1867     DWORD *grfBINDF2,
1868     DWORD *pdwReserved);
1869 HRESULT __RPC_STUB IBindStatusCallbackEx_GetBindInfoEx_Stub(
1870     IBindStatusCallbackEx* This,
1871     DWORD *grfBINDF,
1872     RemBINDINFO *pbindinfo,
1873     RemSTGMEDIUM *pstgmed,
1874     DWORD *grfBINDF2,
1875     DWORD *pdwReserved);
1876 
1877 #endif  /* __IBindStatusCallbackEx_INTERFACE_DEFINED__ */
1878 
1879 #endif
1880 
1881 #ifndef _LPAUTHENTICATION_DEFINED
1882 #define _LPAUTHENTICATION_DEFINED
1883 
1884 /*****************************************************************************
1885  * IAuthenticate interface
1886  */
1887 #ifndef __IAuthenticate_INTERFACE_DEFINED__
1888 #define __IAuthenticate_INTERFACE_DEFINED__
1889 
1890 typedef IAuthenticate *LPAUTHENTICATION;
1891 
1892 DEFINE_GUID(IID_IAuthenticate, 0x79eac9d0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
1893 #if defined(__cplusplus) && !defined(CINTERFACE)
1894 MIDL_INTERFACE("79eac9d0-baf9-11ce-8c82-00aa004ba90b")
1895 IAuthenticate : public IUnknown
1896 {
1897     virtual HRESULT STDMETHODCALLTYPE Authenticate(
1898         HWND *phwnd,
1899         LPWSTR *pszUsername,
1900         LPWSTR *pszPassword) = 0;
1901 
1902 };
1903 #ifdef __CRT_UUID_DECL
1904 __CRT_UUID_DECL(IAuthenticate, 0x79eac9d0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
1905 #endif
1906 #else
1907 typedef struct IAuthenticateVtbl {
1908     BEGIN_INTERFACE
1909 
1910     /*** IUnknown methods ***/
1911     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1912         IAuthenticate* This,
1913         REFIID riid,
1914         void **ppvObject);
1915 
1916     ULONG (STDMETHODCALLTYPE *AddRef)(
1917         IAuthenticate* This);
1918 
1919     ULONG (STDMETHODCALLTYPE *Release)(
1920         IAuthenticate* This);
1921 
1922     /*** IAuthenticate methods ***/
1923     HRESULT (STDMETHODCALLTYPE *Authenticate)(
1924         IAuthenticate* This,
1925         HWND *phwnd,
1926         LPWSTR *pszUsername,
1927         LPWSTR *pszPassword);
1928 
1929     END_INTERFACE
1930 } IAuthenticateVtbl;
1931 interface IAuthenticate {
1932     CONST_VTBL IAuthenticateVtbl* lpVtbl;
1933 };
1934 
1935 #ifdef COBJMACROS
1936 #ifndef WIDL_C_INLINE_WRAPPERS
1937 /*** IUnknown methods ***/
1938 #define IAuthenticate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1939 #define IAuthenticate_AddRef(This) (This)->lpVtbl->AddRef(This)
1940 #define IAuthenticate_Release(This) (This)->lpVtbl->Release(This)
1941 /*** IAuthenticate methods ***/
1942 #define IAuthenticate_Authenticate(This,phwnd,pszUsername,pszPassword) (This)->lpVtbl->Authenticate(This,phwnd,pszUsername,pszPassword)
1943 #else
1944 /*** IUnknown methods ***/
1945 static FORCEINLINE HRESULT IAuthenticate_QueryInterface(IAuthenticate* This,REFIID riid,void **ppvObject) {
1946     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1947 }
1948 static FORCEINLINE ULONG IAuthenticate_AddRef(IAuthenticate* This) {
1949     return This->lpVtbl->AddRef(This);
1950 }
1951 static FORCEINLINE ULONG IAuthenticate_Release(IAuthenticate* This) {
1952     return This->lpVtbl->Release(This);
1953 }
1954 /*** IAuthenticate methods ***/
1955 static FORCEINLINE HRESULT IAuthenticate_Authenticate(IAuthenticate* This,HWND *phwnd,LPWSTR *pszUsername,LPWSTR *pszPassword) {
1956     return This->lpVtbl->Authenticate(This,phwnd,pszUsername,pszPassword);
1957 }
1958 #endif
1959 #endif
1960 
1961 #endif
1962 
1963 HRESULT STDMETHODCALLTYPE IAuthenticate_Authenticate_Proxy(
1964     IAuthenticate* This,
1965     HWND *phwnd,
1966     LPWSTR *pszUsername,
1967     LPWSTR *pszPassword);
1968 void __RPC_STUB IAuthenticate_Authenticate_Stub(
1969     IRpcStubBuffer* This,
1970     IRpcChannelBuffer* pRpcChannelBuffer,
1971     PRPC_MESSAGE pRpcMessage,
1972     DWORD* pdwStubPhase);
1973 
1974 #endif  /* __IAuthenticate_INTERFACE_DEFINED__ */
1975 
1976 #endif
1977 
1978 #ifndef _LPAUTHENTICATIONEX_DEFINED
1979 #define _LPAUTHENTICATIONEX_DEFINED
1980 
1981 /*****************************************************************************
1982  * IAuthenticateEx interface
1983  */
1984 #ifndef __IAuthenticateEx_INTERFACE_DEFINED__
1985 #define __IAuthenticateEx_INTERFACE_DEFINED__
1986 
1987 typedef IAuthenticateEx *LPAUTHENTICATIONEX;
1988 
1989 typedef enum __WIDL_urlmon_generated_name_0000000A {
1990     AUTHENTICATEF_PROXY = 0x1,
1991     AUTHENTICATEF_BASIC = 0x2,
1992     AUTHENTICATEF_HTTP = 0x4
1993 } AUTHENTICATEF;
1994 
1995 typedef struct _tagAUTHENTICATEINFO {
1996     DWORD dwFlags;
1997     DWORD dwReserved;
1998 } AUTHENTICATEINFO;
1999 
2000 DEFINE_GUID(IID_IAuthenticateEx, 0x2ad1edaf, 0xd83d, 0x48b5, 0x9a,0xdf, 0x03,0xdb,0xe1,0x9f,0x53,0xbd);
2001 #if defined(__cplusplus) && !defined(CINTERFACE)
2002 MIDL_INTERFACE("2ad1edaf-d83d-48b5-9adf-03dbe19f53bd")
2003 IAuthenticateEx : public IAuthenticate
2004 {
2005     virtual HRESULT STDMETHODCALLTYPE AuthenticateEx(
2006         HWND *phwnd,
2007         LPWSTR *pszUsername,
2008         LPWSTR *pszPassword,
2009         AUTHENTICATEINFO *pauthinfo) = 0;
2010 
2011 };
2012 #ifdef __CRT_UUID_DECL
2013 __CRT_UUID_DECL(IAuthenticateEx, 0x2ad1edaf, 0xd83d, 0x48b5, 0x9a,0xdf, 0x03,0xdb,0xe1,0x9f,0x53,0xbd)
2014 #endif
2015 #else
2016 typedef struct IAuthenticateExVtbl {
2017     BEGIN_INTERFACE
2018 
2019     /*** IUnknown methods ***/
2020     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2021         IAuthenticateEx* This,
2022         REFIID riid,
2023         void **ppvObject);
2024 
2025     ULONG (STDMETHODCALLTYPE *AddRef)(
2026         IAuthenticateEx* This);
2027 
2028     ULONG (STDMETHODCALLTYPE *Release)(
2029         IAuthenticateEx* This);
2030 
2031     /*** IAuthenticate methods ***/
2032     HRESULT (STDMETHODCALLTYPE *Authenticate)(
2033         IAuthenticateEx* This,
2034         HWND *phwnd,
2035         LPWSTR *pszUsername,
2036         LPWSTR *pszPassword);
2037 
2038     /*** IAuthenticateEx methods ***/
2039     HRESULT (STDMETHODCALLTYPE *AuthenticateEx)(
2040         IAuthenticateEx* This,
2041         HWND *phwnd,
2042         LPWSTR *pszUsername,
2043         LPWSTR *pszPassword,
2044         AUTHENTICATEINFO *pauthinfo);
2045 
2046     END_INTERFACE
2047 } IAuthenticateExVtbl;
2048 interface IAuthenticateEx {
2049     CONST_VTBL IAuthenticateExVtbl* lpVtbl;
2050 };
2051 
2052 #ifdef COBJMACROS
2053 #ifndef WIDL_C_INLINE_WRAPPERS
2054 /*** IUnknown methods ***/
2055 #define IAuthenticateEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2056 #define IAuthenticateEx_AddRef(This) (This)->lpVtbl->AddRef(This)
2057 #define IAuthenticateEx_Release(This) (This)->lpVtbl->Release(This)
2058 /*** IAuthenticate methods ***/
2059 #define IAuthenticateEx_Authenticate(This,phwnd,pszUsername,pszPassword) (This)->lpVtbl->Authenticate(This,phwnd,pszUsername,pszPassword)
2060 /*** IAuthenticateEx methods ***/
2061 #define IAuthenticateEx_AuthenticateEx(This,phwnd,pszUsername,pszPassword,pauthinfo) (This)->lpVtbl->AuthenticateEx(This,phwnd,pszUsername,pszPassword,pauthinfo)
2062 #else
2063 /*** IUnknown methods ***/
2064 static FORCEINLINE HRESULT IAuthenticateEx_QueryInterface(IAuthenticateEx* This,REFIID riid,void **ppvObject) {
2065     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2066 }
2067 static FORCEINLINE ULONG IAuthenticateEx_AddRef(IAuthenticateEx* This) {
2068     return This->lpVtbl->AddRef(This);
2069 }
2070 static FORCEINLINE ULONG IAuthenticateEx_Release(IAuthenticateEx* This) {
2071     return This->lpVtbl->Release(This);
2072 }
2073 /*** IAuthenticate methods ***/
2074 static FORCEINLINE HRESULT IAuthenticateEx_Authenticate(IAuthenticateEx* This,HWND *phwnd,LPWSTR *pszUsername,LPWSTR *pszPassword) {
2075     return This->lpVtbl->Authenticate(This,phwnd,pszUsername,pszPassword);
2076 }
2077 /*** IAuthenticateEx methods ***/
2078 static FORCEINLINE HRESULT IAuthenticateEx_AuthenticateEx(IAuthenticateEx* This,HWND *phwnd,LPWSTR *pszUsername,LPWSTR *pszPassword,AUTHENTICATEINFO *pauthinfo) {
2079     return This->lpVtbl->AuthenticateEx(This,phwnd,pszUsername,pszPassword,pauthinfo);
2080 }
2081 #endif
2082 #endif
2083 
2084 #endif
2085 
2086 HRESULT STDMETHODCALLTYPE IAuthenticateEx_AuthenticateEx_Proxy(
2087     IAuthenticateEx* This,
2088     HWND *phwnd,
2089     LPWSTR *pszUsername,
2090     LPWSTR *pszPassword,
2091     AUTHENTICATEINFO *pauthinfo);
2092 void __RPC_STUB IAuthenticateEx_AuthenticateEx_Stub(
2093     IRpcStubBuffer* This,
2094     IRpcChannelBuffer* pRpcChannelBuffer,
2095     PRPC_MESSAGE pRpcMessage,
2096     DWORD* pdwStubPhase);
2097 
2098 #endif  /* __IAuthenticateEx_INTERFACE_DEFINED__ */
2099 
2100 #endif
2101 
2102 #ifndef _LPHTTPNEGOTIATE_DEFINED
2103 #define _LPHTTPNEGOTIATE_DEFINED
2104 
2105 /*****************************************************************************
2106  * IHttpNegotiate interface
2107  */
2108 #ifndef __IHttpNegotiate_INTERFACE_DEFINED__
2109 #define __IHttpNegotiate_INTERFACE_DEFINED__
2110 
2111 typedef IHttpNegotiate *LPHTTPNEGOTIATE;
2112 
2113 DEFINE_GUID(IID_IHttpNegotiate, 0x79eac9d2, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
2114 #if defined(__cplusplus) && !defined(CINTERFACE)
2115 MIDL_INTERFACE("79eac9d2-baf9-11ce-8c82-00aa004ba90b")
2116 IHttpNegotiate : public IUnknown
2117 {
2118     virtual HRESULT STDMETHODCALLTYPE BeginningTransaction(
2119         LPCWSTR szURL,
2120         LPCWSTR szHeaders,
2121         DWORD dwReserved,
2122         LPWSTR *pszAdditionalHeaders) = 0;
2123 
2124     virtual HRESULT STDMETHODCALLTYPE OnResponse(
2125         DWORD dwResponseCode,
2126         LPCWSTR szResponseHeaders,
2127         LPCWSTR szRequestHeaders,
2128         LPWSTR *pszAdditionalRequestHeaders) = 0;
2129 
2130 };
2131 #ifdef __CRT_UUID_DECL
2132 __CRT_UUID_DECL(IHttpNegotiate, 0x79eac9d2, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
2133 #endif
2134 #else
2135 typedef struct IHttpNegotiateVtbl {
2136     BEGIN_INTERFACE
2137 
2138     /*** IUnknown methods ***/
2139     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2140         IHttpNegotiate* This,
2141         REFIID riid,
2142         void **ppvObject);
2143 
2144     ULONG (STDMETHODCALLTYPE *AddRef)(
2145         IHttpNegotiate* This);
2146 
2147     ULONG (STDMETHODCALLTYPE *Release)(
2148         IHttpNegotiate* This);
2149 
2150     /*** IHttpNegotiate methods ***/
2151     HRESULT (STDMETHODCALLTYPE *BeginningTransaction)(
2152         IHttpNegotiate* This,
2153         LPCWSTR szURL,
2154         LPCWSTR szHeaders,
2155         DWORD dwReserved,
2156         LPWSTR *pszAdditionalHeaders);
2157 
2158     HRESULT (STDMETHODCALLTYPE *OnResponse)(
2159         IHttpNegotiate* This,
2160         DWORD dwResponseCode,
2161         LPCWSTR szResponseHeaders,
2162         LPCWSTR szRequestHeaders,
2163         LPWSTR *pszAdditionalRequestHeaders);
2164 
2165     END_INTERFACE
2166 } IHttpNegotiateVtbl;
2167 interface IHttpNegotiate {
2168     CONST_VTBL IHttpNegotiateVtbl* lpVtbl;
2169 };
2170 
2171 #ifdef COBJMACROS
2172 #ifndef WIDL_C_INLINE_WRAPPERS
2173 /*** IUnknown methods ***/
2174 #define IHttpNegotiate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2175 #define IHttpNegotiate_AddRef(This) (This)->lpVtbl->AddRef(This)
2176 #define IHttpNegotiate_Release(This) (This)->lpVtbl->Release(This)
2177 /*** IHttpNegotiate methods ***/
2178 #define IHttpNegotiate_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) (This)->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders)
2179 #define IHttpNegotiate_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) (This)->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders)
2180 #else
2181 /*** IUnknown methods ***/
2182 static FORCEINLINE HRESULT IHttpNegotiate_QueryInterface(IHttpNegotiate* This,REFIID riid,void **ppvObject) {
2183     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2184 }
2185 static FORCEINLINE ULONG IHttpNegotiate_AddRef(IHttpNegotiate* This) {
2186     return This->lpVtbl->AddRef(This);
2187 }
2188 static FORCEINLINE ULONG IHttpNegotiate_Release(IHttpNegotiate* This) {
2189     return This->lpVtbl->Release(This);
2190 }
2191 /*** IHttpNegotiate methods ***/
2192 static FORCEINLINE HRESULT IHttpNegotiate_BeginningTransaction(IHttpNegotiate* This,LPCWSTR szURL,LPCWSTR szHeaders,DWORD dwReserved,LPWSTR *pszAdditionalHeaders) {
2193     return This->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders);
2194 }
2195 static FORCEINLINE HRESULT IHttpNegotiate_OnResponse(IHttpNegotiate* This,DWORD dwResponseCode,LPCWSTR szResponseHeaders,LPCWSTR szRequestHeaders,LPWSTR *pszAdditionalRequestHeaders) {
2196     return This->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders);
2197 }
2198 #endif
2199 #endif
2200 
2201 #endif
2202 
2203 HRESULT STDMETHODCALLTYPE IHttpNegotiate_BeginningTransaction_Proxy(
2204     IHttpNegotiate* This,
2205     LPCWSTR szURL,
2206     LPCWSTR szHeaders,
2207     DWORD dwReserved,
2208     LPWSTR *pszAdditionalHeaders);
2209 void __RPC_STUB IHttpNegotiate_BeginningTransaction_Stub(
2210     IRpcStubBuffer* This,
2211     IRpcChannelBuffer* pRpcChannelBuffer,
2212     PRPC_MESSAGE pRpcMessage,
2213     DWORD* pdwStubPhase);
2214 HRESULT STDMETHODCALLTYPE IHttpNegotiate_OnResponse_Proxy(
2215     IHttpNegotiate* This,
2216     DWORD dwResponseCode,
2217     LPCWSTR szResponseHeaders,
2218     LPCWSTR szRequestHeaders,
2219     LPWSTR *pszAdditionalRequestHeaders);
2220 void __RPC_STUB IHttpNegotiate_OnResponse_Stub(
2221     IRpcStubBuffer* This,
2222     IRpcChannelBuffer* pRpcChannelBuffer,
2223     PRPC_MESSAGE pRpcMessage,
2224     DWORD* pdwStubPhase);
2225 
2226 #endif  /* __IHttpNegotiate_INTERFACE_DEFINED__ */
2227 
2228 #endif
2229 
2230 #ifndef _LPHTTPNEGOTIATE2_DEFINED
2231 #define _LPHTTPNEGOTIATE2_DEFINED
2232 
2233 /*****************************************************************************
2234  * IHttpNegotiate2 interface
2235  */
2236 #ifndef __IHttpNegotiate2_INTERFACE_DEFINED__
2237 #define __IHttpNegotiate2_INTERFACE_DEFINED__
2238 
2239 typedef IHttpNegotiate2 *LPHTTPNEGOTIATE2;
2240 
2241 DEFINE_GUID(IID_IHttpNegotiate2, 0x4f9f9fcb, 0xe0f4, 0x48eb, 0xb7,0xab, 0xfa,0x2e,0xa9,0x36,0x5c,0xb4);
2242 #if defined(__cplusplus) && !defined(CINTERFACE)
2243 MIDL_INTERFACE("4f9f9fcb-e0f4-48eb-b7ab-fa2ea9365cb4")
2244 IHttpNegotiate2 : public IHttpNegotiate
2245 {
2246     virtual HRESULT STDMETHODCALLTYPE GetRootSecurityId(
2247         BYTE *pbSecurityId,
2248         DWORD *pcbSecurityId,
2249         DWORD_PTR dwReserved) = 0;
2250 
2251 };
2252 #ifdef __CRT_UUID_DECL
2253 __CRT_UUID_DECL(IHttpNegotiate2, 0x4f9f9fcb, 0xe0f4, 0x48eb, 0xb7,0xab, 0xfa,0x2e,0xa9,0x36,0x5c,0xb4)
2254 #endif
2255 #else
2256 typedef struct IHttpNegotiate2Vtbl {
2257     BEGIN_INTERFACE
2258 
2259     /*** IUnknown methods ***/
2260     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2261         IHttpNegotiate2* This,
2262         REFIID riid,
2263         void **ppvObject);
2264 
2265     ULONG (STDMETHODCALLTYPE *AddRef)(
2266         IHttpNegotiate2* This);
2267 
2268     ULONG (STDMETHODCALLTYPE *Release)(
2269         IHttpNegotiate2* This);
2270 
2271     /*** IHttpNegotiate methods ***/
2272     HRESULT (STDMETHODCALLTYPE *BeginningTransaction)(
2273         IHttpNegotiate2* This,
2274         LPCWSTR szURL,
2275         LPCWSTR szHeaders,
2276         DWORD dwReserved,
2277         LPWSTR *pszAdditionalHeaders);
2278 
2279     HRESULT (STDMETHODCALLTYPE *OnResponse)(
2280         IHttpNegotiate2* This,
2281         DWORD dwResponseCode,
2282         LPCWSTR szResponseHeaders,
2283         LPCWSTR szRequestHeaders,
2284         LPWSTR *pszAdditionalRequestHeaders);
2285 
2286     /*** IHttpNegotiate2 methods ***/
2287     HRESULT (STDMETHODCALLTYPE *GetRootSecurityId)(
2288         IHttpNegotiate2* This,
2289         BYTE *pbSecurityId,
2290         DWORD *pcbSecurityId,
2291         DWORD_PTR dwReserved);
2292 
2293     END_INTERFACE
2294 } IHttpNegotiate2Vtbl;
2295 interface IHttpNegotiate2 {
2296     CONST_VTBL IHttpNegotiate2Vtbl* lpVtbl;
2297 };
2298 
2299 #ifdef COBJMACROS
2300 #ifndef WIDL_C_INLINE_WRAPPERS
2301 /*** IUnknown methods ***/
2302 #define IHttpNegotiate2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2303 #define IHttpNegotiate2_AddRef(This) (This)->lpVtbl->AddRef(This)
2304 #define IHttpNegotiate2_Release(This) (This)->lpVtbl->Release(This)
2305 /*** IHttpNegotiate methods ***/
2306 #define IHttpNegotiate2_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) (This)->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders)
2307 #define IHttpNegotiate2_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) (This)->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders)
2308 /*** IHttpNegotiate2 methods ***/
2309 #define IHttpNegotiate2_GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved)
2310 #else
2311 /*** IUnknown methods ***/
2312 static FORCEINLINE HRESULT IHttpNegotiate2_QueryInterface(IHttpNegotiate2* This,REFIID riid,void **ppvObject) {
2313     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2314 }
2315 static FORCEINLINE ULONG IHttpNegotiate2_AddRef(IHttpNegotiate2* This) {
2316     return This->lpVtbl->AddRef(This);
2317 }
2318 static FORCEINLINE ULONG IHttpNegotiate2_Release(IHttpNegotiate2* This) {
2319     return This->lpVtbl->Release(This);
2320 }
2321 /*** IHttpNegotiate methods ***/
2322 static FORCEINLINE HRESULT IHttpNegotiate2_BeginningTransaction(IHttpNegotiate2* This,LPCWSTR szURL,LPCWSTR szHeaders,DWORD dwReserved,LPWSTR *pszAdditionalHeaders) {
2323     return This->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders);
2324 }
2325 static FORCEINLINE HRESULT IHttpNegotiate2_OnResponse(IHttpNegotiate2* This,DWORD dwResponseCode,LPCWSTR szResponseHeaders,LPCWSTR szRequestHeaders,LPWSTR *pszAdditionalRequestHeaders) {
2326     return This->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders);
2327 }
2328 /*** IHttpNegotiate2 methods ***/
2329 static FORCEINLINE HRESULT IHttpNegotiate2_GetRootSecurityId(IHttpNegotiate2* This,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
2330     return This->lpVtbl->GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved);
2331 }
2332 #endif
2333 #endif
2334 
2335 #endif
2336 
2337 HRESULT STDMETHODCALLTYPE IHttpNegotiate2_GetRootSecurityId_Proxy(
2338     IHttpNegotiate2* This,
2339     BYTE *pbSecurityId,
2340     DWORD *pcbSecurityId,
2341     DWORD_PTR dwReserved);
2342 void __RPC_STUB IHttpNegotiate2_GetRootSecurityId_Stub(
2343     IRpcStubBuffer* This,
2344     IRpcChannelBuffer* pRpcChannelBuffer,
2345     PRPC_MESSAGE pRpcMessage,
2346     DWORD* pdwStubPhase);
2347 
2348 #endif  /* __IHttpNegotiate2_INTERFACE_DEFINED__ */
2349 
2350 #endif
2351 
2352 #ifndef _LPHTTPNEGOTIATE3_DEFINED
2353 #define _LPHTTPNEGOTIATE3_DEFINED
2354 
2355 /*****************************************************************************
2356  * IHttpNegotiate3 interface
2357  */
2358 #ifndef __IHttpNegotiate3_INTERFACE_DEFINED__
2359 #define __IHttpNegotiate3_INTERFACE_DEFINED__
2360 
2361 typedef IHttpNegotiate3 *LPHTTPNEGOTIATE3;
2362 
2363 DEFINE_GUID(IID_IHttpNegotiate3, 0x57b6c80a, 0x34c2, 0x4602, 0xbc,0x26, 0x66,0xa0,0x2f,0xc5,0x71,0x53);
2364 #if defined(__cplusplus) && !defined(CINTERFACE)
2365 MIDL_INTERFACE("57b6c80a-34c2-4602-bc26-66a02fc57153")
2366 IHttpNegotiate3 : public IHttpNegotiate2
2367 {
2368     virtual HRESULT STDMETHODCALLTYPE GetSerializedClientCertContext(
2369         BYTE **ppbCert,
2370         DWORD *pcbCert) = 0;
2371 
2372 };
2373 #ifdef __CRT_UUID_DECL
2374 __CRT_UUID_DECL(IHttpNegotiate3, 0x57b6c80a, 0x34c2, 0x4602, 0xbc,0x26, 0x66,0xa0,0x2f,0xc5,0x71,0x53)
2375 #endif
2376 #else
2377 typedef struct IHttpNegotiate3Vtbl {
2378     BEGIN_INTERFACE
2379 
2380     /*** IUnknown methods ***/
2381     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2382         IHttpNegotiate3* This,
2383         REFIID riid,
2384         void **ppvObject);
2385 
2386     ULONG (STDMETHODCALLTYPE *AddRef)(
2387         IHttpNegotiate3* This);
2388 
2389     ULONG (STDMETHODCALLTYPE *Release)(
2390         IHttpNegotiate3* This);
2391 
2392     /*** IHttpNegotiate methods ***/
2393     HRESULT (STDMETHODCALLTYPE *BeginningTransaction)(
2394         IHttpNegotiate3* This,
2395         LPCWSTR szURL,
2396         LPCWSTR szHeaders,
2397         DWORD dwReserved,
2398         LPWSTR *pszAdditionalHeaders);
2399 
2400     HRESULT (STDMETHODCALLTYPE *OnResponse)(
2401         IHttpNegotiate3* This,
2402         DWORD dwResponseCode,
2403         LPCWSTR szResponseHeaders,
2404         LPCWSTR szRequestHeaders,
2405         LPWSTR *pszAdditionalRequestHeaders);
2406 
2407     /*** IHttpNegotiate2 methods ***/
2408     HRESULT (STDMETHODCALLTYPE *GetRootSecurityId)(
2409         IHttpNegotiate3* This,
2410         BYTE *pbSecurityId,
2411         DWORD *pcbSecurityId,
2412         DWORD_PTR dwReserved);
2413 
2414     /*** IHttpNegotiate3 methods ***/
2415     HRESULT (STDMETHODCALLTYPE *GetSerializedClientCertContext)(
2416         IHttpNegotiate3* This,
2417         BYTE **ppbCert,
2418         DWORD *pcbCert);
2419 
2420     END_INTERFACE
2421 } IHttpNegotiate3Vtbl;
2422 interface IHttpNegotiate3 {
2423     CONST_VTBL IHttpNegotiate3Vtbl* lpVtbl;
2424 };
2425 
2426 #ifdef COBJMACROS
2427 #ifndef WIDL_C_INLINE_WRAPPERS
2428 /*** IUnknown methods ***/
2429 #define IHttpNegotiate3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2430 #define IHttpNegotiate3_AddRef(This) (This)->lpVtbl->AddRef(This)
2431 #define IHttpNegotiate3_Release(This) (This)->lpVtbl->Release(This)
2432 /*** IHttpNegotiate methods ***/
2433 #define IHttpNegotiate3_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) (This)->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders)
2434 #define IHttpNegotiate3_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) (This)->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders)
2435 /*** IHttpNegotiate2 methods ***/
2436 #define IHttpNegotiate3_GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved)
2437 /*** IHttpNegotiate3 methods ***/
2438 #define IHttpNegotiate3_GetSerializedClientCertContext(This,ppbCert,pcbCert) (This)->lpVtbl->GetSerializedClientCertContext(This,ppbCert,pcbCert)
2439 #else
2440 /*** IUnknown methods ***/
2441 static FORCEINLINE HRESULT IHttpNegotiate3_QueryInterface(IHttpNegotiate3* This,REFIID riid,void **ppvObject) {
2442     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2443 }
2444 static FORCEINLINE ULONG IHttpNegotiate3_AddRef(IHttpNegotiate3* This) {
2445     return This->lpVtbl->AddRef(This);
2446 }
2447 static FORCEINLINE ULONG IHttpNegotiate3_Release(IHttpNegotiate3* This) {
2448     return This->lpVtbl->Release(This);
2449 }
2450 /*** IHttpNegotiate methods ***/
2451 static FORCEINLINE HRESULT IHttpNegotiate3_BeginningTransaction(IHttpNegotiate3* This,LPCWSTR szURL,LPCWSTR szHeaders,DWORD dwReserved,LPWSTR *pszAdditionalHeaders) {
2452     return This->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders);
2453 }
2454 static FORCEINLINE HRESULT IHttpNegotiate3_OnResponse(IHttpNegotiate3* This,DWORD dwResponseCode,LPCWSTR szResponseHeaders,LPCWSTR szRequestHeaders,LPWSTR *pszAdditionalRequestHeaders) {
2455     return This->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders);
2456 }
2457 /*** IHttpNegotiate2 methods ***/
2458 static FORCEINLINE HRESULT IHttpNegotiate3_GetRootSecurityId(IHttpNegotiate3* This,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
2459     return This->lpVtbl->GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved);
2460 }
2461 /*** IHttpNegotiate3 methods ***/
2462 static FORCEINLINE HRESULT IHttpNegotiate3_GetSerializedClientCertContext(IHttpNegotiate3* This,BYTE **ppbCert,DWORD *pcbCert) {
2463     return This->lpVtbl->GetSerializedClientCertContext(This,ppbCert,pcbCert);
2464 }
2465 #endif
2466 #endif
2467 
2468 #endif
2469 
2470 HRESULT STDMETHODCALLTYPE IHttpNegotiate3_GetSerializedClientCertContext_Proxy(
2471     IHttpNegotiate3* This,
2472     BYTE **ppbCert,
2473     DWORD *pcbCert);
2474 void __RPC_STUB IHttpNegotiate3_GetSerializedClientCertContext_Stub(
2475     IRpcStubBuffer* This,
2476     IRpcChannelBuffer* pRpcChannelBuffer,
2477     PRPC_MESSAGE pRpcMessage,
2478     DWORD* pdwStubPhase);
2479 
2480 #endif  /* __IHttpNegotiate3_INTERFACE_DEFINED__ */
2481 
2482 #endif
2483 
2484 #ifndef _LPWININETFILESTREAM_DEFINED
2485 #define _LPWININETFILESTREAM_DEFINED
2486 
2487 /*****************************************************************************
2488  * IWinInetFileStream interface
2489  */
2490 #ifndef __IWinInetFileStream_INTERFACE_DEFINED__
2491 #define __IWinInetFileStream_INTERFACE_DEFINED__
2492 
2493 typedef IWinInetFileStream *LPWININETFILESTREAM;
2494 
2495 DEFINE_GUID(IID_IWinInetFileStream, 0xf134c4b7, 0xb1f8, 0x4e75, 0xb8,0x86, 0x74,0xb9,0x09,0x43,0xbe,0xcb);
2496 #if defined(__cplusplus) && !defined(CINTERFACE)
2497 MIDL_INTERFACE("f134c4b7-b1f8-4e75-b886-74b90943becb")
2498 IWinInetFileStream : public IUnknown
2499 {
2500     virtual HRESULT STDMETHODCALLTYPE SetHandleForUnlock(
2501         DWORD_PTR hWinInetLockHandle,
2502         DWORD_PTR dwReserved) = 0;
2503 
2504     virtual HRESULT STDMETHODCALLTYPE SetDeleteFile(
2505         DWORD_PTR dwReserved) = 0;
2506 
2507 };
2508 #ifdef __CRT_UUID_DECL
2509 __CRT_UUID_DECL(IWinInetFileStream, 0xf134c4b7, 0xb1f8, 0x4e75, 0xb8,0x86, 0x74,0xb9,0x09,0x43,0xbe,0xcb)
2510 #endif
2511 #else
2512 typedef struct IWinInetFileStreamVtbl {
2513     BEGIN_INTERFACE
2514 
2515     /*** IUnknown methods ***/
2516     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2517         IWinInetFileStream* This,
2518         REFIID riid,
2519         void **ppvObject);
2520 
2521     ULONG (STDMETHODCALLTYPE *AddRef)(
2522         IWinInetFileStream* This);
2523 
2524     ULONG (STDMETHODCALLTYPE *Release)(
2525         IWinInetFileStream* This);
2526 
2527     /*** IWinInetFileStream methods ***/
2528     HRESULT (STDMETHODCALLTYPE *SetHandleForUnlock)(
2529         IWinInetFileStream* This,
2530         DWORD_PTR hWinInetLockHandle,
2531         DWORD_PTR dwReserved);
2532 
2533     HRESULT (STDMETHODCALLTYPE *SetDeleteFile)(
2534         IWinInetFileStream* This,
2535         DWORD_PTR dwReserved);
2536 
2537     END_INTERFACE
2538 } IWinInetFileStreamVtbl;
2539 interface IWinInetFileStream {
2540     CONST_VTBL IWinInetFileStreamVtbl* lpVtbl;
2541 };
2542 
2543 #ifdef COBJMACROS
2544 #ifndef WIDL_C_INLINE_WRAPPERS
2545 /*** IUnknown methods ***/
2546 #define IWinInetFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2547 #define IWinInetFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
2548 #define IWinInetFileStream_Release(This) (This)->lpVtbl->Release(This)
2549 /*** IWinInetFileStream methods ***/
2550 #define IWinInetFileStream_SetHandleForUnlock(This,hWinInetLockHandle,dwReserved) (This)->lpVtbl->SetHandleForUnlock(This,hWinInetLockHandle,dwReserved)
2551 #define IWinInetFileStream_SetDeleteFile(This,dwReserved) (This)->lpVtbl->SetDeleteFile(This,dwReserved)
2552 #else
2553 /*** IUnknown methods ***/
2554 static FORCEINLINE HRESULT IWinInetFileStream_QueryInterface(IWinInetFileStream* This,REFIID riid,void **ppvObject) {
2555     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2556 }
2557 static FORCEINLINE ULONG IWinInetFileStream_AddRef(IWinInetFileStream* This) {
2558     return This->lpVtbl->AddRef(This);
2559 }
2560 static FORCEINLINE ULONG IWinInetFileStream_Release(IWinInetFileStream* This) {
2561     return This->lpVtbl->Release(This);
2562 }
2563 /*** IWinInetFileStream methods ***/
2564 static FORCEINLINE HRESULT IWinInetFileStream_SetHandleForUnlock(IWinInetFileStream* This,DWORD_PTR hWinInetLockHandle,DWORD_PTR dwReserved) {
2565     return This->lpVtbl->SetHandleForUnlock(This,hWinInetLockHandle,dwReserved);
2566 }
2567 static FORCEINLINE HRESULT IWinInetFileStream_SetDeleteFile(IWinInetFileStream* This,DWORD_PTR dwReserved) {
2568     return This->lpVtbl->SetDeleteFile(This,dwReserved);
2569 }
2570 #endif
2571 #endif
2572 
2573 #endif
2574 
2575 HRESULT STDMETHODCALLTYPE IWinInetFileStream_SetHandleForUnlock_Proxy(
2576     IWinInetFileStream* This,
2577     DWORD_PTR hWinInetLockHandle,
2578     DWORD_PTR dwReserved);
2579 void __RPC_STUB IWinInetFileStream_SetHandleForUnlock_Stub(
2580     IRpcStubBuffer* This,
2581     IRpcChannelBuffer* pRpcChannelBuffer,
2582     PRPC_MESSAGE pRpcMessage,
2583     DWORD* pdwStubPhase);
2584 HRESULT STDMETHODCALLTYPE IWinInetFileStream_SetDeleteFile_Proxy(
2585     IWinInetFileStream* This,
2586     DWORD_PTR dwReserved);
2587 void __RPC_STUB IWinInetFileStream_SetDeleteFile_Stub(
2588     IRpcStubBuffer* This,
2589     IRpcChannelBuffer* pRpcChannelBuffer,
2590     PRPC_MESSAGE pRpcMessage,
2591     DWORD* pdwStubPhase);
2592 
2593 #endif  /* __IWinInetFileStream_INTERFACE_DEFINED__ */
2594 
2595 #endif
2596 
2597 #ifndef _LPWINDOWFORBINDINGUI_DEFINED
2598 #define _LPWINDOWFORBINDINGUI_DEFINED
2599 
2600 /*****************************************************************************
2601  * IWindowForBindingUI interface
2602  */
2603 #ifndef __IWindowForBindingUI_INTERFACE_DEFINED__
2604 #define __IWindowForBindingUI_INTERFACE_DEFINED__
2605 
2606 typedef IWindowForBindingUI *LPWINDOWFORBINDINGUI;
2607 
2608 DEFINE_GUID(IID_IWindowForBindingUI, 0x79eac9d5, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
2609 #if defined(__cplusplus) && !defined(CINTERFACE)
2610 MIDL_INTERFACE("79eac9d5-bafa-11ce-8c82-00aa004ba90b")
2611 IWindowForBindingUI : public IUnknown
2612 {
2613     virtual HRESULT STDMETHODCALLTYPE GetWindow(
2614         REFGUID rguidReason,
2615         HWND *phwnd) = 0;
2616 
2617 };
2618 #ifdef __CRT_UUID_DECL
2619 __CRT_UUID_DECL(IWindowForBindingUI, 0x79eac9d5, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
2620 #endif
2621 #else
2622 typedef struct IWindowForBindingUIVtbl {
2623     BEGIN_INTERFACE
2624 
2625     /*** IUnknown methods ***/
2626     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2627         IWindowForBindingUI* This,
2628         REFIID riid,
2629         void **ppvObject);
2630 
2631     ULONG (STDMETHODCALLTYPE *AddRef)(
2632         IWindowForBindingUI* This);
2633 
2634     ULONG (STDMETHODCALLTYPE *Release)(
2635         IWindowForBindingUI* This);
2636 
2637     /*** IWindowForBindingUI methods ***/
2638     HRESULT (STDMETHODCALLTYPE *GetWindow)(
2639         IWindowForBindingUI* This,
2640         REFGUID rguidReason,
2641         HWND *phwnd);
2642 
2643     END_INTERFACE
2644 } IWindowForBindingUIVtbl;
2645 interface IWindowForBindingUI {
2646     CONST_VTBL IWindowForBindingUIVtbl* lpVtbl;
2647 };
2648 
2649 #ifdef COBJMACROS
2650 #ifndef WIDL_C_INLINE_WRAPPERS
2651 /*** IUnknown methods ***/
2652 #define IWindowForBindingUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2653 #define IWindowForBindingUI_AddRef(This) (This)->lpVtbl->AddRef(This)
2654 #define IWindowForBindingUI_Release(This) (This)->lpVtbl->Release(This)
2655 /*** IWindowForBindingUI methods ***/
2656 #define IWindowForBindingUI_GetWindow(This,rguidReason,phwnd) (This)->lpVtbl->GetWindow(This,rguidReason,phwnd)
2657 #else
2658 /*** IUnknown methods ***/
2659 static FORCEINLINE HRESULT IWindowForBindingUI_QueryInterface(IWindowForBindingUI* This,REFIID riid,void **ppvObject) {
2660     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2661 }
2662 static FORCEINLINE ULONG IWindowForBindingUI_AddRef(IWindowForBindingUI* This) {
2663     return This->lpVtbl->AddRef(This);
2664 }
2665 static FORCEINLINE ULONG IWindowForBindingUI_Release(IWindowForBindingUI* This) {
2666     return This->lpVtbl->Release(This);
2667 }
2668 /*** IWindowForBindingUI methods ***/
2669 static FORCEINLINE HRESULT IWindowForBindingUI_GetWindow(IWindowForBindingUI* This,REFGUID rguidReason,HWND *phwnd) {
2670     return This->lpVtbl->GetWindow(This,rguidReason,phwnd);
2671 }
2672 #endif
2673 #endif
2674 
2675 #endif
2676 
2677 HRESULT STDMETHODCALLTYPE IWindowForBindingUI_GetWindow_Proxy(
2678     IWindowForBindingUI* This,
2679     REFGUID rguidReason,
2680     HWND *phwnd);
2681 void __RPC_STUB IWindowForBindingUI_GetWindow_Stub(
2682     IRpcStubBuffer* This,
2683     IRpcChannelBuffer* pRpcChannelBuffer,
2684     PRPC_MESSAGE pRpcMessage,
2685     DWORD* pdwStubPhase);
2686 
2687 #endif  /* __IWindowForBindingUI_INTERFACE_DEFINED__ */
2688 
2689 #endif
2690 
2691 #ifndef _LPCODEINSTALL_DEFINED
2692 #define _LPCODEINSTALL_DEFINED
2693 
2694 /*****************************************************************************
2695  * ICodeInstall interface
2696  */
2697 #ifndef __ICodeInstall_INTERFACE_DEFINED__
2698 #define __ICodeInstall_INTERFACE_DEFINED__
2699 
2700 typedef ICodeInstall *LPCODEINSTALL;
2701 
2702 typedef enum __WIDL_urlmon_generated_name_0000000B {
2703     CIP_DISK_FULL = 0,
2704     CIP_ACCESS_DENIED = 1,
2705     CIP_NEWER_VERSION_EXISTS = 2,
2706     CIP_OLDER_VERSION_EXISTS = 3,
2707     CIP_NAME_CONFLICT = 4,
2708     CIP_TRUST_VERIFICATION_COMPONENT_MISSING = 5,
2709     CIP_EXE_SELF_REGISTERATION_TIMEOUT = 6,
2710     CIP_UNSAFE_TO_ABORT = 7,
2711     CIP_NEED_REBOOT = 8,
2712     CIP_NEED_REBOOT_UI_PERMISSION = 9
2713 } CIP_STATUS;
2714 
2715 DEFINE_GUID(IID_ICodeInstall, 0x79eac9d1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
2716 #if defined(__cplusplus) && !defined(CINTERFACE)
2717 MIDL_INTERFACE("79eac9d1-baf9-11ce-8c82-00aa004ba90b")
2718 ICodeInstall : public IWindowForBindingUI
2719 {
2720     virtual HRESULT STDMETHODCALLTYPE OnCodeInstallProblem(
2721         ULONG ulStatusCode,
2722         LPCWSTR szDestination,
2723         LPCWSTR szSource,
2724         DWORD dwReserved) = 0;
2725 
2726 };
2727 #ifdef __CRT_UUID_DECL
2728 __CRT_UUID_DECL(ICodeInstall, 0x79eac9d1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
2729 #endif
2730 #else
2731 typedef struct ICodeInstallVtbl {
2732     BEGIN_INTERFACE
2733 
2734     /*** IUnknown methods ***/
2735     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2736         ICodeInstall* This,
2737         REFIID riid,
2738         void **ppvObject);
2739 
2740     ULONG (STDMETHODCALLTYPE *AddRef)(
2741         ICodeInstall* This);
2742 
2743     ULONG (STDMETHODCALLTYPE *Release)(
2744         ICodeInstall* This);
2745 
2746     /*** IWindowForBindingUI methods ***/
2747     HRESULT (STDMETHODCALLTYPE *GetWindow)(
2748         ICodeInstall* This,
2749         REFGUID rguidReason,
2750         HWND *phwnd);
2751 
2752     /*** ICodeInstall methods ***/
2753     HRESULT (STDMETHODCALLTYPE *OnCodeInstallProblem)(
2754         ICodeInstall* This,
2755         ULONG ulStatusCode,
2756         LPCWSTR szDestination,
2757         LPCWSTR szSource,
2758         DWORD dwReserved);
2759 
2760     END_INTERFACE
2761 } ICodeInstallVtbl;
2762 interface ICodeInstall {
2763     CONST_VTBL ICodeInstallVtbl* lpVtbl;
2764 };
2765 
2766 #ifdef COBJMACROS
2767 #ifndef WIDL_C_INLINE_WRAPPERS
2768 /*** IUnknown methods ***/
2769 #define ICodeInstall_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2770 #define ICodeInstall_AddRef(This) (This)->lpVtbl->AddRef(This)
2771 #define ICodeInstall_Release(This) (This)->lpVtbl->Release(This)
2772 /*** IWindowForBindingUI methods ***/
2773 #define ICodeInstall_GetWindow(This,rguidReason,phwnd) (This)->lpVtbl->GetWindow(This,rguidReason,phwnd)
2774 /*** ICodeInstall methods ***/
2775 #define ICodeInstall_OnCodeInstallProblem(This,ulStatusCode,szDestination,szSource,dwReserved) (This)->lpVtbl->OnCodeInstallProblem(This,ulStatusCode,szDestination,szSource,dwReserved)
2776 #else
2777 /*** IUnknown methods ***/
2778 static FORCEINLINE HRESULT ICodeInstall_QueryInterface(ICodeInstall* This,REFIID riid,void **ppvObject) {
2779     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2780 }
2781 static FORCEINLINE ULONG ICodeInstall_AddRef(ICodeInstall* This) {
2782     return This->lpVtbl->AddRef(This);
2783 }
2784 static FORCEINLINE ULONG ICodeInstall_Release(ICodeInstall* This) {
2785     return This->lpVtbl->Release(This);
2786 }
2787 /*** IWindowForBindingUI methods ***/
2788 static FORCEINLINE HRESULT ICodeInstall_GetWindow(ICodeInstall* This,REFGUID rguidReason,HWND *phwnd) {
2789     return This->lpVtbl->GetWindow(This,rguidReason,phwnd);
2790 }
2791 /*** ICodeInstall methods ***/
2792 static FORCEINLINE HRESULT ICodeInstall_OnCodeInstallProblem(ICodeInstall* This,ULONG ulStatusCode,LPCWSTR szDestination,LPCWSTR szSource,DWORD dwReserved) {
2793     return This->lpVtbl->OnCodeInstallProblem(This,ulStatusCode,szDestination,szSource,dwReserved);
2794 }
2795 #endif
2796 #endif
2797 
2798 #endif
2799 
2800 HRESULT STDMETHODCALLTYPE ICodeInstall_OnCodeInstallProblem_Proxy(
2801     ICodeInstall* This,
2802     ULONG ulStatusCode,
2803     LPCWSTR szDestination,
2804     LPCWSTR szSource,
2805     DWORD dwReserved);
2806 void __RPC_STUB ICodeInstall_OnCodeInstallProblem_Stub(
2807     IRpcStubBuffer* This,
2808     IRpcChannelBuffer* pRpcChannelBuffer,
2809     PRPC_MESSAGE pRpcMessage,
2810     DWORD* pdwStubPhase);
2811 
2812 #endif  /* __ICodeInstall_INTERFACE_DEFINED__ */
2813 
2814 #endif
2815 #endif
2816 
2817 #if (_WIN32_IE >= _WIN32_IE_IE70)
2818 #ifndef _LPUri_DEFINED
2819 #define _LPUri_DEFINED
2820 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
2821 /*****************************************************************************
2822  * IUri interface
2823  */
2824 #ifndef __IUri_INTERFACE_DEFINED__
2825 #define __IUri_INTERFACE_DEFINED__
2826 
2827 typedef enum __WIDL_urlmon_generated_name_0000000C {
2828     Uri_PROPERTY_ABSOLUTE_URI = 0,
2829     Uri_PROPERTY_STRING_START = Uri_PROPERTY_ABSOLUTE_URI,
2830     Uri_PROPERTY_AUTHORITY = 1,
2831     Uri_PROPERTY_DISPLAY_URI = 2,
2832     Uri_PROPERTY_DOMAIN = 3,
2833     Uri_PROPERTY_EXTENSION = 4,
2834     Uri_PROPERTY_FRAGMENT = 5,
2835     Uri_PROPERTY_HOST = 6,
2836     Uri_PROPERTY_PASSWORD = 7,
2837     Uri_PROPERTY_PATH = 8,
2838     Uri_PROPERTY_PATH_AND_QUERY = 9,
2839     Uri_PROPERTY_QUERY = 10,
2840     Uri_PROPERTY_RAW_URI = 11,
2841     Uri_PROPERTY_SCHEME_NAME = 12,
2842     Uri_PROPERTY_USER_INFO = 13,
2843     Uri_PROPERTY_USER_NAME = 14,
2844     Uri_PROPERTY_STRING_LAST = Uri_PROPERTY_USER_NAME,
2845     Uri_PROPERTY_HOST_TYPE = 15,
2846     Uri_PROPERTY_DWORD_START = Uri_PROPERTY_HOST_TYPE,
2847     Uri_PROPERTY_PORT = 16,
2848     Uri_PROPERTY_SCHEME = 17,
2849     Uri_PROPERTY_ZONE = 18,
2850     Uri_PROPERTY_DWORD_LAST = Uri_PROPERTY_ZONE
2851 } Uri_PROPERTY;
2852 
2853 typedef enum __WIDL_urlmon_generated_name_0000000D {
2854     Uri_HOST_UNKNOWN = 0,
2855     Uri_HOST_DNS = 1,
2856     Uri_HOST_IPV4 = 2,
2857     Uri_HOST_IPV6 = 3,
2858     Uri_HOST_IDN = 4
2859 } Uri_HOST_TYPE;
2860 
2861 DEFINE_GUID(IID_IUri, 0xa39ee748, 0x6a27, 0x4817, 0xa6,0xf2, 0x13,0x91,0x4b,0xef,0x58,0x90);
2862 #if defined(__cplusplus) && !defined(CINTERFACE)
2863 MIDL_INTERFACE("a39ee748-6a27-4817-a6f2-13914bef5890")
2864 IUri : public IUnknown
2865 {
2866     virtual HRESULT STDMETHODCALLTYPE GetPropertyBSTR(
2867         Uri_PROPERTY uriProp,
2868         BSTR *pbstrProperty,
2869         DWORD dwFlags) = 0;
2870 
2871     virtual HRESULT STDMETHODCALLTYPE GetPropertyLength(
2872         Uri_PROPERTY uriProp,
2873         DWORD *pcchProperty,
2874         DWORD dwFlags) = 0;
2875 
2876     virtual HRESULT STDMETHODCALLTYPE GetPropertyDWORD(
2877         Uri_PROPERTY uriProp,
2878         DWORD *pdwProperty,
2879         DWORD dwFlags) = 0;
2880 
2881     virtual HRESULT STDMETHODCALLTYPE HasProperty(
2882         Uri_PROPERTY uriProp,
2883         WINBOOL *pfHasProperty) = 0;
2884 
2885     virtual HRESULT STDMETHODCALLTYPE GetAbsoluteUri(
2886         BSTR *pbstrAbsoluteUri) = 0;
2887 
2888     virtual HRESULT STDMETHODCALLTYPE GetAuthority(
2889         BSTR *pbstrAuthority) = 0;
2890 
2891     virtual HRESULT STDMETHODCALLTYPE GetDisplayUri(
2892         BSTR *pbstrDisplayString) = 0;
2893 
2894     virtual HRESULT STDMETHODCALLTYPE GetDomain(
2895         BSTR *pbstrDomain) = 0;
2896 
2897     virtual HRESULT STDMETHODCALLTYPE GetExtension(
2898         BSTR *pbstrExtension) = 0;
2899 
2900     virtual HRESULT STDMETHODCALLTYPE GetFragment(
2901         BSTR *pbstrFragment) = 0;
2902 
2903     virtual HRESULT STDMETHODCALLTYPE GetHost(
2904         BSTR *pbstrHost) = 0;
2905 
2906     virtual HRESULT STDMETHODCALLTYPE GetPassword(
2907         BSTR *pbstrPassword) = 0;
2908 
2909     virtual HRESULT STDMETHODCALLTYPE GetPath(
2910         BSTR *pbstrPath) = 0;
2911 
2912     virtual HRESULT STDMETHODCALLTYPE GetPathAndQuery(
2913         BSTR *pbstrPathAndQuery) = 0;
2914 
2915     virtual HRESULT STDMETHODCALLTYPE GetQuery(
2916         BSTR *pbstrQuery) = 0;
2917 
2918     virtual HRESULT STDMETHODCALLTYPE GetRawUri(
2919         BSTR *pbstrRawUri) = 0;
2920 
2921     virtual HRESULT STDMETHODCALLTYPE GetSchemeName(
2922         BSTR *pbstrSchemeName) = 0;
2923 
2924     virtual HRESULT STDMETHODCALLTYPE GetUserInfo(
2925         BSTR *pbstrUserInfo) = 0;
2926 
2927     virtual HRESULT STDMETHODCALLTYPE GetUserName(
2928         BSTR *pbstrUserName) = 0;
2929 
2930     virtual HRESULT STDMETHODCALLTYPE GetHostType(
2931         DWORD *pdwHostType) = 0;
2932 
2933     virtual HRESULT STDMETHODCALLTYPE GetPort(
2934         DWORD *pdwPort) = 0;
2935 
2936     virtual HRESULT STDMETHODCALLTYPE GetScheme(
2937         DWORD *pdwScheme) = 0;
2938 
2939     virtual HRESULT STDMETHODCALLTYPE GetZone(
2940         DWORD *pdwZone) = 0;
2941 
2942     virtual HRESULT STDMETHODCALLTYPE GetProperties(
2943         LPDWORD pdwFlags) = 0;
2944 
2945     virtual HRESULT STDMETHODCALLTYPE IsEqual(
2946         IUri *pUri,
2947         WINBOOL *pfEqual) = 0;
2948 
2949 };
2950 #ifdef __CRT_UUID_DECL
2951 __CRT_UUID_DECL(IUri, 0xa39ee748, 0x6a27, 0x4817, 0xa6,0xf2, 0x13,0x91,0x4b,0xef,0x58,0x90)
2952 #endif
2953 #else
2954 typedef struct IUriVtbl {
2955     BEGIN_INTERFACE
2956 
2957     /*** IUnknown methods ***/
2958     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2959         IUri* This,
2960         REFIID riid,
2961         void **ppvObject);
2962 
2963     ULONG (STDMETHODCALLTYPE *AddRef)(
2964         IUri* This);
2965 
2966     ULONG (STDMETHODCALLTYPE *Release)(
2967         IUri* This);
2968 
2969     /*** IUri methods ***/
2970     HRESULT (STDMETHODCALLTYPE *GetPropertyBSTR)(
2971         IUri* This,
2972         Uri_PROPERTY uriProp,
2973         BSTR *pbstrProperty,
2974         DWORD dwFlags);
2975 
2976     HRESULT (STDMETHODCALLTYPE *GetPropertyLength)(
2977         IUri* This,
2978         Uri_PROPERTY uriProp,
2979         DWORD *pcchProperty,
2980         DWORD dwFlags);
2981 
2982     HRESULT (STDMETHODCALLTYPE *GetPropertyDWORD)(
2983         IUri* This,
2984         Uri_PROPERTY uriProp,
2985         DWORD *pdwProperty,
2986         DWORD dwFlags);
2987 
2988     HRESULT (STDMETHODCALLTYPE *HasProperty)(
2989         IUri* This,
2990         Uri_PROPERTY uriProp,
2991         WINBOOL *pfHasProperty);
2992 
2993     HRESULT (STDMETHODCALLTYPE *GetAbsoluteUri)(
2994         IUri* This,
2995         BSTR *pbstrAbsoluteUri);
2996 
2997     HRESULT (STDMETHODCALLTYPE *GetAuthority)(
2998         IUri* This,
2999         BSTR *pbstrAuthority);
3000 
3001     HRESULT (STDMETHODCALLTYPE *GetDisplayUri)(
3002         IUri* This,
3003         BSTR *pbstrDisplayString);
3004 
3005     HRESULT (STDMETHODCALLTYPE *GetDomain)(
3006         IUri* This,
3007         BSTR *pbstrDomain);
3008 
3009     HRESULT (STDMETHODCALLTYPE *GetExtension)(
3010         IUri* This,
3011         BSTR *pbstrExtension);
3012 
3013     HRESULT (STDMETHODCALLTYPE *GetFragment)(
3014         IUri* This,
3015         BSTR *pbstrFragment);
3016 
3017     HRESULT (STDMETHODCALLTYPE *GetHost)(
3018         IUri* This,
3019         BSTR *pbstrHost);
3020 
3021     HRESULT (STDMETHODCALLTYPE *GetPassword)(
3022         IUri* This,
3023         BSTR *pbstrPassword);
3024 
3025     HRESULT (STDMETHODCALLTYPE *GetPath)(
3026         IUri* This,
3027         BSTR *pbstrPath);
3028 
3029     HRESULT (STDMETHODCALLTYPE *GetPathAndQuery)(
3030         IUri* This,
3031         BSTR *pbstrPathAndQuery);
3032 
3033     HRESULT (STDMETHODCALLTYPE *GetQuery)(
3034         IUri* This,
3035         BSTR *pbstrQuery);
3036 
3037     HRESULT (STDMETHODCALLTYPE *GetRawUri)(
3038         IUri* This,
3039         BSTR *pbstrRawUri);
3040 
3041     HRESULT (STDMETHODCALLTYPE *GetSchemeName)(
3042         IUri* This,
3043         BSTR *pbstrSchemeName);
3044 
3045     HRESULT (STDMETHODCALLTYPE *GetUserInfo)(
3046         IUri* This,
3047         BSTR *pbstrUserInfo);
3048 
3049     HRESULT (STDMETHODCALLTYPE *GetUserName)(
3050         IUri* This,
3051         BSTR *pbstrUserName);
3052 
3053     HRESULT (STDMETHODCALLTYPE *GetHostType)(
3054         IUri* This,
3055         DWORD *pdwHostType);
3056 
3057     HRESULT (STDMETHODCALLTYPE *GetPort)(
3058         IUri* This,
3059         DWORD *pdwPort);
3060 
3061     HRESULT (STDMETHODCALLTYPE *GetScheme)(
3062         IUri* This,
3063         DWORD *pdwScheme);
3064 
3065     HRESULT (STDMETHODCALLTYPE *GetZone)(
3066         IUri* This,
3067         DWORD *pdwZone);
3068 
3069     HRESULT (STDMETHODCALLTYPE *GetProperties)(
3070         IUri* This,
3071         LPDWORD pdwFlags);
3072 
3073     HRESULT (STDMETHODCALLTYPE *IsEqual)(
3074         IUri* This,
3075         IUri *pUri,
3076         WINBOOL *pfEqual);
3077 
3078     END_INTERFACE
3079 } IUriVtbl;
3080 interface IUri {
3081     CONST_VTBL IUriVtbl* lpVtbl;
3082 };
3083 
3084 #ifdef COBJMACROS
3085 #ifndef WIDL_C_INLINE_WRAPPERS
3086 /*** IUnknown methods ***/
3087 #define IUri_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3088 #define IUri_AddRef(This) (This)->lpVtbl->AddRef(This)
3089 #define IUri_Release(This) (This)->lpVtbl->Release(This)
3090 /*** IUri methods ***/
3091 #define IUri_GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags) (This)->lpVtbl->GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags)
3092 #define IUri_GetPropertyLength(This,uriProp,pcchProperty,dwFlags) (This)->lpVtbl->GetPropertyLength(This,uriProp,pcchProperty,dwFlags)
3093 #define IUri_GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags) (This)->lpVtbl->GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags)
3094 #define IUri_HasProperty(This,uriProp,pfHasProperty) (This)->lpVtbl->HasProperty(This,uriProp,pfHasProperty)
3095 #define IUri_GetAbsoluteUri(This,pbstrAbsoluteUri) (This)->lpVtbl->GetAbsoluteUri(This,pbstrAbsoluteUri)
3096 #define IUri_GetAuthority(This,pbstrAuthority) (This)->lpVtbl->GetAuthority(This,pbstrAuthority)
3097 #define IUri_GetDisplayUri(This,pbstrDisplayString) (This)->lpVtbl->GetDisplayUri(This,pbstrDisplayString)
3098 #define IUri_GetDomain(This,pbstrDomain) (This)->lpVtbl->GetDomain(This,pbstrDomain)
3099 #define IUri_GetExtension(This,pbstrExtension) (This)->lpVtbl->GetExtension(This,pbstrExtension)
3100 #define IUri_GetFragment(This,pbstrFragment) (This)->lpVtbl->GetFragment(This,pbstrFragment)
3101 #define IUri_GetHost(This,pbstrHost) (This)->lpVtbl->GetHost(This,pbstrHost)
3102 #define IUri_GetPassword(This,pbstrPassword) (This)->lpVtbl->GetPassword(This,pbstrPassword)
3103 #define IUri_GetPath(This,pbstrPath) (This)->lpVtbl->GetPath(This,pbstrPath)
3104 #define IUri_GetPathAndQuery(This,pbstrPathAndQuery) (This)->lpVtbl->GetPathAndQuery(This,pbstrPathAndQuery)
3105 #define IUri_GetQuery(This,pbstrQuery) (This)->lpVtbl->GetQuery(This,pbstrQuery)
3106 #define IUri_GetRawUri(This,pbstrRawUri) (This)->lpVtbl->GetRawUri(This,pbstrRawUri)
3107 #define IUri_GetSchemeName(This,pbstrSchemeName) (This)->lpVtbl->GetSchemeName(This,pbstrSchemeName)
3108 #define IUri_GetUserInfo(This,pbstrUserInfo) (This)->lpVtbl->GetUserInfo(This,pbstrUserInfo)
3109 #define IUri_GetUserName(This,pbstrUserName) (This)->lpVtbl->GetUserName(This,pbstrUserName)
3110 #define IUri_GetHostType(This,pdwHostType) (This)->lpVtbl->GetHostType(This,pdwHostType)
3111 #define IUri_GetPort(This,pdwPort) (This)->lpVtbl->GetPort(This,pdwPort)
3112 #define IUri_GetScheme(This,pdwScheme) (This)->lpVtbl->GetScheme(This,pdwScheme)
3113 #define IUri_GetZone(This,pdwZone) (This)->lpVtbl->GetZone(This,pdwZone)
3114 #define IUri_GetProperties(This,pdwFlags) (This)->lpVtbl->GetProperties(This,pdwFlags)
3115 #define IUri_IsEqual(This,pUri,pfEqual) (This)->lpVtbl->IsEqual(This,pUri,pfEqual)
3116 #else
3117 /*** IUnknown methods ***/
3118 static FORCEINLINE HRESULT IUri_QueryInterface(IUri* This,REFIID riid,void **ppvObject) {
3119     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3120 }
3121 static FORCEINLINE ULONG IUri_AddRef(IUri* This) {
3122     return This->lpVtbl->AddRef(This);
3123 }
3124 static FORCEINLINE ULONG IUri_Release(IUri* This) {
3125     return This->lpVtbl->Release(This);
3126 }
3127 /*** IUri methods ***/
3128 static FORCEINLINE HRESULT IUri_GetPropertyBSTR(IUri* This,Uri_PROPERTY uriProp,BSTR *pbstrProperty,DWORD dwFlags) {
3129     return This->lpVtbl->GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags);
3130 }
3131 static FORCEINLINE HRESULT IUri_GetPropertyLength(IUri* This,Uri_PROPERTY uriProp,DWORD *pcchProperty,DWORD dwFlags) {
3132     return This->lpVtbl->GetPropertyLength(This,uriProp,pcchProperty,dwFlags);
3133 }
3134 static FORCEINLINE HRESULT IUri_GetPropertyDWORD(IUri* This,Uri_PROPERTY uriProp,DWORD *pdwProperty,DWORD dwFlags) {
3135     return This->lpVtbl->GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags);
3136 }
3137 static FORCEINLINE HRESULT IUri_HasProperty(IUri* This,Uri_PROPERTY uriProp,WINBOOL *pfHasProperty) {
3138     return This->lpVtbl->HasProperty(This,uriProp,pfHasProperty);
3139 }
3140 static FORCEINLINE HRESULT IUri_GetAbsoluteUri(IUri* This,BSTR *pbstrAbsoluteUri) {
3141     return This->lpVtbl->GetAbsoluteUri(This,pbstrAbsoluteUri);
3142 }
3143 static FORCEINLINE HRESULT IUri_GetAuthority(IUri* This,BSTR *pbstrAuthority) {
3144     return This->lpVtbl->GetAuthority(This,pbstrAuthority);
3145 }
3146 static FORCEINLINE HRESULT IUri_GetDisplayUri(IUri* This,BSTR *pbstrDisplayString) {
3147     return This->lpVtbl->GetDisplayUri(This,pbstrDisplayString);
3148 }
3149 static FORCEINLINE HRESULT IUri_GetDomain(IUri* This,BSTR *pbstrDomain) {
3150     return This->lpVtbl->GetDomain(This,pbstrDomain);
3151 }
3152 static FORCEINLINE HRESULT IUri_GetExtension(IUri* This,BSTR *pbstrExtension) {
3153     return This->lpVtbl->GetExtension(This,pbstrExtension);
3154 }
3155 static FORCEINLINE HRESULT IUri_GetFragment(IUri* This,BSTR *pbstrFragment) {
3156     return This->lpVtbl->GetFragment(This,pbstrFragment);
3157 }
3158 static FORCEINLINE HRESULT IUri_GetHost(IUri* This,BSTR *pbstrHost) {
3159     return This->lpVtbl->GetHost(This,pbstrHost);
3160 }
3161 static FORCEINLINE HRESULT IUri_GetPassword(IUri* This,BSTR *pbstrPassword) {
3162     return This->lpVtbl->GetPassword(This,pbstrPassword);
3163 }
3164 static FORCEINLINE HRESULT IUri_GetPath(IUri* This,BSTR *pbstrPath) {
3165     return This->lpVtbl->GetPath(This,pbstrPath);
3166 }
3167 static FORCEINLINE HRESULT IUri_GetPathAndQuery(IUri* This,BSTR *pbstrPathAndQuery) {
3168     return This->lpVtbl->GetPathAndQuery(This,pbstrPathAndQuery);
3169 }
3170 static FORCEINLINE HRESULT IUri_GetQuery(IUri* This,BSTR *pbstrQuery) {
3171     return This->lpVtbl->GetQuery(This,pbstrQuery);
3172 }
3173 static FORCEINLINE HRESULT IUri_GetRawUri(IUri* This,BSTR *pbstrRawUri) {
3174     return This->lpVtbl->GetRawUri(This,pbstrRawUri);
3175 }
3176 static FORCEINLINE HRESULT IUri_GetSchemeName(IUri* This,BSTR *pbstrSchemeName) {
3177     return This->lpVtbl->GetSchemeName(This,pbstrSchemeName);
3178 }
3179 static FORCEINLINE HRESULT IUri_GetUserInfo(IUri* This,BSTR *pbstrUserInfo) {
3180     return This->lpVtbl->GetUserInfo(This,pbstrUserInfo);
3181 }
3182 static FORCEINLINE HRESULT IUri_GetUserName(IUri* This,BSTR *pbstrUserName) {
3183     return This->lpVtbl->GetUserName(This,pbstrUserName);
3184 }
3185 static FORCEINLINE HRESULT IUri_GetHostType(IUri* This,DWORD *pdwHostType) {
3186     return This->lpVtbl->GetHostType(This,pdwHostType);
3187 }
3188 static FORCEINLINE HRESULT IUri_GetPort(IUri* This,DWORD *pdwPort) {
3189     return This->lpVtbl->GetPort(This,pdwPort);
3190 }
3191 static FORCEINLINE HRESULT IUri_GetScheme(IUri* This,DWORD *pdwScheme) {
3192     return This->lpVtbl->GetScheme(This,pdwScheme);
3193 }
3194 static FORCEINLINE HRESULT IUri_GetZone(IUri* This,DWORD *pdwZone) {
3195     return This->lpVtbl->GetZone(This,pdwZone);
3196 }
3197 static FORCEINLINE HRESULT IUri_GetProperties(IUri* This,LPDWORD pdwFlags) {
3198     return This->lpVtbl->GetProperties(This,pdwFlags);
3199 }
3200 static FORCEINLINE HRESULT IUri_IsEqual(IUri* This,IUri *pUri,WINBOOL *pfEqual) {
3201     return This->lpVtbl->IsEqual(This,pUri,pfEqual);
3202 }
3203 #endif
3204 #endif
3205 
3206 #endif
3207 
3208 HRESULT STDMETHODCALLTYPE IUri_GetPropertyBSTR_Proxy(
3209     IUri* This,
3210     Uri_PROPERTY uriProp,
3211     BSTR *pbstrProperty,
3212     DWORD dwFlags);
3213 void __RPC_STUB IUri_GetPropertyBSTR_Stub(
3214     IRpcStubBuffer* This,
3215     IRpcChannelBuffer* pRpcChannelBuffer,
3216     PRPC_MESSAGE pRpcMessage,
3217     DWORD* pdwStubPhase);
3218 HRESULT STDMETHODCALLTYPE IUri_GetPropertyLength_Proxy(
3219     IUri* This,
3220     Uri_PROPERTY uriProp,
3221     DWORD *pcchProperty,
3222     DWORD dwFlags);
3223 void __RPC_STUB IUri_GetPropertyLength_Stub(
3224     IRpcStubBuffer* This,
3225     IRpcChannelBuffer* pRpcChannelBuffer,
3226     PRPC_MESSAGE pRpcMessage,
3227     DWORD* pdwStubPhase);
3228 HRESULT STDMETHODCALLTYPE IUri_GetPropertyDWORD_Proxy(
3229     IUri* This,
3230     Uri_PROPERTY uriProp,
3231     DWORD *pdwProperty,
3232     DWORD dwFlags);
3233 void __RPC_STUB IUri_GetPropertyDWORD_Stub(
3234     IRpcStubBuffer* This,
3235     IRpcChannelBuffer* pRpcChannelBuffer,
3236     PRPC_MESSAGE pRpcMessage,
3237     DWORD* pdwStubPhase);
3238 HRESULT STDMETHODCALLTYPE IUri_HasProperty_Proxy(
3239     IUri* This,
3240     Uri_PROPERTY uriProp,
3241     WINBOOL *pfHasProperty);
3242 void __RPC_STUB IUri_HasProperty_Stub(
3243     IRpcStubBuffer* This,
3244     IRpcChannelBuffer* pRpcChannelBuffer,
3245     PRPC_MESSAGE pRpcMessage,
3246     DWORD* pdwStubPhase);
3247 HRESULT STDMETHODCALLTYPE IUri_GetAbsoluteUri_Proxy(
3248     IUri* This,
3249     BSTR *pbstrAbsoluteUri);
3250 void __RPC_STUB IUri_GetAbsoluteUri_Stub(
3251     IRpcStubBuffer* This,
3252     IRpcChannelBuffer* pRpcChannelBuffer,
3253     PRPC_MESSAGE pRpcMessage,
3254     DWORD* pdwStubPhase);
3255 HRESULT STDMETHODCALLTYPE IUri_GetAuthority_Proxy(
3256     IUri* This,
3257     BSTR *pbstrAuthority);
3258 void __RPC_STUB IUri_GetAuthority_Stub(
3259     IRpcStubBuffer* This,
3260     IRpcChannelBuffer* pRpcChannelBuffer,
3261     PRPC_MESSAGE pRpcMessage,
3262     DWORD* pdwStubPhase);
3263 HRESULT STDMETHODCALLTYPE IUri_GetDisplayUri_Proxy(
3264     IUri* This,
3265     BSTR *pbstrDisplayString);
3266 void __RPC_STUB IUri_GetDisplayUri_Stub(
3267     IRpcStubBuffer* This,
3268     IRpcChannelBuffer* pRpcChannelBuffer,
3269     PRPC_MESSAGE pRpcMessage,
3270     DWORD* pdwStubPhase);
3271 HRESULT STDMETHODCALLTYPE IUri_GetDomain_Proxy(
3272     IUri* This,
3273     BSTR *pbstrDomain);
3274 void __RPC_STUB IUri_GetDomain_Stub(
3275     IRpcStubBuffer* This,
3276     IRpcChannelBuffer* pRpcChannelBuffer,
3277     PRPC_MESSAGE pRpcMessage,
3278     DWORD* pdwStubPhase);
3279 HRESULT STDMETHODCALLTYPE IUri_GetExtension_Proxy(
3280     IUri* This,
3281     BSTR *pbstrExtension);
3282 void __RPC_STUB IUri_GetExtension_Stub(
3283     IRpcStubBuffer* This,
3284     IRpcChannelBuffer* pRpcChannelBuffer,
3285     PRPC_MESSAGE pRpcMessage,
3286     DWORD* pdwStubPhase);
3287 HRESULT STDMETHODCALLTYPE IUri_GetFragment_Proxy(
3288     IUri* This,
3289     BSTR *pbstrFragment);
3290 void __RPC_STUB IUri_GetFragment_Stub(
3291     IRpcStubBuffer* This,
3292     IRpcChannelBuffer* pRpcChannelBuffer,
3293     PRPC_MESSAGE pRpcMessage,
3294     DWORD* pdwStubPhase);
3295 HRESULT STDMETHODCALLTYPE IUri_GetHost_Proxy(
3296     IUri* This,
3297     BSTR *pbstrHost);
3298 void __RPC_STUB IUri_GetHost_Stub(
3299     IRpcStubBuffer* This,
3300     IRpcChannelBuffer* pRpcChannelBuffer,
3301     PRPC_MESSAGE pRpcMessage,
3302     DWORD* pdwStubPhase);
3303 HRESULT STDMETHODCALLTYPE IUri_GetPassword_Proxy(
3304     IUri* This,
3305     BSTR *pbstrPassword);
3306 void __RPC_STUB IUri_GetPassword_Stub(
3307     IRpcStubBuffer* This,
3308     IRpcChannelBuffer* pRpcChannelBuffer,
3309     PRPC_MESSAGE pRpcMessage,
3310     DWORD* pdwStubPhase);
3311 HRESULT STDMETHODCALLTYPE IUri_GetPath_Proxy(
3312     IUri* This,
3313     BSTR *pbstrPath);
3314 void __RPC_STUB IUri_GetPath_Stub(
3315     IRpcStubBuffer* This,
3316     IRpcChannelBuffer* pRpcChannelBuffer,
3317     PRPC_MESSAGE pRpcMessage,
3318     DWORD* pdwStubPhase);
3319 HRESULT STDMETHODCALLTYPE IUri_GetPathAndQuery_Proxy(
3320     IUri* This,
3321     BSTR *pbstrPathAndQuery);
3322 void __RPC_STUB IUri_GetPathAndQuery_Stub(
3323     IRpcStubBuffer* This,
3324     IRpcChannelBuffer* pRpcChannelBuffer,
3325     PRPC_MESSAGE pRpcMessage,
3326     DWORD* pdwStubPhase);
3327 HRESULT STDMETHODCALLTYPE IUri_GetQuery_Proxy(
3328     IUri* This,
3329     BSTR *pbstrQuery);
3330 void __RPC_STUB IUri_GetQuery_Stub(
3331     IRpcStubBuffer* This,
3332     IRpcChannelBuffer* pRpcChannelBuffer,
3333     PRPC_MESSAGE pRpcMessage,
3334     DWORD* pdwStubPhase);
3335 HRESULT STDMETHODCALLTYPE IUri_GetRawUri_Proxy(
3336     IUri* This,
3337     BSTR *pbstrRawUri);
3338 void __RPC_STUB IUri_GetRawUri_Stub(
3339     IRpcStubBuffer* This,
3340     IRpcChannelBuffer* pRpcChannelBuffer,
3341     PRPC_MESSAGE pRpcMessage,
3342     DWORD* pdwStubPhase);
3343 HRESULT STDMETHODCALLTYPE IUri_GetSchemeName_Proxy(
3344     IUri* This,
3345     BSTR *pbstrSchemeName);
3346 void __RPC_STUB IUri_GetSchemeName_Stub(
3347     IRpcStubBuffer* This,
3348     IRpcChannelBuffer* pRpcChannelBuffer,
3349     PRPC_MESSAGE pRpcMessage,
3350     DWORD* pdwStubPhase);
3351 HRESULT STDMETHODCALLTYPE IUri_GetUserInfo_Proxy(
3352     IUri* This,
3353     BSTR *pbstrUserInfo);
3354 void __RPC_STUB IUri_GetUserInfo_Stub(
3355     IRpcStubBuffer* This,
3356     IRpcChannelBuffer* pRpcChannelBuffer,
3357     PRPC_MESSAGE pRpcMessage,
3358     DWORD* pdwStubPhase);
3359 HRESULT STDMETHODCALLTYPE IUri_GetUserName_Proxy(
3360     IUri* This,
3361     BSTR *pbstrUserName);
3362 void __RPC_STUB IUri_GetUserName_Stub(
3363     IRpcStubBuffer* This,
3364     IRpcChannelBuffer* pRpcChannelBuffer,
3365     PRPC_MESSAGE pRpcMessage,
3366     DWORD* pdwStubPhase);
3367 HRESULT STDMETHODCALLTYPE IUri_GetHostType_Proxy(
3368     IUri* This,
3369     DWORD *pdwHostType);
3370 void __RPC_STUB IUri_GetHostType_Stub(
3371     IRpcStubBuffer* This,
3372     IRpcChannelBuffer* pRpcChannelBuffer,
3373     PRPC_MESSAGE pRpcMessage,
3374     DWORD* pdwStubPhase);
3375 HRESULT STDMETHODCALLTYPE IUri_GetPort_Proxy(
3376     IUri* This,
3377     DWORD *pdwPort);
3378 void __RPC_STUB IUri_GetPort_Stub(
3379     IRpcStubBuffer* This,
3380     IRpcChannelBuffer* pRpcChannelBuffer,
3381     PRPC_MESSAGE pRpcMessage,
3382     DWORD* pdwStubPhase);
3383 HRESULT STDMETHODCALLTYPE IUri_GetScheme_Proxy(
3384     IUri* This,
3385     DWORD *pdwScheme);
3386 void __RPC_STUB IUri_GetScheme_Stub(
3387     IRpcStubBuffer* This,
3388     IRpcChannelBuffer* pRpcChannelBuffer,
3389     PRPC_MESSAGE pRpcMessage,
3390     DWORD* pdwStubPhase);
3391 HRESULT STDMETHODCALLTYPE IUri_GetZone_Proxy(
3392     IUri* This,
3393     DWORD *pdwZone);
3394 void __RPC_STUB IUri_GetZone_Stub(
3395     IRpcStubBuffer* This,
3396     IRpcChannelBuffer* pRpcChannelBuffer,
3397     PRPC_MESSAGE pRpcMessage,
3398     DWORD* pdwStubPhase);
3399 HRESULT STDMETHODCALLTYPE IUri_GetProperties_Proxy(
3400     IUri* This,
3401     LPDWORD pdwFlags);
3402 void __RPC_STUB IUri_GetProperties_Stub(
3403     IRpcStubBuffer* This,
3404     IRpcChannelBuffer* pRpcChannelBuffer,
3405     PRPC_MESSAGE pRpcMessage,
3406     DWORD* pdwStubPhase);
3407 HRESULT STDMETHODCALLTYPE IUri_IsEqual_Proxy(
3408     IUri* This,
3409     IUri *pUri,
3410     WINBOOL *pfEqual);
3411 void __RPC_STUB IUri_IsEqual_Stub(
3412     IRpcStubBuffer* This,
3413     IRpcChannelBuffer* pRpcChannelBuffer,
3414     PRPC_MESSAGE pRpcMessage,
3415     DWORD* pdwStubPhase);
3416 
3417 #endif  /* __IUri_INTERFACE_DEFINED__ */
3418 
3419 
3420 STDAPI CreateUri(LPCWSTR pwzURI, DWORD dwFlags, DWORD_PTR dwReserved, IUri **ppURI);
3421 STDAPI CreateUriWithFragment(
3422 LPCWSTR pwzURI, LPCWSTR pwzFragment, DWORD dwFlags, DWORD_PTR dwReserved, IUri **ppURI);
3423 #endif
3424 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
3425 STDAPI CreateUriFromMultiByteString(LPCSTR pszANSIInputUri, DWORD dwEncodingFlags, DWORD dwCodePage, DWORD dwCreateFlags, DWORD_PTR dwReserved, IUri **ppUri);
3426 #endif
3427 
3428 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
3429 #define Uri_HAS_ABSOLUTE_URI (1 << Uri_PROPERTY_ABSOLUTE_URI)
3430 #define Uri_HAS_AUTHORITY (1 << Uri_PROPERTY_AUTHORITY)
3431 #define Uri_HAS_DISPLAY_URI (1 << Uri_PROPERTY_DISPLAY_URI)
3432 #define Uri_HAS_DOMAIN (1 << Uri_PROPERTY_DOMAIN)
3433 #define Uri_HAS_EXTENSION (1 << Uri_PROPERTY_EXTENSION)
3434 #define Uri_HAS_FRAGMENT (1 << Uri_PROPERTY_FRAGMENT)
3435 #define Uri_HAS_HOST (1 << Uri_PROPERTY_HOST)
3436 #define Uri_HAS_PASSWORD (1 << Uri_PROPERTY_PASSWORD)
3437 #define Uri_HAS_PATH (1 << Uri_PROPERTY_PATH)
3438 #define Uri_HAS_QUERY (1 << Uri_PROPERTY_QUERY)
3439 #define Uri_HAS_RAW_URI (1 << Uri_PROPERTY_RAW_URI)
3440 #define Uri_HAS_SCHEME_NAME (1 << Uri_PROPERTY_SCHEME_NAME)
3441 #define Uri_HAS_USER_NAME (1 << Uri_PROPERTY_USER_NAME)
3442 #define Uri_HAS_PATH_AND_QUERY (1 << Uri_PROPERTY_PATH_AND_QUERY)
3443 #define Uri_HAS_USER_INFO (1 << Uri_PROPERTY_USER_INFO)
3444 #define Uri_HAS_HOST_TYPE (1 << Uri_PROPERTY_HOST_TYPE)
3445 #define Uri_HAS_PORT (1 << Uri_PROPERTY_PORT)
3446 #define Uri_HAS_SCHEME (1 << Uri_PROPERTY_SCHEME)
3447 #define Uri_HAS_ZONE (1 << Uri_PROPERTY_ZONE)
3448 
3449 #define Uri_CREATE_ALLOW_RELATIVE 0x1
3450 #define Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME 0x2
3451 #define Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME 0x4
3452 #define Uri_CREATE_NOFRAG 0x8
3453 #define Uri_CREATE_NO_CANONICALIZE 0x10
3454 #define Uri_CREATE_CANONICALIZE 0x100
3455 #define Uri_CREATE_FILE_USE_DOS_PATH 0x20
3456 #define Uri_CREATE_DECODE_EXTRA_INFO 0x40
3457 #define Uri_CREATE_NO_DECODE_EXTRA_INFO 0x80
3458 #define Uri_CREATE_CRACK_UNKNOWN_SCHEMES 0x200
3459 #define Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES 0x400
3460 #define Uri_CREATE_PRE_PROCESS_HTML_URI 0x800
3461 #define Uri_CREATE_NO_PRE_PROCESS_HTML_URI 0x1000
3462 #define Uri_CREATE_IE_SETTINGS 0x2000
3463 #define Uri_CREATE_NO_IE_SETTINGS 0x4000
3464 #define Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS 0x8000
3465 #define Uri_CREATE_NORMALIZE_INTL_CHARACTERS 0x10000
3466 #define Uri_CREATE_CANONICALIZE_ABSOLUTE 0x20000
3467 
3468 #define Uri_DISPLAY_NO_FRAGMENT 0x1
3469 #define Uri_PUNYCODE_IDN_HOST 0x2
3470 #define Uri_DISPLAY_IDN_HOST 0x4
3471 #define Uri_DISPLAY_NO_PUNYCODE 0x8
3472 
3473 #define Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 0x1
3474 #define Uri_ENCODING_USER_INFO_AND_PATH_IS_CP 0x2
3475 #define Uri_ENCODING_HOST_IS_IDN 0x4
3476 #define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 0x8
3477 #define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP 0x10
3478 #define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8 0x20
3479 #define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP 0x40
3480 
3481 #define Uri_ENCODING_RFC (Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 | Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 | Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8)
3482 
3483 #define UriBuilder_USE_ORIGINAL_FLAGS 0x1
3484 #endif
3485 #endif
3486 
3487 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
3488 /*****************************************************************************
3489  * IUriContainer interface
3490  */
3491 #ifndef __IUriContainer_INTERFACE_DEFINED__
3492 #define __IUriContainer_INTERFACE_DEFINED__
3493 
3494 DEFINE_GUID(IID_IUriContainer, 0xa158a630, 0xed6f, 0x45fb, 0xb9,0x87, 0xf6,0x86,0x76,0xf5,0x77,0x52);
3495 #if defined(__cplusplus) && !defined(CINTERFACE)
3496 MIDL_INTERFACE("a158a630-ed6f-45fb-b987-f68676f57752")
3497 IUriContainer : public IUnknown
3498 {
3499     virtual HRESULT STDMETHODCALLTYPE GetIUri(
3500         IUri **ppIUri) = 0;
3501 
3502 };
3503 #ifdef __CRT_UUID_DECL
3504 __CRT_UUID_DECL(IUriContainer, 0xa158a630, 0xed6f, 0x45fb, 0xb9,0x87, 0xf6,0x86,0x76,0xf5,0x77,0x52)
3505 #endif
3506 #else
3507 typedef struct IUriContainerVtbl {
3508     BEGIN_INTERFACE
3509 
3510     /*** IUnknown methods ***/
3511     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3512         IUriContainer* This,
3513         REFIID riid,
3514         void **ppvObject);
3515 
3516     ULONG (STDMETHODCALLTYPE *AddRef)(
3517         IUriContainer* This);
3518 
3519     ULONG (STDMETHODCALLTYPE *Release)(
3520         IUriContainer* This);
3521 
3522     /*** IUriContainer methods ***/
3523     HRESULT (STDMETHODCALLTYPE *GetIUri)(
3524         IUriContainer* This,
3525         IUri **ppIUri);
3526 
3527     END_INTERFACE
3528 } IUriContainerVtbl;
3529 interface IUriContainer {
3530     CONST_VTBL IUriContainerVtbl* lpVtbl;
3531 };
3532 
3533 #ifdef COBJMACROS
3534 #ifndef WIDL_C_INLINE_WRAPPERS
3535 /*** IUnknown methods ***/
3536 #define IUriContainer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3537 #define IUriContainer_AddRef(This) (This)->lpVtbl->AddRef(This)
3538 #define IUriContainer_Release(This) (This)->lpVtbl->Release(This)
3539 /*** IUriContainer methods ***/
3540 #define IUriContainer_GetIUri(This,ppIUri) (This)->lpVtbl->GetIUri(This,ppIUri)
3541 #else
3542 /*** IUnknown methods ***/
3543 static FORCEINLINE HRESULT IUriContainer_QueryInterface(IUriContainer* This,REFIID riid,void **ppvObject) {
3544     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3545 }
3546 static FORCEINLINE ULONG IUriContainer_AddRef(IUriContainer* This) {
3547     return This->lpVtbl->AddRef(This);
3548 }
3549 static FORCEINLINE ULONG IUriContainer_Release(IUriContainer* This) {
3550     return This->lpVtbl->Release(This);
3551 }
3552 /*** IUriContainer methods ***/
3553 static FORCEINLINE HRESULT IUriContainer_GetIUri(IUriContainer* This,IUri **ppIUri) {
3554     return This->lpVtbl->GetIUri(This,ppIUri);
3555 }
3556 #endif
3557 #endif
3558 
3559 #endif
3560 
3561 HRESULT STDMETHODCALLTYPE IUriContainer_GetIUri_Proxy(
3562     IUriContainer* This,
3563     IUri **ppIUri);
3564 void __RPC_STUB IUriContainer_GetIUri_Stub(
3565     IRpcStubBuffer* This,
3566     IRpcChannelBuffer* pRpcChannelBuffer,
3567     PRPC_MESSAGE pRpcMessage,
3568     DWORD* pdwStubPhase);
3569 
3570 #endif  /* __IUriContainer_INTERFACE_DEFINED__ */
3571 
3572 
3573 /*****************************************************************************
3574  * IUriBuilder interface
3575  */
3576 #ifndef __IUriBuilder_INTERFACE_DEFINED__
3577 #define __IUriBuilder_INTERFACE_DEFINED__
3578 
3579 DEFINE_GUID(IID_IUriBuilder, 0x4221b2e1, 0x8955, 0x46c0, 0xbd,0x5b, 0xde,0x98,0x97,0x56,0x5d,0xe7);
3580 #if defined(__cplusplus) && !defined(CINTERFACE)
3581 MIDL_INTERFACE("4221b2e1-8955-46c0-bd5b-de9897565de7")
3582 IUriBuilder : public IUnknown
3583 {
3584     virtual HRESULT STDMETHODCALLTYPE CreateUriSimple(
3585         DWORD dwAllowEncodingPropertyMask,
3586         DWORD_PTR dwReserved,
3587         IUri **ppIUri) = 0;
3588 
3589     virtual HRESULT STDMETHODCALLTYPE CreateUri(
3590         DWORD dwCreateFlags,
3591         DWORD dwAllowEncodingPropertyMask,
3592         DWORD_PTR dwReserved,
3593         IUri **ppIUri) = 0;
3594 
3595     virtual HRESULT STDMETHODCALLTYPE CreateUriWithFlags(
3596         DWORD dwCreateFlags,
3597         DWORD dwUriBuilderFlags,
3598         DWORD dwAllowEncodingPropertyMask,
3599         DWORD_PTR dwReserved,
3600         IUri **ppIUri) = 0;
3601 
3602     virtual HRESULT STDMETHODCALLTYPE GetIUri(
3603         IUri **ppIUri) = 0;
3604 
3605     virtual HRESULT STDMETHODCALLTYPE SetIUri(
3606         IUri *pIUri) = 0;
3607 
3608     virtual HRESULT STDMETHODCALLTYPE GetFragment(
3609         DWORD *pcchFragment,
3610         LPCWSTR *ppwzFragment) = 0;
3611 
3612     virtual HRESULT STDMETHODCALLTYPE GetHost(
3613         DWORD *pcchHost,
3614         LPCWSTR *ppwzHost) = 0;
3615 
3616     virtual HRESULT STDMETHODCALLTYPE GetPassword(
3617         DWORD *pcchPassword,
3618         LPCWSTR *ppwzPassword) = 0;
3619 
3620     virtual HRESULT STDMETHODCALLTYPE GetPath(
3621         DWORD *pcchPath,
3622         LPCWSTR *ppwzPath) = 0;
3623 
3624     virtual HRESULT STDMETHODCALLTYPE GetPort(
3625         WINBOOL *pfHasPort,
3626         DWORD *pdwPort) = 0;
3627 
3628     virtual HRESULT STDMETHODCALLTYPE GetQuery(
3629         DWORD *pcchQuery,
3630         LPCWSTR *ppwzQuery) = 0;
3631 
3632     virtual HRESULT STDMETHODCALLTYPE GetSchemeName(
3633         DWORD *pcchSchemeName,
3634         LPCWSTR *ppwzSchemeName) = 0;
3635 
3636     virtual HRESULT STDMETHODCALLTYPE GetUserName(
3637         DWORD *pcchUserName,
3638         LPCWSTR *ppwzUserName) = 0;
3639 
3640     virtual HRESULT STDMETHODCALLTYPE SetFragment(
3641         LPCWSTR pwzNewValue) = 0;
3642 
3643     virtual HRESULT STDMETHODCALLTYPE SetHost(
3644         LPCWSTR pwzNewValue) = 0;
3645 
3646     virtual HRESULT STDMETHODCALLTYPE SetPassword(
3647         LPCWSTR pwzNewValue) = 0;
3648 
3649     virtual HRESULT STDMETHODCALLTYPE SetPath(
3650         LPCWSTR pwzNewValue) = 0;
3651 
3652     virtual HRESULT STDMETHODCALLTYPE SetPort(
3653         WINBOOL fHasPort,
3654         DWORD dwNewValue) = 0;
3655 
3656     virtual HRESULT STDMETHODCALLTYPE SetQuery(
3657         LPCWSTR pwzNewValue) = 0;
3658 
3659     virtual HRESULT STDMETHODCALLTYPE SetSchemeName(
3660         LPCWSTR pwzNewValue) = 0;
3661 
3662     virtual HRESULT STDMETHODCALLTYPE SetUserName(
3663         LPCWSTR pwzNewValue) = 0;
3664 
3665     virtual HRESULT STDMETHODCALLTYPE RemoveProperties(
3666         DWORD dwPropertyMask) = 0;
3667 
3668     virtual HRESULT STDMETHODCALLTYPE HasBeenModified(
3669         WINBOOL *pfModified) = 0;
3670 
3671 };
3672 #ifdef __CRT_UUID_DECL
3673 __CRT_UUID_DECL(IUriBuilder, 0x4221b2e1, 0x8955, 0x46c0, 0xbd,0x5b, 0xde,0x98,0x97,0x56,0x5d,0xe7)
3674 #endif
3675 #else
3676 typedef struct IUriBuilderVtbl {
3677     BEGIN_INTERFACE
3678 
3679     /*** IUnknown methods ***/
3680     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3681         IUriBuilder* This,
3682         REFIID riid,
3683         void **ppvObject);
3684 
3685     ULONG (STDMETHODCALLTYPE *AddRef)(
3686         IUriBuilder* This);
3687 
3688     ULONG (STDMETHODCALLTYPE *Release)(
3689         IUriBuilder* This);
3690 
3691     /*** IUriBuilder methods ***/
3692     HRESULT (STDMETHODCALLTYPE *CreateUriSimple)(
3693         IUriBuilder* This,
3694         DWORD dwAllowEncodingPropertyMask,
3695         DWORD_PTR dwReserved,
3696         IUri **ppIUri);
3697 
3698     HRESULT (STDMETHODCALLTYPE *CreateUri)(
3699         IUriBuilder* This,
3700         DWORD dwCreateFlags,
3701         DWORD dwAllowEncodingPropertyMask,
3702         DWORD_PTR dwReserved,
3703         IUri **ppIUri);
3704 
3705     HRESULT (STDMETHODCALLTYPE *CreateUriWithFlags)(
3706         IUriBuilder* This,
3707         DWORD dwCreateFlags,
3708         DWORD dwUriBuilderFlags,
3709         DWORD dwAllowEncodingPropertyMask,
3710         DWORD_PTR dwReserved,
3711         IUri **ppIUri);
3712 
3713     HRESULT (STDMETHODCALLTYPE *GetIUri)(
3714         IUriBuilder* This,
3715         IUri **ppIUri);
3716 
3717     HRESULT (STDMETHODCALLTYPE *SetIUri)(
3718         IUriBuilder* This,
3719         IUri *pIUri);
3720 
3721     HRESULT (STDMETHODCALLTYPE *GetFragment)(
3722         IUriBuilder* This,
3723         DWORD *pcchFragment,
3724         LPCWSTR *ppwzFragment);
3725 
3726     HRESULT (STDMETHODCALLTYPE *GetHost)(
3727         IUriBuilder* This,
3728         DWORD *pcchHost,
3729         LPCWSTR *ppwzHost);
3730 
3731     HRESULT (STDMETHODCALLTYPE *GetPassword)(
3732         IUriBuilder* This,
3733         DWORD *pcchPassword,
3734         LPCWSTR *ppwzPassword);
3735 
3736     HRESULT (STDMETHODCALLTYPE *GetPath)(
3737         IUriBuilder* This,
3738         DWORD *pcchPath,
3739         LPCWSTR *ppwzPath);
3740 
3741     HRESULT (STDMETHODCALLTYPE *GetPort)(
3742         IUriBuilder* This,
3743         WINBOOL *pfHasPort,
3744         DWORD *pdwPort);
3745 
3746     HRESULT (STDMETHODCALLTYPE *GetQuery)(
3747         IUriBuilder* This,
3748         DWORD *pcchQuery,
3749         LPCWSTR *ppwzQuery);
3750 
3751     HRESULT (STDMETHODCALLTYPE *GetSchemeName)(
3752         IUriBuilder* This,
3753         DWORD *pcchSchemeName,
3754         LPCWSTR *ppwzSchemeName);
3755 
3756     HRESULT (STDMETHODCALLTYPE *GetUserName)(
3757         IUriBuilder* This,
3758         DWORD *pcchUserName,
3759         LPCWSTR *ppwzUserName);
3760 
3761     HRESULT (STDMETHODCALLTYPE *SetFragment)(
3762         IUriBuilder* This,
3763         LPCWSTR pwzNewValue);
3764 
3765     HRESULT (STDMETHODCALLTYPE *SetHost)(
3766         IUriBuilder* This,
3767         LPCWSTR pwzNewValue);
3768 
3769     HRESULT (STDMETHODCALLTYPE *SetPassword)(
3770         IUriBuilder* This,
3771         LPCWSTR pwzNewValue);
3772 
3773     HRESULT (STDMETHODCALLTYPE *SetPath)(
3774         IUriBuilder* This,
3775         LPCWSTR pwzNewValue);
3776 
3777     HRESULT (STDMETHODCALLTYPE *SetPort)(
3778         IUriBuilder* This,
3779         WINBOOL fHasPort,
3780         DWORD dwNewValue);
3781 
3782     HRESULT (STDMETHODCALLTYPE *SetQuery)(
3783         IUriBuilder* This,
3784         LPCWSTR pwzNewValue);
3785 
3786     HRESULT (STDMETHODCALLTYPE *SetSchemeName)(
3787         IUriBuilder* This,
3788         LPCWSTR pwzNewValue);
3789 
3790     HRESULT (STDMETHODCALLTYPE *SetUserName)(
3791         IUriBuilder* This,
3792         LPCWSTR pwzNewValue);
3793 
3794     HRESULT (STDMETHODCALLTYPE *RemoveProperties)(
3795         IUriBuilder* This,
3796         DWORD dwPropertyMask);
3797 
3798     HRESULT (STDMETHODCALLTYPE *HasBeenModified)(
3799         IUriBuilder* This,
3800         WINBOOL *pfModified);
3801 
3802     END_INTERFACE
3803 } IUriBuilderVtbl;
3804 interface IUriBuilder {
3805     CONST_VTBL IUriBuilderVtbl* lpVtbl;
3806 };
3807 
3808 #ifdef COBJMACROS
3809 #ifndef WIDL_C_INLINE_WRAPPERS
3810 /*** IUnknown methods ***/
3811 #define IUriBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3812 #define IUriBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
3813 #define IUriBuilder_Release(This) (This)->lpVtbl->Release(This)
3814 /*** IUriBuilder methods ***/
3815 #define IUriBuilder_CreateUriSimple(This,dwAllowEncodingPropertyMask,dwReserved,ppIUri) (This)->lpVtbl->CreateUriSimple(This,dwAllowEncodingPropertyMask,dwReserved,ppIUri)
3816 #define IUriBuilder_CreateUri(This,dwCreateFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri) (This)->lpVtbl->CreateUri(This,dwCreateFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri)
3817 #define IUriBuilder_CreateUriWithFlags(This,dwCreateFlags,dwUriBuilderFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri) (This)->lpVtbl->CreateUriWithFlags(This,dwCreateFlags,dwUriBuilderFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri)
3818 #define IUriBuilder_GetIUri(This,ppIUri) (This)->lpVtbl->GetIUri(This,ppIUri)
3819 #define IUriBuilder_SetIUri(This,pIUri) (This)->lpVtbl->SetIUri(This,pIUri)
3820 #define IUriBuilder_GetFragment(This,pcchFragment,ppwzFragment) (This)->lpVtbl->GetFragment(This,pcchFragment,ppwzFragment)
3821 #define IUriBuilder_GetHost(This,pcchHost,ppwzHost) (This)->lpVtbl->GetHost(This,pcchHost,ppwzHost)
3822 #define IUriBuilder_GetPassword(This,pcchPassword,ppwzPassword) (This)->lpVtbl->GetPassword(This,pcchPassword,ppwzPassword)
3823 #define IUriBuilder_GetPath(This,pcchPath,ppwzPath) (This)->lpVtbl->GetPath(This,pcchPath,ppwzPath)
3824 #define IUriBuilder_GetPort(This,pfHasPort,pdwPort) (This)->lpVtbl->GetPort(This,pfHasPort,pdwPort)
3825 #define IUriBuilder_GetQuery(This,pcchQuery,ppwzQuery) (This)->lpVtbl->GetQuery(This,pcchQuery,ppwzQuery)
3826 #define IUriBuilder_GetSchemeName(This,pcchSchemeName,ppwzSchemeName) (This)->lpVtbl->GetSchemeName(This,pcchSchemeName,ppwzSchemeName)
3827 #define IUriBuilder_GetUserName(This,pcchUserName,ppwzUserName) (This)->lpVtbl->GetUserName(This,pcchUserName,ppwzUserName)
3828 #define IUriBuilder_SetFragment(This,pwzNewValue) (This)->lpVtbl->SetFragment(This,pwzNewValue)
3829 #define IUriBuilder_SetHost(This,pwzNewValue) (This)->lpVtbl->SetHost(This,pwzNewValue)
3830 #define IUriBuilder_SetPassword(This,pwzNewValue) (This)->lpVtbl->SetPassword(This,pwzNewValue)
3831 #define IUriBuilder_SetPath(This,pwzNewValue) (This)->lpVtbl->SetPath(This,pwzNewValue)
3832 #define IUriBuilder_SetPort(This,fHasPort,dwNewValue) (This)->lpVtbl->SetPort(This,fHasPort,dwNewValue)
3833 #define IUriBuilder_SetQuery(This,pwzNewValue) (This)->lpVtbl->SetQuery(This,pwzNewValue)
3834 #define IUriBuilder_SetSchemeName(This,pwzNewValue) (This)->lpVtbl->SetSchemeName(This,pwzNewValue)
3835 #define IUriBuilder_SetUserName(This,pwzNewValue) (This)->lpVtbl->SetUserName(This,pwzNewValue)
3836 #define IUriBuilder_RemoveProperties(This,dwPropertyMask) (This)->lpVtbl->RemoveProperties(This,dwPropertyMask)
3837 #define IUriBuilder_HasBeenModified(This,pfModified) (This)->lpVtbl->HasBeenModified(This,pfModified)
3838 #else
3839 /*** IUnknown methods ***/
3840 static FORCEINLINE HRESULT IUriBuilder_QueryInterface(IUriBuilder* This,REFIID riid,void **ppvObject) {
3841     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3842 }
3843 static FORCEINLINE ULONG IUriBuilder_AddRef(IUriBuilder* This) {
3844     return This->lpVtbl->AddRef(This);
3845 }
3846 static FORCEINLINE ULONG IUriBuilder_Release(IUriBuilder* This) {
3847     return This->lpVtbl->Release(This);
3848 }
3849 /*** IUriBuilder methods ***/
3850 static FORCEINLINE HRESULT IUriBuilder_CreateUriSimple(IUriBuilder* This,DWORD dwAllowEncodingPropertyMask,DWORD_PTR dwReserved,IUri **ppIUri) {
3851     return This->lpVtbl->CreateUriSimple(This,dwAllowEncodingPropertyMask,dwReserved,ppIUri);
3852 }
3853 static FORCEINLINE HRESULT IUriBuilder_CreateUri(IUriBuilder* This,DWORD dwCreateFlags,DWORD dwAllowEncodingPropertyMask,DWORD_PTR dwReserved,IUri **ppIUri) {
3854     return This->lpVtbl->CreateUri(This,dwCreateFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri);
3855 }
3856 static FORCEINLINE HRESULT IUriBuilder_CreateUriWithFlags(IUriBuilder* This,DWORD dwCreateFlags,DWORD dwUriBuilderFlags,DWORD dwAllowEncodingPropertyMask,DWORD_PTR dwReserved,IUri **ppIUri) {
3857     return This->lpVtbl->CreateUriWithFlags(This,dwCreateFlags,dwUriBuilderFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri);
3858 }
3859 static FORCEINLINE HRESULT IUriBuilder_GetIUri(IUriBuilder* This,IUri **ppIUri) {
3860     return This->lpVtbl->GetIUri(This,ppIUri);
3861 }
3862 static FORCEINLINE HRESULT IUriBuilder_SetIUri(IUriBuilder* This,IUri *pIUri) {
3863     return This->lpVtbl->SetIUri(This,pIUri);
3864 }
3865 static FORCEINLINE HRESULT IUriBuilder_GetFragment(IUriBuilder* This,DWORD *pcchFragment,LPCWSTR *ppwzFragment) {
3866     return This->lpVtbl->GetFragment(This,pcchFragment,ppwzFragment);
3867 }
3868 static FORCEINLINE HRESULT IUriBuilder_GetHost(IUriBuilder* This,DWORD *pcchHost,LPCWSTR *ppwzHost) {
3869     return This->lpVtbl->GetHost(This,pcchHost,ppwzHost);
3870 }
3871 static FORCEINLINE HRESULT IUriBuilder_GetPassword(IUriBuilder* This,DWORD *pcchPassword,LPCWSTR *ppwzPassword) {
3872     return This->lpVtbl->GetPassword(This,pcchPassword,ppwzPassword);
3873 }
3874 static FORCEINLINE HRESULT IUriBuilder_GetPath(IUriBuilder* This,DWORD *pcchPath,LPCWSTR *ppwzPath) {
3875     return This->lpVtbl->GetPath(This,pcchPath,ppwzPath);
3876 }
3877 static FORCEINLINE HRESULT IUriBuilder_GetPort(IUriBuilder* This,WINBOOL *pfHasPort,DWORD *pdwPort) {
3878     return This->lpVtbl->GetPort(This,pfHasPort,pdwPort);
3879 }
3880 static FORCEINLINE HRESULT IUriBuilder_GetQuery(IUriBuilder* This,DWORD *pcchQuery,LPCWSTR *ppwzQuery) {
3881     return This->lpVtbl->GetQuery(This,pcchQuery,ppwzQuery);
3882 }
3883 static FORCEINLINE HRESULT IUriBuilder_GetSchemeName(IUriBuilder* This,DWORD *pcchSchemeName,LPCWSTR *ppwzSchemeName) {
3884     return This->lpVtbl->GetSchemeName(This,pcchSchemeName,ppwzSchemeName);
3885 }
3886 static FORCEINLINE HRESULT IUriBuilder_GetUserName(IUriBuilder* This,DWORD *pcchUserName,LPCWSTR *ppwzUserName) {
3887     return This->lpVtbl->GetUserName(This,pcchUserName,ppwzUserName);
3888 }
3889 static FORCEINLINE HRESULT IUriBuilder_SetFragment(IUriBuilder* This,LPCWSTR pwzNewValue) {
3890     return This->lpVtbl->SetFragment(This,pwzNewValue);
3891 }
3892 static FORCEINLINE HRESULT IUriBuilder_SetHost(IUriBuilder* This,LPCWSTR pwzNewValue) {
3893     return This->lpVtbl->SetHost(This,pwzNewValue);
3894 }
3895 static FORCEINLINE HRESULT IUriBuilder_SetPassword(IUriBuilder* This,LPCWSTR pwzNewValue) {
3896     return This->lpVtbl->SetPassword(This,pwzNewValue);
3897 }
3898 static FORCEINLINE HRESULT IUriBuilder_SetPath(IUriBuilder* This,LPCWSTR pwzNewValue) {
3899     return This->lpVtbl->SetPath(This,pwzNewValue);
3900 }
3901 static FORCEINLINE HRESULT IUriBuilder_SetPort(IUriBuilder* This,WINBOOL fHasPort,DWORD dwNewValue) {
3902     return This->lpVtbl->SetPort(This,fHasPort,dwNewValue);
3903 }
3904 static FORCEINLINE HRESULT IUriBuilder_SetQuery(IUriBuilder* This,LPCWSTR pwzNewValue) {
3905     return This->lpVtbl->SetQuery(This,pwzNewValue);
3906 }
3907 static FORCEINLINE HRESULT IUriBuilder_SetSchemeName(IUriBuilder* This,LPCWSTR pwzNewValue) {
3908     return This->lpVtbl->SetSchemeName(This,pwzNewValue);
3909 }
3910 static FORCEINLINE HRESULT IUriBuilder_SetUserName(IUriBuilder* This,LPCWSTR pwzNewValue) {
3911     return This->lpVtbl->SetUserName(This,pwzNewValue);
3912 }
3913 static FORCEINLINE HRESULT IUriBuilder_RemoveProperties(IUriBuilder* This,DWORD dwPropertyMask) {
3914     return This->lpVtbl->RemoveProperties(This,dwPropertyMask);
3915 }
3916 static FORCEINLINE HRESULT IUriBuilder_HasBeenModified(IUriBuilder* This,WINBOOL *pfModified) {
3917     return This->lpVtbl->HasBeenModified(This,pfModified);
3918 }
3919 #endif
3920 #endif
3921 
3922 #endif
3923 
3924 HRESULT STDMETHODCALLTYPE IUriBuilder_CreateUriSimple_Proxy(
3925     IUriBuilder* This,
3926     DWORD dwAllowEncodingPropertyMask,
3927     DWORD_PTR dwReserved,
3928     IUri **ppIUri);
3929 void __RPC_STUB IUriBuilder_CreateUriSimple_Stub(
3930     IRpcStubBuffer* This,
3931     IRpcChannelBuffer* pRpcChannelBuffer,
3932     PRPC_MESSAGE pRpcMessage,
3933     DWORD* pdwStubPhase);
3934 HRESULT STDMETHODCALLTYPE IUriBuilder_CreateUri_Proxy(
3935     IUriBuilder* This,
3936     DWORD dwCreateFlags,
3937     DWORD dwAllowEncodingPropertyMask,
3938     DWORD_PTR dwReserved,
3939     IUri **ppIUri);
3940 void __RPC_STUB IUriBuilder_CreateUri_Stub(
3941     IRpcStubBuffer* This,
3942     IRpcChannelBuffer* pRpcChannelBuffer,
3943     PRPC_MESSAGE pRpcMessage,
3944     DWORD* pdwStubPhase);
3945 HRESULT STDMETHODCALLTYPE IUriBuilder_CreateUriWithFlags_Proxy(
3946     IUriBuilder* This,
3947     DWORD dwCreateFlags,
3948     DWORD dwUriBuilderFlags,
3949     DWORD dwAllowEncodingPropertyMask,
3950     DWORD_PTR dwReserved,
3951     IUri **ppIUri);
3952 void __RPC_STUB IUriBuilder_CreateUriWithFlags_Stub(
3953     IRpcStubBuffer* This,
3954     IRpcChannelBuffer* pRpcChannelBuffer,
3955     PRPC_MESSAGE pRpcMessage,
3956     DWORD* pdwStubPhase);
3957 HRESULT STDMETHODCALLTYPE IUriBuilder_GetIUri_Proxy(
3958     IUriBuilder* This,
3959     IUri **ppIUri);
3960 void __RPC_STUB IUriBuilder_GetIUri_Stub(
3961     IRpcStubBuffer* This,
3962     IRpcChannelBuffer* pRpcChannelBuffer,
3963     PRPC_MESSAGE pRpcMessage,
3964     DWORD* pdwStubPhase);
3965 HRESULT STDMETHODCALLTYPE IUriBuilder_SetIUri_Proxy(
3966     IUriBuilder* This,
3967     IUri *pIUri);
3968 void __RPC_STUB IUriBuilder_SetIUri_Stub(
3969     IRpcStubBuffer* This,
3970     IRpcChannelBuffer* pRpcChannelBuffer,
3971     PRPC_MESSAGE pRpcMessage,
3972     DWORD* pdwStubPhase);
3973 HRESULT STDMETHODCALLTYPE IUriBuilder_GetFragment_Proxy(
3974     IUriBuilder* This,
3975     DWORD *pcchFragment,
3976     LPCWSTR *ppwzFragment);
3977 void __RPC_STUB IUriBuilder_GetFragment_Stub(
3978     IRpcStubBuffer* This,
3979     IRpcChannelBuffer* pRpcChannelBuffer,
3980     PRPC_MESSAGE pRpcMessage,
3981     DWORD* pdwStubPhase);
3982 HRESULT STDMETHODCALLTYPE IUriBuilder_GetHost_Proxy(
3983     IUriBuilder* This,
3984     DWORD *pcchHost,
3985     LPCWSTR *ppwzHost);
3986 void __RPC_STUB IUriBuilder_GetHost_Stub(
3987     IRpcStubBuffer* This,
3988     IRpcChannelBuffer* pRpcChannelBuffer,
3989     PRPC_MESSAGE pRpcMessage,
3990     DWORD* pdwStubPhase);
3991 HRESULT STDMETHODCALLTYPE IUriBuilder_GetPassword_Proxy(
3992     IUriBuilder* This,
3993     DWORD *pcchPassword,
3994     LPCWSTR *ppwzPassword);
3995 void __RPC_STUB IUriBuilder_GetPassword_Stub(
3996     IRpcStubBuffer* This,
3997     IRpcChannelBuffer* pRpcChannelBuffer,
3998     PRPC_MESSAGE pRpcMessage,
3999     DWORD* pdwStubPhase);
4000 HRESULT STDMETHODCALLTYPE IUriBuilder_GetPath_Proxy(
4001     IUriBuilder* This,
4002     DWORD *pcchPath,
4003     LPCWSTR *ppwzPath);
4004 void __RPC_STUB IUriBuilder_GetPath_Stub(
4005     IRpcStubBuffer* This,
4006     IRpcChannelBuffer* pRpcChannelBuffer,
4007     PRPC_MESSAGE pRpcMessage,
4008     DWORD* pdwStubPhase);
4009 HRESULT STDMETHODCALLTYPE IUriBuilder_GetPort_Proxy(
4010     IUriBuilder* This,
4011     WINBOOL *pfHasPort,
4012     DWORD *pdwPort);
4013 void __RPC_STUB IUriBuilder_GetPort_Stub(
4014     IRpcStubBuffer* This,
4015     IRpcChannelBuffer* pRpcChannelBuffer,
4016     PRPC_MESSAGE pRpcMessage,
4017     DWORD* pdwStubPhase);
4018 HRESULT STDMETHODCALLTYPE IUriBuilder_GetQuery_Proxy(
4019     IUriBuilder* This,
4020     DWORD *pcchQuery,
4021     LPCWSTR *ppwzQuery);
4022 void __RPC_STUB IUriBuilder_GetQuery_Stub(
4023     IRpcStubBuffer* This,
4024     IRpcChannelBuffer* pRpcChannelBuffer,
4025     PRPC_MESSAGE pRpcMessage,
4026     DWORD* pdwStubPhase);
4027 HRESULT STDMETHODCALLTYPE IUriBuilder_GetSchemeName_Proxy(
4028     IUriBuilder* This,
4029     DWORD *pcchSchemeName,
4030     LPCWSTR *ppwzSchemeName);
4031 void __RPC_STUB IUriBuilder_GetSchemeName_Stub(
4032     IRpcStubBuffer* This,
4033     IRpcChannelBuffer* pRpcChannelBuffer,
4034     PRPC_MESSAGE pRpcMessage,
4035     DWORD* pdwStubPhase);
4036 HRESULT STDMETHODCALLTYPE IUriBuilder_GetUserName_Proxy(
4037     IUriBuilder* This,
4038     DWORD *pcchUserName,
4039     LPCWSTR *ppwzUserName);
4040 void __RPC_STUB IUriBuilder_GetUserName_Stub(
4041     IRpcStubBuffer* This,
4042     IRpcChannelBuffer* pRpcChannelBuffer,
4043     PRPC_MESSAGE pRpcMessage,
4044     DWORD* pdwStubPhase);
4045 HRESULT STDMETHODCALLTYPE IUriBuilder_SetFragment_Proxy(
4046     IUriBuilder* This,
4047     LPCWSTR pwzNewValue);
4048 void __RPC_STUB IUriBuilder_SetFragment_Stub(
4049     IRpcStubBuffer* This,
4050     IRpcChannelBuffer* pRpcChannelBuffer,
4051     PRPC_MESSAGE pRpcMessage,
4052     DWORD* pdwStubPhase);
4053 HRESULT STDMETHODCALLTYPE IUriBuilder_SetHost_Proxy(
4054     IUriBuilder* This,
4055     LPCWSTR pwzNewValue);
4056 void __RPC_STUB IUriBuilder_SetHost_Stub(
4057     IRpcStubBuffer* This,
4058     IRpcChannelBuffer* pRpcChannelBuffer,
4059     PRPC_MESSAGE pRpcMessage,
4060     DWORD* pdwStubPhase);
4061 HRESULT STDMETHODCALLTYPE IUriBuilder_SetPassword_Proxy(
4062     IUriBuilder* This,
4063     LPCWSTR pwzNewValue);
4064 void __RPC_STUB IUriBuilder_SetPassword_Stub(
4065     IRpcStubBuffer* This,
4066     IRpcChannelBuffer* pRpcChannelBuffer,
4067     PRPC_MESSAGE pRpcMessage,
4068     DWORD* pdwStubPhase);
4069 HRESULT STDMETHODCALLTYPE IUriBuilder_SetPath_Proxy(
4070     IUriBuilder* This,
4071     LPCWSTR pwzNewValue);
4072 void __RPC_STUB IUriBuilder_SetPath_Stub(
4073     IRpcStubBuffer* This,
4074     IRpcChannelBuffer* pRpcChannelBuffer,
4075     PRPC_MESSAGE pRpcMessage,
4076     DWORD* pdwStubPhase);
4077 HRESULT STDMETHODCALLTYPE IUriBuilder_SetPort_Proxy(
4078     IUriBuilder* This,
4079     WINBOOL fHasPort,
4080     DWORD dwNewValue);
4081 void __RPC_STUB IUriBuilder_SetPort_Stub(
4082     IRpcStubBuffer* This,
4083     IRpcChannelBuffer* pRpcChannelBuffer,
4084     PRPC_MESSAGE pRpcMessage,
4085     DWORD* pdwStubPhase);
4086 HRESULT STDMETHODCALLTYPE IUriBuilder_SetQuery_Proxy(
4087     IUriBuilder* This,
4088     LPCWSTR pwzNewValue);
4089 void __RPC_STUB IUriBuilder_SetQuery_Stub(
4090     IRpcStubBuffer* This,
4091     IRpcChannelBuffer* pRpcChannelBuffer,
4092     PRPC_MESSAGE pRpcMessage,
4093     DWORD* pdwStubPhase);
4094 HRESULT STDMETHODCALLTYPE IUriBuilder_SetSchemeName_Proxy(
4095     IUriBuilder* This,
4096     LPCWSTR pwzNewValue);
4097 void __RPC_STUB IUriBuilder_SetSchemeName_Stub(
4098     IRpcStubBuffer* This,
4099     IRpcChannelBuffer* pRpcChannelBuffer,
4100     PRPC_MESSAGE pRpcMessage,
4101     DWORD* pdwStubPhase);
4102 HRESULT STDMETHODCALLTYPE IUriBuilder_SetUserName_Proxy(
4103     IUriBuilder* This,
4104     LPCWSTR pwzNewValue);
4105 void __RPC_STUB IUriBuilder_SetUserName_Stub(
4106     IRpcStubBuffer* This,
4107     IRpcChannelBuffer* pRpcChannelBuffer,
4108     PRPC_MESSAGE pRpcMessage,
4109     DWORD* pdwStubPhase);
4110 HRESULT STDMETHODCALLTYPE IUriBuilder_RemoveProperties_Proxy(
4111     IUriBuilder* This,
4112     DWORD dwPropertyMask);
4113 void __RPC_STUB IUriBuilder_RemoveProperties_Stub(
4114     IRpcStubBuffer* This,
4115     IRpcChannelBuffer* pRpcChannelBuffer,
4116     PRPC_MESSAGE pRpcMessage,
4117     DWORD* pdwStubPhase);
4118 HRESULT STDMETHODCALLTYPE IUriBuilder_HasBeenModified_Proxy(
4119     IUriBuilder* This,
4120     WINBOOL *pfModified);
4121 void __RPC_STUB IUriBuilder_HasBeenModified_Stub(
4122     IRpcStubBuffer* This,
4123     IRpcChannelBuffer* pRpcChannelBuffer,
4124     PRPC_MESSAGE pRpcMessage,
4125     DWORD* pdwStubPhase);
4126 
4127 #endif  /* __IUriBuilder_INTERFACE_DEFINED__ */
4128 
4129 
4130 /*****************************************************************************
4131  * IUriBuilderFactory interface
4132  */
4133 #ifndef __IUriBuilderFactory_INTERFACE_DEFINED__
4134 #define __IUriBuilderFactory_INTERFACE_DEFINED__
4135 
4136 DEFINE_GUID(IID_IUriBuilderFactory, 0xe982ce48, 0x0b96, 0x440c, 0xbc,0x37, 0x0c,0x86,0x9b,0x27,0xa2,0x9e);
4137 #if defined(__cplusplus) && !defined(CINTERFACE)
4138 MIDL_INTERFACE("e982ce48-0b96-440c-bc37-0c869b27a29e")
4139 IUriBuilderFactory : public IUnknown
4140 {
4141     virtual HRESULT STDMETHODCALLTYPE CreateIUriBuilder(
4142         DWORD dwFlags,
4143         DWORD_PTR dwReserved,
4144         IUriBuilder **ppIUriBuilder) = 0;
4145 
4146     virtual HRESULT STDMETHODCALLTYPE CreateInitializedIUriBuilder(
4147         DWORD dwFlags,
4148         DWORD_PTR dwReserved,
4149         IUriBuilder **ppIUriBuilder) = 0;
4150 
4151 };
4152 #ifdef __CRT_UUID_DECL
4153 __CRT_UUID_DECL(IUriBuilderFactory, 0xe982ce48, 0x0b96, 0x440c, 0xbc,0x37, 0x0c,0x86,0x9b,0x27,0xa2,0x9e)
4154 #endif
4155 #else
4156 typedef struct IUriBuilderFactoryVtbl {
4157     BEGIN_INTERFACE
4158 
4159     /*** IUnknown methods ***/
4160     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4161         IUriBuilderFactory* This,
4162         REFIID riid,
4163         void **ppvObject);
4164 
4165     ULONG (STDMETHODCALLTYPE *AddRef)(
4166         IUriBuilderFactory* This);
4167 
4168     ULONG (STDMETHODCALLTYPE *Release)(
4169         IUriBuilderFactory* This);
4170 
4171     /*** IUriBuilderFactory methods ***/
4172     HRESULT (STDMETHODCALLTYPE *CreateIUriBuilder)(
4173         IUriBuilderFactory* This,
4174         DWORD dwFlags,
4175         DWORD_PTR dwReserved,
4176         IUriBuilder **ppIUriBuilder);
4177 
4178     HRESULT (STDMETHODCALLTYPE *CreateInitializedIUriBuilder)(
4179         IUriBuilderFactory* This,
4180         DWORD dwFlags,
4181         DWORD_PTR dwReserved,
4182         IUriBuilder **ppIUriBuilder);
4183 
4184     END_INTERFACE
4185 } IUriBuilderFactoryVtbl;
4186 interface IUriBuilderFactory {
4187     CONST_VTBL IUriBuilderFactoryVtbl* lpVtbl;
4188 };
4189 
4190 #ifdef COBJMACROS
4191 #ifndef WIDL_C_INLINE_WRAPPERS
4192 /*** IUnknown methods ***/
4193 #define IUriBuilderFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4194 #define IUriBuilderFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
4195 #define IUriBuilderFactory_Release(This) (This)->lpVtbl->Release(This)
4196 /*** IUriBuilderFactory methods ***/
4197 #define IUriBuilderFactory_CreateIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder) (This)->lpVtbl->CreateIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder)
4198 #define IUriBuilderFactory_CreateInitializedIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder) (This)->lpVtbl->CreateInitializedIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder)
4199 #else
4200 /*** IUnknown methods ***/
4201 static FORCEINLINE HRESULT IUriBuilderFactory_QueryInterface(IUriBuilderFactory* This,REFIID riid,void **ppvObject) {
4202     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4203 }
4204 static FORCEINLINE ULONG IUriBuilderFactory_AddRef(IUriBuilderFactory* This) {
4205     return This->lpVtbl->AddRef(This);
4206 }
4207 static FORCEINLINE ULONG IUriBuilderFactory_Release(IUriBuilderFactory* This) {
4208     return This->lpVtbl->Release(This);
4209 }
4210 /*** IUriBuilderFactory methods ***/
4211 static FORCEINLINE HRESULT IUriBuilderFactory_CreateIUriBuilder(IUriBuilderFactory* This,DWORD dwFlags,DWORD_PTR dwReserved,IUriBuilder **ppIUriBuilder) {
4212     return This->lpVtbl->CreateIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder);
4213 }
4214 static FORCEINLINE HRESULT IUriBuilderFactory_CreateInitializedIUriBuilder(IUriBuilderFactory* This,DWORD dwFlags,DWORD_PTR dwReserved,IUriBuilder **ppIUriBuilder) {
4215     return This->lpVtbl->CreateInitializedIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder);
4216 }
4217 #endif
4218 #endif
4219 
4220 #endif
4221 
4222 HRESULT STDMETHODCALLTYPE IUriBuilderFactory_CreateIUriBuilder_Proxy(
4223     IUriBuilderFactory* This,
4224     DWORD dwFlags,
4225     DWORD_PTR dwReserved,
4226     IUriBuilder **ppIUriBuilder);
4227 void __RPC_STUB IUriBuilderFactory_CreateIUriBuilder_Stub(
4228     IRpcStubBuffer* This,
4229     IRpcChannelBuffer* pRpcChannelBuffer,
4230     PRPC_MESSAGE pRpcMessage,
4231     DWORD* pdwStubPhase);
4232 HRESULT STDMETHODCALLTYPE IUriBuilderFactory_CreateInitializedIUriBuilder_Proxy(
4233     IUriBuilderFactory* This,
4234     DWORD dwFlags,
4235     DWORD_PTR dwReserved,
4236     IUriBuilder **ppIUriBuilder);
4237 void __RPC_STUB IUriBuilderFactory_CreateInitializedIUriBuilder_Stub(
4238     IRpcStubBuffer* This,
4239     IRpcChannelBuffer* pRpcChannelBuffer,
4240     PRPC_MESSAGE pRpcMessage,
4241     DWORD* pdwStubPhase);
4242 
4243 #endif  /* __IUriBuilderFactory_INTERFACE_DEFINED__ */
4244 
4245 
4246 STDAPI CreateIUriBuilder(IUri *pIUri, DWORD dwFlags, DWORD_PTR dwReserved, IUriBuilder **ppIUriBuilder);
4247 #endif
4248 #endif
4249 
4250 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
4251 #ifndef _LPWININETINFO_DEFINED
4252 #define _LPWININETINFO_DEFINED
4253 
4254 /*****************************************************************************
4255  * IWinInetInfo interface
4256  */
4257 #ifndef __IWinInetInfo_INTERFACE_DEFINED__
4258 #define __IWinInetInfo_INTERFACE_DEFINED__
4259 
4260 typedef IWinInetInfo *LPWININETINFO;
4261 DEFINE_GUID(IID_IWinInetInfo, 0x79eac9d6, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
4262 #if defined(__cplusplus) && !defined(CINTERFACE)
4263 MIDL_INTERFACE("79eac9d6-bafa-11ce-8c82-00aa004ba90b")
4264 IWinInetInfo : public IUnknown
4265 {
4266     virtual HRESULT STDMETHODCALLTYPE QueryOption(
4267         DWORD dwOption,
4268         LPVOID pBuffer,
4269         DWORD *pcbBuf) = 0;
4270 
4271 };
4272 #ifdef __CRT_UUID_DECL
4273 __CRT_UUID_DECL(IWinInetInfo, 0x79eac9d6, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
4274 #endif
4275 #else
4276 typedef struct IWinInetInfoVtbl {
4277     BEGIN_INTERFACE
4278 
4279     /*** IUnknown methods ***/
4280     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4281         IWinInetInfo* This,
4282         REFIID riid,
4283         void **ppvObject);
4284 
4285     ULONG (STDMETHODCALLTYPE *AddRef)(
4286         IWinInetInfo* This);
4287 
4288     ULONG (STDMETHODCALLTYPE *Release)(
4289         IWinInetInfo* This);
4290 
4291     /*** IWinInetInfo methods ***/
4292     HRESULT (STDMETHODCALLTYPE *QueryOption)(
4293         IWinInetInfo* This,
4294         DWORD dwOption,
4295         LPVOID pBuffer,
4296         DWORD *pcbBuf);
4297 
4298     END_INTERFACE
4299 } IWinInetInfoVtbl;
4300 interface IWinInetInfo {
4301     CONST_VTBL IWinInetInfoVtbl* lpVtbl;
4302 };
4303 
4304 #ifdef COBJMACROS
4305 #ifndef WIDL_C_INLINE_WRAPPERS
4306 /*** IUnknown methods ***/
4307 #define IWinInetInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4308 #define IWinInetInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
4309 #define IWinInetInfo_Release(This) (This)->lpVtbl->Release(This)
4310 /*** IWinInetInfo methods ***/
4311 #define IWinInetInfo_QueryOption(This,dwOption,pBuffer,pcbBuf) (This)->lpVtbl->QueryOption(This,dwOption,pBuffer,pcbBuf)
4312 #else
4313 /*** IUnknown methods ***/
4314 static FORCEINLINE HRESULT IWinInetInfo_QueryInterface(IWinInetInfo* This,REFIID riid,void **ppvObject) {
4315     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4316 }
4317 static FORCEINLINE ULONG IWinInetInfo_AddRef(IWinInetInfo* This) {
4318     return This->lpVtbl->AddRef(This);
4319 }
4320 static FORCEINLINE ULONG IWinInetInfo_Release(IWinInetInfo* This) {
4321     return This->lpVtbl->Release(This);
4322 }
4323 /*** IWinInetInfo methods ***/
4324 static FORCEINLINE HRESULT IWinInetInfo_QueryOption(IWinInetInfo* This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf) {
4325     return This->lpVtbl->QueryOption(This,dwOption,pBuffer,pcbBuf);
4326 }
4327 #endif
4328 #endif
4329 
4330 #endif
4331 
4332 HRESULT STDMETHODCALLTYPE IWinInetInfo_RemoteQueryOption_Proxy(
4333     IWinInetInfo* This,
4334     DWORD dwOption,
4335     BYTE *pBuffer,
4336     DWORD *pcbBuf);
4337 void __RPC_STUB IWinInetInfo_RemoteQueryOption_Stub(
4338     IRpcStubBuffer* This,
4339     IRpcChannelBuffer* pRpcChannelBuffer,
4340     PRPC_MESSAGE pRpcMessage,
4341     DWORD* pdwStubPhase);
4342 HRESULT CALLBACK IWinInetInfo_QueryOption_Proxy(
4343     IWinInetInfo* This,
4344     DWORD dwOption,
4345     LPVOID pBuffer,
4346     DWORD *pcbBuf);
4347 HRESULT __RPC_STUB IWinInetInfo_QueryOption_Stub(
4348     IWinInetInfo* This,
4349     DWORD dwOption,
4350     BYTE *pBuffer,
4351     DWORD *pcbBuf);
4352 
4353 #endif  /* __IWinInetInfo_INTERFACE_DEFINED__ */
4354 
4355 #endif
4356 
4357 #define WININETINFO_OPTION_LOCK_HANDLE 65534
4358 
4359 #ifndef _LPHTTPSECURITY_DEFINED
4360 #define _LPHTTPSECURITY_DEFINED
4361 
4362 /*****************************************************************************
4363  * IHttpSecurity interface
4364  */
4365 #ifndef __IHttpSecurity_INTERFACE_DEFINED__
4366 #define __IHttpSecurity_INTERFACE_DEFINED__
4367 
4368 typedef IHttpSecurity *LPHTTPSECURITY;
4369 
4370 DEFINE_GUID(IID_IHttpSecurity, 0x79eac9d7, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
4371 #if defined(__cplusplus) && !defined(CINTERFACE)
4372 MIDL_INTERFACE("79eac9d7-bafa-11ce-8c82-00aa004ba90b")
4373 IHttpSecurity : public IWindowForBindingUI
4374 {
4375     virtual HRESULT STDMETHODCALLTYPE OnSecurityProblem(
4376         DWORD dwProblem) = 0;
4377 
4378 };
4379 #ifdef __CRT_UUID_DECL
4380 __CRT_UUID_DECL(IHttpSecurity, 0x79eac9d7, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
4381 #endif
4382 #else
4383 typedef struct IHttpSecurityVtbl {
4384     BEGIN_INTERFACE
4385 
4386     /*** IUnknown methods ***/
4387     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4388         IHttpSecurity* This,
4389         REFIID riid,
4390         void **ppvObject);
4391 
4392     ULONG (STDMETHODCALLTYPE *AddRef)(
4393         IHttpSecurity* This);
4394 
4395     ULONG (STDMETHODCALLTYPE *Release)(
4396         IHttpSecurity* This);
4397 
4398     /*** IWindowForBindingUI methods ***/
4399     HRESULT (STDMETHODCALLTYPE *GetWindow)(
4400         IHttpSecurity* This,
4401         REFGUID rguidReason,
4402         HWND *phwnd);
4403 
4404     /*** IHttpSecurity methods ***/
4405     HRESULT (STDMETHODCALLTYPE *OnSecurityProblem)(
4406         IHttpSecurity* This,
4407         DWORD dwProblem);
4408 
4409     END_INTERFACE
4410 } IHttpSecurityVtbl;
4411 interface IHttpSecurity {
4412     CONST_VTBL IHttpSecurityVtbl* lpVtbl;
4413 };
4414 
4415 #ifdef COBJMACROS
4416 #ifndef WIDL_C_INLINE_WRAPPERS
4417 /*** IUnknown methods ***/
4418 #define IHttpSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4419 #define IHttpSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
4420 #define IHttpSecurity_Release(This) (This)->lpVtbl->Release(This)
4421 /*** IWindowForBindingUI methods ***/
4422 #define IHttpSecurity_GetWindow(This,rguidReason,phwnd) (This)->lpVtbl->GetWindow(This,rguidReason,phwnd)
4423 /*** IHttpSecurity methods ***/
4424 #define IHttpSecurity_OnSecurityProblem(This,dwProblem) (This)->lpVtbl->OnSecurityProblem(This,dwProblem)
4425 #else
4426 /*** IUnknown methods ***/
4427 static FORCEINLINE HRESULT IHttpSecurity_QueryInterface(IHttpSecurity* This,REFIID riid,void **ppvObject) {
4428     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4429 }
4430 static FORCEINLINE ULONG IHttpSecurity_AddRef(IHttpSecurity* This) {
4431     return This->lpVtbl->AddRef(This);
4432 }
4433 static FORCEINLINE ULONG IHttpSecurity_Release(IHttpSecurity* This) {
4434     return This->lpVtbl->Release(This);
4435 }
4436 /*** IWindowForBindingUI methods ***/
4437 static FORCEINLINE HRESULT IHttpSecurity_GetWindow(IHttpSecurity* This,REFGUID rguidReason,HWND *phwnd) {
4438     return This->lpVtbl->GetWindow(This,rguidReason,phwnd);
4439 }
4440 /*** IHttpSecurity methods ***/
4441 static FORCEINLINE HRESULT IHttpSecurity_OnSecurityProblem(IHttpSecurity* This,DWORD dwProblem) {
4442     return This->lpVtbl->OnSecurityProblem(This,dwProblem);
4443 }
4444 #endif
4445 #endif
4446 
4447 #endif
4448 
4449 HRESULT STDMETHODCALLTYPE IHttpSecurity_OnSecurityProblem_Proxy(
4450     IHttpSecurity* This,
4451     DWORD dwProblem);
4452 void __RPC_STUB IHttpSecurity_OnSecurityProblem_Stub(
4453     IRpcStubBuffer* This,
4454     IRpcChannelBuffer* pRpcChannelBuffer,
4455     PRPC_MESSAGE pRpcMessage,
4456     DWORD* pdwStubPhase);
4457 
4458 #endif  /* __IHttpSecurity_INTERFACE_DEFINED__ */
4459 
4460 #endif
4461 
4462 #ifndef _LPWININETHTTPINFO_DEFINED
4463 #define _LPWININETHTTPINFO_DEFINED
4464 
4465 /*****************************************************************************
4466  * IWinInetHttpInfo interface
4467  */
4468 #ifndef __IWinInetHttpInfo_INTERFACE_DEFINED__
4469 #define __IWinInetHttpInfo_INTERFACE_DEFINED__
4470 
4471 typedef IWinInetHttpInfo *LPWININETHTTPINFO;
4472 
4473 DEFINE_GUID(IID_IWinInetHttpInfo, 0x79eac9d8, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
4474 #if defined(__cplusplus) && !defined(CINTERFACE)
4475 MIDL_INTERFACE("79eac9d8-bafa-11ce-8c82-00aa004ba90b")
4476 IWinInetHttpInfo : public IWinInetInfo
4477 {
4478     virtual HRESULT STDMETHODCALLTYPE QueryInfo(
4479         DWORD dwOption,
4480         LPVOID pBuffer,
4481         DWORD *pcbBuf,
4482         DWORD *pdwFlags,
4483         DWORD *pdwReserved) = 0;
4484 
4485 };
4486 #ifdef __CRT_UUID_DECL
4487 __CRT_UUID_DECL(IWinInetHttpInfo, 0x79eac9d8, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
4488 #endif
4489 #else
4490 typedef struct IWinInetHttpInfoVtbl {
4491     BEGIN_INTERFACE
4492 
4493     /*** IUnknown methods ***/
4494     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4495         IWinInetHttpInfo* This,
4496         REFIID riid,
4497         void **ppvObject);
4498 
4499     ULONG (STDMETHODCALLTYPE *AddRef)(
4500         IWinInetHttpInfo* This);
4501 
4502     ULONG (STDMETHODCALLTYPE *Release)(
4503         IWinInetHttpInfo* This);
4504 
4505     /*** IWinInetInfo methods ***/
4506     HRESULT (STDMETHODCALLTYPE *QueryOption)(
4507         IWinInetHttpInfo* This,
4508         DWORD dwOption,
4509         LPVOID pBuffer,
4510         DWORD *pcbBuf);
4511 
4512     /*** IWinInetHttpInfo methods ***/
4513     HRESULT (STDMETHODCALLTYPE *QueryInfo)(
4514         IWinInetHttpInfo* This,
4515         DWORD dwOption,
4516         LPVOID pBuffer,
4517         DWORD *pcbBuf,
4518         DWORD *pdwFlags,
4519         DWORD *pdwReserved);
4520 
4521     END_INTERFACE
4522 } IWinInetHttpInfoVtbl;
4523 interface IWinInetHttpInfo {
4524     CONST_VTBL IWinInetHttpInfoVtbl* lpVtbl;
4525 };
4526 
4527 #ifdef COBJMACROS
4528 #ifndef WIDL_C_INLINE_WRAPPERS
4529 /*** IUnknown methods ***/
4530 #define IWinInetHttpInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4531 #define IWinInetHttpInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
4532 #define IWinInetHttpInfo_Release(This) (This)->lpVtbl->Release(This)
4533 /*** IWinInetInfo methods ***/
4534 #define IWinInetHttpInfo_QueryOption(This,dwOption,pBuffer,pcbBuf) (This)->lpVtbl->QueryOption(This,dwOption,pBuffer,pcbBuf)
4535 /*** IWinInetHttpInfo methods ***/
4536 #define IWinInetHttpInfo_QueryInfo(This,dwOption,pBuffer,pcbBuf,pdwFlags,pdwReserved) (This)->lpVtbl->QueryInfo(This,dwOption,pBuffer,pcbBuf,pdwFlags,pdwReserved)
4537 #else
4538 /*** IUnknown methods ***/
4539 static FORCEINLINE HRESULT IWinInetHttpInfo_QueryInterface(IWinInetHttpInfo* This,REFIID riid,void **ppvObject) {
4540     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4541 }
4542 static FORCEINLINE ULONG IWinInetHttpInfo_AddRef(IWinInetHttpInfo* This) {
4543     return This->lpVtbl->AddRef(This);
4544 }
4545 static FORCEINLINE ULONG IWinInetHttpInfo_Release(IWinInetHttpInfo* This) {
4546     return This->lpVtbl->Release(This);
4547 }
4548 /*** IWinInetInfo methods ***/
4549 static FORCEINLINE HRESULT IWinInetHttpInfo_QueryOption(IWinInetHttpInfo* This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf) {
4550     return This->lpVtbl->QueryOption(This,dwOption,pBuffer,pcbBuf);
4551 }
4552 /*** IWinInetHttpInfo methods ***/
4553 static FORCEINLINE HRESULT IWinInetHttpInfo_QueryInfo(IWinInetHttpInfo* This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf,DWORD *pdwFlags,DWORD *pdwReserved) {
4554     return This->lpVtbl->QueryInfo(This,dwOption,pBuffer,pcbBuf,pdwFlags,pdwReserved);
4555 }
4556 #endif
4557 #endif
4558 
4559 #endif
4560 
4561 HRESULT STDMETHODCALLTYPE IWinInetHttpInfo_RemoteQueryInfo_Proxy(
4562     IWinInetHttpInfo* This,
4563     DWORD dwOption,
4564     BYTE *pBuffer,
4565     DWORD *pcbBuf,
4566     DWORD *pdwFlags,
4567     DWORD *pdwReserved);
4568 void __RPC_STUB IWinInetHttpInfo_RemoteQueryInfo_Stub(
4569     IRpcStubBuffer* This,
4570     IRpcChannelBuffer* pRpcChannelBuffer,
4571     PRPC_MESSAGE pRpcMessage,
4572     DWORD* pdwStubPhase);
4573 HRESULT CALLBACK IWinInetHttpInfo_QueryInfo_Proxy(
4574     IWinInetHttpInfo* This,
4575     DWORD dwOption,
4576     LPVOID pBuffer,
4577     DWORD *pcbBuf,
4578     DWORD *pdwFlags,
4579     DWORD *pdwReserved);
4580 HRESULT __RPC_STUB IWinInetHttpInfo_QueryInfo_Stub(
4581     IWinInetHttpInfo* This,
4582     DWORD dwOption,
4583     BYTE *pBuffer,
4584     DWORD *pcbBuf,
4585     DWORD *pdwFlags,
4586     DWORD *pdwReserved);
4587 
4588 #endif  /* __IWinInetHttpInfo_INTERFACE_DEFINED__ */
4589 
4590 #endif
4591 
4592 #ifndef _LPWININETHTTPTIMEOUTS_DEFINED
4593 #define _LPWININETHTTPTIMEOUTS_DEFINED
4594 /*****************************************************************************
4595  * IWinInetHttpTimeouts interface
4596  */
4597 #ifndef __IWinInetHttpTimeouts_INTERFACE_DEFINED__
4598 #define __IWinInetHttpTimeouts_INTERFACE_DEFINED__
4599 
4600 DEFINE_GUID(IID_IWinInetHttpTimeouts, 0xf286fa56, 0xc1fd, 0x4270, 0x8e,0x67, 0xb3,0xeb,0x79,0x0a,0x81,0xe8);
4601 #if defined(__cplusplus) && !defined(CINTERFACE)
4602 MIDL_INTERFACE("f286fa56-c1fd-4270-8e67-b3eb790a81e8")
4603 IWinInetHttpTimeouts : public IUnknown
4604 {
4605     virtual HRESULT STDMETHODCALLTYPE GetRequestTimeouts(
4606         DWORD *pdwConnectTimeout,
4607         DWORD *pdwSendTimeout,
4608         DWORD *pdwReceiveTimeout) = 0;
4609 
4610 };
4611 #ifdef __CRT_UUID_DECL
4612 __CRT_UUID_DECL(IWinInetHttpTimeouts, 0xf286fa56, 0xc1fd, 0x4270, 0x8e,0x67, 0xb3,0xeb,0x79,0x0a,0x81,0xe8)
4613 #endif
4614 #else
4615 typedef struct IWinInetHttpTimeoutsVtbl {
4616     BEGIN_INTERFACE
4617 
4618     /*** IUnknown methods ***/
4619     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4620         IWinInetHttpTimeouts* This,
4621         REFIID riid,
4622         void **ppvObject);
4623 
4624     ULONG (STDMETHODCALLTYPE *AddRef)(
4625         IWinInetHttpTimeouts* This);
4626 
4627     ULONG (STDMETHODCALLTYPE *Release)(
4628         IWinInetHttpTimeouts* This);
4629 
4630     /*** IWinInetHttpTimeouts methods ***/
4631     HRESULT (STDMETHODCALLTYPE *GetRequestTimeouts)(
4632         IWinInetHttpTimeouts* This,
4633         DWORD *pdwConnectTimeout,
4634         DWORD *pdwSendTimeout,
4635         DWORD *pdwReceiveTimeout);
4636 
4637     END_INTERFACE
4638 } IWinInetHttpTimeoutsVtbl;
4639 interface IWinInetHttpTimeouts {
4640     CONST_VTBL IWinInetHttpTimeoutsVtbl* lpVtbl;
4641 };
4642 
4643 #ifdef COBJMACROS
4644 #ifndef WIDL_C_INLINE_WRAPPERS
4645 /*** IUnknown methods ***/
4646 #define IWinInetHttpTimeouts_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4647 #define IWinInetHttpTimeouts_AddRef(This) (This)->lpVtbl->AddRef(This)
4648 #define IWinInetHttpTimeouts_Release(This) (This)->lpVtbl->Release(This)
4649 /*** IWinInetHttpTimeouts methods ***/
4650 #define IWinInetHttpTimeouts_GetRequestTimeouts(This,pdwConnectTimeout,pdwSendTimeout,pdwReceiveTimeout) (This)->lpVtbl->GetRequestTimeouts(This,pdwConnectTimeout,pdwSendTimeout,pdwReceiveTimeout)
4651 #else
4652 /*** IUnknown methods ***/
4653 static FORCEINLINE HRESULT IWinInetHttpTimeouts_QueryInterface(IWinInetHttpTimeouts* This,REFIID riid,void **ppvObject) {
4654     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4655 }
4656 static FORCEINLINE ULONG IWinInetHttpTimeouts_AddRef(IWinInetHttpTimeouts* This) {
4657     return This->lpVtbl->AddRef(This);
4658 }
4659 static FORCEINLINE ULONG IWinInetHttpTimeouts_Release(IWinInetHttpTimeouts* This) {
4660     return This->lpVtbl->Release(This);
4661 }
4662 /*** IWinInetHttpTimeouts methods ***/
4663 static FORCEINLINE HRESULT IWinInetHttpTimeouts_GetRequestTimeouts(IWinInetHttpTimeouts* This,DWORD *pdwConnectTimeout,DWORD *pdwSendTimeout,DWORD *pdwReceiveTimeout) {
4664     return This->lpVtbl->GetRequestTimeouts(This,pdwConnectTimeout,pdwSendTimeout,pdwReceiveTimeout);
4665 }
4666 #endif
4667 #endif
4668 
4669 #endif
4670 
4671 HRESULT STDMETHODCALLTYPE IWinInetHttpTimeouts_GetRequestTimeouts_Proxy(
4672     IWinInetHttpTimeouts* This,
4673     DWORD *pdwConnectTimeout,
4674     DWORD *pdwSendTimeout,
4675     DWORD *pdwReceiveTimeout);
4676 void __RPC_STUB IWinInetHttpTimeouts_GetRequestTimeouts_Stub(
4677     IRpcStubBuffer* This,
4678     IRpcChannelBuffer* pRpcChannelBuffer,
4679     PRPC_MESSAGE pRpcMessage,
4680     DWORD* pdwStubPhase);
4681 
4682 #endif  /* __IWinInetHttpTimeouts_INTERFACE_DEFINED__ */
4683 
4684 #endif
4685 
4686 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
4687 #ifndef _LPWININETCACHEHINTS_DEFINED
4688 #define _LPWININETCACHEHINTS_DEFINED
4689 
4690 /*****************************************************************************
4691  * IWinInetCacheHints interface
4692  */
4693 #ifndef __IWinInetCacheHints_INTERFACE_DEFINED__
4694 #define __IWinInetCacheHints_INTERFACE_DEFINED__
4695 
4696 typedef IWinInetCacheHints *LPWININETCACHEHINTS;
4697 
4698 DEFINE_GUID(IID_IWinInetCacheHints, 0xdd1ec3b3, 0x8391, 0x4fdb, 0xa9,0xe6, 0x34,0x7c,0x3c,0xaa,0xa7,0xdd);
4699 #if defined(__cplusplus) && !defined(CINTERFACE)
4700 MIDL_INTERFACE("dd1ec3b3-8391-4fdb-a9e6-347c3caaa7dd")
4701 IWinInetCacheHints : public IUnknown
4702 {
4703     virtual HRESULT STDMETHODCALLTYPE SetCacheExtension(
4704         LPCWSTR pwzExt,
4705         LPVOID pszCacheFile,
4706         DWORD *pcbCacheFile,
4707         DWORD *pdwWinInetError,
4708         DWORD *pdwReserved) = 0;
4709 
4710 };
4711 #ifdef __CRT_UUID_DECL
4712 __CRT_UUID_DECL(IWinInetCacheHints, 0xdd1ec3b3, 0x8391, 0x4fdb, 0xa9,0xe6, 0x34,0x7c,0x3c,0xaa,0xa7,0xdd)
4713 #endif
4714 #else
4715 typedef struct IWinInetCacheHintsVtbl {
4716     BEGIN_INTERFACE
4717 
4718     /*** IUnknown methods ***/
4719     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4720         IWinInetCacheHints* This,
4721         REFIID riid,
4722         void **ppvObject);
4723 
4724     ULONG (STDMETHODCALLTYPE *AddRef)(
4725         IWinInetCacheHints* This);
4726 
4727     ULONG (STDMETHODCALLTYPE *Release)(
4728         IWinInetCacheHints* This);
4729 
4730     /*** IWinInetCacheHints methods ***/
4731     HRESULT (STDMETHODCALLTYPE *SetCacheExtension)(
4732         IWinInetCacheHints* This,
4733         LPCWSTR pwzExt,
4734         LPVOID pszCacheFile,
4735         DWORD *pcbCacheFile,
4736         DWORD *pdwWinInetError,
4737         DWORD *pdwReserved);
4738 
4739     END_INTERFACE
4740 } IWinInetCacheHintsVtbl;
4741 interface IWinInetCacheHints {
4742     CONST_VTBL IWinInetCacheHintsVtbl* lpVtbl;
4743 };
4744 
4745 #ifdef COBJMACROS
4746 #ifndef WIDL_C_INLINE_WRAPPERS
4747 /*** IUnknown methods ***/
4748 #define IWinInetCacheHints_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4749 #define IWinInetCacheHints_AddRef(This) (This)->lpVtbl->AddRef(This)
4750 #define IWinInetCacheHints_Release(This) (This)->lpVtbl->Release(This)
4751 /*** IWinInetCacheHints methods ***/
4752 #define IWinInetCacheHints_SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved) (This)->lpVtbl->SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved)
4753 #else
4754 /*** IUnknown methods ***/
4755 static FORCEINLINE HRESULT IWinInetCacheHints_QueryInterface(IWinInetCacheHints* This,REFIID riid,void **ppvObject) {
4756     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4757 }
4758 static FORCEINLINE ULONG IWinInetCacheHints_AddRef(IWinInetCacheHints* This) {
4759     return This->lpVtbl->AddRef(This);
4760 }
4761 static FORCEINLINE ULONG IWinInetCacheHints_Release(IWinInetCacheHints* This) {
4762     return This->lpVtbl->Release(This);
4763 }
4764 /*** IWinInetCacheHints methods ***/
4765 static FORCEINLINE HRESULT IWinInetCacheHints_SetCacheExtension(IWinInetCacheHints* This,LPCWSTR pwzExt,LPVOID pszCacheFile,DWORD *pcbCacheFile,DWORD *pdwWinInetError,DWORD *pdwReserved) {
4766     return This->lpVtbl->SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved);
4767 }
4768 #endif
4769 #endif
4770 
4771 #endif
4772 
4773 HRESULT STDMETHODCALLTYPE IWinInetCacheHints_SetCacheExtension_Proxy(
4774     IWinInetCacheHints* This,
4775     LPCWSTR pwzExt,
4776     LPVOID pszCacheFile,
4777     DWORD *pcbCacheFile,
4778     DWORD *pdwWinInetError,
4779     DWORD *pdwReserved);
4780 void __RPC_STUB IWinInetCacheHints_SetCacheExtension_Stub(
4781     IRpcStubBuffer* This,
4782     IRpcChannelBuffer* pRpcChannelBuffer,
4783     PRPC_MESSAGE pRpcMessage,
4784     DWORD* pdwStubPhase);
4785 
4786 #endif  /* __IWinInetCacheHints_INTERFACE_DEFINED__ */
4787 
4788 #endif
4789 #endif
4790 
4791 #if (_WIN32_IE >= _WIN32_IE_IE70)
4792 #ifndef _LPWININETCACHEHINTS2_DEFINED
4793 #define _LPWININETCACHEHINTS2_DEFINED
4794 
4795 /*****************************************************************************
4796  * IWinInetCacheHints2 interface
4797  */
4798 #ifndef __IWinInetCacheHints2_INTERFACE_DEFINED__
4799 #define __IWinInetCacheHints2_INTERFACE_DEFINED__
4800 
4801 typedef IWinInetCacheHints2 *LPWININETCACHEHINTS2;
4802 
4803 DEFINE_GUID(IID_IWinInetCacheHints2, 0x7857aeac, 0xd31f, 0x49bf, 0x88,0x4e, 0xdd,0x46,0xdf,0x36,0x78,0x0a);
4804 #if defined(__cplusplus) && !defined(CINTERFACE)
4805 MIDL_INTERFACE("7857aeac-d31f-49bf-884e-dd46df36780a")
4806 IWinInetCacheHints2 : public IWinInetCacheHints
4807 {
4808     virtual HRESULT STDMETHODCALLTYPE SetCacheExtension2(
4809         LPCWSTR pwzExt,
4810         WCHAR *pwzCacheFile,
4811         DWORD *pcchCacheFile,
4812         DWORD *pdwWinInetError,
4813         DWORD *pdwReserved) = 0;
4814 
4815 };
4816 #ifdef __CRT_UUID_DECL
4817 __CRT_UUID_DECL(IWinInetCacheHints2, 0x7857aeac, 0xd31f, 0x49bf, 0x88,0x4e, 0xdd,0x46,0xdf,0x36,0x78,0x0a)
4818 #endif
4819 #else
4820 typedef struct IWinInetCacheHints2Vtbl {
4821     BEGIN_INTERFACE
4822 
4823     /*** IUnknown methods ***/
4824     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4825         IWinInetCacheHints2* This,
4826         REFIID riid,
4827         void **ppvObject);
4828 
4829     ULONG (STDMETHODCALLTYPE *AddRef)(
4830         IWinInetCacheHints2* This);
4831 
4832     ULONG (STDMETHODCALLTYPE *Release)(
4833         IWinInetCacheHints2* This);
4834 
4835     /*** IWinInetCacheHints methods ***/
4836     HRESULT (STDMETHODCALLTYPE *SetCacheExtension)(
4837         IWinInetCacheHints2* This,
4838         LPCWSTR pwzExt,
4839         LPVOID pszCacheFile,
4840         DWORD *pcbCacheFile,
4841         DWORD *pdwWinInetError,
4842         DWORD *pdwReserved);
4843 
4844     /*** IWinInetCacheHints2 methods ***/
4845     HRESULT (STDMETHODCALLTYPE *SetCacheExtension2)(
4846         IWinInetCacheHints2* This,
4847         LPCWSTR pwzExt,
4848         WCHAR *pwzCacheFile,
4849         DWORD *pcchCacheFile,
4850         DWORD *pdwWinInetError,
4851         DWORD *pdwReserved);
4852 
4853     END_INTERFACE
4854 } IWinInetCacheHints2Vtbl;
4855 interface IWinInetCacheHints2 {
4856     CONST_VTBL IWinInetCacheHints2Vtbl* lpVtbl;
4857 };
4858 
4859 #ifdef COBJMACROS
4860 #ifndef WIDL_C_INLINE_WRAPPERS
4861 /*** IUnknown methods ***/
4862 #define IWinInetCacheHints2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4863 #define IWinInetCacheHints2_AddRef(This) (This)->lpVtbl->AddRef(This)
4864 #define IWinInetCacheHints2_Release(This) (This)->lpVtbl->Release(This)
4865 /*** IWinInetCacheHints methods ***/
4866 #define IWinInetCacheHints2_SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved) (This)->lpVtbl->SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved)
4867 /*** IWinInetCacheHints2 methods ***/
4868 #define IWinInetCacheHints2_SetCacheExtension2(This,pwzExt,pwzCacheFile,pcchCacheFile,pdwWinInetError,pdwReserved) (This)->lpVtbl->SetCacheExtension2(This,pwzExt,pwzCacheFile,pcchCacheFile,pdwWinInetError,pdwReserved)
4869 #else
4870 /*** IUnknown methods ***/
4871 static FORCEINLINE HRESULT IWinInetCacheHints2_QueryInterface(IWinInetCacheHints2* This,REFIID riid,void **ppvObject) {
4872     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4873 }
4874 static FORCEINLINE ULONG IWinInetCacheHints2_AddRef(IWinInetCacheHints2* This) {
4875     return This->lpVtbl->AddRef(This);
4876 }
4877 static FORCEINLINE ULONG IWinInetCacheHints2_Release(IWinInetCacheHints2* This) {
4878     return This->lpVtbl->Release(This);
4879 }
4880 /*** IWinInetCacheHints methods ***/
4881 static FORCEINLINE HRESULT IWinInetCacheHints2_SetCacheExtension(IWinInetCacheHints2* This,LPCWSTR pwzExt,LPVOID pszCacheFile,DWORD *pcbCacheFile,DWORD *pdwWinInetError,DWORD *pdwReserved) {
4882     return This->lpVtbl->SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved);
4883 }
4884 /*** IWinInetCacheHints2 methods ***/
4885 static FORCEINLINE HRESULT IWinInetCacheHints2_SetCacheExtension2(IWinInetCacheHints2* This,LPCWSTR pwzExt,WCHAR *pwzCacheFile,DWORD *pcchCacheFile,DWORD *pdwWinInetError,DWORD *pdwReserved) {
4886     return This->lpVtbl->SetCacheExtension2(This,pwzExt,pwzCacheFile,pcchCacheFile,pdwWinInetError,pdwReserved);
4887 }
4888 #endif
4889 #endif
4890 
4891 #endif
4892 
4893 HRESULT STDMETHODCALLTYPE IWinInetCacheHints2_SetCacheExtension2_Proxy(
4894     IWinInetCacheHints2* This,
4895     LPCWSTR pwzExt,
4896     WCHAR *pwzCacheFile,
4897     DWORD *pcchCacheFile,
4898     DWORD *pdwWinInetError,
4899     DWORD *pdwReserved);
4900 void __RPC_STUB IWinInetCacheHints2_SetCacheExtension2_Stub(
4901     IRpcStubBuffer* This,
4902     IRpcChannelBuffer* pRpcChannelBuffer,
4903     PRPC_MESSAGE pRpcMessage,
4904     DWORD* pdwStubPhase);
4905 
4906 #endif  /* __IWinInetCacheHints2_INTERFACE_DEFINED__ */
4907 
4908 #endif
4909 #endif
4910 
4911 #define SID_IBindHost IID_IBindHost
4912 #define SID_SBindHost IID_IBindHost
4913 
4914 #ifndef _LPBINDHOST_DEFINED
4915 #define _LPBINDHOST_DEFINED
4916 
4917 EXTERN_C const GUID SID_BindHost;
4918 
4919 /*****************************************************************************
4920  * IBindHost interface
4921  */
4922 #ifndef __IBindHost_INTERFACE_DEFINED__
4923 #define __IBindHost_INTERFACE_DEFINED__
4924 
4925 typedef IBindHost *LPBINDHOST;
4926 
4927 DEFINE_GUID(IID_IBindHost, 0xfc4801a1, 0x2ba9, 0x11cf, 0xa2,0x29, 0x00,0xaa,0x00,0x3d,0x73,0x52);
4928 #if defined(__cplusplus) && !defined(CINTERFACE)
4929 MIDL_INTERFACE("fc4801a1-2ba9-11cf-a229-00aa003d7352")
4930 IBindHost : public IUnknown
4931 {
4932     virtual HRESULT STDMETHODCALLTYPE CreateMoniker(
4933         LPOLESTR szName,
4934         IBindCtx *pBC,
4935         IMoniker **ppmk,
4936         DWORD dwReserved) = 0;
4937 
4938     virtual HRESULT STDMETHODCALLTYPE MonikerBindToStorage(
4939         IMoniker *pMk,
4940         IBindCtx *pBC,
4941         IBindStatusCallback *pBSC,
4942         REFIID riid,
4943         void **ppvObj) = 0;
4944 
4945     virtual HRESULT STDMETHODCALLTYPE MonikerBindToObject(
4946         IMoniker *pMk,
4947         IBindCtx *pBC,
4948         IBindStatusCallback *pBSC,
4949         REFIID riid,
4950         void **ppvObj) = 0;
4951 
4952 };
4953 #ifdef __CRT_UUID_DECL
4954 __CRT_UUID_DECL(IBindHost, 0xfc4801a1, 0x2ba9, 0x11cf, 0xa2,0x29, 0x00,0xaa,0x00,0x3d,0x73,0x52)
4955 #endif
4956 #else
4957 typedef struct IBindHostVtbl {
4958     BEGIN_INTERFACE
4959 
4960     /*** IUnknown methods ***/
4961     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4962         IBindHost* This,
4963         REFIID riid,
4964         void **ppvObject);
4965 
4966     ULONG (STDMETHODCALLTYPE *AddRef)(
4967         IBindHost* This);
4968 
4969     ULONG (STDMETHODCALLTYPE *Release)(
4970         IBindHost* This);
4971 
4972     /*** IBindHost methods ***/
4973     HRESULT (STDMETHODCALLTYPE *CreateMoniker)(
4974         IBindHost* This,
4975         LPOLESTR szName,
4976         IBindCtx *pBC,
4977         IMoniker **ppmk,
4978         DWORD dwReserved);
4979 
4980     HRESULT (STDMETHODCALLTYPE *MonikerBindToStorage)(
4981         IBindHost* This,
4982         IMoniker *pMk,
4983         IBindCtx *pBC,
4984         IBindStatusCallback *pBSC,
4985         REFIID riid,
4986         void **ppvObj);
4987 
4988     HRESULT (STDMETHODCALLTYPE *MonikerBindToObject)(
4989         IBindHost* This,
4990         IMoniker *pMk,
4991         IBindCtx *pBC,
4992         IBindStatusCallback *pBSC,
4993         REFIID riid,
4994         void **ppvObj);
4995 
4996     END_INTERFACE
4997 } IBindHostVtbl;
4998 interface IBindHost {
4999     CONST_VTBL IBindHostVtbl* lpVtbl;
5000 };
5001 
5002 #ifdef COBJMACROS
5003 #ifndef WIDL_C_INLINE_WRAPPERS
5004 /*** IUnknown methods ***/
5005 #define IBindHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5006 #define IBindHost_AddRef(This) (This)->lpVtbl->AddRef(This)
5007 #define IBindHost_Release(This) (This)->lpVtbl->Release(This)
5008 /*** IBindHost methods ***/
5009 #define IBindHost_CreateMoniker(This,szName,pBC,ppmk,dwReserved) (This)->lpVtbl->CreateMoniker(This,szName,pBC,ppmk,dwReserved)
5010 #define IBindHost_MonikerBindToStorage(This,pMk,pBC,pBSC,riid,ppvObj) (This)->lpVtbl->MonikerBindToStorage(This,pMk,pBC,pBSC,riid,ppvObj)
5011 #define IBindHost_MonikerBindToObject(This,pMk,pBC,pBSC,riid,ppvObj) (This)->lpVtbl->MonikerBindToObject(This,pMk,pBC,pBSC,riid,ppvObj)
5012 #else
5013 /*** IUnknown methods ***/
5014 static FORCEINLINE HRESULT IBindHost_QueryInterface(IBindHost* This,REFIID riid,void **ppvObject) {
5015     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5016 }
5017 static FORCEINLINE ULONG IBindHost_AddRef(IBindHost* This) {
5018     return This->lpVtbl->AddRef(This);
5019 }
5020 static FORCEINLINE ULONG IBindHost_Release(IBindHost* This) {
5021     return This->lpVtbl->Release(This);
5022 }
5023 /*** IBindHost methods ***/
5024 static FORCEINLINE HRESULT IBindHost_CreateMoniker(IBindHost* This,LPOLESTR szName,IBindCtx *pBC,IMoniker **ppmk,DWORD dwReserved) {
5025     return This->lpVtbl->CreateMoniker(This,szName,pBC,ppmk,dwReserved);
5026 }
5027 static FORCEINLINE HRESULT IBindHost_MonikerBindToStorage(IBindHost* This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,void **ppvObj) {
5028     return This->lpVtbl->MonikerBindToStorage(This,pMk,pBC,pBSC,riid,ppvObj);
5029 }
5030 static FORCEINLINE HRESULT IBindHost_MonikerBindToObject(IBindHost* This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,void **ppvObj) {
5031     return This->lpVtbl->MonikerBindToObject(This,pMk,pBC,pBSC,riid,ppvObj);
5032 }
5033 #endif
5034 #endif
5035 
5036 #endif
5037 
5038 HRESULT STDMETHODCALLTYPE IBindHost_CreateMoniker_Proxy(
5039     IBindHost* This,
5040     LPOLESTR szName,
5041     IBindCtx *pBC,
5042     IMoniker **ppmk,
5043     DWORD dwReserved);
5044 void __RPC_STUB IBindHost_CreateMoniker_Stub(
5045     IRpcStubBuffer* This,
5046     IRpcChannelBuffer* pRpcChannelBuffer,
5047     PRPC_MESSAGE pRpcMessage,
5048     DWORD* pdwStubPhase);
5049 HRESULT STDMETHODCALLTYPE IBindHost_RemoteMonikerBindToStorage_Proxy(
5050     IBindHost* This,
5051     IMoniker *pMk,
5052     IBindCtx *pBC,
5053     IBindStatusCallback *pBSC,
5054     REFIID riid,
5055     IUnknown **ppvObj);
5056 void __RPC_STUB IBindHost_RemoteMonikerBindToStorage_Stub(
5057     IRpcStubBuffer* This,
5058     IRpcChannelBuffer* pRpcChannelBuffer,
5059     PRPC_MESSAGE pRpcMessage,
5060     DWORD* pdwStubPhase);
5061 HRESULT STDMETHODCALLTYPE IBindHost_RemoteMonikerBindToObject_Proxy(
5062     IBindHost* This,
5063     IMoniker *pMk,
5064     IBindCtx *pBC,
5065     IBindStatusCallback *pBSC,
5066     REFIID riid,
5067     IUnknown **ppvObj);
5068 void __RPC_STUB IBindHost_RemoteMonikerBindToObject_Stub(
5069     IRpcStubBuffer* This,
5070     IRpcChannelBuffer* pRpcChannelBuffer,
5071     PRPC_MESSAGE pRpcMessage,
5072     DWORD* pdwStubPhase);
5073 HRESULT CALLBACK IBindHost_MonikerBindToStorage_Proxy(
5074     IBindHost* This,
5075     IMoniker *pMk,
5076     IBindCtx *pBC,
5077     IBindStatusCallback *pBSC,
5078     REFIID riid,
5079     void **ppvObj);
5080 HRESULT __RPC_STUB IBindHost_MonikerBindToStorage_Stub(
5081     IBindHost* This,
5082     IMoniker *pMk,
5083     IBindCtx *pBC,
5084     IBindStatusCallback *pBSC,
5085     REFIID riid,
5086     IUnknown **ppvObj);
5087 HRESULT CALLBACK IBindHost_MonikerBindToObject_Proxy(
5088     IBindHost* This,
5089     IMoniker *pMk,
5090     IBindCtx *pBC,
5091     IBindStatusCallback *pBSC,
5092     REFIID riid,
5093     void **ppvObj);
5094 HRESULT __RPC_STUB IBindHost_MonikerBindToObject_Stub(
5095     IBindHost* This,
5096     IMoniker *pMk,
5097     IBindCtx *pBC,
5098     IBindStatusCallback *pBSC,
5099     REFIID riid,
5100     IUnknown **ppvObj);
5101 
5102 #endif  /* __IBindHost_INTERFACE_DEFINED__ */
5103 
5104 #endif
5105 
5106 #define URLOSTRM_USECACHEDCOPY_ONLY 0x1
5107 #define URLOSTRM_USECACHEDCOPY 0x2
5108 #define URLOSTRM_GETNEWESTVERSION 0x3
5109 
5110 struct IBindStatusCallback;
5111 STDAPI HlinkSimpleNavigateToString(LPCWSTR szTarget, LPCWSTR szLocation, LPCWSTR szTargetFrameName, IUnknown *pUnk, IBindCtx *pbc, IBindStatusCallback *, DWORD grfHLNF, DWORD dwReserved);
5112 STDAPI HlinkSimpleNavigateToMoniker(IMoniker *pmkTarget, LPCWSTR szLocation, LPCWSTR szTargetFrameName, IUnknown *pUnk, IBindCtx *pbc, IBindStatusCallback *, DWORD grfHLNF, DWORD dwReserved);
5113 STDAPI URLOpenStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);
5114 STDAPI URLOpenStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);
5115 STDAPI URLOpenPullStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);
5116 STDAPI URLOpenPullStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);
5117 STDAPI URLDownloadToFileA(LPUNKNOWN,LPCSTR,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);
5118 STDAPI URLDownloadToFileW(LPUNKNOWN,LPCWSTR,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);
5119 STDAPI URLDownloadToCacheFileA(LPUNKNOWN, LPCSTR,  LPSTR,  DWORD, DWORD, LPBINDSTATUSCALLBACK);
5120 STDAPI URLDownloadToCacheFileW(LPUNKNOWN, LPCWSTR, LPWSTR, DWORD, DWORD, LPBINDSTATUSCALLBACK);
5121 STDAPI URLOpenBlockingStreamA(LPUNKNOWN,LPCSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);
5122 STDAPI URLOpenBlockingStreamW(LPUNKNOWN,LPCWSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);
5123 
5124 #define URLOpenStream __MINGW_NAME_AW(URLOpenStream)
5125 #define URLOpenPullStream __MINGW_NAME_AW(URLOpenPullStream)
5126 #define URLDownloadToFile __MINGW_NAME_AW(URLDownloadToFile)
5127 #define URLDownloadToCacheFile __MINGW_NAME_AW(URLDownloadToCacheFile)
5128 #define URLOpenBlockingStream __MINGW_NAME_AW(URLOpenBlockingStream)
5129 
5130 STDAPI HlinkGoBack(IUnknown *pUnk);
5131 STDAPI HlinkGoForward(IUnknown *pUnk);
5132 STDAPI HlinkNavigateString(IUnknown *pUnk, LPCWSTR szTarget);
5133 STDAPI HlinkNavigateMoniker(IUnknown *pUnk, IMoniker *pmkTarget);
5134 
5135 #ifndef  _URLMON_NO_ASYNC_PLUGABLE_PROTOCOLS_
5136 #ifndef __IInternet_FWD_DEFINED__
5137 #define __IInternet_FWD_DEFINED__
5138 typedef interface IInternet IInternet;
5139 #endif
5140 
5141 #ifndef __IInternetBindInfo_FWD_DEFINED__
5142 #define __IInternetBindInfo_FWD_DEFINED__
5143 typedef interface IInternetBindInfo IInternetBindInfo;
5144 #endif
5145 
5146 #ifndef __IInternetBindInfoEx_FWD_DEFINED__
5147 #define __IInternetBindInfoEx_FWD_DEFINED__
5148 typedef interface IInternetBindInfoEx IInternetBindInfoEx;
5149 #endif
5150 
5151 #ifndef __IInternetProtocolRoot_FWD_DEFINED__
5152 #define __IInternetProtocolRoot_FWD_DEFINED__
5153 typedef interface IInternetProtocolRoot IInternetProtocolRoot;
5154 #endif
5155 
5156 #ifndef __IInternetProtocol_FWD_DEFINED__
5157 #define __IInternetProtocol_FWD_DEFINED__
5158 typedef interface IInternetProtocol IInternetProtocol;
5159 #endif
5160 
5161 #ifndef __IInternetProtocolEx_FWD_DEFINED__
5162 #define __IInternetProtocolEx_FWD_DEFINED__
5163 typedef interface IInternetProtocolEx IInternetProtocolEx;
5164 #endif
5165 
5166 #ifndef __IInternetProtocolSink_FWD_DEFINED__
5167 #define __IInternetProtocolSink_FWD_DEFINED__
5168 typedef interface IInternetProtocolSink IInternetProtocolSink;
5169 #endif
5170 
5171 #ifndef __IInternetProtocolInfo_FWD_DEFINED__
5172 #define __IInternetProtocolInfo_FWD_DEFINED__
5173 typedef interface IInternetProtocolInfo IInternetProtocolInfo;
5174 #endif
5175 
5176 #ifndef __IInternetSession_FWD_DEFINED__
5177 #define __IInternetSession_FWD_DEFINED__
5178 typedef interface IInternetSession IInternetSession;
5179 #endif
5180 
5181 #ifndef __IInternetProtocolSinkStackable_FWD_DEFINED__
5182 #define __IInternetProtocolSinkStackable_FWD_DEFINED__
5183 typedef interface IInternetProtocolSinkStackable IInternetProtocolSinkStackable;
5184 #endif
5185 
5186 
5187 #ifndef _LPIINTERNET
5188 #define _LPIINTERNET
5189 
5190 /*****************************************************************************
5191  * IInternet interface
5192  */
5193 #ifndef __IInternet_INTERFACE_DEFINED__
5194 #define __IInternet_INTERFACE_DEFINED__
5195 
5196 typedef IInternet *LPIINTERNET;
5197 DEFINE_GUID(IID_IInternet, 0x79eac9e0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
5198 #if defined(__cplusplus) && !defined(CINTERFACE)
5199 MIDL_INTERFACE("79eac9e0-baf9-11ce-8c82-00aa004ba90b")
5200 IInternet : public IUnknown
5201 {
5202 };
5203 #ifdef __CRT_UUID_DECL
5204 __CRT_UUID_DECL(IInternet, 0x79eac9e0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
5205 #endif
5206 #else
5207 typedef struct IInternetVtbl {
5208     BEGIN_INTERFACE
5209 
5210     /*** IUnknown methods ***/
5211     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5212         IInternet* This,
5213         REFIID riid,
5214         void **ppvObject);
5215 
5216     ULONG (STDMETHODCALLTYPE *AddRef)(
5217         IInternet* This);
5218 
5219     ULONG (STDMETHODCALLTYPE *Release)(
5220         IInternet* This);
5221 
5222     END_INTERFACE
5223 } IInternetVtbl;
5224 interface IInternet {
5225     CONST_VTBL IInternetVtbl* lpVtbl;
5226 };
5227 
5228 #ifdef COBJMACROS
5229 #ifndef WIDL_C_INLINE_WRAPPERS
5230 /*** IUnknown methods ***/
5231 #define IInternet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5232 #define IInternet_AddRef(This) (This)->lpVtbl->AddRef(This)
5233 #define IInternet_Release(This) (This)->lpVtbl->Release(This)
5234 #else
5235 /*** IUnknown methods ***/
5236 static FORCEINLINE HRESULT IInternet_QueryInterface(IInternet* This,REFIID riid,void **ppvObject) {
5237     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5238 }
5239 static FORCEINLINE ULONG IInternet_AddRef(IInternet* This) {
5240     return This->lpVtbl->AddRef(This);
5241 }
5242 static FORCEINLINE ULONG IInternet_Release(IInternet* This) {
5243     return This->lpVtbl->Release(This);
5244 }
5245 #endif
5246 #endif
5247 
5248 #endif
5249 
5250 
5251 #endif  /* __IInternet_INTERFACE_DEFINED__ */
5252 
5253 #endif
5254 
5255 #ifndef _LPIINTERNETBINDINFO
5256 #define _LPIINTERNETBINDINFO
5257 
5258 /*****************************************************************************
5259  * IInternetBindInfo interface
5260  */
5261 #ifndef __IInternetBindInfo_INTERFACE_DEFINED__
5262 #define __IInternetBindInfo_INTERFACE_DEFINED__
5263 
5264 typedef IInternetBindInfo *LPIINTERNETBINDINFO;
5265 
5266 typedef enum tagBINDSTRING {
5267     BINDSTRING_HEADERS = 1,
5268     BINDSTRING_ACCEPT_MIMES = 2,
5269     BINDSTRING_EXTRA_URL = 3,
5270     BINDSTRING_LANGUAGE = 4,
5271     BINDSTRING_USERNAME = 5,
5272     BINDSTRING_PASSWORD = 6,
5273     BINDSTRING_UA_PIXELS = 7,
5274     BINDSTRING_UA_COLOR = 8,
5275     BINDSTRING_OS = 9,
5276     BINDSTRING_USER_AGENT = 10,
5277     BINDSTRING_ACCEPT_ENCODINGS = 11,
5278     BINDSTRING_POST_COOKIE = 12,
5279     BINDSTRING_POST_DATA_MIME = 13,
5280     BINDSTRING_URL = 14,
5281     BINDSTRING_IID = 15,
5282     BINDSTRING_FLAG_BIND_TO_OBJECT = 16,
5283     BINDSTRING_PTR_BIND_CONTEXT = 17,
5284     BINDSTRING_XDR_ORIGIN = 18,
5285     BINDSTRING_DOWNLOADPATH = 19,
5286     BINDSTRING_ROOTDOC_URL = 20,
5287     BINDSTRING_INITIAL_FILENAME = 21,
5288     BINDSTRING_PROXY_USERNAME = 22,
5289     BINDSTRING_PROXY_PASSWORD = 23
5290 } BINDSTRING;
5291 
5292 DEFINE_GUID(IID_IInternetBindInfo, 0x79eac9e1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
5293 #if defined(__cplusplus) && !defined(CINTERFACE)
5294 MIDL_INTERFACE("79eac9e1-baf9-11ce-8c82-00aa004ba90b")
5295 IInternetBindInfo : public IUnknown
5296 {
5297     virtual HRESULT STDMETHODCALLTYPE GetBindInfo(
5298         DWORD *grfBINDF,
5299         BINDINFO *pbindinfo) = 0;
5300 
5301     virtual HRESULT STDMETHODCALLTYPE GetBindString(
5302         ULONG ulStringType,
5303         LPOLESTR *ppwzStr,
5304         ULONG cEl,
5305         ULONG *pcElFetched) = 0;
5306 
5307 };
5308 #ifdef __CRT_UUID_DECL
5309 __CRT_UUID_DECL(IInternetBindInfo, 0x79eac9e1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
5310 #endif
5311 #else
5312 typedef struct IInternetBindInfoVtbl {
5313     BEGIN_INTERFACE
5314 
5315     /*** IUnknown methods ***/
5316     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5317         IInternetBindInfo* This,
5318         REFIID riid,
5319         void **ppvObject);
5320 
5321     ULONG (STDMETHODCALLTYPE *AddRef)(
5322         IInternetBindInfo* This);
5323 
5324     ULONG (STDMETHODCALLTYPE *Release)(
5325         IInternetBindInfo* This);
5326 
5327     /*** IInternetBindInfo methods ***/
5328     HRESULT (STDMETHODCALLTYPE *GetBindInfo)(
5329         IInternetBindInfo* This,
5330         DWORD *grfBINDF,
5331         BINDINFO *pbindinfo);
5332 
5333     HRESULT (STDMETHODCALLTYPE *GetBindString)(
5334         IInternetBindInfo* This,
5335         ULONG ulStringType,
5336         LPOLESTR *ppwzStr,
5337         ULONG cEl,
5338         ULONG *pcElFetched);
5339 
5340     END_INTERFACE
5341 } IInternetBindInfoVtbl;
5342 interface IInternetBindInfo {
5343     CONST_VTBL IInternetBindInfoVtbl* lpVtbl;
5344 };
5345 
5346 #ifdef COBJMACROS
5347 #ifndef WIDL_C_INLINE_WRAPPERS
5348 /*** IUnknown methods ***/
5349 #define IInternetBindInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5350 #define IInternetBindInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
5351 #define IInternetBindInfo_Release(This) (This)->lpVtbl->Release(This)
5352 /*** IInternetBindInfo methods ***/
5353 #define IInternetBindInfo_GetBindInfo(This,grfBINDF,pbindinfo) (This)->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo)
5354 #define IInternetBindInfo_GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched) (This)->lpVtbl->GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched)
5355 #else
5356 /*** IUnknown methods ***/
5357 static FORCEINLINE HRESULT IInternetBindInfo_QueryInterface(IInternetBindInfo* This,REFIID riid,void **ppvObject) {
5358     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5359 }
5360 static FORCEINLINE ULONG IInternetBindInfo_AddRef(IInternetBindInfo* This) {
5361     return This->lpVtbl->AddRef(This);
5362 }
5363 static FORCEINLINE ULONG IInternetBindInfo_Release(IInternetBindInfo* This) {
5364     return This->lpVtbl->Release(This);
5365 }
5366 /*** IInternetBindInfo methods ***/
5367 static FORCEINLINE HRESULT IInternetBindInfo_GetBindInfo(IInternetBindInfo* This,DWORD *grfBINDF,BINDINFO *pbindinfo) {
5368     return This->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo);
5369 }
5370 static FORCEINLINE HRESULT IInternetBindInfo_GetBindString(IInternetBindInfo* This,ULONG ulStringType,LPOLESTR *ppwzStr,ULONG cEl,ULONG *pcElFetched) {
5371     return This->lpVtbl->GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched);
5372 }
5373 #endif
5374 #endif
5375 
5376 #endif
5377 
5378 HRESULT STDMETHODCALLTYPE IInternetBindInfo_GetBindInfo_Proxy(
5379     IInternetBindInfo* This,
5380     DWORD *grfBINDF,
5381     BINDINFO *pbindinfo);
5382 void __RPC_STUB IInternetBindInfo_GetBindInfo_Stub(
5383     IRpcStubBuffer* This,
5384     IRpcChannelBuffer* pRpcChannelBuffer,
5385     PRPC_MESSAGE pRpcMessage,
5386     DWORD* pdwStubPhase);
5387 HRESULT STDMETHODCALLTYPE IInternetBindInfo_GetBindString_Proxy(
5388     IInternetBindInfo* This,
5389     ULONG ulStringType,
5390     LPOLESTR *ppwzStr,
5391     ULONG cEl,
5392     ULONG *pcElFetched);
5393 void __RPC_STUB IInternetBindInfo_GetBindString_Stub(
5394     IRpcStubBuffer* This,
5395     IRpcChannelBuffer* pRpcChannelBuffer,
5396     PRPC_MESSAGE pRpcMessage,
5397     DWORD* pdwStubPhase);
5398 
5399 #endif  /* __IInternetBindInfo_INTERFACE_DEFINED__ */
5400 
5401 #endif
5402 
5403 #ifndef _LPIINTERNETBINDINFOEX
5404 #define _LPIINTERNETBINDINFOEX
5405 
5406 /*****************************************************************************
5407  * IInternetBindInfoEx interface
5408  */
5409 #ifndef __IInternetBindInfoEx_INTERFACE_DEFINED__
5410 #define __IInternetBindInfoEx_INTERFACE_DEFINED__
5411 
5412 typedef IInternetBindInfoEx *LPIINTERNETBINDINFOEX;
5413 
5414 DEFINE_GUID(IID_IInternetBindInfoEx, 0xa3e015b7, 0xa82c, 0x4dcd, 0xa1,0x50, 0x56,0x9a,0xee,0xed,0x36,0xab);
5415 #if defined(__cplusplus) && !defined(CINTERFACE)
5416 MIDL_INTERFACE("a3e015b7-a82c-4dcd-a150-569aeeed36ab")
5417 IInternetBindInfoEx : public IInternetBindInfo
5418 {
5419     virtual HRESULT STDMETHODCALLTYPE GetBindInfoEx(
5420         DWORD *grfBINDF,
5421         BINDINFO *pbindinfo,
5422         DWORD *grfBINDF2,
5423         DWORD *pdwReserved) = 0;
5424 
5425 };
5426 #ifdef __CRT_UUID_DECL
5427 __CRT_UUID_DECL(IInternetBindInfoEx, 0xa3e015b7, 0xa82c, 0x4dcd, 0xa1,0x50, 0x56,0x9a,0xee,0xed,0x36,0xab)
5428 #endif
5429 #else
5430 typedef struct IInternetBindInfoExVtbl {
5431     BEGIN_INTERFACE
5432 
5433     /*** IUnknown methods ***/
5434     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5435         IInternetBindInfoEx* This,
5436         REFIID riid,
5437         void **ppvObject);
5438 
5439     ULONG (STDMETHODCALLTYPE *AddRef)(
5440         IInternetBindInfoEx* This);
5441 
5442     ULONG (STDMETHODCALLTYPE *Release)(
5443         IInternetBindInfoEx* This);
5444 
5445     /*** IInternetBindInfo methods ***/
5446     HRESULT (STDMETHODCALLTYPE *GetBindInfo)(
5447         IInternetBindInfoEx* This,
5448         DWORD *grfBINDF,
5449         BINDINFO *pbindinfo);
5450 
5451     HRESULT (STDMETHODCALLTYPE *GetBindString)(
5452         IInternetBindInfoEx* This,
5453         ULONG ulStringType,
5454         LPOLESTR *ppwzStr,
5455         ULONG cEl,
5456         ULONG *pcElFetched);
5457 
5458     /*** IInternetBindInfoEx methods ***/
5459     HRESULT (STDMETHODCALLTYPE *GetBindInfoEx)(
5460         IInternetBindInfoEx* This,
5461         DWORD *grfBINDF,
5462         BINDINFO *pbindinfo,
5463         DWORD *grfBINDF2,
5464         DWORD *pdwReserved);
5465 
5466     END_INTERFACE
5467 } IInternetBindInfoExVtbl;
5468 interface IInternetBindInfoEx {
5469     CONST_VTBL IInternetBindInfoExVtbl* lpVtbl;
5470 };
5471 
5472 #ifdef COBJMACROS
5473 #ifndef WIDL_C_INLINE_WRAPPERS
5474 /*** IUnknown methods ***/
5475 #define IInternetBindInfoEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5476 #define IInternetBindInfoEx_AddRef(This) (This)->lpVtbl->AddRef(This)
5477 #define IInternetBindInfoEx_Release(This) (This)->lpVtbl->Release(This)
5478 /*** IInternetBindInfo methods ***/
5479 #define IInternetBindInfoEx_GetBindInfo(This,grfBINDF,pbindinfo) (This)->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo)
5480 #define IInternetBindInfoEx_GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched) (This)->lpVtbl->GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched)
5481 /*** IInternetBindInfoEx methods ***/
5482 #define IInternetBindInfoEx_GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved) (This)->lpVtbl->GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved)
5483 #else
5484 /*** IUnknown methods ***/
5485 static FORCEINLINE HRESULT IInternetBindInfoEx_QueryInterface(IInternetBindInfoEx* This,REFIID riid,void **ppvObject) {
5486     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5487 }
5488 static FORCEINLINE ULONG IInternetBindInfoEx_AddRef(IInternetBindInfoEx* This) {
5489     return This->lpVtbl->AddRef(This);
5490 }
5491 static FORCEINLINE ULONG IInternetBindInfoEx_Release(IInternetBindInfoEx* This) {
5492     return This->lpVtbl->Release(This);
5493 }
5494 /*** IInternetBindInfo methods ***/
5495 static FORCEINLINE HRESULT IInternetBindInfoEx_GetBindInfo(IInternetBindInfoEx* This,DWORD *grfBINDF,BINDINFO *pbindinfo) {
5496     return This->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo);
5497 }
5498 static FORCEINLINE HRESULT IInternetBindInfoEx_GetBindString(IInternetBindInfoEx* This,ULONG ulStringType,LPOLESTR *ppwzStr,ULONG cEl,ULONG *pcElFetched) {
5499     return This->lpVtbl->GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched);
5500 }
5501 /*** IInternetBindInfoEx methods ***/
5502 static FORCEINLINE HRESULT IInternetBindInfoEx_GetBindInfoEx(IInternetBindInfoEx* This,DWORD *grfBINDF,BINDINFO *pbindinfo,DWORD *grfBINDF2,DWORD *pdwReserved) {
5503     return This->lpVtbl->GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved);
5504 }
5505 #endif
5506 #endif
5507 
5508 #endif
5509 
5510 HRESULT STDMETHODCALLTYPE IInternetBindInfoEx_GetBindInfoEx_Proxy(
5511     IInternetBindInfoEx* This,
5512     DWORD *grfBINDF,
5513     BINDINFO *pbindinfo,
5514     DWORD *grfBINDF2,
5515     DWORD *pdwReserved);
5516 void __RPC_STUB IInternetBindInfoEx_GetBindInfoEx_Stub(
5517     IRpcStubBuffer* This,
5518     IRpcChannelBuffer* pRpcChannelBuffer,
5519     PRPC_MESSAGE pRpcMessage,
5520     DWORD* pdwStubPhase);
5521 
5522 #endif  /* __IInternetBindInfoEx_INTERFACE_DEFINED__ */
5523 
5524 #endif
5525 
5526 #ifndef _LPIINTERNETPROTOCOLROOT_DEFINED
5527 #define _LPIINTERNETPROTOCOLROOT_DEFINED
5528 
5529 /*****************************************************************************
5530  * IInternetProtocolRoot interface
5531  */
5532 #ifndef __IInternetProtocolRoot_INTERFACE_DEFINED__
5533 #define __IInternetProtocolRoot_INTERFACE_DEFINED__
5534 
5535 typedef IInternetProtocolRoot *LPIINTERNETPROTOCOLROOT;
5536 
5537 typedef enum _tagPI_FLAGS {
5538     PI_PARSE_URL = 0x1,
5539     PI_FILTER_MODE = 0x2,
5540     PI_FORCE_ASYNC = 0x4,
5541     PI_USE_WORKERTHREAD = 0x8,
5542     PI_MIMEVERIFICATION = 0x10,
5543     PI_CLSIDLOOKUP = 0x20,
5544     PI_DATAPROGRESS = 0x40,
5545     PI_SYNCHRONOUS = 0x80,
5546     PI_APARTMENTTHREADED = 0x100,
5547     PI_CLASSINSTALL = 0x200,
5548     PI_PASSONBINDCTX = 0x2000,
5549     PI_NOMIMEHANDLER = 0x8000,
5550     PI_LOADAPPDIRECT = 0x4000,
5551     PD_FORCE_SWITCH = 0x10000,
5552     PI_PREFERDEFAULTHANDLER = 0x20000
5553 } PI_FLAGS;
5554 typedef struct _tagPROTOCOLDATA {
5555     DWORD grfFlags;
5556     DWORD dwState;
5557     LPVOID pData;
5558     ULONG cbData;
5559 } PROTOCOLDATA;
5560 
5561 typedef struct _tagStartParam {
5562     IID iid;
5563     IBindCtx *pIBindCtx;
5564     IUnknown *pItf;
5565 } StartParam;
5566 
5567 DEFINE_GUID(IID_IInternetProtocolRoot, 0x79eac9e3, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
5568 #if defined(__cplusplus) && !defined(CINTERFACE)
5569 MIDL_INTERFACE("79eac9e3-baf9-11ce-8c82-00aa004ba90b")
5570 IInternetProtocolRoot : public IUnknown
5571 {
5572     virtual HRESULT STDMETHODCALLTYPE Start(
5573         LPCWSTR szUrl,
5574         IInternetProtocolSink *pOIProtSink,
5575         IInternetBindInfo *pOIBindInfo,
5576         DWORD grfPI,
5577         HANDLE_PTR dwReserved) = 0;
5578 
5579     virtual HRESULT STDMETHODCALLTYPE Continue(
5580         PROTOCOLDATA *pProtocolData) = 0;
5581 
5582     virtual HRESULT STDMETHODCALLTYPE Abort(
5583         HRESULT hrReason,
5584         DWORD dwOptions) = 0;
5585 
5586     virtual HRESULT STDMETHODCALLTYPE Terminate(
5587         DWORD dwOptions) = 0;
5588 
5589     virtual HRESULT STDMETHODCALLTYPE Suspend(
5590         ) = 0;
5591 
5592     virtual HRESULT STDMETHODCALLTYPE Resume(
5593         ) = 0;
5594 
5595 };
5596 #ifdef __CRT_UUID_DECL
5597 __CRT_UUID_DECL(IInternetProtocolRoot, 0x79eac9e3, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
5598 #endif
5599 #else
5600 typedef struct IInternetProtocolRootVtbl {
5601     BEGIN_INTERFACE
5602 
5603     /*** IUnknown methods ***/
5604     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5605         IInternetProtocolRoot* This,
5606         REFIID riid,
5607         void **ppvObject);
5608 
5609     ULONG (STDMETHODCALLTYPE *AddRef)(
5610         IInternetProtocolRoot* This);
5611 
5612     ULONG (STDMETHODCALLTYPE *Release)(
5613         IInternetProtocolRoot* This);
5614 
5615     /*** IInternetProtocolRoot methods ***/
5616     HRESULT (STDMETHODCALLTYPE *Start)(
5617         IInternetProtocolRoot* This,
5618         LPCWSTR szUrl,
5619         IInternetProtocolSink *pOIProtSink,
5620         IInternetBindInfo *pOIBindInfo,
5621         DWORD grfPI,
5622         HANDLE_PTR dwReserved);
5623 
5624     HRESULT (STDMETHODCALLTYPE *Continue)(
5625         IInternetProtocolRoot* This,
5626         PROTOCOLDATA *pProtocolData);
5627 
5628     HRESULT (STDMETHODCALLTYPE *Abort)(
5629         IInternetProtocolRoot* This,
5630         HRESULT hrReason,
5631         DWORD dwOptions);
5632 
5633     HRESULT (STDMETHODCALLTYPE *Terminate)(
5634         IInternetProtocolRoot* This,
5635         DWORD dwOptions);
5636 
5637     HRESULT (STDMETHODCALLTYPE *Suspend)(
5638         IInternetProtocolRoot* This);
5639 
5640     HRESULT (STDMETHODCALLTYPE *Resume)(
5641         IInternetProtocolRoot* This);
5642 
5643     END_INTERFACE
5644 } IInternetProtocolRootVtbl;
5645 interface IInternetProtocolRoot {
5646     CONST_VTBL IInternetProtocolRootVtbl* lpVtbl;
5647 };
5648 
5649 #ifdef COBJMACROS
5650 #ifndef WIDL_C_INLINE_WRAPPERS
5651 /*** IUnknown methods ***/
5652 #define IInternetProtocolRoot_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5653 #define IInternetProtocolRoot_AddRef(This) (This)->lpVtbl->AddRef(This)
5654 #define IInternetProtocolRoot_Release(This) (This)->lpVtbl->Release(This)
5655 /*** IInternetProtocolRoot methods ***/
5656 #define IInternetProtocolRoot_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) (This)->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
5657 #define IInternetProtocolRoot_Continue(This,pProtocolData) (This)->lpVtbl->Continue(This,pProtocolData)
5658 #define IInternetProtocolRoot_Abort(This,hrReason,dwOptions) (This)->lpVtbl->Abort(This,hrReason,dwOptions)
5659 #define IInternetProtocolRoot_Terminate(This,dwOptions) (This)->lpVtbl->Terminate(This,dwOptions)
5660 #define IInternetProtocolRoot_Suspend(This) (This)->lpVtbl->Suspend(This)
5661 #define IInternetProtocolRoot_Resume(This) (This)->lpVtbl->Resume(This)
5662 #else
5663 /*** IUnknown methods ***/
5664 static FORCEINLINE HRESULT IInternetProtocolRoot_QueryInterface(IInternetProtocolRoot* This,REFIID riid,void **ppvObject) {
5665     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5666 }
5667 static FORCEINLINE ULONG IInternetProtocolRoot_AddRef(IInternetProtocolRoot* This) {
5668     return This->lpVtbl->AddRef(This);
5669 }
5670 static FORCEINLINE ULONG IInternetProtocolRoot_Release(IInternetProtocolRoot* This) {
5671     return This->lpVtbl->Release(This);
5672 }
5673 /*** IInternetProtocolRoot methods ***/
5674 static FORCEINLINE HRESULT IInternetProtocolRoot_Start(IInternetProtocolRoot* This,LPCWSTR szUrl,IInternetProtocolSink *pOIProtSink,IInternetBindInfo *pOIBindInfo,DWORD grfPI,HANDLE_PTR dwReserved) {
5675     return This->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved);
5676 }
5677 static FORCEINLINE HRESULT IInternetProtocolRoot_Continue(IInternetProtocolRoot* This,PROTOCOLDATA *pProtocolData) {
5678     return This->lpVtbl->Continue(This,pProtocolData);
5679 }
5680 static FORCEINLINE HRESULT IInternetProtocolRoot_Abort(IInternetProtocolRoot* This,HRESULT hrReason,DWORD dwOptions) {
5681     return This->lpVtbl->Abort(This,hrReason,dwOptions);
5682 }
5683 static FORCEINLINE HRESULT IInternetProtocolRoot_Terminate(IInternetProtocolRoot* This,DWORD dwOptions) {
5684     return This->lpVtbl->Terminate(This,dwOptions);
5685 }
5686 static FORCEINLINE HRESULT IInternetProtocolRoot_Suspend(IInternetProtocolRoot* This) {
5687     return This->lpVtbl->Suspend(This);
5688 }
5689 static FORCEINLINE HRESULT IInternetProtocolRoot_Resume(IInternetProtocolRoot* This) {
5690     return This->lpVtbl->Resume(This);
5691 }
5692 #endif
5693 #endif
5694 
5695 #endif
5696 
5697 HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Start_Proxy(
5698     IInternetProtocolRoot* This,
5699     LPCWSTR szUrl,
5700     IInternetProtocolSink *pOIProtSink,
5701     IInternetBindInfo *pOIBindInfo,
5702     DWORD grfPI,
5703     HANDLE_PTR dwReserved);
5704 void __RPC_STUB IInternetProtocolRoot_Start_Stub(
5705     IRpcStubBuffer* This,
5706     IRpcChannelBuffer* pRpcChannelBuffer,
5707     PRPC_MESSAGE pRpcMessage,
5708     DWORD* pdwStubPhase);
5709 HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Continue_Proxy(
5710     IInternetProtocolRoot* This,
5711     PROTOCOLDATA *pProtocolData);
5712 void __RPC_STUB IInternetProtocolRoot_Continue_Stub(
5713     IRpcStubBuffer* This,
5714     IRpcChannelBuffer* pRpcChannelBuffer,
5715     PRPC_MESSAGE pRpcMessage,
5716     DWORD* pdwStubPhase);
5717 HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Abort_Proxy(
5718     IInternetProtocolRoot* This,
5719     HRESULT hrReason,
5720     DWORD dwOptions);
5721 void __RPC_STUB IInternetProtocolRoot_Abort_Stub(
5722     IRpcStubBuffer* This,
5723     IRpcChannelBuffer* pRpcChannelBuffer,
5724     PRPC_MESSAGE pRpcMessage,
5725     DWORD* pdwStubPhase);
5726 HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Terminate_Proxy(
5727     IInternetProtocolRoot* This,
5728     DWORD dwOptions);
5729 void __RPC_STUB IInternetProtocolRoot_Terminate_Stub(
5730     IRpcStubBuffer* This,
5731     IRpcChannelBuffer* pRpcChannelBuffer,
5732     PRPC_MESSAGE pRpcMessage,
5733     DWORD* pdwStubPhase);
5734 HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Suspend_Proxy(
5735     IInternetProtocolRoot* This);
5736 void __RPC_STUB IInternetProtocolRoot_Suspend_Stub(
5737     IRpcStubBuffer* This,
5738     IRpcChannelBuffer* pRpcChannelBuffer,
5739     PRPC_MESSAGE pRpcMessage,
5740     DWORD* pdwStubPhase);
5741 HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Resume_Proxy(
5742     IInternetProtocolRoot* This);
5743 void __RPC_STUB IInternetProtocolRoot_Resume_Stub(
5744     IRpcStubBuffer* This,
5745     IRpcChannelBuffer* pRpcChannelBuffer,
5746     PRPC_MESSAGE pRpcMessage,
5747     DWORD* pdwStubPhase);
5748 
5749 #endif  /* __IInternetProtocolRoot_INTERFACE_DEFINED__ */
5750 
5751 #endif
5752 
5753 #ifndef _LPIINTERNETPROTOCOL_DEFINED
5754 #define _LPIINTERNETPROTOCOL_DEFINED
5755 
5756 /*****************************************************************************
5757  * IInternetProtocol interface
5758  */
5759 #ifndef __IInternetProtocol_INTERFACE_DEFINED__
5760 #define __IInternetProtocol_INTERFACE_DEFINED__
5761 
5762 typedef IInternetProtocol *LPIINTERNETPROTOCOL;
5763 
5764 DEFINE_GUID(IID_IInternetProtocol, 0x79eac9e4, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
5765 #if defined(__cplusplus) && !defined(CINTERFACE)
5766 MIDL_INTERFACE("79eac9e4-baf9-11ce-8c82-00aa004ba90b")
5767 IInternetProtocol : public IInternetProtocolRoot
5768 {
5769     virtual HRESULT STDMETHODCALLTYPE Read(
5770         void *pv,
5771         ULONG cb,
5772         ULONG *pcbRead) = 0;
5773 
5774     virtual HRESULT STDMETHODCALLTYPE Seek(
5775         LARGE_INTEGER dlibMove,
5776         DWORD dwOrigin,
5777         ULARGE_INTEGER *plibNewPosition) = 0;
5778 
5779     virtual HRESULT STDMETHODCALLTYPE LockRequest(
5780         DWORD dwOptions) = 0;
5781 
5782     virtual HRESULT STDMETHODCALLTYPE UnlockRequest(
5783         ) = 0;
5784 
5785 };
5786 #ifdef __CRT_UUID_DECL
5787 __CRT_UUID_DECL(IInternetProtocol, 0x79eac9e4, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
5788 #endif
5789 #else
5790 typedef struct IInternetProtocolVtbl {
5791     BEGIN_INTERFACE
5792 
5793     /*** IUnknown methods ***/
5794     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5795         IInternetProtocol* This,
5796         REFIID riid,
5797         void **ppvObject);
5798 
5799     ULONG (STDMETHODCALLTYPE *AddRef)(
5800         IInternetProtocol* This);
5801 
5802     ULONG (STDMETHODCALLTYPE *Release)(
5803         IInternetProtocol* This);
5804 
5805     /*** IInternetProtocolRoot methods ***/
5806     HRESULT (STDMETHODCALLTYPE *Start)(
5807         IInternetProtocol* This,
5808         LPCWSTR szUrl,
5809         IInternetProtocolSink *pOIProtSink,
5810         IInternetBindInfo *pOIBindInfo,
5811         DWORD grfPI,
5812         HANDLE_PTR dwReserved);
5813 
5814     HRESULT (STDMETHODCALLTYPE *Continue)(
5815         IInternetProtocol* This,
5816         PROTOCOLDATA *pProtocolData);
5817 
5818     HRESULT (STDMETHODCALLTYPE *Abort)(
5819         IInternetProtocol* This,
5820         HRESULT hrReason,
5821         DWORD dwOptions);
5822 
5823     HRESULT (STDMETHODCALLTYPE *Terminate)(
5824         IInternetProtocol* This,
5825         DWORD dwOptions);
5826 
5827     HRESULT (STDMETHODCALLTYPE *Suspend)(
5828         IInternetProtocol* This);
5829 
5830     HRESULT (STDMETHODCALLTYPE *Resume)(
5831         IInternetProtocol* This);
5832 
5833     /*** IInternetProtocol methods ***/
5834     HRESULT (STDMETHODCALLTYPE *Read)(
5835         IInternetProtocol* This,
5836         void *pv,
5837         ULONG cb,
5838         ULONG *pcbRead);
5839 
5840     HRESULT (STDMETHODCALLTYPE *Seek)(
5841         IInternetProtocol* This,
5842         LARGE_INTEGER dlibMove,
5843         DWORD dwOrigin,
5844         ULARGE_INTEGER *plibNewPosition);
5845 
5846     HRESULT (STDMETHODCALLTYPE *LockRequest)(
5847         IInternetProtocol* This,
5848         DWORD dwOptions);
5849 
5850     HRESULT (STDMETHODCALLTYPE *UnlockRequest)(
5851         IInternetProtocol* This);
5852 
5853     END_INTERFACE
5854 } IInternetProtocolVtbl;
5855 interface IInternetProtocol {
5856     CONST_VTBL IInternetProtocolVtbl* lpVtbl;
5857 };
5858 
5859 #ifdef COBJMACROS
5860 #ifndef WIDL_C_INLINE_WRAPPERS
5861 /*** IUnknown methods ***/
5862 #define IInternetProtocol_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5863 #define IInternetProtocol_AddRef(This) (This)->lpVtbl->AddRef(This)
5864 #define IInternetProtocol_Release(This) (This)->lpVtbl->Release(This)
5865 /*** IInternetProtocolRoot methods ***/
5866 #define IInternetProtocol_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) (This)->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
5867 #define IInternetProtocol_Continue(This,pProtocolData) (This)->lpVtbl->Continue(This,pProtocolData)
5868 #define IInternetProtocol_Abort(This,hrReason,dwOptions) (This)->lpVtbl->Abort(This,hrReason,dwOptions)
5869 #define IInternetProtocol_Terminate(This,dwOptions) (This)->lpVtbl->Terminate(This,dwOptions)
5870 #define IInternetProtocol_Suspend(This) (This)->lpVtbl->Suspend(This)
5871 #define IInternetProtocol_Resume(This) (This)->lpVtbl->Resume(This)
5872 /*** IInternetProtocol methods ***/
5873 #define IInternetProtocol_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
5874 #define IInternetProtocol_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
5875 #define IInternetProtocol_LockRequest(This,dwOptions) (This)->lpVtbl->LockRequest(This,dwOptions)
5876 #define IInternetProtocol_UnlockRequest(This) (This)->lpVtbl->UnlockRequest(This)
5877 #else
5878 /*** IUnknown methods ***/
5879 static FORCEINLINE HRESULT IInternetProtocol_QueryInterface(IInternetProtocol* This,REFIID riid,void **ppvObject) {
5880     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5881 }
5882 static FORCEINLINE ULONG IInternetProtocol_AddRef(IInternetProtocol* This) {
5883     return This->lpVtbl->AddRef(This);
5884 }
5885 static FORCEINLINE ULONG IInternetProtocol_Release(IInternetProtocol* This) {
5886     return This->lpVtbl->Release(This);
5887 }
5888 /*** IInternetProtocolRoot methods ***/
5889 static FORCEINLINE HRESULT IInternetProtocol_Start(IInternetProtocol* This,LPCWSTR szUrl,IInternetProtocolSink *pOIProtSink,IInternetBindInfo *pOIBindInfo,DWORD grfPI,HANDLE_PTR dwReserved) {
5890     return This->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved);
5891 }
5892 static FORCEINLINE HRESULT IInternetProtocol_Continue(IInternetProtocol* This,PROTOCOLDATA *pProtocolData) {
5893     return This->lpVtbl->Continue(This,pProtocolData);
5894 }
5895 static FORCEINLINE HRESULT IInternetProtocol_Abort(IInternetProtocol* This,HRESULT hrReason,DWORD dwOptions) {
5896     return This->lpVtbl->Abort(This,hrReason,dwOptions);
5897 }
5898 static FORCEINLINE HRESULT IInternetProtocol_Terminate(IInternetProtocol* This,DWORD dwOptions) {
5899     return This->lpVtbl->Terminate(This,dwOptions);
5900 }
5901 static FORCEINLINE HRESULT IInternetProtocol_Suspend(IInternetProtocol* This) {
5902     return This->lpVtbl->Suspend(This);
5903 }
5904 static FORCEINLINE HRESULT IInternetProtocol_Resume(IInternetProtocol* This) {
5905     return This->lpVtbl->Resume(This);
5906 }
5907 /*** IInternetProtocol methods ***/
5908 static FORCEINLINE HRESULT IInternetProtocol_Read(IInternetProtocol* This,void *pv,ULONG cb,ULONG *pcbRead) {
5909     return This->lpVtbl->Read(This,pv,cb,pcbRead);
5910 }
5911 static FORCEINLINE HRESULT IInternetProtocol_Seek(IInternetProtocol* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
5912     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
5913 }
5914 static FORCEINLINE HRESULT IInternetProtocol_LockRequest(IInternetProtocol* This,DWORD dwOptions) {
5915     return This->lpVtbl->LockRequest(This,dwOptions);
5916 }
5917 static FORCEINLINE HRESULT IInternetProtocol_UnlockRequest(IInternetProtocol* This) {
5918     return This->lpVtbl->UnlockRequest(This);
5919 }
5920 #endif
5921 #endif
5922 
5923 #endif
5924 
5925 HRESULT STDMETHODCALLTYPE IInternetProtocol_Read_Proxy(
5926     IInternetProtocol* This,
5927     void *pv,
5928     ULONG cb,
5929     ULONG *pcbRead);
5930 void __RPC_STUB IInternetProtocol_Read_Stub(
5931     IRpcStubBuffer* This,
5932     IRpcChannelBuffer* pRpcChannelBuffer,
5933     PRPC_MESSAGE pRpcMessage,
5934     DWORD* pdwStubPhase);
5935 HRESULT STDMETHODCALLTYPE IInternetProtocol_Seek_Proxy(
5936     IInternetProtocol* This,
5937     LARGE_INTEGER dlibMove,
5938     DWORD dwOrigin,
5939     ULARGE_INTEGER *plibNewPosition);
5940 void __RPC_STUB IInternetProtocol_Seek_Stub(
5941     IRpcStubBuffer* This,
5942     IRpcChannelBuffer* pRpcChannelBuffer,
5943     PRPC_MESSAGE pRpcMessage,
5944     DWORD* pdwStubPhase);
5945 HRESULT STDMETHODCALLTYPE IInternetProtocol_LockRequest_Proxy(
5946     IInternetProtocol* This,
5947     DWORD dwOptions);
5948 void __RPC_STUB IInternetProtocol_LockRequest_Stub(
5949     IRpcStubBuffer* This,
5950     IRpcChannelBuffer* pRpcChannelBuffer,
5951     PRPC_MESSAGE pRpcMessage,
5952     DWORD* pdwStubPhase);
5953 HRESULT STDMETHODCALLTYPE IInternetProtocol_UnlockRequest_Proxy(
5954     IInternetProtocol* This);
5955 void __RPC_STUB IInternetProtocol_UnlockRequest_Stub(
5956     IRpcStubBuffer* This,
5957     IRpcChannelBuffer* pRpcChannelBuffer,
5958     PRPC_MESSAGE pRpcMessage,
5959     DWORD* pdwStubPhase);
5960 
5961 #endif  /* __IInternetProtocol_INTERFACE_DEFINED__ */
5962 
5963 #endif
5964 
5965 #if (_WIN32_IE >= _WIN32_IE_IE70)
5966 #ifndef _LPIINTERNETPROTOCOLEX_DEFINED
5967 #define _LPIINTERNETPROTOCOLEX_DEFINED
5968 
5969 /*****************************************************************************
5970  * IInternetProtocolEx interface
5971  */
5972 #ifndef __IInternetProtocolEx_INTERFACE_DEFINED__
5973 #define __IInternetProtocolEx_INTERFACE_DEFINED__
5974 
5975 DEFINE_GUID(IID_IInternetProtocolEx, 0xc7a98e66, 0x1010, 0x492c, 0xa1,0xc8, 0xc8,0x09,0xe1,0xf7,0x59,0x05);
5976 #if defined(__cplusplus) && !defined(CINTERFACE)
5977 MIDL_INTERFACE("c7a98e66-1010-492c-a1c8-c809e1f75905")
5978 IInternetProtocolEx : public IInternetProtocol
5979 {
5980     virtual HRESULT STDMETHODCALLTYPE StartEx(
5981         IUri *pUri,
5982         IInternetProtocolSink *pOIProtSink,
5983         IInternetBindInfo *pOIBindInfo,
5984         DWORD grfPI,
5985         HANDLE_PTR dwReserved) = 0;
5986 
5987 };
5988 #ifdef __CRT_UUID_DECL
5989 __CRT_UUID_DECL(IInternetProtocolEx, 0xc7a98e66, 0x1010, 0x492c, 0xa1,0xc8, 0xc8,0x09,0xe1,0xf7,0x59,0x05)
5990 #endif
5991 #else
5992 typedef struct IInternetProtocolExVtbl {
5993     BEGIN_INTERFACE
5994 
5995     /*** IUnknown methods ***/
5996     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5997         IInternetProtocolEx* This,
5998         REFIID riid,
5999         void **ppvObject);
6000 
6001     ULONG (STDMETHODCALLTYPE *AddRef)(
6002         IInternetProtocolEx* This);
6003 
6004     ULONG (STDMETHODCALLTYPE *Release)(
6005         IInternetProtocolEx* This);
6006 
6007     /*** IInternetProtocolRoot methods ***/
6008     HRESULT (STDMETHODCALLTYPE *Start)(
6009         IInternetProtocolEx* This,
6010         LPCWSTR szUrl,
6011         IInternetProtocolSink *pOIProtSink,
6012         IInternetBindInfo *pOIBindInfo,
6013         DWORD grfPI,
6014         HANDLE_PTR dwReserved);
6015 
6016     HRESULT (STDMETHODCALLTYPE *Continue)(
6017         IInternetProtocolEx* This,
6018         PROTOCOLDATA *pProtocolData);
6019 
6020     HRESULT (STDMETHODCALLTYPE *Abort)(
6021         IInternetProtocolEx* This,
6022         HRESULT hrReason,
6023         DWORD dwOptions);
6024 
6025     HRESULT (STDMETHODCALLTYPE *Terminate)(
6026         IInternetProtocolEx* This,
6027         DWORD dwOptions);
6028 
6029     HRESULT (STDMETHODCALLTYPE *Suspend)(
6030         IInternetProtocolEx* This);
6031 
6032     HRESULT (STDMETHODCALLTYPE *Resume)(
6033         IInternetProtocolEx* This);
6034 
6035     /*** IInternetProtocol methods ***/
6036     HRESULT (STDMETHODCALLTYPE *Read)(
6037         IInternetProtocolEx* This,
6038         void *pv,
6039         ULONG cb,
6040         ULONG *pcbRead);
6041 
6042     HRESULT (STDMETHODCALLTYPE *Seek)(
6043         IInternetProtocolEx* This,
6044         LARGE_INTEGER dlibMove,
6045         DWORD dwOrigin,
6046         ULARGE_INTEGER *plibNewPosition);
6047 
6048     HRESULT (STDMETHODCALLTYPE *LockRequest)(
6049         IInternetProtocolEx* This,
6050         DWORD dwOptions);
6051 
6052     HRESULT (STDMETHODCALLTYPE *UnlockRequest)(
6053         IInternetProtocolEx* This);
6054 
6055     /*** IInternetProtocolEx methods ***/
6056     HRESULT (STDMETHODCALLTYPE *StartEx)(
6057         IInternetProtocolEx* This,
6058         IUri *pUri,
6059         IInternetProtocolSink *pOIProtSink,
6060         IInternetBindInfo *pOIBindInfo,
6061         DWORD grfPI,
6062         HANDLE_PTR dwReserved);
6063 
6064     END_INTERFACE
6065 } IInternetProtocolExVtbl;
6066 interface IInternetProtocolEx {
6067     CONST_VTBL IInternetProtocolExVtbl* lpVtbl;
6068 };
6069 
6070 #ifdef COBJMACROS
6071 #ifndef WIDL_C_INLINE_WRAPPERS
6072 /*** IUnknown methods ***/
6073 #define IInternetProtocolEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6074 #define IInternetProtocolEx_AddRef(This) (This)->lpVtbl->AddRef(This)
6075 #define IInternetProtocolEx_Release(This) (This)->lpVtbl->Release(This)
6076 /*** IInternetProtocolRoot methods ***/
6077 #define IInternetProtocolEx_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) (This)->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
6078 #define IInternetProtocolEx_Continue(This,pProtocolData) (This)->lpVtbl->Continue(This,pProtocolData)
6079 #define IInternetProtocolEx_Abort(This,hrReason,dwOptions) (This)->lpVtbl->Abort(This,hrReason,dwOptions)
6080 #define IInternetProtocolEx_Terminate(This,dwOptions) (This)->lpVtbl->Terminate(This,dwOptions)
6081 #define IInternetProtocolEx_Suspend(This) (This)->lpVtbl->Suspend(This)
6082 #define IInternetProtocolEx_Resume(This) (This)->lpVtbl->Resume(This)
6083 /*** IInternetProtocol methods ***/
6084 #define IInternetProtocolEx_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
6085 #define IInternetProtocolEx_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
6086 #define IInternetProtocolEx_LockRequest(This,dwOptions) (This)->lpVtbl->LockRequest(This,dwOptions)
6087 #define IInternetProtocolEx_UnlockRequest(This) (This)->lpVtbl->UnlockRequest(This)
6088 /*** IInternetProtocolEx methods ***/
6089 #define IInternetProtocolEx_StartEx(This,pUri,pOIProtSink,pOIBindInfo,grfPI,dwReserved) (This)->lpVtbl->StartEx(This,pUri,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
6090 #else
6091 /*** IUnknown methods ***/
6092 static FORCEINLINE HRESULT IInternetProtocolEx_QueryInterface(IInternetProtocolEx* This,REFIID riid,void **ppvObject) {
6093     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6094 }
6095 static FORCEINLINE ULONG IInternetProtocolEx_AddRef(IInternetProtocolEx* This) {
6096     return This->lpVtbl->AddRef(This);
6097 }
6098 static FORCEINLINE ULONG IInternetProtocolEx_Release(IInternetProtocolEx* This) {
6099     return This->lpVtbl->Release(This);
6100 }
6101 /*** IInternetProtocolRoot methods ***/
6102 static FORCEINLINE HRESULT IInternetProtocolEx_Start(IInternetProtocolEx* This,LPCWSTR szUrl,IInternetProtocolSink *pOIProtSink,IInternetBindInfo *pOIBindInfo,DWORD grfPI,HANDLE_PTR dwReserved) {
6103     return This->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved);
6104 }
6105 static FORCEINLINE HRESULT IInternetProtocolEx_Continue(IInternetProtocolEx* This,PROTOCOLDATA *pProtocolData) {
6106     return This->lpVtbl->Continue(This,pProtocolData);
6107 }
6108 static FORCEINLINE HRESULT IInternetProtocolEx_Abort(IInternetProtocolEx* This,HRESULT hrReason,DWORD dwOptions) {
6109     return This->lpVtbl->Abort(This,hrReason,dwOptions);
6110 }
6111 static FORCEINLINE HRESULT IInternetProtocolEx_Terminate(IInternetProtocolEx* This,DWORD dwOptions) {
6112     return This->lpVtbl->Terminate(This,dwOptions);
6113 }
6114 static FORCEINLINE HRESULT IInternetProtocolEx_Suspend(IInternetProtocolEx* This) {
6115     return This->lpVtbl->Suspend(This);
6116 }
6117 static FORCEINLINE HRESULT IInternetProtocolEx_Resume(IInternetProtocolEx* This) {
6118     return This->lpVtbl->Resume(This);
6119 }
6120 /*** IInternetProtocol methods ***/
6121 static FORCEINLINE HRESULT IInternetProtocolEx_Read(IInternetProtocolEx* This,void *pv,ULONG cb,ULONG *pcbRead) {
6122     return This->lpVtbl->Read(This,pv,cb,pcbRead);
6123 }
6124 static FORCEINLINE HRESULT IInternetProtocolEx_Seek(IInternetProtocolEx* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
6125     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
6126 }
6127 static FORCEINLINE HRESULT IInternetProtocolEx_LockRequest(IInternetProtocolEx* This,DWORD dwOptions) {
6128     return This->lpVtbl->LockRequest(This,dwOptions);
6129 }
6130 static FORCEINLINE HRESULT IInternetProtocolEx_UnlockRequest(IInternetProtocolEx* This) {
6131     return This->lpVtbl->UnlockRequest(This);
6132 }
6133 /*** IInternetProtocolEx methods ***/
6134 static FORCEINLINE HRESULT IInternetProtocolEx_StartEx(IInternetProtocolEx* This,IUri *pUri,IInternetProtocolSink *pOIProtSink,IInternetBindInfo *pOIBindInfo,DWORD grfPI,HANDLE_PTR dwReserved) {
6135     return This->lpVtbl->StartEx(This,pUri,pOIProtSink,pOIBindInfo,grfPI,dwReserved);
6136 }
6137 #endif
6138 #endif
6139 
6140 #endif
6141 
6142 HRESULT STDMETHODCALLTYPE IInternetProtocolEx_StartEx_Proxy(
6143     IInternetProtocolEx* This,
6144     IUri *pUri,
6145     IInternetProtocolSink *pOIProtSink,
6146     IInternetBindInfo *pOIBindInfo,
6147     DWORD grfPI,
6148     HANDLE_PTR dwReserved);
6149 void __RPC_STUB IInternetProtocolEx_StartEx_Stub(
6150     IRpcStubBuffer* This,
6151     IRpcChannelBuffer* pRpcChannelBuffer,
6152     PRPC_MESSAGE pRpcMessage,
6153     DWORD* pdwStubPhase);
6154 
6155 #endif  /* __IInternetProtocolEx_INTERFACE_DEFINED__ */
6156 
6157 #endif
6158 #endif
6159 
6160 #ifndef _LPIINTERNETPROTOCOLSINK_DEFINED
6161 #define _LPIINTERNETPROTOCOLSINK_DEFINED
6162 /*****************************************************************************
6163  * IInternetProtocolSink interface
6164  */
6165 #ifndef __IInternetProtocolSink_INTERFACE_DEFINED__
6166 #define __IInternetProtocolSink_INTERFACE_DEFINED__
6167 
6168 typedef IInternetProtocolSink *LPIINTERNETPROTOCOLSINK;
6169 
6170 DEFINE_GUID(IID_IInternetProtocolSink, 0x79eac9e5, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
6171 #if defined(__cplusplus) && !defined(CINTERFACE)
6172 MIDL_INTERFACE("79eac9e5-baf9-11ce-8c82-00aa004ba90b")
6173 IInternetProtocolSink : public IUnknown
6174 {
6175     virtual HRESULT STDMETHODCALLTYPE Switch(
6176         PROTOCOLDATA *pProtocolData) = 0;
6177 
6178     virtual HRESULT STDMETHODCALLTYPE ReportProgress(
6179         ULONG ulStatusCode,
6180         LPCWSTR szStatusText) = 0;
6181 
6182     virtual HRESULT STDMETHODCALLTYPE ReportData(
6183         DWORD grfBSCF,
6184         ULONG ulProgress,
6185         ULONG ulProgressMax) = 0;
6186 
6187     virtual HRESULT STDMETHODCALLTYPE ReportResult(
6188         HRESULT hrResult,
6189         DWORD dwError,
6190         LPCWSTR szResult) = 0;
6191 
6192 };
6193 #ifdef __CRT_UUID_DECL
6194 __CRT_UUID_DECL(IInternetProtocolSink, 0x79eac9e5, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
6195 #endif
6196 #else
6197 typedef struct IInternetProtocolSinkVtbl {
6198     BEGIN_INTERFACE
6199 
6200     /*** IUnknown methods ***/
6201     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6202         IInternetProtocolSink* This,
6203         REFIID riid,
6204         void **ppvObject);
6205 
6206     ULONG (STDMETHODCALLTYPE *AddRef)(
6207         IInternetProtocolSink* This);
6208 
6209     ULONG (STDMETHODCALLTYPE *Release)(
6210         IInternetProtocolSink* This);
6211 
6212     /*** IInternetProtocolSink methods ***/
6213     HRESULT (STDMETHODCALLTYPE *Switch)(
6214         IInternetProtocolSink* This,
6215         PROTOCOLDATA *pProtocolData);
6216 
6217     HRESULT (STDMETHODCALLTYPE *ReportProgress)(
6218         IInternetProtocolSink* This,
6219         ULONG ulStatusCode,
6220         LPCWSTR szStatusText);
6221 
6222     HRESULT (STDMETHODCALLTYPE *ReportData)(
6223         IInternetProtocolSink* This,
6224         DWORD grfBSCF,
6225         ULONG ulProgress,
6226         ULONG ulProgressMax);
6227 
6228     HRESULT (STDMETHODCALLTYPE *ReportResult)(
6229         IInternetProtocolSink* This,
6230         HRESULT hrResult,
6231         DWORD dwError,
6232         LPCWSTR szResult);
6233 
6234     END_INTERFACE
6235 } IInternetProtocolSinkVtbl;
6236 interface IInternetProtocolSink {
6237     CONST_VTBL IInternetProtocolSinkVtbl* lpVtbl;
6238 };
6239 
6240 #ifdef COBJMACROS
6241 #ifndef WIDL_C_INLINE_WRAPPERS
6242 /*** IUnknown methods ***/
6243 #define IInternetProtocolSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6244 #define IInternetProtocolSink_AddRef(This) (This)->lpVtbl->AddRef(This)
6245 #define IInternetProtocolSink_Release(This) (This)->lpVtbl->Release(This)
6246 /*** IInternetProtocolSink methods ***/
6247 #define IInternetProtocolSink_Switch(This,pProtocolData) (This)->lpVtbl->Switch(This,pProtocolData)
6248 #define IInternetProtocolSink_ReportProgress(This,ulStatusCode,szStatusText) (This)->lpVtbl->ReportProgress(This,ulStatusCode,szStatusText)
6249 #define IInternetProtocolSink_ReportData(This,grfBSCF,ulProgress,ulProgressMax) (This)->lpVtbl->ReportData(This,grfBSCF,ulProgress,ulProgressMax)
6250 #define IInternetProtocolSink_ReportResult(This,hrResult,dwError,szResult) (This)->lpVtbl->ReportResult(This,hrResult,dwError,szResult)
6251 #else
6252 /*** IUnknown methods ***/
6253 static FORCEINLINE HRESULT IInternetProtocolSink_QueryInterface(IInternetProtocolSink* This,REFIID riid,void **ppvObject) {
6254     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6255 }
6256 static FORCEINLINE ULONG IInternetProtocolSink_AddRef(IInternetProtocolSink* This) {
6257     return This->lpVtbl->AddRef(This);
6258 }
6259 static FORCEINLINE ULONG IInternetProtocolSink_Release(IInternetProtocolSink* This) {
6260     return This->lpVtbl->Release(This);
6261 }
6262 /*** IInternetProtocolSink methods ***/
6263 static FORCEINLINE HRESULT IInternetProtocolSink_Switch(IInternetProtocolSink* This,PROTOCOLDATA *pProtocolData) {
6264     return This->lpVtbl->Switch(This,pProtocolData);
6265 }
6266 static FORCEINLINE HRESULT IInternetProtocolSink_ReportProgress(IInternetProtocolSink* This,ULONG ulStatusCode,LPCWSTR szStatusText) {
6267     return This->lpVtbl->ReportProgress(This,ulStatusCode,szStatusText);
6268 }
6269 static FORCEINLINE HRESULT IInternetProtocolSink_ReportData(IInternetProtocolSink* This,DWORD grfBSCF,ULONG ulProgress,ULONG ulProgressMax) {
6270     return This->lpVtbl->ReportData(This,grfBSCF,ulProgress,ulProgressMax);
6271 }
6272 static FORCEINLINE HRESULT IInternetProtocolSink_ReportResult(IInternetProtocolSink* This,HRESULT hrResult,DWORD dwError,LPCWSTR szResult) {
6273     return This->lpVtbl->ReportResult(This,hrResult,dwError,szResult);
6274 }
6275 #endif
6276 #endif
6277 
6278 #endif
6279 
6280 HRESULT STDMETHODCALLTYPE IInternetProtocolSink_Switch_Proxy(
6281     IInternetProtocolSink* This,
6282     PROTOCOLDATA *pProtocolData);
6283 void __RPC_STUB IInternetProtocolSink_Switch_Stub(
6284     IRpcStubBuffer* This,
6285     IRpcChannelBuffer* pRpcChannelBuffer,
6286     PRPC_MESSAGE pRpcMessage,
6287     DWORD* pdwStubPhase);
6288 HRESULT STDMETHODCALLTYPE IInternetProtocolSink_ReportProgress_Proxy(
6289     IInternetProtocolSink* This,
6290     ULONG ulStatusCode,
6291     LPCWSTR szStatusText);
6292 void __RPC_STUB IInternetProtocolSink_ReportProgress_Stub(
6293     IRpcStubBuffer* This,
6294     IRpcChannelBuffer* pRpcChannelBuffer,
6295     PRPC_MESSAGE pRpcMessage,
6296     DWORD* pdwStubPhase);
6297 HRESULT STDMETHODCALLTYPE IInternetProtocolSink_ReportData_Proxy(
6298     IInternetProtocolSink* This,
6299     DWORD grfBSCF,
6300     ULONG ulProgress,
6301     ULONG ulProgressMax);
6302 void __RPC_STUB IInternetProtocolSink_ReportData_Stub(
6303     IRpcStubBuffer* This,
6304     IRpcChannelBuffer* pRpcChannelBuffer,
6305     PRPC_MESSAGE pRpcMessage,
6306     DWORD* pdwStubPhase);
6307 HRESULT STDMETHODCALLTYPE IInternetProtocolSink_ReportResult_Proxy(
6308     IInternetProtocolSink* This,
6309     HRESULT hrResult,
6310     DWORD dwError,
6311     LPCWSTR szResult);
6312 void __RPC_STUB IInternetProtocolSink_ReportResult_Stub(
6313     IRpcStubBuffer* This,
6314     IRpcChannelBuffer* pRpcChannelBuffer,
6315     PRPC_MESSAGE pRpcMessage,
6316     DWORD* pdwStubPhase);
6317 
6318 #endif  /* __IInternetProtocolSink_INTERFACE_DEFINED__ */
6319 
6320 #endif
6321 
6322 #ifndef _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED
6323 #define _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED
6324 
6325 /*****************************************************************************
6326  * IInternetProtocolSinkStackable interface
6327  */
6328 #ifndef __IInternetProtocolSinkStackable_INTERFACE_DEFINED__
6329 #define __IInternetProtocolSinkStackable_INTERFACE_DEFINED__
6330 
6331 typedef IInternetProtocolSinkStackable *LPIINTERNETPROTOCOLSINKStackable;
6332 
6333 DEFINE_GUID(IID_IInternetProtocolSinkStackable, 0x79eac9f0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
6334 #if defined(__cplusplus) && !defined(CINTERFACE)
6335 MIDL_INTERFACE("79eac9f0-baf9-11ce-8c82-00aa004ba90b")
6336 IInternetProtocolSinkStackable : public IUnknown
6337 {
6338     virtual HRESULT STDMETHODCALLTYPE SwitchSink(
6339         IInternetProtocolSink *pOIProtSink) = 0;
6340 
6341     virtual HRESULT STDMETHODCALLTYPE CommitSwitch(
6342         ) = 0;
6343 
6344     virtual HRESULT STDMETHODCALLTYPE RollbackSwitch(
6345         ) = 0;
6346 
6347 };
6348 #ifdef __CRT_UUID_DECL
6349 __CRT_UUID_DECL(IInternetProtocolSinkStackable, 0x79eac9f0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
6350 #endif
6351 #else
6352 typedef struct IInternetProtocolSinkStackableVtbl {
6353     BEGIN_INTERFACE
6354 
6355     /*** IUnknown methods ***/
6356     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6357         IInternetProtocolSinkStackable* This,
6358         REFIID riid,
6359         void **ppvObject);
6360 
6361     ULONG (STDMETHODCALLTYPE *AddRef)(
6362         IInternetProtocolSinkStackable* This);
6363 
6364     ULONG (STDMETHODCALLTYPE *Release)(
6365         IInternetProtocolSinkStackable* This);
6366 
6367     /*** IInternetProtocolSinkStackable methods ***/
6368     HRESULT (STDMETHODCALLTYPE *SwitchSink)(
6369         IInternetProtocolSinkStackable* This,
6370         IInternetProtocolSink *pOIProtSink);
6371 
6372     HRESULT (STDMETHODCALLTYPE *CommitSwitch)(
6373         IInternetProtocolSinkStackable* This);
6374 
6375     HRESULT (STDMETHODCALLTYPE *RollbackSwitch)(
6376         IInternetProtocolSinkStackable* This);
6377 
6378     END_INTERFACE
6379 } IInternetProtocolSinkStackableVtbl;
6380 interface IInternetProtocolSinkStackable {
6381     CONST_VTBL IInternetProtocolSinkStackableVtbl* lpVtbl;
6382 };
6383 
6384 #ifdef COBJMACROS
6385 #ifndef WIDL_C_INLINE_WRAPPERS
6386 /*** IUnknown methods ***/
6387 #define IInternetProtocolSinkStackable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6388 #define IInternetProtocolSinkStackable_AddRef(This) (This)->lpVtbl->AddRef(This)
6389 #define IInternetProtocolSinkStackable_Release(This) (This)->lpVtbl->Release(This)
6390 /*** IInternetProtocolSinkStackable methods ***/
6391 #define IInternetProtocolSinkStackable_SwitchSink(This,pOIProtSink) (This)->lpVtbl->SwitchSink(This,pOIProtSink)
6392 #define IInternetProtocolSinkStackable_CommitSwitch(This) (This)->lpVtbl->CommitSwitch(This)
6393 #define IInternetProtocolSinkStackable_RollbackSwitch(This) (This)->lpVtbl->RollbackSwitch(This)
6394 #else
6395 /*** IUnknown methods ***/
6396 static FORCEINLINE HRESULT IInternetProtocolSinkStackable_QueryInterface(IInternetProtocolSinkStackable* This,REFIID riid,void **ppvObject) {
6397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6398 }
6399 static FORCEINLINE ULONG IInternetProtocolSinkStackable_AddRef(IInternetProtocolSinkStackable* This) {
6400     return This->lpVtbl->AddRef(This);
6401 }
6402 static FORCEINLINE ULONG IInternetProtocolSinkStackable_Release(IInternetProtocolSinkStackable* This) {
6403     return This->lpVtbl->Release(This);
6404 }
6405 /*** IInternetProtocolSinkStackable methods ***/
6406 static FORCEINLINE HRESULT IInternetProtocolSinkStackable_SwitchSink(IInternetProtocolSinkStackable* This,IInternetProtocolSink *pOIProtSink) {
6407     return This->lpVtbl->SwitchSink(This,pOIProtSink);
6408 }
6409 static FORCEINLINE HRESULT IInternetProtocolSinkStackable_CommitSwitch(IInternetProtocolSinkStackable* This) {
6410     return This->lpVtbl->CommitSwitch(This);
6411 }
6412 static FORCEINLINE HRESULT IInternetProtocolSinkStackable_RollbackSwitch(IInternetProtocolSinkStackable* This) {
6413     return This->lpVtbl->RollbackSwitch(This);
6414 }
6415 #endif
6416 #endif
6417 
6418 #endif
6419 
6420 HRESULT STDMETHODCALLTYPE IInternetProtocolSinkStackable_SwitchSink_Proxy(
6421     IInternetProtocolSinkStackable* This,
6422     IInternetProtocolSink *pOIProtSink);
6423 void __RPC_STUB IInternetProtocolSinkStackable_SwitchSink_Stub(
6424     IRpcStubBuffer* This,
6425     IRpcChannelBuffer* pRpcChannelBuffer,
6426     PRPC_MESSAGE pRpcMessage,
6427     DWORD* pdwStubPhase);
6428 HRESULT STDMETHODCALLTYPE IInternetProtocolSinkStackable_CommitSwitch_Proxy(
6429     IInternetProtocolSinkStackable* This);
6430 void __RPC_STUB IInternetProtocolSinkStackable_CommitSwitch_Stub(
6431     IRpcStubBuffer* This,
6432     IRpcChannelBuffer* pRpcChannelBuffer,
6433     PRPC_MESSAGE pRpcMessage,
6434     DWORD* pdwStubPhase);
6435 HRESULT STDMETHODCALLTYPE IInternetProtocolSinkStackable_RollbackSwitch_Proxy(
6436     IInternetProtocolSinkStackable* This);
6437 void __RPC_STUB IInternetProtocolSinkStackable_RollbackSwitch_Stub(
6438     IRpcStubBuffer* This,
6439     IRpcChannelBuffer* pRpcChannelBuffer,
6440     PRPC_MESSAGE pRpcMessage,
6441     DWORD* pdwStubPhase);
6442 
6443 #endif  /* __IInternetProtocolSinkStackable_INTERFACE_DEFINED__ */
6444 
6445 #endif
6446 
6447 #ifndef _LPIINTERNETSESSION_DEFINED
6448 #define _LPIINTERNETSESSION_DEFINED
6449 
6450 /*****************************************************************************
6451  * IInternetSession interface
6452  */
6453 #ifndef __IInternetSession_INTERFACE_DEFINED__
6454 #define __IInternetSession_INTERFACE_DEFINED__
6455 
6456 typedef IInternetSession *LPIINTERNETSESSION;
6457 
6458 typedef enum _tagOIBDG_FLAGS {
6459     OIBDG_APARTMENTTHREADED = 0x100,
6460     OIBDG_DATAONLY = 0x1000
6461 } OIBDG_FLAGS;
6462 
6463 DEFINE_GUID(IID_IInternetSession, 0x79eac9e7, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
6464 #if defined(__cplusplus) && !defined(CINTERFACE)
6465 MIDL_INTERFACE("79eac9e7-baf9-11ce-8c82-00aa004ba90b")
6466 IInternetSession : public IUnknown
6467 {
6468     virtual HRESULT STDMETHODCALLTYPE RegisterNameSpace(
6469         IClassFactory *pCF,
6470         REFCLSID rclsid,
6471         LPCWSTR pwzProtocol,
6472         ULONG cPatterns,
6473         const LPCWSTR *ppwzPatterns,
6474         DWORD dwReserved) = 0;
6475 
6476     virtual HRESULT STDMETHODCALLTYPE UnregisterNameSpace(
6477         IClassFactory *pCF,
6478         LPCWSTR pszProtocol) = 0;
6479 
6480     virtual HRESULT STDMETHODCALLTYPE RegisterMimeFilter(
6481         IClassFactory *pCF,
6482         REFCLSID rclsid,
6483         LPCWSTR pwzType) = 0;
6484 
6485     virtual HRESULT STDMETHODCALLTYPE UnregisterMimeFilter(
6486         IClassFactory *pCF,
6487         LPCWSTR pwzType) = 0;
6488 
6489     virtual HRESULT STDMETHODCALLTYPE CreateBinding(
6490         LPBC pBC,
6491         LPCWSTR szUrl,
6492         IUnknown *pUnkOuter,
6493         IUnknown **ppUnk,
6494         IInternetProtocol **ppOInetProt,
6495         DWORD dwOption) = 0;
6496 
6497     virtual HRESULT STDMETHODCALLTYPE SetSessionOption(
6498         DWORD dwOption,
6499         LPVOID pBuffer,
6500         DWORD dwBufferLength,
6501         DWORD dwReserved) = 0;
6502 
6503     virtual HRESULT STDMETHODCALLTYPE GetSessionOption(
6504         DWORD dwOption,
6505         LPVOID pBuffer,
6506         DWORD *pdwBufferLength,
6507         DWORD dwReserved) = 0;
6508 
6509 };
6510 #ifdef __CRT_UUID_DECL
6511 __CRT_UUID_DECL(IInternetSession, 0x79eac9e7, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
6512 #endif
6513 #else
6514 typedef struct IInternetSessionVtbl {
6515     BEGIN_INTERFACE
6516 
6517     /*** IUnknown methods ***/
6518     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6519         IInternetSession* This,
6520         REFIID riid,
6521         void **ppvObject);
6522 
6523     ULONG (STDMETHODCALLTYPE *AddRef)(
6524         IInternetSession* This);
6525 
6526     ULONG (STDMETHODCALLTYPE *Release)(
6527         IInternetSession* This);
6528 
6529     /*** IInternetSession methods ***/
6530     HRESULT (STDMETHODCALLTYPE *RegisterNameSpace)(
6531         IInternetSession* This,
6532         IClassFactory *pCF,
6533         REFCLSID rclsid,
6534         LPCWSTR pwzProtocol,
6535         ULONG cPatterns,
6536         const LPCWSTR *ppwzPatterns,
6537         DWORD dwReserved);
6538 
6539     HRESULT (STDMETHODCALLTYPE *UnregisterNameSpace)(
6540         IInternetSession* This,
6541         IClassFactory *pCF,
6542         LPCWSTR pszProtocol);
6543 
6544     HRESULT (STDMETHODCALLTYPE *RegisterMimeFilter)(
6545         IInternetSession* This,
6546         IClassFactory *pCF,
6547         REFCLSID rclsid,
6548         LPCWSTR pwzType);
6549 
6550     HRESULT (STDMETHODCALLTYPE *UnregisterMimeFilter)(
6551         IInternetSession* This,
6552         IClassFactory *pCF,
6553         LPCWSTR pwzType);
6554 
6555     HRESULT (STDMETHODCALLTYPE *CreateBinding)(
6556         IInternetSession* This,
6557         LPBC pBC,
6558         LPCWSTR szUrl,
6559         IUnknown *pUnkOuter,
6560         IUnknown **ppUnk,
6561         IInternetProtocol **ppOInetProt,
6562         DWORD dwOption);
6563 
6564     HRESULT (STDMETHODCALLTYPE *SetSessionOption)(
6565         IInternetSession* This,
6566         DWORD dwOption,
6567         LPVOID pBuffer,
6568         DWORD dwBufferLength,
6569         DWORD dwReserved);
6570 
6571     HRESULT (STDMETHODCALLTYPE *GetSessionOption)(
6572         IInternetSession* This,
6573         DWORD dwOption,
6574         LPVOID pBuffer,
6575         DWORD *pdwBufferLength,
6576         DWORD dwReserved);
6577 
6578     END_INTERFACE
6579 } IInternetSessionVtbl;
6580 interface IInternetSession {
6581     CONST_VTBL IInternetSessionVtbl* lpVtbl;
6582 };
6583 
6584 #ifdef COBJMACROS
6585 #ifndef WIDL_C_INLINE_WRAPPERS
6586 /*** IUnknown methods ***/
6587 #define IInternetSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6588 #define IInternetSession_AddRef(This) (This)->lpVtbl->AddRef(This)
6589 #define IInternetSession_Release(This) (This)->lpVtbl->Release(This)
6590 /*** IInternetSession methods ***/
6591 #define IInternetSession_RegisterNameSpace(This,pCF,rclsid,pwzProtocol,cPatterns,ppwzPatterns,dwReserved) (This)->lpVtbl->RegisterNameSpace(This,pCF,rclsid,pwzProtocol,cPatterns,ppwzPatterns,dwReserved)
6592 #define IInternetSession_UnregisterNameSpace(This,pCF,pszProtocol) (This)->lpVtbl->UnregisterNameSpace(This,pCF,pszProtocol)
6593 #define IInternetSession_RegisterMimeFilter(This,pCF,rclsid,pwzType) (This)->lpVtbl->RegisterMimeFilter(This,pCF,rclsid,pwzType)
6594 #define IInternetSession_UnregisterMimeFilter(This,pCF,pwzType) (This)->lpVtbl->UnregisterMimeFilter(This,pCF,pwzType)
6595 #define IInternetSession_CreateBinding(This,pBC,szUrl,pUnkOuter,ppUnk,ppOInetProt,dwOption) (This)->lpVtbl->CreateBinding(This,pBC,szUrl,pUnkOuter,ppUnk,ppOInetProt,dwOption)
6596 #define IInternetSession_SetSessionOption(This,dwOption,pBuffer,dwBufferLength,dwReserved) (This)->lpVtbl->SetSessionOption(This,dwOption,pBuffer,dwBufferLength,dwReserved)
6597 #define IInternetSession_GetSessionOption(This,dwOption,pBuffer,pdwBufferLength,dwReserved) (This)->lpVtbl->GetSessionOption(This,dwOption,pBuffer,pdwBufferLength,dwReserved)
6598 #else
6599 /*** IUnknown methods ***/
6600 static FORCEINLINE HRESULT IInternetSession_QueryInterface(IInternetSession* This,REFIID riid,void **ppvObject) {
6601     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6602 }
6603 static FORCEINLINE ULONG IInternetSession_AddRef(IInternetSession* This) {
6604     return This->lpVtbl->AddRef(This);
6605 }
6606 static FORCEINLINE ULONG IInternetSession_Release(IInternetSession* This) {
6607     return This->lpVtbl->Release(This);
6608 }
6609 /*** IInternetSession methods ***/
6610 static FORCEINLINE HRESULT IInternetSession_RegisterNameSpace(IInternetSession* This,IClassFactory *pCF,REFCLSID rclsid,LPCWSTR pwzProtocol,ULONG cPatterns,const LPCWSTR *ppwzPatterns,DWORD dwReserved) {
6611     return This->lpVtbl->RegisterNameSpace(This,pCF,rclsid,pwzProtocol,cPatterns,ppwzPatterns,dwReserved);
6612 }
6613 static FORCEINLINE HRESULT IInternetSession_UnregisterNameSpace(IInternetSession* This,IClassFactory *pCF,LPCWSTR pszProtocol) {
6614     return This->lpVtbl->UnregisterNameSpace(This,pCF,pszProtocol);
6615 }
6616 static FORCEINLINE HRESULT IInternetSession_RegisterMimeFilter(IInternetSession* This,IClassFactory *pCF,REFCLSID rclsid,LPCWSTR pwzType) {
6617     return This->lpVtbl->RegisterMimeFilter(This,pCF,rclsid,pwzType);
6618 }
6619 static FORCEINLINE HRESULT IInternetSession_UnregisterMimeFilter(IInternetSession* This,IClassFactory *pCF,LPCWSTR pwzType) {
6620     return This->lpVtbl->UnregisterMimeFilter(This,pCF,pwzType);
6621 }
6622 static FORCEINLINE HRESULT IInternetSession_CreateBinding(IInternetSession* This,LPBC pBC,LPCWSTR szUrl,IUnknown *pUnkOuter,IUnknown **ppUnk,IInternetProtocol **ppOInetProt,DWORD dwOption) {
6623     return This->lpVtbl->CreateBinding(This,pBC,szUrl,pUnkOuter,ppUnk,ppOInetProt,dwOption);
6624 }
6625 static FORCEINLINE HRESULT IInternetSession_SetSessionOption(IInternetSession* This,DWORD dwOption,LPVOID pBuffer,DWORD dwBufferLength,DWORD dwReserved) {
6626     return This->lpVtbl->SetSessionOption(This,dwOption,pBuffer,dwBufferLength,dwReserved);
6627 }
6628 static FORCEINLINE HRESULT IInternetSession_GetSessionOption(IInternetSession* This,DWORD dwOption,LPVOID pBuffer,DWORD *pdwBufferLength,DWORD dwReserved) {
6629     return This->lpVtbl->GetSessionOption(This,dwOption,pBuffer,pdwBufferLength,dwReserved);
6630 }
6631 #endif
6632 #endif
6633 
6634 #endif
6635 
6636 HRESULT STDMETHODCALLTYPE IInternetSession_RegisterNameSpace_Proxy(
6637     IInternetSession* This,
6638     IClassFactory *pCF,
6639     REFCLSID rclsid,
6640     LPCWSTR pwzProtocol,
6641     ULONG cPatterns,
6642     const LPCWSTR *ppwzPatterns,
6643     DWORD dwReserved);
6644 void __RPC_STUB IInternetSession_RegisterNameSpace_Stub(
6645     IRpcStubBuffer* This,
6646     IRpcChannelBuffer* pRpcChannelBuffer,
6647     PRPC_MESSAGE pRpcMessage,
6648     DWORD* pdwStubPhase);
6649 HRESULT STDMETHODCALLTYPE IInternetSession_UnregisterNameSpace_Proxy(
6650     IInternetSession* This,
6651     IClassFactory *pCF,
6652     LPCWSTR pszProtocol);
6653 void __RPC_STUB IInternetSession_UnregisterNameSpace_Stub(
6654     IRpcStubBuffer* This,
6655     IRpcChannelBuffer* pRpcChannelBuffer,
6656     PRPC_MESSAGE pRpcMessage,
6657     DWORD* pdwStubPhase);
6658 HRESULT STDMETHODCALLTYPE IInternetSession_RegisterMimeFilter_Proxy(
6659     IInternetSession* This,
6660     IClassFactory *pCF,
6661     REFCLSID rclsid,
6662     LPCWSTR pwzType);
6663 void __RPC_STUB IInternetSession_RegisterMimeFilter_Stub(
6664     IRpcStubBuffer* This,
6665     IRpcChannelBuffer* pRpcChannelBuffer,
6666     PRPC_MESSAGE pRpcMessage,
6667     DWORD* pdwStubPhase);
6668 HRESULT STDMETHODCALLTYPE IInternetSession_UnregisterMimeFilter_Proxy(
6669     IInternetSession* This,
6670     IClassFactory *pCF,
6671     LPCWSTR pwzType);
6672 void __RPC_STUB IInternetSession_UnregisterMimeFilter_Stub(
6673     IRpcStubBuffer* This,
6674     IRpcChannelBuffer* pRpcChannelBuffer,
6675     PRPC_MESSAGE pRpcMessage,
6676     DWORD* pdwStubPhase);
6677 HRESULT STDMETHODCALLTYPE IInternetSession_CreateBinding_Proxy(
6678     IInternetSession* This,
6679     LPBC pBC,
6680     LPCWSTR szUrl,
6681     IUnknown *pUnkOuter,
6682     IUnknown **ppUnk,
6683     IInternetProtocol **ppOInetProt,
6684     DWORD dwOption);
6685 void __RPC_STUB IInternetSession_CreateBinding_Stub(
6686     IRpcStubBuffer* This,
6687     IRpcChannelBuffer* pRpcChannelBuffer,
6688     PRPC_MESSAGE pRpcMessage,
6689     DWORD* pdwStubPhase);
6690 HRESULT STDMETHODCALLTYPE IInternetSession_SetSessionOption_Proxy(
6691     IInternetSession* This,
6692     DWORD dwOption,
6693     LPVOID pBuffer,
6694     DWORD dwBufferLength,
6695     DWORD dwReserved);
6696 void __RPC_STUB IInternetSession_SetSessionOption_Stub(
6697     IRpcStubBuffer* This,
6698     IRpcChannelBuffer* pRpcChannelBuffer,
6699     PRPC_MESSAGE pRpcMessage,
6700     DWORD* pdwStubPhase);
6701 HRESULT STDMETHODCALLTYPE IInternetSession_GetSessionOption_Proxy(
6702     IInternetSession* This,
6703     DWORD dwOption,
6704     LPVOID pBuffer,
6705     DWORD *pdwBufferLength,
6706     DWORD dwReserved);
6707 void __RPC_STUB IInternetSession_GetSessionOption_Stub(
6708     IRpcStubBuffer* This,
6709     IRpcChannelBuffer* pRpcChannelBuffer,
6710     PRPC_MESSAGE pRpcMessage,
6711     DWORD* pdwStubPhase);
6712 
6713 #endif  /* __IInternetSession_INTERFACE_DEFINED__ */
6714 
6715 #endif
6716 
6717 #ifndef _LPIINTERNETTHREADSWITCH_DEFINED
6718 #define _LPIINTERNETTHREADSWITCH_DEFINED
6719 
6720 /*****************************************************************************
6721  * IInternetThreadSwitch interface
6722  */
6723 #ifndef __IInternetThreadSwitch_INTERFACE_DEFINED__
6724 #define __IInternetThreadSwitch_INTERFACE_DEFINED__
6725 
6726 typedef IInternetThreadSwitch *LPIINTERNETTHREADSWITCH;
6727 
6728 DEFINE_GUID(IID_IInternetThreadSwitch, 0x79eac9e8, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
6729 #if defined(__cplusplus) && !defined(CINTERFACE)
6730 MIDL_INTERFACE("79eac9e8-baf9-11ce-8c82-00aa004ba90b")
6731 IInternetThreadSwitch : public IUnknown
6732 {
6733     virtual HRESULT STDMETHODCALLTYPE Prepare(
6734         ) = 0;
6735 
6736     virtual HRESULT STDMETHODCALLTYPE Continue(
6737         ) = 0;
6738 
6739 };
6740 #ifdef __CRT_UUID_DECL
6741 __CRT_UUID_DECL(IInternetThreadSwitch, 0x79eac9e8, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
6742 #endif
6743 #else
6744 typedef struct IInternetThreadSwitchVtbl {
6745     BEGIN_INTERFACE
6746 
6747     /*** IUnknown methods ***/
6748     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6749         IInternetThreadSwitch* This,
6750         REFIID riid,
6751         void **ppvObject);
6752 
6753     ULONG (STDMETHODCALLTYPE *AddRef)(
6754         IInternetThreadSwitch* This);
6755 
6756     ULONG (STDMETHODCALLTYPE *Release)(
6757         IInternetThreadSwitch* This);
6758 
6759     /*** IInternetThreadSwitch methods ***/
6760     HRESULT (STDMETHODCALLTYPE *Prepare)(
6761         IInternetThreadSwitch* This);
6762 
6763     HRESULT (STDMETHODCALLTYPE *Continue)(
6764         IInternetThreadSwitch* This);
6765 
6766     END_INTERFACE
6767 } IInternetThreadSwitchVtbl;
6768 interface IInternetThreadSwitch {
6769     CONST_VTBL IInternetThreadSwitchVtbl* lpVtbl;
6770 };
6771 
6772 #ifdef COBJMACROS
6773 #ifndef WIDL_C_INLINE_WRAPPERS
6774 /*** IUnknown methods ***/
6775 #define IInternetThreadSwitch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6776 #define IInternetThreadSwitch_AddRef(This) (This)->lpVtbl->AddRef(This)
6777 #define IInternetThreadSwitch_Release(This) (This)->lpVtbl->Release(This)
6778 /*** IInternetThreadSwitch methods ***/
6779 #define IInternetThreadSwitch_Prepare(This) (This)->lpVtbl->Prepare(This)
6780 #define IInternetThreadSwitch_Continue(This) (This)->lpVtbl->Continue(This)
6781 #else
6782 /*** IUnknown methods ***/
6783 static FORCEINLINE HRESULT IInternetThreadSwitch_QueryInterface(IInternetThreadSwitch* This,REFIID riid,void **ppvObject) {
6784     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6785 }
6786 static FORCEINLINE ULONG IInternetThreadSwitch_AddRef(IInternetThreadSwitch* This) {
6787     return This->lpVtbl->AddRef(This);
6788 }
6789 static FORCEINLINE ULONG IInternetThreadSwitch_Release(IInternetThreadSwitch* This) {
6790     return This->lpVtbl->Release(This);
6791 }
6792 /*** IInternetThreadSwitch methods ***/
6793 static FORCEINLINE HRESULT IInternetThreadSwitch_Prepare(IInternetThreadSwitch* This) {
6794     return This->lpVtbl->Prepare(This);
6795 }
6796 static FORCEINLINE HRESULT IInternetThreadSwitch_Continue(IInternetThreadSwitch* This) {
6797     return This->lpVtbl->Continue(This);
6798 }
6799 #endif
6800 #endif
6801 
6802 #endif
6803 
6804 HRESULT STDMETHODCALLTYPE IInternetThreadSwitch_Prepare_Proxy(
6805     IInternetThreadSwitch* This);
6806 void __RPC_STUB IInternetThreadSwitch_Prepare_Stub(
6807     IRpcStubBuffer* This,
6808     IRpcChannelBuffer* pRpcChannelBuffer,
6809     PRPC_MESSAGE pRpcMessage,
6810     DWORD* pdwStubPhase);
6811 HRESULT STDMETHODCALLTYPE IInternetThreadSwitch_Continue_Proxy(
6812     IInternetThreadSwitch* This);
6813 void __RPC_STUB IInternetThreadSwitch_Continue_Stub(
6814     IRpcStubBuffer* This,
6815     IRpcChannelBuffer* pRpcChannelBuffer,
6816     PRPC_MESSAGE pRpcMessage,
6817     DWORD* pdwStubPhase);
6818 
6819 #endif  /* __IInternetThreadSwitch_INTERFACE_DEFINED__ */
6820 
6821 #endif
6822 
6823 #ifndef _LPIINTERNETPRIORITY_DEFINED
6824 #define _LPIINTERNETPRIORITY_DEFINED
6825 
6826 /*****************************************************************************
6827  * IInternetPriority interface
6828  */
6829 #ifndef __IInternetPriority_INTERFACE_DEFINED__
6830 #define __IInternetPriority_INTERFACE_DEFINED__
6831 
6832 typedef IInternetPriority *LPIINTERNETPRIORITY;
6833 
6834 DEFINE_GUID(IID_IInternetPriority, 0x79eac9eb, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
6835 #if defined(__cplusplus) && !defined(CINTERFACE)
6836 MIDL_INTERFACE("79eac9eb-baf9-11ce-8c82-00aa004ba90b")
6837 IInternetPriority : public IUnknown
6838 {
6839     virtual HRESULT STDMETHODCALLTYPE SetPriority(
6840         LONG nPriority) = 0;
6841 
6842     virtual HRESULT STDMETHODCALLTYPE GetPriority(
6843         LONG *pnPriority) = 0;
6844 
6845 };
6846 #ifdef __CRT_UUID_DECL
6847 __CRT_UUID_DECL(IInternetPriority, 0x79eac9eb, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
6848 #endif
6849 #else
6850 typedef struct IInternetPriorityVtbl {
6851     BEGIN_INTERFACE
6852 
6853     /*** IUnknown methods ***/
6854     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6855         IInternetPriority* This,
6856         REFIID riid,
6857         void **ppvObject);
6858 
6859     ULONG (STDMETHODCALLTYPE *AddRef)(
6860         IInternetPriority* This);
6861 
6862     ULONG (STDMETHODCALLTYPE *Release)(
6863         IInternetPriority* This);
6864 
6865     /*** IInternetPriority methods ***/
6866     HRESULT (STDMETHODCALLTYPE *SetPriority)(
6867         IInternetPriority* This,
6868         LONG nPriority);
6869 
6870     HRESULT (STDMETHODCALLTYPE *GetPriority)(
6871         IInternetPriority* This,
6872         LONG *pnPriority);
6873 
6874     END_INTERFACE
6875 } IInternetPriorityVtbl;
6876 interface IInternetPriority {
6877     CONST_VTBL IInternetPriorityVtbl* lpVtbl;
6878 };
6879 
6880 #ifdef COBJMACROS
6881 #ifndef WIDL_C_INLINE_WRAPPERS
6882 /*** IUnknown methods ***/
6883 #define IInternetPriority_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6884 #define IInternetPriority_AddRef(This) (This)->lpVtbl->AddRef(This)
6885 #define IInternetPriority_Release(This) (This)->lpVtbl->Release(This)
6886 /*** IInternetPriority methods ***/
6887 #define IInternetPriority_SetPriority(This,nPriority) (This)->lpVtbl->SetPriority(This,nPriority)
6888 #define IInternetPriority_GetPriority(This,pnPriority) (This)->lpVtbl->GetPriority(This,pnPriority)
6889 #else
6890 /*** IUnknown methods ***/
6891 static FORCEINLINE HRESULT IInternetPriority_QueryInterface(IInternetPriority* This,REFIID riid,void **ppvObject) {
6892     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6893 }
6894 static FORCEINLINE ULONG IInternetPriority_AddRef(IInternetPriority* This) {
6895     return This->lpVtbl->AddRef(This);
6896 }
6897 static FORCEINLINE ULONG IInternetPriority_Release(IInternetPriority* This) {
6898     return This->lpVtbl->Release(This);
6899 }
6900 /*** IInternetPriority methods ***/
6901 static FORCEINLINE HRESULT IInternetPriority_SetPriority(IInternetPriority* This,LONG nPriority) {
6902     return This->lpVtbl->SetPriority(This,nPriority);
6903 }
6904 static FORCEINLINE HRESULT IInternetPriority_GetPriority(IInternetPriority* This,LONG *pnPriority) {
6905     return This->lpVtbl->GetPriority(This,pnPriority);
6906 }
6907 #endif
6908 #endif
6909 
6910 #endif
6911 
6912 HRESULT STDMETHODCALLTYPE IInternetPriority_SetPriority_Proxy(
6913     IInternetPriority* This,
6914     LONG nPriority);
6915 void __RPC_STUB IInternetPriority_SetPriority_Stub(
6916     IRpcStubBuffer* This,
6917     IRpcChannelBuffer* pRpcChannelBuffer,
6918     PRPC_MESSAGE pRpcMessage,
6919     DWORD* pdwStubPhase);
6920 HRESULT STDMETHODCALLTYPE IInternetPriority_GetPriority_Proxy(
6921     IInternetPriority* This,
6922     LONG *pnPriority);
6923 void __RPC_STUB IInternetPriority_GetPriority_Stub(
6924     IRpcStubBuffer* This,
6925     IRpcChannelBuffer* pRpcChannelBuffer,
6926     PRPC_MESSAGE pRpcMessage,
6927     DWORD* pdwStubPhase);
6928 
6929 #endif  /* __IInternetPriority_INTERFACE_DEFINED__ */
6930 
6931 #endif
6932 
6933 #ifndef _LPIINTERNETPROTOCOLINFO_DEFINED
6934 #define _LPIINTERNETPROTOCOLINFO_DEFINED
6935 
6936 /*****************************************************************************
6937  * IInternetProtocolInfo interface
6938  */
6939 #ifndef __IInternetProtocolInfo_INTERFACE_DEFINED__
6940 #define __IInternetProtocolInfo_INTERFACE_DEFINED__
6941 
6942 typedef IInternetProtocolInfo *LPIINTERNETPROTOCOLINFO;
6943 
6944 typedef enum _tagPARSEACTION {
6945     PARSE_CANONICALIZE = 1,
6946     PARSE_FRIENDLY = 2,
6947     PARSE_SECURITY_URL = 3,
6948     PARSE_ROOTDOCUMENT = 4,
6949     PARSE_DOCUMENT = 5,
6950     PARSE_ANCHOR = 6,
6951     PARSE_ENCODE_IS_UNESCAPE = 7,
6952     PARSE_DECODE_IS_ESCAPE = 8,
6953     PARSE_PATH_FROM_URL = 9,
6954     PARSE_URL_FROM_PATH = 10,
6955     PARSE_MIME = 11,
6956     PARSE_SERVER = 12,
6957     PARSE_SCHEMA = 13,
6958     PARSE_SITE = 14,
6959     PARSE_DOMAIN = 15,
6960     PARSE_LOCATION = 16,
6961     PARSE_SECURITY_DOMAIN = 17,
6962     PARSE_ESCAPE = 18,
6963     PARSE_UNESCAPE = 19
6964 } PARSEACTION;
6965 
6966 typedef enum _tagPSUACTION {
6967     PSU_DEFAULT = 1,
6968     PSU_SECURITY_URL_ONLY = 2
6969 } PSUACTION;
6970 
6971 typedef enum _tagQUERYOPTION {
6972     QUERY_EXPIRATION_DATE = 1,
6973     QUERY_TIME_OF_LAST_CHANGE = 2,
6974     QUERY_CONTENT_ENCODING = 3,
6975     QUERY_CONTENT_TYPE = 4,
6976     QUERY_REFRESH = 5,
6977     QUERY_RECOMBINE = 6,
6978     QUERY_CAN_NAVIGATE = 7,
6979     QUERY_USES_NETWORK = 8,
6980     QUERY_IS_CACHED = 9,
6981     QUERY_IS_INSTALLEDENTRY = 10,
6982     QUERY_IS_CACHED_OR_MAPPED = 11,
6983     QUERY_USES_CACHE = 12,
6984     QUERY_IS_SECURE = 13,
6985     QUERY_IS_SAFE = 14,
6986     QUERY_USES_HISTORYFOLDER = 15,
6987     QUERY_IS_CACHED_AND_USABLE_OFFLINE = 16
6988 } QUERYOPTION;
6989 
6990 DEFINE_GUID(IID_IInternetProtocolInfo, 0x79eac9ec, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
6991 #if defined(__cplusplus) && !defined(CINTERFACE)
6992 MIDL_INTERFACE("79eac9ec-baf9-11ce-8c82-00aa004ba90b")
6993 IInternetProtocolInfo : public IUnknown
6994 {
6995     virtual HRESULT STDMETHODCALLTYPE ParseUrl(
6996         LPCWSTR pwzUrl,
6997         PARSEACTION ParseAction,
6998         DWORD dwParseFlags,
6999         LPWSTR pwzResult,
7000         DWORD cchResult,
7001         DWORD *pcchResult,
7002         DWORD dwReserved) = 0;
7003 
7004     virtual HRESULT STDMETHODCALLTYPE CombineUrl(
7005         LPCWSTR pwzBaseUrl,
7006         LPCWSTR pwzRelativeUrl,
7007         DWORD dwCombineFlags,
7008         LPWSTR pwzResult,
7009         DWORD cchResult,
7010         DWORD *pcchResult,
7011         DWORD dwReserved) = 0;
7012 
7013     virtual HRESULT STDMETHODCALLTYPE CompareUrl(
7014         LPCWSTR pwzUrl1,
7015         LPCWSTR pwzUrl2,
7016         DWORD dwCompareFlags) = 0;
7017 
7018     virtual HRESULT STDMETHODCALLTYPE QueryInfo(
7019         LPCWSTR pwzUrl,
7020         QUERYOPTION OueryOption,
7021         DWORD dwQueryFlags,
7022         LPVOID pBuffer,
7023         DWORD cbBuffer,
7024         DWORD *pcbBuf,
7025         DWORD dwReserved) = 0;
7026 
7027 };
7028 #ifdef __CRT_UUID_DECL
7029 __CRT_UUID_DECL(IInternetProtocolInfo, 0x79eac9ec, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
7030 #endif
7031 #else
7032 typedef struct IInternetProtocolInfoVtbl {
7033     BEGIN_INTERFACE
7034 
7035     /*** IUnknown methods ***/
7036     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7037         IInternetProtocolInfo* This,
7038         REFIID riid,
7039         void **ppvObject);
7040 
7041     ULONG (STDMETHODCALLTYPE *AddRef)(
7042         IInternetProtocolInfo* This);
7043 
7044     ULONG (STDMETHODCALLTYPE *Release)(
7045         IInternetProtocolInfo* This);
7046 
7047     /*** IInternetProtocolInfo methods ***/
7048     HRESULT (STDMETHODCALLTYPE *ParseUrl)(
7049         IInternetProtocolInfo* This,
7050         LPCWSTR pwzUrl,
7051         PARSEACTION ParseAction,
7052         DWORD dwParseFlags,
7053         LPWSTR pwzResult,
7054         DWORD cchResult,
7055         DWORD *pcchResult,
7056         DWORD dwReserved);
7057 
7058     HRESULT (STDMETHODCALLTYPE *CombineUrl)(
7059         IInternetProtocolInfo* This,
7060         LPCWSTR pwzBaseUrl,
7061         LPCWSTR pwzRelativeUrl,
7062         DWORD dwCombineFlags,
7063         LPWSTR pwzResult,
7064         DWORD cchResult,
7065         DWORD *pcchResult,
7066         DWORD dwReserved);
7067 
7068     HRESULT (STDMETHODCALLTYPE *CompareUrl)(
7069         IInternetProtocolInfo* This,
7070         LPCWSTR pwzUrl1,
7071         LPCWSTR pwzUrl2,
7072         DWORD dwCompareFlags);
7073 
7074     HRESULT (STDMETHODCALLTYPE *QueryInfo)(
7075         IInternetProtocolInfo* This,
7076         LPCWSTR pwzUrl,
7077         QUERYOPTION OueryOption,
7078         DWORD dwQueryFlags,
7079         LPVOID pBuffer,
7080         DWORD cbBuffer,
7081         DWORD *pcbBuf,
7082         DWORD dwReserved);
7083 
7084     END_INTERFACE
7085 } IInternetProtocolInfoVtbl;
7086 interface IInternetProtocolInfo {
7087     CONST_VTBL IInternetProtocolInfoVtbl* lpVtbl;
7088 };
7089 
7090 #ifdef COBJMACROS
7091 #ifndef WIDL_C_INLINE_WRAPPERS
7092 /*** IUnknown methods ***/
7093 #define IInternetProtocolInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7094 #define IInternetProtocolInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
7095 #define IInternetProtocolInfo_Release(This) (This)->lpVtbl->Release(This)
7096 /*** IInternetProtocolInfo methods ***/
7097 #define IInternetProtocolInfo_ParseUrl(This,pwzUrl,ParseAction,dwParseFlags,pwzResult,cchResult,pcchResult,dwReserved) (This)->lpVtbl->ParseUrl(This,pwzUrl,ParseAction,dwParseFlags,pwzResult,cchResult,pcchResult,dwReserved)
7098 #define IInternetProtocolInfo_CombineUrl(This,pwzBaseUrl,pwzRelativeUrl,dwCombineFlags,pwzResult,cchResult,pcchResult,dwReserved) (This)->lpVtbl->CombineUrl(This,pwzBaseUrl,pwzRelativeUrl,dwCombineFlags,pwzResult,cchResult,pcchResult,dwReserved)
7099 #define IInternetProtocolInfo_CompareUrl(This,pwzUrl1,pwzUrl2,dwCompareFlags) (This)->lpVtbl->CompareUrl(This,pwzUrl1,pwzUrl2,dwCompareFlags)
7100 #define IInternetProtocolInfo_QueryInfo(This,pwzUrl,OueryOption,dwQueryFlags,pBuffer,cbBuffer,pcbBuf,dwReserved) (This)->lpVtbl->QueryInfo(This,pwzUrl,OueryOption,dwQueryFlags,pBuffer,cbBuffer,pcbBuf,dwReserved)
7101 #else
7102 /*** IUnknown methods ***/
7103 static FORCEINLINE HRESULT IInternetProtocolInfo_QueryInterface(IInternetProtocolInfo* This,REFIID riid,void **ppvObject) {
7104     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7105 }
7106 static FORCEINLINE ULONG IInternetProtocolInfo_AddRef(IInternetProtocolInfo* This) {
7107     return This->lpVtbl->AddRef(This);
7108 }
7109 static FORCEINLINE ULONG IInternetProtocolInfo_Release(IInternetProtocolInfo* This) {
7110     return This->lpVtbl->Release(This);
7111 }
7112 /*** IInternetProtocolInfo methods ***/
7113 static FORCEINLINE HRESULT IInternetProtocolInfo_ParseUrl(IInternetProtocolInfo* This,LPCWSTR pwzUrl,PARSEACTION ParseAction,DWORD dwParseFlags,LPWSTR pwzResult,DWORD cchResult,DWORD *pcchResult,DWORD dwReserved) {
7114     return This->lpVtbl->ParseUrl(This,pwzUrl,ParseAction,dwParseFlags,pwzResult,cchResult,pcchResult,dwReserved);
7115 }
7116 static FORCEINLINE HRESULT IInternetProtocolInfo_CombineUrl(IInternetProtocolInfo* This,LPCWSTR pwzBaseUrl,LPCWSTR pwzRelativeUrl,DWORD dwCombineFlags,LPWSTR pwzResult,DWORD cchResult,DWORD *pcchResult,DWORD dwReserved) {
7117     return This->lpVtbl->CombineUrl(This,pwzBaseUrl,pwzRelativeUrl,dwCombineFlags,pwzResult,cchResult,pcchResult,dwReserved);
7118 }
7119 static FORCEINLINE HRESULT IInternetProtocolInfo_CompareUrl(IInternetProtocolInfo* This,LPCWSTR pwzUrl1,LPCWSTR pwzUrl2,DWORD dwCompareFlags) {
7120     return This->lpVtbl->CompareUrl(This,pwzUrl1,pwzUrl2,dwCompareFlags);
7121 }
7122 static FORCEINLINE HRESULT IInternetProtocolInfo_QueryInfo(IInternetProtocolInfo* This,LPCWSTR pwzUrl,QUERYOPTION OueryOption,DWORD dwQueryFlags,LPVOID pBuffer,DWORD cbBuffer,DWORD *pcbBuf,DWORD dwReserved) {
7123     return This->lpVtbl->QueryInfo(This,pwzUrl,OueryOption,dwQueryFlags,pBuffer,cbBuffer,pcbBuf,dwReserved);
7124 }
7125 #endif
7126 #endif
7127 
7128 #endif
7129 
7130 HRESULT STDMETHODCALLTYPE IInternetProtocolInfo_ParseUrl_Proxy(
7131     IInternetProtocolInfo* This,
7132     LPCWSTR pwzUrl,
7133     PARSEACTION ParseAction,
7134     DWORD dwParseFlags,
7135     LPWSTR pwzResult,
7136     DWORD cchResult,
7137     DWORD *pcchResult,
7138     DWORD dwReserved);
7139 void __RPC_STUB IInternetProtocolInfo_ParseUrl_Stub(
7140     IRpcStubBuffer* This,
7141     IRpcChannelBuffer* pRpcChannelBuffer,
7142     PRPC_MESSAGE pRpcMessage,
7143     DWORD* pdwStubPhase);
7144 HRESULT STDMETHODCALLTYPE IInternetProtocolInfo_CombineUrl_Proxy(
7145     IInternetProtocolInfo* This,
7146     LPCWSTR pwzBaseUrl,
7147     LPCWSTR pwzRelativeUrl,
7148     DWORD dwCombineFlags,
7149     LPWSTR pwzResult,
7150     DWORD cchResult,
7151     DWORD *pcchResult,
7152     DWORD dwReserved);
7153 void __RPC_STUB IInternetProtocolInfo_CombineUrl_Stub(
7154     IRpcStubBuffer* This,
7155     IRpcChannelBuffer* pRpcChannelBuffer,
7156     PRPC_MESSAGE pRpcMessage,
7157     DWORD* pdwStubPhase);
7158 HRESULT STDMETHODCALLTYPE IInternetProtocolInfo_CompareUrl_Proxy(
7159     IInternetProtocolInfo* This,
7160     LPCWSTR pwzUrl1,
7161     LPCWSTR pwzUrl2,
7162     DWORD dwCompareFlags);
7163 void __RPC_STUB IInternetProtocolInfo_CompareUrl_Stub(
7164     IRpcStubBuffer* This,
7165     IRpcChannelBuffer* pRpcChannelBuffer,
7166     PRPC_MESSAGE pRpcMessage,
7167     DWORD* pdwStubPhase);
7168 HRESULT STDMETHODCALLTYPE IInternetProtocolInfo_QueryInfo_Proxy(
7169     IInternetProtocolInfo* This,
7170     LPCWSTR pwzUrl,
7171     QUERYOPTION OueryOption,
7172     DWORD dwQueryFlags,
7173     LPVOID pBuffer,
7174     DWORD cbBuffer,
7175     DWORD *pcbBuf,
7176     DWORD dwReserved);
7177 void __RPC_STUB IInternetProtocolInfo_QueryInfo_Stub(
7178     IRpcStubBuffer* This,
7179     IRpcChannelBuffer* pRpcChannelBuffer,
7180     PRPC_MESSAGE pRpcMessage,
7181     DWORD* pdwStubPhase);
7182 
7183 #endif  /* __IInternetProtocolInfo_INTERFACE_DEFINED__ */
7184 
7185 
7186 #ifndef URLMON_STRICT
7187 #define PARSE_ENCODE PARSE_ENCODE_IS_UNESCAPE
7188 #define PARSE_DECODE PARSE_DECODE_IS_ESCAPE
7189 #endif
7190 #endif
7191 
7192 #define IOInet               IInternet
7193 #define IOInetBindInfo       IInternetBindInfo
7194 #define IOInetBindInfoEx     IInternetBindInfoEx
7195 #define IOInetProtocolRoot   IInternetProtocolRoot
7196 #define IOInetProtocol       IInternetProtocol
7197 
7198 #if (_WIN32_IE >= _WIN32_IE_IE70)
7199 #define IOInetProtocolEx     IInternetProtocolEx
7200 #endif
7201 #define IOInetProtocolSink   IInternetProtocolSink
7202 #define IOInetProtocolInfo   IInternetProtocolInfo
7203 #define IOInetSession        IInternetSession
7204 #define IOInetPriority       IInternetPriority
7205 #define IOInetThreadSwitch   IInternetThreadSwitch
7206 #define IOInetProtocolSinkStackable   IInternetProtocolSinkStackable
7207 
7208 #define LPOINET              LPIINTERNET
7209 #define LPOINETPROTOCOLINFO  LPIINTERNETPROTOCOLINFO
7210 #define LPOINETBINDINFO      LPIINTERNETBINDINFO
7211 #define LPOINETPROTOCOLROOT  LPIINTERNETPROTOCOLROOT
7212 #define LPOINETPROTOCOL      LPIINTERNETPROTOCOL
7213 
7214 #if (_WIN32_IE >= _WIN32_IE_IE70)
7215 #define LPOINETPROTOCOLEX LPIINTERNETPROTOCOLEX
7216 #endif
7217 #define LPOINETPROTOCOLSINK  LPIINTERNETPROTOCOLSINK
7218 #define LPOINETSESSION       LPIINTERNETSESSION
7219 #define LPOINETTHREADSWITCH  LPIINTERNETTHREADSWITCH
7220 #define LPOINETPRIORITY      LPIINTERNETPRIORITY
7221 #define LPOINETPROTOCOLINFO  LPIINTERNETPROTOCOLINFO
7222 #define LPOINETPROTOCOLSINKSTACKABLE  LPIINTERNETPROTOCOLSINKSTACKABLE
7223 
7224 #define IID_IOInet               IID_IInternet
7225 #define IID_IOInetBindInfo       IID_IInternetBindInfo
7226 #define IID_IOInetBindInfoEx     IID_IInternetBindInfoEx
7227 #define IID_IOInetProtocolRoot   IID_IInternetProtocolRoot
7228 #define IID_IOInetProtocol       IID_IInternetProtocol
7229 
7230 #if (_WIN32_IE >= _WIN32_IE_IE70)
7231 #define IID_IOInetProtocolEx IID_IInternetProtocolEx
7232 #endif
7233 #define IID_IOInetProtocolSink   IID_IInternetProtocolSink
7234 #define IID_IOInetProtocolInfo   IID_IInternetProtocolInfo
7235 #define IID_IOInetSession        IID_IInternetSession
7236 #define IID_IOInetPriority       IID_IInternetPriority
7237 #define IID_IOInetThreadSwitch   IID_IInternetThreadSwitch
7238 #define IID_IOInetProtocolSinkStackable   IID_IInternetProtocolSinkStackable
7239 
7240 STDAPI CoInternetParseUrl(LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD dwFlags, LPWSTR pszResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved);
7241 #if (_WIN32_IE >= _WIN32_IE_IE70)
7242 STDAPI CoInternetParseIUri(IUri *pIUri, PARSEACTION ParseAction, DWORD dwFlags, LPWSTR pwzResult, DWORD cchResult, DWORD *pcchResult, DWORD_PTR dwReserved);
7243 #endif
7244 STDAPI CoInternetCombineUrl(LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, LPWSTR pszResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved);
7245 #if (_WIN32_IE >= _WIN32_IE_IE70)
7246 STDAPI CoInternetCombineUrlEx(IUri *pBaseUri, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, IUri **ppCombinedUri, DWORD_PTR dwReserved);
7247 STDAPI CoInternetCombineIUri (IUri *pBaseUri, IUri *pRelativeUri, DWORD dwCombineFlags, IUri **ppCombinedUri, DWORD_PTR dwReserved);
7248 #endif
7249 STDAPI CoInternetCompareUrl(LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwFlags);
7250 STDAPI CoInternetGetProtocolFlags(LPCWSTR pwzUrl, DWORD *pdwFlags, DWORD dwReserved);
7251 STDAPI CoInternetQueryInfo(LPCWSTR pwzUrl, QUERYOPTION QueryOptions, DWORD dwQueryFlags, LPVOID pvBuffer, DWORD cbBuffer, DWORD *pcbBuffer, DWORD dwReserved);
7252 STDAPI CoInternetGetSession(DWORD dwSessionMode, IInternetSession **ppIInternetSession, DWORD dwReserved);
7253 STDAPI CoInternetGetSecurityUrl(LPCWSTR pwszUrl, LPWSTR *ppwszSecUrl, PSUACTION psuAction, DWORD dwReserved);
7254 STDAPI AsyncInstallDistributionUnit(LPCWSTR szDistUnit, LPCWSTR szTYPE, LPCWSTR szExt, DWORD dwFileVersionMS, DWORD dwFileVersionLS, LPCWSTR szURL,IBindCtx *pbc, LPVOID pvReserved,DWORD flags);
7255 #if (_WIN32_IE >= _WIN32_IE_IE70)
7256 STDAPI CoInternetGetSecurityUrlEx(IUri *pUri, IUri **ppSecUri, PSUACTION psuAction, DWORD_PTR dwReserved);
7257 #endif
7258 
7259 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
7260 #ifndef _INTERNETFEATURELIST_DEFINED
7261 #define _INTERNETFEATURELIST_DEFINED
7262 
7263 typedef enum _tagINTERNETFEATURELIST {
7264     FEATURE_OBJECT_CACHING = 0,
7265     FEATURE_ZONE_ELEVATION = 1,
7266     FEATURE_MIME_HANDLING = 2,
7267     FEATURE_MIME_SNIFFING = 3,
7268     FEATURE_WINDOW_RESTRICTIONS = 4,
7269     FEATURE_WEBOC_POPUPMANAGEMENT = 5,
7270     FEATURE_BEHAVIORS = 6,
7271     FEATURE_DISABLE_MK_PROTOCOL = 7,
7272     FEATURE_LOCALMACHINE_LOCKDOWN = 8,
7273     FEATURE_SECURITYBAND = 9,
7274     FEATURE_RESTRICT_ACTIVEXINSTALL = 10,
7275     FEATURE_VALIDATE_NAVIGATE_URL = 11,
7276     FEATURE_RESTRICT_FILEDOWNLOAD = 12,
7277     FEATURE_ADDON_MANAGEMENT = 13,
7278     FEATURE_PROTOCOL_LOCKDOWN = 14,
7279     FEATURE_HTTP_USERNAME_PASSWORD_DISABLE = 15,
7280     FEATURE_SAFE_BINDTOOBJECT = 16,
7281     FEATURE_UNC_SAVEDFILECHECK = 17,
7282     FEATURE_GET_URL_DOM_FILEPATH_UNENCODED = 18,
7283     FEATURE_TABBED_BROWSING = 19,
7284     FEATURE_SSLUX = 20,
7285     FEATURE_DISABLE_NAVIGATION_SOUNDS = 21,
7286     FEATURE_DISABLE_LEGACY_COMPRESSION = 22,
7287     FEATURE_FORCE_ADDR_AND_STATUS = 23,
7288     FEATURE_XMLHTTP = 24,
7289     FEATURE_DISABLE_TELNET_PROTOCOL = 25,
7290     FEATURE_FEEDS = 26,
7291     FEATURE_BLOCK_INPUT_PROMPTS = 27,
7292     FEATURE_ENTRY_COUNT = 28
7293 } INTERNETFEATURELIST;
7294 
7295 #define SET_FEATURE_ON_THREAD 0x1
7296 #define SET_FEATURE_ON_PROCESS 0x2
7297 #define SET_FEATURE_IN_REGISTRY 0x4
7298 #define SET_FEATURE_ON_THREAD_LOCALMACHINE 0x8
7299 #define SET_FEATURE_ON_THREAD_INTRANET 0x10
7300 #define SET_FEATURE_ON_THREAD_TRUSTED 0x20
7301 #define SET_FEATURE_ON_THREAD_INTERNET 0x40
7302 #define SET_FEATURE_ON_THREAD_RESTRICTED 0x80
7303 
7304 #define GET_FEATURE_FROM_THREAD 0x1
7305 #define GET_FEATURE_FROM_PROCESS 0x2
7306 #define GET_FEATURE_FROM_REGISTRY 0x4
7307 #define GET_FEATURE_FROM_THREAD_LOCALMACHINE 0x8
7308 #define GET_FEATURE_FROM_THREAD_INTRANET 0x10
7309 #define GET_FEATURE_FROM_THREAD_TRUSTED 0x20
7310 #define GET_FEATURE_FROM_THREAD_INTERNET 0x40
7311 #define GET_FEATURE_FROM_THREAD_RESTRICTED 0x80
7312 #endif
7313 
7314 STDAPI CoInternetSetFeatureEnabled(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags, WINBOOL fEnable);
7315 STDAPI CoInternetIsFeatureEnabled(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags);
7316 STDAPI CoInternetIsFeatureEnabledForUrl(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags, LPCWSTR szURL, IInternetSecurityManager *pSecMgr);
7317 STDAPI CoInternetIsFeatureEnabledForIUri(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags, IUri *pIUri, IInternetSecurityManagerEx2 *pSecMgr);
7318 STDAPI CoInternetIsFeatureZoneElevationEnabled(LPCWSTR szFromURL, LPCWSTR szToURL, IInternetSecurityManager *pSecMgr, DWORD dwFlags);
7319 #endif
7320 STDAPI CopyStgMedium(const STGMEDIUM *pcstgmedSrc, STGMEDIUM *pstgmedDest);
7321 STDAPI CopyBindInfo(const BINDINFO *pcbiSrc, BINDINFO *pbiDest);
7322 STDAPI_(void) ReleaseBindInfo(BINDINFO *pbindinfo);
7323 
7324 #define INET_E_USE_DEFAULT_PROTOCOLHANDLER _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0011))
7325 #define INET_E_USE_DEFAULT_SETTING         _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0012))
7326 #define INET_E_DEFAULT_ACTION              INET_E_USE_DEFAULT_PROTOCOLHANDLER
7327 #define INET_E_QUERYOPTION_UNKNOWN         _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0013))
7328 #define INET_E_REDIRECTING                 _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0014))
7329 
7330 #define OInetParseUrl CoInternetParseUrl
7331 #define OInetCombineUrl CoInternetCombineUrl
7332 #if (_WIN32_IE >= _WIN32_IE_IE70)
7333 #define OInetCombineUrlEx CoInternetCombineUrlEx
7334 #define OInetCombineIUri CoInternetCombineIUri
7335 #endif
7336 #define OInetCompareUrl CoInternetCompareUrl
7337 #define OInetQueryInfo CoInternetQueryInfo
7338 #define OInetGetSession CoInternetGetSession
7339 #endif
7340 
7341 #define PROTOCOLFLAG_NO_PICS_CHECK 0x1
7342 
7343 STDAPI CoInternetCreateSecurityManager(IServiceProvider *pSP, IInternetSecurityManager **ppSM, DWORD dwReserved);
7344 STDAPI CoInternetCreateZoneManager(IServiceProvider *pSP, IInternetZoneManager **ppZM, DWORD dwReserved);
7345 
7346 EXTERN_C const IID CLSID_InternetSecurityManager;
7347 EXTERN_C const IID CLSID_InternetZoneManager;
7348 
7349 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
7350 EXTERN_C const IID CLSID_PersistentZoneIdentifier;
7351 #endif
7352 
7353 #define SID_SInternetSecurityManager IID_IInternetSecurityManager
7354 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
7355 #define SID_SInternetSecurityManagerEx IID_IInternetSecurityManagerEx
7356 #endif
7357 #if (_WIN32_IE >= _WIN32_IE_IE70)
7358 #define SID_SInternetSecurityManagerEx2 IID_IInternetSecurityManagerEx2
7359 #endif
7360 #define SID_SInternetHostSecurityManager IID_IInternetHostSecurityManager
7361 
7362 #ifndef _LPINTERNETSECURITYMGRSITE_DEFINED
7363 #define _LPINTERNETSECURITYMGRSITE_DEFINED
7364 
7365 /*****************************************************************************
7366  * IInternetSecurityMgrSite interface
7367  */
7368 #ifndef __IInternetSecurityMgrSite_INTERFACE_DEFINED__
7369 #define __IInternetSecurityMgrSite_INTERFACE_DEFINED__
7370 
7371 DEFINE_GUID(IID_IInternetSecurityMgrSite, 0x79eac9ed, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
7372 #if defined(__cplusplus) && !defined(CINTERFACE)
7373 MIDL_INTERFACE("79eac9ed-baf9-11ce-8c82-00aa004ba90b")
7374 IInternetSecurityMgrSite : public IUnknown
7375 {
7376     virtual HRESULT STDMETHODCALLTYPE GetWindow(
7377         HWND *phwnd) = 0;
7378 
7379     virtual HRESULT STDMETHODCALLTYPE EnableModeless(
7380         WINBOOL fEnable) = 0;
7381 
7382 };
7383 #ifdef __CRT_UUID_DECL
7384 __CRT_UUID_DECL(IInternetSecurityMgrSite, 0x79eac9ed, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
7385 #endif
7386 #else
7387 typedef struct IInternetSecurityMgrSiteVtbl {
7388     BEGIN_INTERFACE
7389 
7390     /*** IUnknown methods ***/
7391     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7392         IInternetSecurityMgrSite* This,
7393         REFIID riid,
7394         void **ppvObject);
7395 
7396     ULONG (STDMETHODCALLTYPE *AddRef)(
7397         IInternetSecurityMgrSite* This);
7398 
7399     ULONG (STDMETHODCALLTYPE *Release)(
7400         IInternetSecurityMgrSite* This);
7401 
7402     /*** IInternetSecurityMgrSite methods ***/
7403     HRESULT (STDMETHODCALLTYPE *GetWindow)(
7404         IInternetSecurityMgrSite* This,
7405         HWND *phwnd);
7406 
7407     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
7408         IInternetSecurityMgrSite* This,
7409         WINBOOL fEnable);
7410 
7411     END_INTERFACE
7412 } IInternetSecurityMgrSiteVtbl;
7413 interface IInternetSecurityMgrSite {
7414     CONST_VTBL IInternetSecurityMgrSiteVtbl* lpVtbl;
7415 };
7416 
7417 #ifdef COBJMACROS
7418 #ifndef WIDL_C_INLINE_WRAPPERS
7419 /*** IUnknown methods ***/
7420 #define IInternetSecurityMgrSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7421 #define IInternetSecurityMgrSite_AddRef(This) (This)->lpVtbl->AddRef(This)
7422 #define IInternetSecurityMgrSite_Release(This) (This)->lpVtbl->Release(This)
7423 /*** IInternetSecurityMgrSite methods ***/
7424 #define IInternetSecurityMgrSite_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
7425 #define IInternetSecurityMgrSite_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
7426 #else
7427 /*** IUnknown methods ***/
7428 static FORCEINLINE HRESULT IInternetSecurityMgrSite_QueryInterface(IInternetSecurityMgrSite* This,REFIID riid,void **ppvObject) {
7429     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7430 }
7431 static FORCEINLINE ULONG IInternetSecurityMgrSite_AddRef(IInternetSecurityMgrSite* This) {
7432     return This->lpVtbl->AddRef(This);
7433 }
7434 static FORCEINLINE ULONG IInternetSecurityMgrSite_Release(IInternetSecurityMgrSite* This) {
7435     return This->lpVtbl->Release(This);
7436 }
7437 /*** IInternetSecurityMgrSite methods ***/
7438 static FORCEINLINE HRESULT IInternetSecurityMgrSite_GetWindow(IInternetSecurityMgrSite* This,HWND *phwnd) {
7439     return This->lpVtbl->GetWindow(This,phwnd);
7440 }
7441 static FORCEINLINE HRESULT IInternetSecurityMgrSite_EnableModeless(IInternetSecurityMgrSite* This,WINBOOL fEnable) {
7442     return This->lpVtbl->EnableModeless(This,fEnable);
7443 }
7444 #endif
7445 #endif
7446 
7447 #endif
7448 
7449 HRESULT STDMETHODCALLTYPE IInternetSecurityMgrSite_GetWindow_Proxy(
7450     IInternetSecurityMgrSite* This,
7451     HWND *phwnd);
7452 void __RPC_STUB IInternetSecurityMgrSite_GetWindow_Stub(
7453     IRpcStubBuffer* This,
7454     IRpcChannelBuffer* pRpcChannelBuffer,
7455     PRPC_MESSAGE pRpcMessage,
7456     DWORD* pdwStubPhase);
7457 HRESULT STDMETHODCALLTYPE IInternetSecurityMgrSite_EnableModeless_Proxy(
7458     IInternetSecurityMgrSite* This,
7459     WINBOOL fEnable);
7460 void __RPC_STUB IInternetSecurityMgrSite_EnableModeless_Stub(
7461     IRpcStubBuffer* This,
7462     IRpcChannelBuffer* pRpcChannelBuffer,
7463     PRPC_MESSAGE pRpcMessage,
7464     DWORD* pdwStubPhase);
7465 
7466 #endif  /* __IInternetSecurityMgrSite_INTERFACE_DEFINED__ */
7467 
7468 #endif
7469 
7470 #ifndef _LPINTERNETSECURITYMANANGER_DEFINED
7471 #define _LPINTERNETSECURITYMANANGER_DEFINED
7472 
7473 /*****************************************************************************
7474  * IInternetSecurityManager interface
7475  */
7476 #ifndef __IInternetSecurityManager_INTERFACE_DEFINED__
7477 #define __IInternetSecurityManager_INTERFACE_DEFINED__
7478 
7479 
7480 #define MUTZ_NOSAVEDFILECHECK 0x1
7481 #define MUTZ_ISFILE 0x2
7482 #define MUTZ_ACCEPT_WILDCARD_SCHEME 0x80
7483 #define MUTZ_ENFORCERESTRICTED 0x100
7484 #define MUTZ_RESERVED 0x200
7485 #define MUTZ_REQUIRESAVEDFILECHECK 0x400
7486 #define MUTZ_DONT_UNESCAPE 0x800
7487 #define MUTZ_DONT_USE_CACHE 0x1000
7488 #define MUTZ_FORCE_INTRANET_FLAGS 0x2000
7489 #define MUTZ_IGNORE_ZONE_MAPPINGS 0x4000
7490 
7491 
7492 #define MAX_SIZE_SECURITY_ID 512
7493 
7494 
7495 typedef enum __WIDL_urlmon_generated_name_0000000E {
7496     PUAF_DEFAULT = 0x0,
7497     PUAF_NOUI = 0x1,
7498     PUAF_ISFILE = 0x2,
7499     PUAF_WARN_IF_DENIED = 0x4,
7500     PUAF_FORCEUI_FOREGROUND = 0x8,
7501     PUAF_CHECK_TIFS = 0x10,
7502     PUAF_DONTCHECKBOXINDIALOG = 0x20,
7503     PUAF_TRUSTED = 0x40,
7504     PUAF_ACCEPT_WILDCARD_SCHEME = 0x80,
7505     PUAF_ENFORCERESTRICTED = 0x100,
7506     PUAF_NOSAVEDFILECHECK = 0x200,
7507     PUAF_REQUIRESAVEDFILECHECK = 0x400,
7508     PUAF_DONT_USE_CACHE = 0x1000,
7509     PUAF_RESERVED1 = 0x2000,
7510     PUAF_RESERVED2 = 0x4000,
7511     PUAF_LMZ_UNLOCKED = 0x10000,
7512     PUAF_LMZ_LOCKED = 0x20000,
7513     PUAF_DEFAULTZONEPOL = 0x40000,
7514     PUAF_NPL_USE_LOCKED_IF_RESTRICTED = 0x80000,
7515     PUAF_NOUIIFLOCKED = 0x100000,
7516     PUAF_DRAGPROTOCOLCHECK = 0x200000
7517 } PUAF;
7518 typedef enum __WIDL_urlmon_generated_name_0000000F {
7519     PUAFOUT_DEFAULT = 0x0,
7520     PUAFOUT_ISLOCKZONEPOLICY = 0x1
7521 } PUAFOUT;
7522 
7523 
7524 typedef enum __WIDL_urlmon_generated_name_00000010 {
7525     SZM_CREATE = 0x0,
7526     SZM_DELETE = 0x1
7527 } SZM_FLAGS;
7528 
7529 DEFINE_GUID(IID_IInternetSecurityManager, 0x79eac9ee, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
7530 #if defined(__cplusplus) && !defined(CINTERFACE)
7531 MIDL_INTERFACE("79eac9ee-baf9-11ce-8c82-00aa004ba90b")
7532 IInternetSecurityManager : public IUnknown
7533 {
7534     virtual HRESULT STDMETHODCALLTYPE SetSecuritySite(
7535         IInternetSecurityMgrSite *pSite) = 0;
7536 
7537     virtual HRESULT STDMETHODCALLTYPE GetSecuritySite(
7538         IInternetSecurityMgrSite **ppSite) = 0;
7539 
7540     virtual HRESULT STDMETHODCALLTYPE MapUrlToZone(
7541         LPCWSTR pwszUrl,
7542         DWORD *pdwZone,
7543         DWORD dwFlags) = 0;
7544 
7545     virtual HRESULT STDMETHODCALLTYPE GetSecurityId(
7546         LPCWSTR pwszUrl,
7547         BYTE *pbSecurityId,
7548         DWORD *pcbSecurityId,
7549         DWORD_PTR dwReserved) = 0;
7550 
7551     virtual HRESULT STDMETHODCALLTYPE ProcessUrlAction(
7552         LPCWSTR pwszUrl,
7553         DWORD dwAction,
7554         BYTE *pPolicy,
7555         DWORD cbPolicy,
7556         BYTE *pContext,
7557         DWORD cbContext,
7558         DWORD dwFlags,
7559         DWORD dwReserved) = 0;
7560 
7561     virtual HRESULT STDMETHODCALLTYPE QueryCustomPolicy(
7562         LPCWSTR pwszUrl,
7563         REFGUID guidKey,
7564         BYTE **ppPolicy,
7565         DWORD *pcbPolicy,
7566         BYTE *pContext,
7567         DWORD cbContext,
7568         DWORD dwReserved) = 0;
7569 
7570     virtual HRESULT STDMETHODCALLTYPE SetZoneMapping(
7571         DWORD dwZone,
7572         LPCWSTR lpszPattern,
7573         DWORD dwFlags) = 0;
7574 
7575     virtual HRESULT STDMETHODCALLTYPE GetZoneMappings(
7576         DWORD dwZone,
7577         IEnumString **ppenumString,
7578         DWORD dwFlags) = 0;
7579 
7580 };
7581 #ifdef __CRT_UUID_DECL
7582 __CRT_UUID_DECL(IInternetSecurityManager, 0x79eac9ee, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
7583 #endif
7584 #else
7585 typedef struct IInternetSecurityManagerVtbl {
7586     BEGIN_INTERFACE
7587 
7588     /*** IUnknown methods ***/
7589     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7590         IInternetSecurityManager* This,
7591         REFIID riid,
7592         void **ppvObject);
7593 
7594     ULONG (STDMETHODCALLTYPE *AddRef)(
7595         IInternetSecurityManager* This);
7596 
7597     ULONG (STDMETHODCALLTYPE *Release)(
7598         IInternetSecurityManager* This);
7599 
7600     /*** IInternetSecurityManager methods ***/
7601     HRESULT (STDMETHODCALLTYPE *SetSecuritySite)(
7602         IInternetSecurityManager* This,
7603         IInternetSecurityMgrSite *pSite);
7604 
7605     HRESULT (STDMETHODCALLTYPE *GetSecuritySite)(
7606         IInternetSecurityManager* This,
7607         IInternetSecurityMgrSite **ppSite);
7608 
7609     HRESULT (STDMETHODCALLTYPE *MapUrlToZone)(
7610         IInternetSecurityManager* This,
7611         LPCWSTR pwszUrl,
7612         DWORD *pdwZone,
7613         DWORD dwFlags);
7614 
7615     HRESULT (STDMETHODCALLTYPE *GetSecurityId)(
7616         IInternetSecurityManager* This,
7617         LPCWSTR pwszUrl,
7618         BYTE *pbSecurityId,
7619         DWORD *pcbSecurityId,
7620         DWORD_PTR dwReserved);
7621 
7622     HRESULT (STDMETHODCALLTYPE *ProcessUrlAction)(
7623         IInternetSecurityManager* This,
7624         LPCWSTR pwszUrl,
7625         DWORD dwAction,
7626         BYTE *pPolicy,
7627         DWORD cbPolicy,
7628         BYTE *pContext,
7629         DWORD cbContext,
7630         DWORD dwFlags,
7631         DWORD dwReserved);
7632 
7633     HRESULT (STDMETHODCALLTYPE *QueryCustomPolicy)(
7634         IInternetSecurityManager* This,
7635         LPCWSTR pwszUrl,
7636         REFGUID guidKey,
7637         BYTE **ppPolicy,
7638         DWORD *pcbPolicy,
7639         BYTE *pContext,
7640         DWORD cbContext,
7641         DWORD dwReserved);
7642 
7643     HRESULT (STDMETHODCALLTYPE *SetZoneMapping)(
7644         IInternetSecurityManager* This,
7645         DWORD dwZone,
7646         LPCWSTR lpszPattern,
7647         DWORD dwFlags);
7648 
7649     HRESULT (STDMETHODCALLTYPE *GetZoneMappings)(
7650         IInternetSecurityManager* This,
7651         DWORD dwZone,
7652         IEnumString **ppenumString,
7653         DWORD dwFlags);
7654 
7655     END_INTERFACE
7656 } IInternetSecurityManagerVtbl;
7657 interface IInternetSecurityManager {
7658     CONST_VTBL IInternetSecurityManagerVtbl* lpVtbl;
7659 };
7660 
7661 #ifdef COBJMACROS
7662 #ifndef WIDL_C_INLINE_WRAPPERS
7663 /*** IUnknown methods ***/
7664 #define IInternetSecurityManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7665 #define IInternetSecurityManager_AddRef(This) (This)->lpVtbl->AddRef(This)
7666 #define IInternetSecurityManager_Release(This) (This)->lpVtbl->Release(This)
7667 /*** IInternetSecurityManager methods ***/
7668 #define IInternetSecurityManager_SetSecuritySite(This,pSite) (This)->lpVtbl->SetSecuritySite(This,pSite)
7669 #define IInternetSecurityManager_GetSecuritySite(This,ppSite) (This)->lpVtbl->GetSecuritySite(This,ppSite)
7670 #define IInternetSecurityManager_MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) (This)->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags)
7671 #define IInternetSecurityManager_GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved)
7672 #define IInternetSecurityManager_ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) (This)->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
7673 #define IInternetSecurityManager_QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
7674 #define IInternetSecurityManager_SetZoneMapping(This,dwZone,lpszPattern,dwFlags) (This)->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags)
7675 #define IInternetSecurityManager_GetZoneMappings(This,dwZone,ppenumString,dwFlags) (This)->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags)
7676 #else
7677 /*** IUnknown methods ***/
7678 static FORCEINLINE HRESULT IInternetSecurityManager_QueryInterface(IInternetSecurityManager* This,REFIID riid,void **ppvObject) {
7679     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7680 }
7681 static FORCEINLINE ULONG IInternetSecurityManager_AddRef(IInternetSecurityManager* This) {
7682     return This->lpVtbl->AddRef(This);
7683 }
7684 static FORCEINLINE ULONG IInternetSecurityManager_Release(IInternetSecurityManager* This) {
7685     return This->lpVtbl->Release(This);
7686 }
7687 /*** IInternetSecurityManager methods ***/
7688 static FORCEINLINE HRESULT IInternetSecurityManager_SetSecuritySite(IInternetSecurityManager* This,IInternetSecurityMgrSite *pSite) {
7689     return This->lpVtbl->SetSecuritySite(This,pSite);
7690 }
7691 static FORCEINLINE HRESULT IInternetSecurityManager_GetSecuritySite(IInternetSecurityManager* This,IInternetSecurityMgrSite **ppSite) {
7692     return This->lpVtbl->GetSecuritySite(This,ppSite);
7693 }
7694 static FORCEINLINE HRESULT IInternetSecurityManager_MapUrlToZone(IInternetSecurityManager* This,LPCWSTR pwszUrl,DWORD *pdwZone,DWORD dwFlags) {
7695     return This->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags);
7696 }
7697 static FORCEINLINE HRESULT IInternetSecurityManager_GetSecurityId(IInternetSecurityManager* This,LPCWSTR pwszUrl,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
7698     return This->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved);
7699 }
7700 static FORCEINLINE HRESULT IInternetSecurityManager_ProcessUrlAction(IInternetSecurityManager* This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved) {
7701     return This->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved);
7702 }
7703 static FORCEINLINE HRESULT IInternetSecurityManager_QueryCustomPolicy(IInternetSecurityManager* This,LPCWSTR pwszUrl,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved) {
7704     return This->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved);
7705 }
7706 static FORCEINLINE HRESULT IInternetSecurityManager_SetZoneMapping(IInternetSecurityManager* This,DWORD dwZone,LPCWSTR lpszPattern,DWORD dwFlags) {
7707     return This->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags);
7708 }
7709 static FORCEINLINE HRESULT IInternetSecurityManager_GetZoneMappings(IInternetSecurityManager* This,DWORD dwZone,IEnumString **ppenumString,DWORD dwFlags) {
7710     return This->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags);
7711 }
7712 #endif
7713 #endif
7714 
7715 #endif
7716 
7717 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_SetSecuritySite_Proxy(
7718     IInternetSecurityManager* This,
7719     IInternetSecurityMgrSite *pSite);
7720 void __RPC_STUB IInternetSecurityManager_SetSecuritySite_Stub(
7721     IRpcStubBuffer* This,
7722     IRpcChannelBuffer* pRpcChannelBuffer,
7723     PRPC_MESSAGE pRpcMessage,
7724     DWORD* pdwStubPhase);
7725 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_GetSecuritySite_Proxy(
7726     IInternetSecurityManager* This,
7727     IInternetSecurityMgrSite **ppSite);
7728 void __RPC_STUB IInternetSecurityManager_GetSecuritySite_Stub(
7729     IRpcStubBuffer* This,
7730     IRpcChannelBuffer* pRpcChannelBuffer,
7731     PRPC_MESSAGE pRpcMessage,
7732     DWORD* pdwStubPhase);
7733 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_MapUrlToZone_Proxy(
7734     IInternetSecurityManager* This,
7735     LPCWSTR pwszUrl,
7736     DWORD *pdwZone,
7737     DWORD dwFlags);
7738 void __RPC_STUB IInternetSecurityManager_MapUrlToZone_Stub(
7739     IRpcStubBuffer* This,
7740     IRpcChannelBuffer* pRpcChannelBuffer,
7741     PRPC_MESSAGE pRpcMessage,
7742     DWORD* pdwStubPhase);
7743 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_GetSecurityId_Proxy(
7744     IInternetSecurityManager* This,
7745     LPCWSTR pwszUrl,
7746     BYTE *pbSecurityId,
7747     DWORD *pcbSecurityId,
7748     DWORD_PTR dwReserved);
7749 void __RPC_STUB IInternetSecurityManager_GetSecurityId_Stub(
7750     IRpcStubBuffer* This,
7751     IRpcChannelBuffer* pRpcChannelBuffer,
7752     PRPC_MESSAGE pRpcMessage,
7753     DWORD* pdwStubPhase);
7754 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_ProcessUrlAction_Proxy(
7755     IInternetSecurityManager* This,
7756     LPCWSTR pwszUrl,
7757     DWORD dwAction,
7758     BYTE *pPolicy,
7759     DWORD cbPolicy,
7760     BYTE *pContext,
7761     DWORD cbContext,
7762     DWORD dwFlags,
7763     DWORD dwReserved);
7764 void __RPC_STUB IInternetSecurityManager_ProcessUrlAction_Stub(
7765     IRpcStubBuffer* This,
7766     IRpcChannelBuffer* pRpcChannelBuffer,
7767     PRPC_MESSAGE pRpcMessage,
7768     DWORD* pdwStubPhase);
7769 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_QueryCustomPolicy_Proxy(
7770     IInternetSecurityManager* This,
7771     LPCWSTR pwszUrl,
7772     REFGUID guidKey,
7773     BYTE **ppPolicy,
7774     DWORD *pcbPolicy,
7775     BYTE *pContext,
7776     DWORD cbContext,
7777     DWORD dwReserved);
7778 void __RPC_STUB IInternetSecurityManager_QueryCustomPolicy_Stub(
7779     IRpcStubBuffer* This,
7780     IRpcChannelBuffer* pRpcChannelBuffer,
7781     PRPC_MESSAGE pRpcMessage,
7782     DWORD* pdwStubPhase);
7783 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_SetZoneMapping_Proxy(
7784     IInternetSecurityManager* This,
7785     DWORD dwZone,
7786     LPCWSTR lpszPattern,
7787     DWORD dwFlags);
7788 void __RPC_STUB IInternetSecurityManager_SetZoneMapping_Stub(
7789     IRpcStubBuffer* This,
7790     IRpcChannelBuffer* pRpcChannelBuffer,
7791     PRPC_MESSAGE pRpcMessage,
7792     DWORD* pdwStubPhase);
7793 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_GetZoneMappings_Proxy(
7794     IInternetSecurityManager* This,
7795     DWORD dwZone,
7796     IEnumString **ppenumString,
7797     DWORD dwFlags);
7798 void __RPC_STUB IInternetSecurityManager_GetZoneMappings_Stub(
7799     IRpcStubBuffer* This,
7800     IRpcChannelBuffer* pRpcChannelBuffer,
7801     PRPC_MESSAGE pRpcMessage,
7802     DWORD* pdwStubPhase);
7803 
7804 #endif  /* __IInternetSecurityManager_INTERFACE_DEFINED__ */
7805 
7806 #endif
7807 
7808 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
7809 #ifndef _LPINTERNETSECURITYMANANGEREX_DEFINED
7810 #define _LPINTERNETSECURITYMANANGEREX_DEFINED
7811 
7812 /*****************************************************************************
7813  * IInternetSecurityManagerEx interface
7814  */
7815 #ifndef __IInternetSecurityManagerEx_INTERFACE_DEFINED__
7816 #define __IInternetSecurityManagerEx_INTERFACE_DEFINED__
7817 
7818 DEFINE_GUID(IID_IInternetSecurityManagerEx, 0xf164edf1, 0xcc7c, 0x4f0d, 0x9a,0x94, 0x34,0x22,0x26,0x25,0xc3,0x93);
7819 #if defined(__cplusplus) && !defined(CINTERFACE)
7820 MIDL_INTERFACE("f164edf1-cc7c-4f0d-9a94-34222625c393")
7821 IInternetSecurityManagerEx : public IInternetSecurityManager
7822 {
7823     virtual HRESULT STDMETHODCALLTYPE ProcessUrlActionEx(
7824         LPCWSTR pwszUrl,
7825         DWORD dwAction,
7826         BYTE *pPolicy,
7827         DWORD cbPolicy,
7828         BYTE *pContext,
7829         DWORD cbContext,
7830         DWORD dwFlags,
7831         DWORD dwReserved,
7832         DWORD *pdwOutFlags) = 0;
7833 
7834 };
7835 #ifdef __CRT_UUID_DECL
7836 __CRT_UUID_DECL(IInternetSecurityManagerEx, 0xf164edf1, 0xcc7c, 0x4f0d, 0x9a,0x94, 0x34,0x22,0x26,0x25,0xc3,0x93)
7837 #endif
7838 #else
7839 typedef struct IInternetSecurityManagerExVtbl {
7840     BEGIN_INTERFACE
7841 
7842     /*** IUnknown methods ***/
7843     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7844         IInternetSecurityManagerEx* This,
7845         REFIID riid,
7846         void **ppvObject);
7847 
7848     ULONG (STDMETHODCALLTYPE *AddRef)(
7849         IInternetSecurityManagerEx* This);
7850 
7851     ULONG (STDMETHODCALLTYPE *Release)(
7852         IInternetSecurityManagerEx* This);
7853 
7854     /*** IInternetSecurityManager methods ***/
7855     HRESULT (STDMETHODCALLTYPE *SetSecuritySite)(
7856         IInternetSecurityManagerEx* This,
7857         IInternetSecurityMgrSite *pSite);
7858 
7859     HRESULT (STDMETHODCALLTYPE *GetSecuritySite)(
7860         IInternetSecurityManagerEx* This,
7861         IInternetSecurityMgrSite **ppSite);
7862 
7863     HRESULT (STDMETHODCALLTYPE *MapUrlToZone)(
7864         IInternetSecurityManagerEx* This,
7865         LPCWSTR pwszUrl,
7866         DWORD *pdwZone,
7867         DWORD dwFlags);
7868 
7869     HRESULT (STDMETHODCALLTYPE *GetSecurityId)(
7870         IInternetSecurityManagerEx* This,
7871         LPCWSTR pwszUrl,
7872         BYTE *pbSecurityId,
7873         DWORD *pcbSecurityId,
7874         DWORD_PTR dwReserved);
7875 
7876     HRESULT (STDMETHODCALLTYPE *ProcessUrlAction)(
7877         IInternetSecurityManagerEx* This,
7878         LPCWSTR pwszUrl,
7879         DWORD dwAction,
7880         BYTE *pPolicy,
7881         DWORD cbPolicy,
7882         BYTE *pContext,
7883         DWORD cbContext,
7884         DWORD dwFlags,
7885         DWORD dwReserved);
7886 
7887     HRESULT (STDMETHODCALLTYPE *QueryCustomPolicy)(
7888         IInternetSecurityManagerEx* This,
7889         LPCWSTR pwszUrl,
7890         REFGUID guidKey,
7891         BYTE **ppPolicy,
7892         DWORD *pcbPolicy,
7893         BYTE *pContext,
7894         DWORD cbContext,
7895         DWORD dwReserved);
7896 
7897     HRESULT (STDMETHODCALLTYPE *SetZoneMapping)(
7898         IInternetSecurityManagerEx* This,
7899         DWORD dwZone,
7900         LPCWSTR lpszPattern,
7901         DWORD dwFlags);
7902 
7903     HRESULT (STDMETHODCALLTYPE *GetZoneMappings)(
7904         IInternetSecurityManagerEx* This,
7905         DWORD dwZone,
7906         IEnumString **ppenumString,
7907         DWORD dwFlags);
7908 
7909     /*** IInternetSecurityManagerEx methods ***/
7910     HRESULT (STDMETHODCALLTYPE *ProcessUrlActionEx)(
7911         IInternetSecurityManagerEx* This,
7912         LPCWSTR pwszUrl,
7913         DWORD dwAction,
7914         BYTE *pPolicy,
7915         DWORD cbPolicy,
7916         BYTE *pContext,
7917         DWORD cbContext,
7918         DWORD dwFlags,
7919         DWORD dwReserved,
7920         DWORD *pdwOutFlags);
7921 
7922     END_INTERFACE
7923 } IInternetSecurityManagerExVtbl;
7924 interface IInternetSecurityManagerEx {
7925     CONST_VTBL IInternetSecurityManagerExVtbl* lpVtbl;
7926 };
7927 
7928 #ifdef COBJMACROS
7929 #ifndef WIDL_C_INLINE_WRAPPERS
7930 /*** IUnknown methods ***/
7931 #define IInternetSecurityManagerEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7932 #define IInternetSecurityManagerEx_AddRef(This) (This)->lpVtbl->AddRef(This)
7933 #define IInternetSecurityManagerEx_Release(This) (This)->lpVtbl->Release(This)
7934 /*** IInternetSecurityManager methods ***/
7935 #define IInternetSecurityManagerEx_SetSecuritySite(This,pSite) (This)->lpVtbl->SetSecuritySite(This,pSite)
7936 #define IInternetSecurityManagerEx_GetSecuritySite(This,ppSite) (This)->lpVtbl->GetSecuritySite(This,ppSite)
7937 #define IInternetSecurityManagerEx_MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) (This)->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags)
7938 #define IInternetSecurityManagerEx_GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved)
7939 #define IInternetSecurityManagerEx_ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) (This)->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
7940 #define IInternetSecurityManagerEx_QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
7941 #define IInternetSecurityManagerEx_SetZoneMapping(This,dwZone,lpszPattern,dwFlags) (This)->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags)
7942 #define IInternetSecurityManagerEx_GetZoneMappings(This,dwZone,ppenumString,dwFlags) (This)->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags)
7943 /*** IInternetSecurityManagerEx methods ***/
7944 #define IInternetSecurityManagerEx_ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags) (This)->lpVtbl->ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags)
7945 #else
7946 /*** IUnknown methods ***/
7947 static FORCEINLINE HRESULT IInternetSecurityManagerEx_QueryInterface(IInternetSecurityManagerEx* This,REFIID riid,void **ppvObject) {
7948     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7949 }
7950 static FORCEINLINE ULONG IInternetSecurityManagerEx_AddRef(IInternetSecurityManagerEx* This) {
7951     return This->lpVtbl->AddRef(This);
7952 }
7953 static FORCEINLINE ULONG IInternetSecurityManagerEx_Release(IInternetSecurityManagerEx* This) {
7954     return This->lpVtbl->Release(This);
7955 }
7956 /*** IInternetSecurityManager methods ***/
7957 static FORCEINLINE HRESULT IInternetSecurityManagerEx_SetSecuritySite(IInternetSecurityManagerEx* This,IInternetSecurityMgrSite *pSite) {
7958     return This->lpVtbl->SetSecuritySite(This,pSite);
7959 }
7960 static FORCEINLINE HRESULT IInternetSecurityManagerEx_GetSecuritySite(IInternetSecurityManagerEx* This,IInternetSecurityMgrSite **ppSite) {
7961     return This->lpVtbl->GetSecuritySite(This,ppSite);
7962 }
7963 static FORCEINLINE HRESULT IInternetSecurityManagerEx_MapUrlToZone(IInternetSecurityManagerEx* This,LPCWSTR pwszUrl,DWORD *pdwZone,DWORD dwFlags) {
7964     return This->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags);
7965 }
7966 static FORCEINLINE HRESULT IInternetSecurityManagerEx_GetSecurityId(IInternetSecurityManagerEx* This,LPCWSTR pwszUrl,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
7967     return This->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved);
7968 }
7969 static FORCEINLINE HRESULT IInternetSecurityManagerEx_ProcessUrlAction(IInternetSecurityManagerEx* This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved) {
7970     return This->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved);
7971 }
7972 static FORCEINLINE HRESULT IInternetSecurityManagerEx_QueryCustomPolicy(IInternetSecurityManagerEx* This,LPCWSTR pwszUrl,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved) {
7973     return This->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved);
7974 }
7975 static FORCEINLINE HRESULT IInternetSecurityManagerEx_SetZoneMapping(IInternetSecurityManagerEx* This,DWORD dwZone,LPCWSTR lpszPattern,DWORD dwFlags) {
7976     return This->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags);
7977 }
7978 static FORCEINLINE HRESULT IInternetSecurityManagerEx_GetZoneMappings(IInternetSecurityManagerEx* This,DWORD dwZone,IEnumString **ppenumString,DWORD dwFlags) {
7979     return This->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags);
7980 }
7981 /*** IInternetSecurityManagerEx methods ***/
7982 static FORCEINLINE HRESULT IInternetSecurityManagerEx_ProcessUrlActionEx(IInternetSecurityManagerEx* This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved,DWORD *pdwOutFlags) {
7983     return This->lpVtbl->ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags);
7984 }
7985 #endif
7986 #endif
7987 
7988 #endif
7989 
7990 HRESULT STDMETHODCALLTYPE IInternetSecurityManagerEx_ProcessUrlActionEx_Proxy(
7991     IInternetSecurityManagerEx* This,
7992     LPCWSTR pwszUrl,
7993     DWORD dwAction,
7994     BYTE *pPolicy,
7995     DWORD cbPolicy,
7996     BYTE *pContext,
7997     DWORD cbContext,
7998     DWORD dwFlags,
7999     DWORD dwReserved,
8000     DWORD *pdwOutFlags);
8001 void __RPC_STUB IInternetSecurityManagerEx_ProcessUrlActionEx_Stub(
8002     IRpcStubBuffer* This,
8003     IRpcChannelBuffer* pRpcChannelBuffer,
8004     PRPC_MESSAGE pRpcMessage,
8005     DWORD* pdwStubPhase);
8006 
8007 #endif  /* __IInternetSecurityManagerEx_INTERFACE_DEFINED__ */
8008 
8009 #endif
8010 #endif
8011 
8012 #if (_WIN32_IE >= _WIN32_IE_IE70)
8013 #ifndef _LPINTERNETSECURITYMANANGEREx2_DEFINED
8014 #define _LPINTERNETSECURITYMANANGEREx2_DEFINED
8015 
8016 /*****************************************************************************
8017  * IInternetSecurityManagerEx2 interface
8018  */
8019 #ifndef __IInternetSecurityManagerEx2_INTERFACE_DEFINED__
8020 #define __IInternetSecurityManagerEx2_INTERFACE_DEFINED__
8021 
8022 DEFINE_GUID(IID_IInternetSecurityManagerEx2, 0xf1e50292, 0xa795, 0x4117, 0x8e,0x09, 0x2b,0x56,0x0a,0x72,0xac,0x60);
8023 #if defined(__cplusplus) && !defined(CINTERFACE)
8024 MIDL_INTERFACE("f1e50292-a795-4117-8e09-2b560a72ac60")
8025 IInternetSecurityManagerEx2 : public IInternetSecurityManagerEx
8026 {
8027     virtual HRESULT STDMETHODCALLTYPE MapUrlToZoneEx2(
8028         IUri *pUri,
8029         DWORD *pdwZone,
8030         DWORD dwFlags,
8031         LPWSTR *ppwszMappedUrl,
8032         DWORD *pdwOutFlags) = 0;
8033 
8034     virtual HRESULT STDMETHODCALLTYPE ProcessUrlActionEx2(
8035         IUri *pUri,
8036         DWORD dwAction,
8037         BYTE *pPolicy,
8038         DWORD cbPolicy,
8039         BYTE *pContext,
8040         DWORD cbContext,
8041         DWORD dwFlags,
8042         DWORD_PTR dwReserved,
8043         DWORD *pdwOutFlags) = 0;
8044 
8045     virtual HRESULT STDMETHODCALLTYPE GetSecurityIdEx2(
8046         IUri *pUri,
8047         BYTE *pbSecurityId,
8048         DWORD *pcbSecurityId,
8049         DWORD_PTR dwReserved) = 0;
8050 
8051     virtual HRESULT STDMETHODCALLTYPE QueryCustomPolicyEx2(
8052         IUri *pUri,
8053         REFGUID guidKey,
8054         BYTE **ppPolicy,
8055         DWORD *pcbPolicy,
8056         BYTE *pContext,
8057         DWORD cbContext,
8058         DWORD_PTR dwReserved) = 0;
8059 
8060 };
8061 #ifdef __CRT_UUID_DECL
8062 __CRT_UUID_DECL(IInternetSecurityManagerEx2, 0xf1e50292, 0xa795, 0x4117, 0x8e,0x09, 0x2b,0x56,0x0a,0x72,0xac,0x60)
8063 #endif
8064 #else
8065 typedef struct IInternetSecurityManagerEx2Vtbl {
8066     BEGIN_INTERFACE
8067 
8068     /*** IUnknown methods ***/
8069     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8070         IInternetSecurityManagerEx2* This,
8071         REFIID riid,
8072         void **ppvObject);
8073 
8074     ULONG (STDMETHODCALLTYPE *AddRef)(
8075         IInternetSecurityManagerEx2* This);
8076 
8077     ULONG (STDMETHODCALLTYPE *Release)(
8078         IInternetSecurityManagerEx2* This);
8079 
8080     /*** IInternetSecurityManager methods ***/
8081     HRESULT (STDMETHODCALLTYPE *SetSecuritySite)(
8082         IInternetSecurityManagerEx2* This,
8083         IInternetSecurityMgrSite *pSite);
8084 
8085     HRESULT (STDMETHODCALLTYPE *GetSecuritySite)(
8086         IInternetSecurityManagerEx2* This,
8087         IInternetSecurityMgrSite **ppSite);
8088 
8089     HRESULT (STDMETHODCALLTYPE *MapUrlToZone)(
8090         IInternetSecurityManagerEx2* This,
8091         LPCWSTR pwszUrl,
8092         DWORD *pdwZone,
8093         DWORD dwFlags);
8094 
8095     HRESULT (STDMETHODCALLTYPE *GetSecurityId)(
8096         IInternetSecurityManagerEx2* This,
8097         LPCWSTR pwszUrl,
8098         BYTE *pbSecurityId,
8099         DWORD *pcbSecurityId,
8100         DWORD_PTR dwReserved);
8101 
8102     HRESULT (STDMETHODCALLTYPE *ProcessUrlAction)(
8103         IInternetSecurityManagerEx2* This,
8104         LPCWSTR pwszUrl,
8105         DWORD dwAction,
8106         BYTE *pPolicy,
8107         DWORD cbPolicy,
8108         BYTE *pContext,
8109         DWORD cbContext,
8110         DWORD dwFlags,
8111         DWORD dwReserved);
8112 
8113     HRESULT (STDMETHODCALLTYPE *QueryCustomPolicy)(
8114         IInternetSecurityManagerEx2* This,
8115         LPCWSTR pwszUrl,
8116         REFGUID guidKey,
8117         BYTE **ppPolicy,
8118         DWORD *pcbPolicy,
8119         BYTE *pContext,
8120         DWORD cbContext,
8121         DWORD dwReserved);
8122 
8123     HRESULT (STDMETHODCALLTYPE *SetZoneMapping)(
8124         IInternetSecurityManagerEx2* This,
8125         DWORD dwZone,
8126         LPCWSTR lpszPattern,
8127         DWORD dwFlags);
8128 
8129     HRESULT (STDMETHODCALLTYPE *GetZoneMappings)(
8130         IInternetSecurityManagerEx2* This,
8131         DWORD dwZone,
8132         IEnumString **ppenumString,
8133         DWORD dwFlags);
8134 
8135     /*** IInternetSecurityManagerEx methods ***/
8136     HRESULT (STDMETHODCALLTYPE *ProcessUrlActionEx)(
8137         IInternetSecurityManagerEx2* This,
8138         LPCWSTR pwszUrl,
8139         DWORD dwAction,
8140         BYTE *pPolicy,
8141         DWORD cbPolicy,
8142         BYTE *pContext,
8143         DWORD cbContext,
8144         DWORD dwFlags,
8145         DWORD dwReserved,
8146         DWORD *pdwOutFlags);
8147 
8148     /*** IInternetSecurityManagerEx2 methods ***/
8149     HRESULT (STDMETHODCALLTYPE *MapUrlToZoneEx2)(
8150         IInternetSecurityManagerEx2* This,
8151         IUri *pUri,
8152         DWORD *pdwZone,
8153         DWORD dwFlags,
8154         LPWSTR *ppwszMappedUrl,
8155         DWORD *pdwOutFlags);
8156 
8157     HRESULT (STDMETHODCALLTYPE *ProcessUrlActionEx2)(
8158         IInternetSecurityManagerEx2* This,
8159         IUri *pUri,
8160         DWORD dwAction,
8161         BYTE *pPolicy,
8162         DWORD cbPolicy,
8163         BYTE *pContext,
8164         DWORD cbContext,
8165         DWORD dwFlags,
8166         DWORD_PTR dwReserved,
8167         DWORD *pdwOutFlags);
8168 
8169     HRESULT (STDMETHODCALLTYPE *GetSecurityIdEx2)(
8170         IInternetSecurityManagerEx2* This,
8171         IUri *pUri,
8172         BYTE *pbSecurityId,
8173         DWORD *pcbSecurityId,
8174         DWORD_PTR dwReserved);
8175 
8176     HRESULT (STDMETHODCALLTYPE *QueryCustomPolicyEx2)(
8177         IInternetSecurityManagerEx2* This,
8178         IUri *pUri,
8179         REFGUID guidKey,
8180         BYTE **ppPolicy,
8181         DWORD *pcbPolicy,
8182         BYTE *pContext,
8183         DWORD cbContext,
8184         DWORD_PTR dwReserved);
8185 
8186     END_INTERFACE
8187 } IInternetSecurityManagerEx2Vtbl;
8188 interface IInternetSecurityManagerEx2 {
8189     CONST_VTBL IInternetSecurityManagerEx2Vtbl* lpVtbl;
8190 };
8191 
8192 #ifdef COBJMACROS
8193 #ifndef WIDL_C_INLINE_WRAPPERS
8194 /*** IUnknown methods ***/
8195 #define IInternetSecurityManagerEx2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8196 #define IInternetSecurityManagerEx2_AddRef(This) (This)->lpVtbl->AddRef(This)
8197 #define IInternetSecurityManagerEx2_Release(This) (This)->lpVtbl->Release(This)
8198 /*** IInternetSecurityManager methods ***/
8199 #define IInternetSecurityManagerEx2_SetSecuritySite(This,pSite) (This)->lpVtbl->SetSecuritySite(This,pSite)
8200 #define IInternetSecurityManagerEx2_GetSecuritySite(This,ppSite) (This)->lpVtbl->GetSecuritySite(This,ppSite)
8201 #define IInternetSecurityManagerEx2_MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) (This)->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags)
8202 #define IInternetSecurityManagerEx2_GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved)
8203 #define IInternetSecurityManagerEx2_ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) (This)->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
8204 #define IInternetSecurityManagerEx2_QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
8205 #define IInternetSecurityManagerEx2_SetZoneMapping(This,dwZone,lpszPattern,dwFlags) (This)->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags)
8206 #define IInternetSecurityManagerEx2_GetZoneMappings(This,dwZone,ppenumString,dwFlags) (This)->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags)
8207 /*** IInternetSecurityManagerEx methods ***/
8208 #define IInternetSecurityManagerEx2_ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags) (This)->lpVtbl->ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags)
8209 /*** IInternetSecurityManagerEx2 methods ***/
8210 #define IInternetSecurityManagerEx2_MapUrlToZoneEx2(This,pUri,pdwZone,dwFlags,ppwszMappedUrl,pdwOutFlags) (This)->lpVtbl->MapUrlToZoneEx2(This,pUri,pdwZone,dwFlags,ppwszMappedUrl,pdwOutFlags)
8211 #define IInternetSecurityManagerEx2_ProcessUrlActionEx2(This,pUri,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags) (This)->lpVtbl->ProcessUrlActionEx2(This,pUri,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags)
8212 #define IInternetSecurityManagerEx2_GetSecurityIdEx2(This,pUri,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityIdEx2(This,pUri,pbSecurityId,pcbSecurityId,dwReserved)
8213 #define IInternetSecurityManagerEx2_QueryCustomPolicyEx2(This,pUri,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicyEx2(This,pUri,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
8214 #else
8215 /*** IUnknown methods ***/
8216 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_QueryInterface(IInternetSecurityManagerEx2* This,REFIID riid,void **ppvObject) {
8217     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8218 }
8219 static FORCEINLINE ULONG IInternetSecurityManagerEx2_AddRef(IInternetSecurityManagerEx2* This) {
8220     return This->lpVtbl->AddRef(This);
8221 }
8222 static FORCEINLINE ULONG IInternetSecurityManagerEx2_Release(IInternetSecurityManagerEx2* This) {
8223     return This->lpVtbl->Release(This);
8224 }
8225 /*** IInternetSecurityManager methods ***/
8226 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_SetSecuritySite(IInternetSecurityManagerEx2* This,IInternetSecurityMgrSite *pSite) {
8227     return This->lpVtbl->SetSecuritySite(This,pSite);
8228 }
8229 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_GetSecuritySite(IInternetSecurityManagerEx2* This,IInternetSecurityMgrSite **ppSite) {
8230     return This->lpVtbl->GetSecuritySite(This,ppSite);
8231 }
8232 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_MapUrlToZone(IInternetSecurityManagerEx2* This,LPCWSTR pwszUrl,DWORD *pdwZone,DWORD dwFlags) {
8233     return This->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags);
8234 }
8235 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_GetSecurityId(IInternetSecurityManagerEx2* This,LPCWSTR pwszUrl,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
8236     return This->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved);
8237 }
8238 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_ProcessUrlAction(IInternetSecurityManagerEx2* This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved) {
8239     return This->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved);
8240 }
8241 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_QueryCustomPolicy(IInternetSecurityManagerEx2* This,LPCWSTR pwszUrl,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved) {
8242     return This->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved);
8243 }
8244 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_SetZoneMapping(IInternetSecurityManagerEx2* This,DWORD dwZone,LPCWSTR lpszPattern,DWORD dwFlags) {
8245     return This->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags);
8246 }
8247 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_GetZoneMappings(IInternetSecurityManagerEx2* This,DWORD dwZone,IEnumString **ppenumString,DWORD dwFlags) {
8248     return This->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags);
8249 }
8250 /*** IInternetSecurityManagerEx methods ***/
8251 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_ProcessUrlActionEx(IInternetSecurityManagerEx2* This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved,DWORD *pdwOutFlags) {
8252     return This->lpVtbl->ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags);
8253 }
8254 /*** IInternetSecurityManagerEx2 methods ***/
8255 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_MapUrlToZoneEx2(IInternetSecurityManagerEx2* This,IUri *pUri,DWORD *pdwZone,DWORD dwFlags,LPWSTR *ppwszMappedUrl,DWORD *pdwOutFlags) {
8256     return This->lpVtbl->MapUrlToZoneEx2(This,pUri,pdwZone,dwFlags,ppwszMappedUrl,pdwOutFlags);
8257 }
8258 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_ProcessUrlActionEx2(IInternetSecurityManagerEx2* This,IUri *pUri,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD_PTR dwReserved,DWORD *pdwOutFlags) {
8259     return This->lpVtbl->ProcessUrlActionEx2(This,pUri,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags);
8260 }
8261 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_GetSecurityIdEx2(IInternetSecurityManagerEx2* This,IUri *pUri,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
8262     return This->lpVtbl->GetSecurityIdEx2(This,pUri,pbSecurityId,pcbSecurityId,dwReserved);
8263 }
8264 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_QueryCustomPolicyEx2(IInternetSecurityManagerEx2* This,IUri *pUri,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD_PTR dwReserved) {
8265     return This->lpVtbl->QueryCustomPolicyEx2(This,pUri,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved);
8266 }
8267 #endif
8268 #endif
8269 
8270 #endif
8271 
8272 HRESULT STDMETHODCALLTYPE IInternetSecurityManagerEx2_MapUrlToZoneEx2_Proxy(
8273     IInternetSecurityManagerEx2* This,
8274     IUri *pUri,
8275     DWORD *pdwZone,
8276     DWORD dwFlags,
8277     LPWSTR *ppwszMappedUrl,
8278     DWORD *pdwOutFlags);
8279 void __RPC_STUB IInternetSecurityManagerEx2_MapUrlToZoneEx2_Stub(
8280     IRpcStubBuffer* This,
8281     IRpcChannelBuffer* pRpcChannelBuffer,
8282     PRPC_MESSAGE pRpcMessage,
8283     DWORD* pdwStubPhase);
8284 HRESULT STDMETHODCALLTYPE IInternetSecurityManagerEx2_ProcessUrlActionEx2_Proxy(
8285     IInternetSecurityManagerEx2* This,
8286     IUri *pUri,
8287     DWORD dwAction,
8288     BYTE *pPolicy,
8289     DWORD cbPolicy,
8290     BYTE *pContext,
8291     DWORD cbContext,
8292     DWORD dwFlags,
8293     DWORD_PTR dwReserved,
8294     DWORD *pdwOutFlags);
8295 void __RPC_STUB IInternetSecurityManagerEx2_ProcessUrlActionEx2_Stub(
8296     IRpcStubBuffer* This,
8297     IRpcChannelBuffer* pRpcChannelBuffer,
8298     PRPC_MESSAGE pRpcMessage,
8299     DWORD* pdwStubPhase);
8300 HRESULT STDMETHODCALLTYPE IInternetSecurityManagerEx2_GetSecurityIdEx2_Proxy(
8301     IInternetSecurityManagerEx2* This,
8302     IUri *pUri,
8303     BYTE *pbSecurityId,
8304     DWORD *pcbSecurityId,
8305     DWORD_PTR dwReserved);
8306 void __RPC_STUB IInternetSecurityManagerEx2_GetSecurityIdEx2_Stub(
8307     IRpcStubBuffer* This,
8308     IRpcChannelBuffer* pRpcChannelBuffer,
8309     PRPC_MESSAGE pRpcMessage,
8310     DWORD* pdwStubPhase);
8311 HRESULT STDMETHODCALLTYPE IInternetSecurityManagerEx2_QueryCustomPolicyEx2_Proxy(
8312     IInternetSecurityManagerEx2* This,
8313     IUri *pUri,
8314     REFGUID guidKey,
8315     BYTE **ppPolicy,
8316     DWORD *pcbPolicy,
8317     BYTE *pContext,
8318     DWORD cbContext,
8319     DWORD_PTR dwReserved);
8320 void __RPC_STUB IInternetSecurityManagerEx2_QueryCustomPolicyEx2_Stub(
8321     IRpcStubBuffer* This,
8322     IRpcChannelBuffer* pRpcChannelBuffer,
8323     PRPC_MESSAGE pRpcMessage,
8324     DWORD* pdwStubPhase);
8325 
8326 #endif  /* __IInternetSecurityManagerEx2_INTERFACE_DEFINED__ */
8327 
8328 #endif
8329 #endif
8330 
8331 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
8332 /*****************************************************************************
8333  * IZoneIdentifier interface
8334  */
8335 #ifndef __IZoneIdentifier_INTERFACE_DEFINED__
8336 #define __IZoneIdentifier_INTERFACE_DEFINED__
8337 
8338 DEFINE_GUID(IID_IZoneIdentifier, 0xcd45f185, 0x1b21, 0x48e2, 0x96,0x7b, 0xea,0xd7,0x43,0xa8,0x91,0x4e);
8339 #if defined(__cplusplus) && !defined(CINTERFACE)
8340 MIDL_INTERFACE("cd45f185-1b21-48e2-967b-ead743a8914e")
8341 IZoneIdentifier : public IUnknown
8342 {
8343     virtual HRESULT STDMETHODCALLTYPE GetId(
8344         DWORD *pdwZone) = 0;
8345 
8346     virtual HRESULT STDMETHODCALLTYPE SetId(
8347         DWORD dwZone) = 0;
8348 
8349     virtual HRESULT STDMETHODCALLTYPE Remove(
8350         ) = 0;
8351 
8352 };
8353 #ifdef __CRT_UUID_DECL
8354 __CRT_UUID_DECL(IZoneIdentifier, 0xcd45f185, 0x1b21, 0x48e2, 0x96,0x7b, 0xea,0xd7,0x43,0xa8,0x91,0x4e)
8355 #endif
8356 #else
8357 typedef struct IZoneIdentifierVtbl {
8358     BEGIN_INTERFACE
8359 
8360     /*** IUnknown methods ***/
8361     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8362         IZoneIdentifier* This,
8363         REFIID riid,
8364         void **ppvObject);
8365 
8366     ULONG (STDMETHODCALLTYPE *AddRef)(
8367         IZoneIdentifier* This);
8368 
8369     ULONG (STDMETHODCALLTYPE *Release)(
8370         IZoneIdentifier* This);
8371 
8372     /*** IZoneIdentifier methods ***/
8373     HRESULT (STDMETHODCALLTYPE *GetId)(
8374         IZoneIdentifier* This,
8375         DWORD *pdwZone);
8376 
8377     HRESULT (STDMETHODCALLTYPE *SetId)(
8378         IZoneIdentifier* This,
8379         DWORD dwZone);
8380 
8381     HRESULT (STDMETHODCALLTYPE *Remove)(
8382         IZoneIdentifier* This);
8383 
8384     END_INTERFACE
8385 } IZoneIdentifierVtbl;
8386 interface IZoneIdentifier {
8387     CONST_VTBL IZoneIdentifierVtbl* lpVtbl;
8388 };
8389 
8390 #ifdef COBJMACROS
8391 #ifndef WIDL_C_INLINE_WRAPPERS
8392 /*** IUnknown methods ***/
8393 #define IZoneIdentifier_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8394 #define IZoneIdentifier_AddRef(This) (This)->lpVtbl->AddRef(This)
8395 #define IZoneIdentifier_Release(This) (This)->lpVtbl->Release(This)
8396 /*** IZoneIdentifier methods ***/
8397 #define IZoneIdentifier_GetId(This,pdwZone) (This)->lpVtbl->GetId(This,pdwZone)
8398 #define IZoneIdentifier_SetId(This,dwZone) (This)->lpVtbl->SetId(This,dwZone)
8399 #define IZoneIdentifier_Remove(This) (This)->lpVtbl->Remove(This)
8400 #else
8401 /*** IUnknown methods ***/
8402 static FORCEINLINE HRESULT IZoneIdentifier_QueryInterface(IZoneIdentifier* This,REFIID riid,void **ppvObject) {
8403     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8404 }
8405 static FORCEINLINE ULONG IZoneIdentifier_AddRef(IZoneIdentifier* This) {
8406     return This->lpVtbl->AddRef(This);
8407 }
8408 static FORCEINLINE ULONG IZoneIdentifier_Release(IZoneIdentifier* This) {
8409     return This->lpVtbl->Release(This);
8410 }
8411 /*** IZoneIdentifier methods ***/
8412 static FORCEINLINE HRESULT IZoneIdentifier_GetId(IZoneIdentifier* This,DWORD *pdwZone) {
8413     return This->lpVtbl->GetId(This,pdwZone);
8414 }
8415 static FORCEINLINE HRESULT IZoneIdentifier_SetId(IZoneIdentifier* This,DWORD dwZone) {
8416     return This->lpVtbl->SetId(This,dwZone);
8417 }
8418 static FORCEINLINE HRESULT IZoneIdentifier_Remove(IZoneIdentifier* This) {
8419     return This->lpVtbl->Remove(This);
8420 }
8421 #endif
8422 #endif
8423 
8424 #endif
8425 
8426 HRESULT STDMETHODCALLTYPE IZoneIdentifier_GetId_Proxy(
8427     IZoneIdentifier* This,
8428     DWORD *pdwZone);
8429 void __RPC_STUB IZoneIdentifier_GetId_Stub(
8430     IRpcStubBuffer* This,
8431     IRpcChannelBuffer* pRpcChannelBuffer,
8432     PRPC_MESSAGE pRpcMessage,
8433     DWORD* pdwStubPhase);
8434 HRESULT STDMETHODCALLTYPE IZoneIdentifier_SetId_Proxy(
8435     IZoneIdentifier* This,
8436     DWORD dwZone);
8437 void __RPC_STUB IZoneIdentifier_SetId_Stub(
8438     IRpcStubBuffer* This,
8439     IRpcChannelBuffer* pRpcChannelBuffer,
8440     PRPC_MESSAGE pRpcMessage,
8441     DWORD* pdwStubPhase);
8442 HRESULT STDMETHODCALLTYPE IZoneIdentifier_Remove_Proxy(
8443     IZoneIdentifier* This);
8444 void __RPC_STUB IZoneIdentifier_Remove_Stub(
8445     IRpcStubBuffer* This,
8446     IRpcChannelBuffer* pRpcChannelBuffer,
8447     PRPC_MESSAGE pRpcMessage,
8448     DWORD* pdwStubPhase);
8449 
8450 #endif  /* __IZoneIdentifier_INTERFACE_DEFINED__ */
8451 
8452 #endif
8453 
8454 #ifndef _LPINTERNETHOSTSECURITYMANANGER_DEFINED
8455 #define _LPINTERNETHOSTSECURITYMANANGER_DEFINED
8456 
8457 /*****************************************************************************
8458  * IInternetHostSecurityManager interface
8459  */
8460 #ifndef __IInternetHostSecurityManager_INTERFACE_DEFINED__
8461 #define __IInternetHostSecurityManager_INTERFACE_DEFINED__
8462 
8463 DEFINE_GUID(IID_IInternetHostSecurityManager, 0x3af280b6, 0xcb3f, 0x11d0, 0x89,0x1e, 0x00,0xc0,0x4f,0xb6,0xbf,0xc4);
8464 #if defined(__cplusplus) && !defined(CINTERFACE)
8465 MIDL_INTERFACE("3af280b6-cb3f-11d0-891e-00c04fb6bfc4")
8466 IInternetHostSecurityManager : public IUnknown
8467 {
8468     virtual HRESULT STDMETHODCALLTYPE GetSecurityId(
8469         BYTE *pbSecurityId,
8470         DWORD *pcbSecurityId,
8471         DWORD_PTR dwReserved) = 0;
8472 
8473     virtual HRESULT STDMETHODCALLTYPE ProcessUrlAction(
8474         DWORD dwAction,
8475         BYTE *pPolicy,
8476         DWORD cbPolicy,
8477         BYTE *pContext,
8478         DWORD cbContext,
8479         DWORD dwFlags,
8480         DWORD dwReserved) = 0;
8481 
8482     virtual HRESULT STDMETHODCALLTYPE QueryCustomPolicy(
8483         REFGUID guidKey,
8484         BYTE **ppPolicy,
8485         DWORD *pcbPolicy,
8486         BYTE *pContext,
8487         DWORD cbContext,
8488         DWORD dwReserved) = 0;
8489 
8490 };
8491 #ifdef __CRT_UUID_DECL
8492 __CRT_UUID_DECL(IInternetHostSecurityManager, 0x3af280b6, 0xcb3f, 0x11d0, 0x89,0x1e, 0x00,0xc0,0x4f,0xb6,0xbf,0xc4)
8493 #endif
8494 #else
8495 typedef struct IInternetHostSecurityManagerVtbl {
8496     BEGIN_INTERFACE
8497 
8498     /*** IUnknown methods ***/
8499     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8500         IInternetHostSecurityManager* This,
8501         REFIID riid,
8502         void **ppvObject);
8503 
8504     ULONG (STDMETHODCALLTYPE *AddRef)(
8505         IInternetHostSecurityManager* This);
8506 
8507     ULONG (STDMETHODCALLTYPE *Release)(
8508         IInternetHostSecurityManager* This);
8509 
8510     /*** IInternetHostSecurityManager methods ***/
8511     HRESULT (STDMETHODCALLTYPE *GetSecurityId)(
8512         IInternetHostSecurityManager* This,
8513         BYTE *pbSecurityId,
8514         DWORD *pcbSecurityId,
8515         DWORD_PTR dwReserved);
8516 
8517     HRESULT (STDMETHODCALLTYPE *ProcessUrlAction)(
8518         IInternetHostSecurityManager* This,
8519         DWORD dwAction,
8520         BYTE *pPolicy,
8521         DWORD cbPolicy,
8522         BYTE *pContext,
8523         DWORD cbContext,
8524         DWORD dwFlags,
8525         DWORD dwReserved);
8526 
8527     HRESULT (STDMETHODCALLTYPE *QueryCustomPolicy)(
8528         IInternetHostSecurityManager* This,
8529         REFGUID guidKey,
8530         BYTE **ppPolicy,
8531         DWORD *pcbPolicy,
8532         BYTE *pContext,
8533         DWORD cbContext,
8534         DWORD dwReserved);
8535 
8536     END_INTERFACE
8537 } IInternetHostSecurityManagerVtbl;
8538 interface IInternetHostSecurityManager {
8539     CONST_VTBL IInternetHostSecurityManagerVtbl* lpVtbl;
8540 };
8541 
8542 #ifdef COBJMACROS
8543 #ifndef WIDL_C_INLINE_WRAPPERS
8544 /*** IUnknown methods ***/
8545 #define IInternetHostSecurityManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8546 #define IInternetHostSecurityManager_AddRef(This) (This)->lpVtbl->AddRef(This)
8547 #define IInternetHostSecurityManager_Release(This) (This)->lpVtbl->Release(This)
8548 /*** IInternetHostSecurityManager methods ***/
8549 #define IInternetHostSecurityManager_GetSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved)
8550 #define IInternetHostSecurityManager_ProcessUrlAction(This,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) (This)->lpVtbl->ProcessUrlAction(This,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
8551 #define IInternetHostSecurityManager_QueryCustomPolicy(This,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicy(This,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
8552 #else
8553 /*** IUnknown methods ***/
8554 static FORCEINLINE HRESULT IInternetHostSecurityManager_QueryInterface(IInternetHostSecurityManager* This,REFIID riid,void **ppvObject) {
8555     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8556 }
8557 static FORCEINLINE ULONG IInternetHostSecurityManager_AddRef(IInternetHostSecurityManager* This) {
8558     return This->lpVtbl->AddRef(This);
8559 }
8560 static FORCEINLINE ULONG IInternetHostSecurityManager_Release(IInternetHostSecurityManager* This) {
8561     return This->lpVtbl->Release(This);
8562 }
8563 /*** IInternetHostSecurityManager methods ***/
8564 static FORCEINLINE HRESULT IInternetHostSecurityManager_GetSecurityId(IInternetHostSecurityManager* This,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
8565     return This->lpVtbl->GetSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved);
8566 }
8567 static FORCEINLINE HRESULT IInternetHostSecurityManager_ProcessUrlAction(IInternetHostSecurityManager* This,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved) {
8568     return This->lpVtbl->ProcessUrlAction(This,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved);
8569 }
8570 static FORCEINLINE HRESULT IInternetHostSecurityManager_QueryCustomPolicy(IInternetHostSecurityManager* This,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved) {
8571     return This->lpVtbl->QueryCustomPolicy(This,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved);
8572 }
8573 #endif
8574 #endif
8575 
8576 #endif
8577 
8578 HRESULT STDMETHODCALLTYPE IInternetHostSecurityManager_GetSecurityId_Proxy(
8579     IInternetHostSecurityManager* This,
8580     BYTE *pbSecurityId,
8581     DWORD *pcbSecurityId,
8582     DWORD_PTR dwReserved);
8583 void __RPC_STUB IInternetHostSecurityManager_GetSecurityId_Stub(
8584     IRpcStubBuffer* This,
8585     IRpcChannelBuffer* pRpcChannelBuffer,
8586     PRPC_MESSAGE pRpcMessage,
8587     DWORD* pdwStubPhase);
8588 HRESULT STDMETHODCALLTYPE IInternetHostSecurityManager_ProcessUrlAction_Proxy(
8589     IInternetHostSecurityManager* This,
8590     DWORD dwAction,
8591     BYTE *pPolicy,
8592     DWORD cbPolicy,
8593     BYTE *pContext,
8594     DWORD cbContext,
8595     DWORD dwFlags,
8596     DWORD dwReserved);
8597 void __RPC_STUB IInternetHostSecurityManager_ProcessUrlAction_Stub(
8598     IRpcStubBuffer* This,
8599     IRpcChannelBuffer* pRpcChannelBuffer,
8600     PRPC_MESSAGE pRpcMessage,
8601     DWORD* pdwStubPhase);
8602 HRESULT STDMETHODCALLTYPE IInternetHostSecurityManager_QueryCustomPolicy_Proxy(
8603     IInternetHostSecurityManager* This,
8604     REFGUID guidKey,
8605     BYTE **ppPolicy,
8606     DWORD *pcbPolicy,
8607     BYTE *pContext,
8608     DWORD cbContext,
8609     DWORD dwReserved);
8610 void __RPC_STUB IInternetHostSecurityManager_QueryCustomPolicy_Stub(
8611     IRpcStubBuffer* This,
8612     IRpcChannelBuffer* pRpcChannelBuffer,
8613     PRPC_MESSAGE pRpcMessage,
8614     DWORD* pdwStubPhase);
8615 
8616 #endif  /* __IInternetHostSecurityManager_INTERFACE_DEFINED__ */
8617 
8618 #endif
8619 
8620 #define URLACTION_MIN 0x1000
8621 
8622 #define URLACTION_DOWNLOAD_MIN 0x1000
8623 #define URLACTION_DOWNLOAD_SIGNED_ACTIVEX 0x1001
8624 #define URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX 0x1004
8625 #define URLACTION_DOWNLOAD_CURR_MAX 0x1004
8626 #define URLACTION_DOWNLOAD_MAX 0x11FF
8627 
8628 #define URLACTION_ACTIVEX_MIN 0x1200
8629 #define URLACTION_ACTIVEX_RUN 0x1200
8630 #define URLPOLICY_ACTIVEX_CHECK_LIST 0x10000
8631 #define URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY 0x1201
8632 #define URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY 0x1202
8633 #define URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY 0x1203
8634 #define URLACTION_SCRIPT_OVERRIDE_SAFETY 0x1401
8635 #define URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY 0x1204
8636 #define URLACTION_ACTIVEX_TREATASUNTRUSTED 0x1205
8637 #define URLACTION_ACTIVEX_NO_WEBOC_SCRIPT 0x1206
8638 #define URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION 0x1207
8639 #define URLACTION_ACTIVEX_OVERRIDE_OPTIN 0x1208
8640 #define URLACTION_ACTIVEX_SCRIPTLET_RUN 0x1209
8641 #define URLACTION_ACTIVEX_DYNSRC_VIDEO_AND_ANIMATION 0x120A
8642 #define URLACTION_ACTIVEX_OVERRIDE_DOMAINLIST 0x120B
8643 #define URLACTION_ACTIVEX_CURR_MAX 0x120B
8644 #define URLACTION_ACTIVEX_MAX 0x13ff
8645 
8646 #define URLACTION_SCRIPT_MIN 0x1400
8647 #define URLACTION_SCRIPT_RUN 0x1400
8648 #define URLACTION_SCRIPT_JAVA_USE 0x1402
8649 #define URLACTION_SCRIPT_SAFE_ACTIVEX 0x1405
8650 #define URLACTION_CROSS_DOMAIN_DATA 0x1406
8651 #define URLACTION_SCRIPT_PASTE 0x1407
8652 #define URLACTION_ALLOW_XDOMAIN_SUBFRAME_RESIZE 0x1408
8653 #define URLACTION_SCRIPT_XSSFILTER 0x1409
8654 #define URLACTION_SCRIPT_NAVIGATE 0x140A
8655 #define URLACTION_PLUGGABLE_PROTOCOL_XHR 0x140B
8656 #define URLACTION_SCRIPT_CURR_MAX 0x140B
8657 #define URLACTION_SCRIPT_MAX 0x15ff
8658 
8659 #define URLACTION_HTML_MIN 0x1600
8660 #define URLACTION_HTML_SUBMIT_FORMS 0x1601
8661 #define URLACTION_HTML_SUBMIT_FORMS_FROM 0x1602
8662 #define URLACTION_HTML_SUBMIT_FORMS_TO 0x1603
8663 #define URLACTION_HTML_FONT_DOWNLOAD 0x1604
8664 #define URLACTION_HTML_JAVA_RUN 0x1605
8665 #define URLACTION_HTML_USERDATA_SAVE 0x1606
8666 #define URLACTION_HTML_SUBFRAME_NAVIGATE 0x1607
8667 #define URLACTION_HTML_META_REFRESH 0x1608
8668 #define URLACTION_HTML_MIXED_CONTENT 0x1609
8669 #define URLACTION_HTML_INCLUDE_FILE_PATH 0x160A
8670 #define URLACTION_HTML_ALLOW_INJECTED_DYNAMIC_HTML 0x160B
8671 #define URLACTION_HTML_REQUIRE_UTF8_DOCUMENT_CODEPAGE 0x160C
8672 #define URLACTION_HTML_ALLOW_CROSS_DOMAIN_CANVAS 0x160D
8673 #define URLACTION_HTML_ALLOW_WINDOW_CLOSE 0x160E
8674 #define URLACTION_HTML_ALLOW_CROSS_DOMAIN_WEBWORKER 0x160F
8675 #define URLACTION_HTML_ALLOW_CROSS_DOMAIN_TEXTTRACK 0x1610
8676 #define URLACTION_HTML_ALLOW_INDEXEDDB 0x1611
8677 
8678 #define URLACTION_HTML_MAX 0x17ff
8679 
8680 #define URLACTION_SHELL_MIN 0x1800
8681 #define URLACTION_SHELL_INSTALL_DTITEMS 0x1800
8682 #define URLACTION_SHELL_MOVE_OR_COPY 0x1802
8683 #define URLACTION_SHELL_FILE_DOWNLOAD 0x1803
8684 #define URLACTION_SHELL_VERB 0x1804
8685 #define URLACTION_SHELL_WEBVIEW_VERB 0x1805
8686 #define URLACTION_SHELL_SHELLEXECUTE 0x1806
8687 
8688 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
8689 #define URLACTION_SHELL_EXECUTE_HIGHRISK 0x1806
8690 #define URLACTION_SHELL_EXECUTE_MODRISK 0x1807
8691 #define URLACTION_SHELL_EXECUTE_LOWRISK 0x1808
8692 #define URLACTION_SHELL_POPUPMGR 0x1809
8693 #define URLACTION_SHELL_RTF_OBJECTS_LOAD 0x180A
8694 #define URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY 0x180B
8695 #define URLACTION_SHELL_EXTENSIONSECURITY 0x180C
8696 #define URLACTION_SHELL_SECURE_DRAGSOURCE 0x180D
8697 #endif
8698 #if (_WIN32_IE >= _WIN32_IE_WIN7)
8699 #define URLACTION_SHELL_REMOTEQUERY 0x180E
8700 #define URLACTION_SHELL_PREVIEW 0x180F
8701 #define URLACTION_SHELL_SHARE 0x1810
8702 #define URLACTION_SHELL_ALLOW_CROSS_SITE_SHARE 0x1811
8703 #endif
8704 #define URLACTION_SHELL_CURR_MAX 0x1811
8705 #define URLACTION_SHELL_MAX 0x19ff
8706 
8707 #define URLACTION_NETWORK_MIN 0x1A00
8708 
8709 #define URLACTION_CREDENTIALS_USE 0x1A00
8710 #define URLPOLICY_CREDENTIALS_SILENT_LOGON_OK 0x0
8711 #define URLPOLICY_CREDENTIALS_MUST_PROMPT_USER 0x10000
8712 #define URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT 0x20000
8713 #define URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY 0x30000
8714 
8715 #define URLACTION_AUTHENTICATE_CLIENT 0x1A01
8716 #define URLPOLICY_AUTHENTICATE_CLEARTEXT_OK 0x0
8717 #define URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE 0x10000
8718 #define URLPOLICY_AUTHENTICATE_MUTUAL_ONLY 0x30000
8719 
8720 #define URLACTION_COOKIES 0x1A02
8721 #define URLACTION_COOKIES_SESSION 0x1A03
8722 
8723 #define URLACTION_CLIENT_CERT_PROMPT 0x1A04
8724 
8725 #define URLACTION_COOKIES_THIRD_PARTY 0x1A05
8726 #define URLACTION_COOKIES_SESSION_THIRD_PARTY 0x1A06
8727 
8728 #define URLACTION_COOKIES_ENABLED 0x1A10
8729 
8730 #define URLACTION_NETWORK_CURR_MAX 0x1A10
8731 #define URLACTION_NETWORK_MAX 0x1Bff
8732 
8733 #define URLACTION_JAVA_MIN 0x1C00
8734 #define URLACTION_JAVA_PERMISSIONS 0x1C00
8735 #define URLPOLICY_JAVA_PROHIBIT 0x0
8736 #define URLPOLICY_JAVA_HIGH 0x10000
8737 #define URLPOLICY_JAVA_MEDIUM 0x20000
8738 #define URLPOLICY_JAVA_LOW 0x30000
8739 #define URLPOLICY_JAVA_CUSTOM 0x800000
8740 #define URLACTION_JAVA_CURR_MAX 0x1C00
8741 #define URLACTION_JAVA_MAX 0x1Cff
8742 
8743 #define URLACTION_INFODELIVERY_MIN 0x1D00
8744 #define URLACTION_INFODELIVERY_NO_ADDING_CHANNELS 0x1D00
8745 #define URLACTION_INFODELIVERY_NO_EDITING_CHANNELS 0x1D01
8746 #define URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS 0x1D02
8747 #define URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS 0x1D03
8748 #define URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS 0x1D04
8749 #define URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS 0x1D05
8750 #define URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING 0x1D06
8751 #define URLACTION_INFODELIVERY_CURR_MAX 0x1D06
8752 #define URLACTION_INFODELIVERY_MAX 0x1Dff
8753 #define URLACTION_CHANNEL_SOFTDIST_MIN 0x1E00
8754 #define URLACTION_CHANNEL_SOFTDIST_PERMISSIONS 0x1E05
8755 #define URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT 0x10000
8756 #define URLPOLICY_CHANNEL_SOFTDIST_PRECACHE 0x20000
8757 #define URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL 0x30000
8758 #define URLACTION_CHANNEL_SOFTDIST_MAX 0x1Eff
8759 #if (_WIN32_IE >= _WIN32_IE_IE80)
8760 #define URLACTION_DOTNET_USERCONTROLS 0x2005
8761 #endif
8762 
8763 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
8764 #define URLACTION_BEHAVIOR_MIN 0x2000
8765 #define URLACTION_BEHAVIOR_RUN 0x2000
8766 #define URLPOLICY_BEHAVIOR_CHECK_LIST 0x10000
8767 
8768 #define URLACTION_FEATURE_MIN 0x2100
8769 #define URLACTION_FEATURE_MIME_SNIFFING 0x2100
8770 #define URLACTION_FEATURE_ZONE_ELEVATION 0x2101
8771 #define URLACTION_FEATURE_WINDOW_RESTRICTIONS 0x2102
8772 #define URLACTION_FEATURE_SCRIPT_STATUS_BAR 0x2103
8773 #define URLACTION_FEATURE_FORCE_ADDR_AND_STATUS 0x2104
8774 #define URLACTION_FEATURE_BLOCK_INPUT_PROMPTS 0x2105
8775 #define URLACTION_FEATURE_DATA_BINDING 0x2106
8776 #define URLACTION_FEATURE_CROSSDOMAIN_FOCUS_CHANGE 0x2107
8777 
8778 #define URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN 0x2200
8779 #define URLACTION_AUTOMATIC_DOWNLOAD_UI 0x2200
8780 #define URLACTION_AUTOMATIC_ACTIVEX_UI 0x2201
8781 
8782 #define URLACTION_ALLOW_RESTRICTEDPROTOCOLS 0x2300
8783 #endif
8784 #if (_WIN32_IE >= _WIN32_IE_IE70)
8785 #define URLACTION_ALLOW_APEVALUATION 0x2301
8786 #define URLACTION_ALLOW_XHR_EVALUATION 0x2302
8787 #define URLACTION_WINDOWS_BROWSER_APPLICATIONS 0x2400
8788 #define URLACTION_XPS_DOCUMENTS 0x2401
8789 #define URLACTION_LOOSE_XAML 0x2402
8790 #define URLACTION_LOWRIGHTS 0x2500
8791 #define URLACTION_WINFX_SETUP 0x2600
8792 #define URLACTION_INPRIVATE_BLOCKING 0x2700
8793 #endif
8794 #define URLACTION_ALLOW_AUDIO_VIDEO 0x2701
8795 #define URLACTION_ALLOW_ACTIVEX_FILTERING 0x2702
8796 #define URLACTION_ALLOW_STRUCTURED_STORAGE_SNIFFING 0x2703
8797 #define URLACTION_ALLOW_AUDIO_VIDEO_PLUGINS 0x2704
8798 #define URLACTION_ALLOW_ZONE_ELEVATION_VIA_OPT_OUT 0x2705
8799 #define URLACTION_ALLOW_ZONE_ELEVATION_OPT_OUT_ADDITION 0x2706
8800 #define URLACTION_ALLOW_CROSSDOMAIN_DROP_WITHIN_WINDOW 0x2708
8801 #define URLACTION_ALLOW_CROSSDOMAIN_DROP_ACROSS_WINDOWS 0x2709
8802 #define URLACTION_ALLOW_CROSSDOMAIN_APPCACHE_MANIFEST 0x270A
8803 #define URLACTION_ALLOW_RENDER_LEGACY_DXTFILTERS 0x270B
8804 
8805 #define URLPOLICY_ALLOW 0x0
8806 #define URLPOLICY_QUERY 0x1
8807 #define URLPOLICY_DISALLOW 0x3
8808 #define URLPOLICY_NOTIFY_ON_ALLOW 0x10
8809 #define URLPOLICY_NOTIFY_ON_DISALLOW 0x20
8810 #define URLPOLICY_LOG_ON_ALLOW 0x40
8811 #define URLPOLICY_LOG_ON_DISALLOW 0x80
8812 
8813 #define URLPOLICY_MASK_PERMISSIONS 0x0f
8814 #define GetUrlPolicyPermissions(dw) (dw & URLPOLICY_MASK_PERMISSIONS)
8815 #define SetUrlPolicyPermissions(dw,dw2) ((dw) = ((dw) & ~(URLPOLICY_MASK_PERMISSIONS)) | (dw2))
8816 
8817 #define URLPOLICY_DONTCHECKDLGBOX 0x100
8818 
8819 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
8820 EXTERN_C const GUID GUID_CUSTOM_LOCALMACHINEZONEUNLOCKED;
8821 #endif
8822 
8823 #ifndef _LPINTERNETZONEMANAGER_DEFINED
8824 #define _LPINTERNETZONEMANAGER_DEFINED
8825 
8826 /*****************************************************************************
8827  * IInternetZoneManager interface
8828  */
8829 #ifndef __IInternetZoneManager_INTERFACE_DEFINED__
8830 #define __IInternetZoneManager_INTERFACE_DEFINED__
8831 
8832 typedef IInternetZoneManager *LPURLZONEMANAGER;
8833 
8834 typedef enum tagURLZONE {
8835     URLZONE_INVALID = -1,
8836     URLZONE_PREDEFINED_MIN = 0,
8837     URLZONE_LOCAL_MACHINE = 0,
8838     URLZONE_INTRANET = 1,
8839     URLZONE_TRUSTED = 2,
8840     URLZONE_INTERNET = 3,
8841     URLZONE_UNTRUSTED = 4,
8842     URLZONE_PREDEFINED_MAX = 999,
8843     URLZONE_USER_MIN = 1000,
8844     URLZONE_USER_MAX = 10000
8845 } URLZONE;
8846 
8847 #define URLZONE_ESC_FLAG 0x100
8848 
8849 typedef enum tagURLTEMPLATE {
8850     URLTEMPLATE_CUSTOM = 0x0,
8851     URLTEMPLATE_PREDEFINED_MIN = 0x10000,
8852     URLTEMPLATE_LOW = 0x10000,
8853     URLTEMPLATE_MEDLOW = 0x10500,
8854     URLTEMPLATE_MEDIUM = 0x11000,
8855     URLTEMPLATE_MEDHIGH = 0x11500,
8856     URLTEMPLATE_HIGH = 0x12000,
8857     URLTEMPLATE_PREDEFINED_MAX = 0x20000
8858 } URLTEMPLATE;
8859 
8860 enum {
8861     MAX_ZONE_PATH = 260,
8862     MAX_ZONE_DESCRIPTION = 200
8863 };
8864 
8865 
8866 typedef enum __WIDL_urlmon_generated_name_00000011 {
8867     ZAFLAGS_CUSTOM_EDIT = 0x1,
8868     ZAFLAGS_ADD_SITES = 0x2,
8869     ZAFLAGS_REQUIRE_VERIFICATION = 0x4,
8870     ZAFLAGS_INCLUDE_PROXY_OVERRIDE = 0x8,
8871     ZAFLAGS_INCLUDE_INTRANET_SITES = 0x10,
8872     ZAFLAGS_NO_UI = 0x20,
8873     ZAFLAGS_SUPPORTS_VERIFICATION = 0x40,
8874     ZAFLAGS_UNC_AS_INTRANET = 0x80,
8875     ZAFLAGS_DETECT_INTRANET = 0x100,
8876     ZAFLAGS_USE_LOCKED_ZONES = 0x10000,
8877     ZAFLAGS_VERIFY_TEMPLATE_SETTINGS = 0x20000,
8878     ZAFLAGS_NO_CACHE = 0x40000
8879 } ZAFLAGS;
8880 
8881 typedef struct _ZONEATTRIBUTES {
8882     ULONG cbSize;
8883     WCHAR szDisplayName[260];
8884     WCHAR szDescription[200];
8885     WCHAR szIconPath[260];
8886     DWORD dwTemplateMinLevel;
8887     DWORD dwTemplateRecommended;
8888     DWORD dwTemplateCurrentLevel;
8889     DWORD dwFlags;
8890 } ZONEATTRIBUTES;
8891 typedef struct _ZONEATTRIBUTES *LPZONEATTRIBUTES;
8892 
8893 
8894 typedef enum _URLZONEREG {
8895     URLZONEREG_DEFAULT = 0,
8896     URLZONEREG_HKLM = 1,
8897     URLZONEREG_HKCU = 2
8898 } URLZONEREG;
8899 
8900 DEFINE_GUID(IID_IInternetZoneManager, 0x79eac9ef, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
8901 #if defined(__cplusplus) && !defined(CINTERFACE)
8902 MIDL_INTERFACE("79eac9ef-baf9-11ce-8c82-00aa004ba90b")
8903 IInternetZoneManager : public IUnknown
8904 {
8905     virtual HRESULT STDMETHODCALLTYPE GetZoneAttributes(
8906         DWORD dwZone,
8907         ZONEATTRIBUTES *pZoneAttributes) = 0;
8908 
8909     virtual HRESULT STDMETHODCALLTYPE SetZoneAttributes(
8910         DWORD dwZone,
8911         ZONEATTRIBUTES *pZoneAttributes) = 0;
8912 
8913     virtual HRESULT STDMETHODCALLTYPE GetZoneCustomPolicy(
8914         DWORD dwZone,
8915         REFGUID guidKey,
8916         BYTE **ppPolicy,
8917         DWORD *pcbPolicy,
8918         URLZONEREG urlZoneReg) = 0;
8919 
8920     virtual HRESULT STDMETHODCALLTYPE SetZoneCustomPolicy(
8921         DWORD dwZone,
8922         REFGUID guidKey,
8923         BYTE *pPolicy,
8924         DWORD cbPolicy,
8925         URLZONEREG urlZoneReg) = 0;
8926 
8927     virtual HRESULT STDMETHODCALLTYPE GetZoneActionPolicy(
8928         DWORD dwZone,
8929         DWORD dwAction,
8930         BYTE *pPolicy,
8931         DWORD cbPolicy,
8932         URLZONEREG urlZoneReg) = 0;
8933 
8934     virtual HRESULT STDMETHODCALLTYPE SetZoneActionPolicy(
8935         DWORD dwZone,
8936         DWORD dwAction,
8937         BYTE *pPolicy,
8938         DWORD cbPolicy,
8939         URLZONEREG urlZoneReg) = 0;
8940 
8941     virtual HRESULT STDMETHODCALLTYPE PromptAction(
8942         DWORD dwAction,
8943         HWND hwndParent,
8944         LPCWSTR pwszUrl,
8945         LPCWSTR pwszText,
8946         DWORD dwPromptFlags) = 0;
8947 
8948     virtual HRESULT STDMETHODCALLTYPE LogAction(
8949         DWORD dwAction,
8950         LPCWSTR pwszUrl,
8951         LPCWSTR pwszText,
8952         DWORD dwLogFlags) = 0;
8953 
8954     virtual HRESULT STDMETHODCALLTYPE CreateZoneEnumerator(
8955         DWORD *pdwEnum,
8956         DWORD *pdwCount,
8957         DWORD dwFlags) = 0;
8958 
8959     virtual HRESULT STDMETHODCALLTYPE GetZoneAt(
8960         DWORD dwEnum,
8961         DWORD dwIndex,
8962         DWORD *pdwZone) = 0;
8963 
8964     virtual HRESULT STDMETHODCALLTYPE DestroyZoneEnumerator(
8965         DWORD dwEnum) = 0;
8966 
8967     virtual HRESULT STDMETHODCALLTYPE CopyTemplatePoliciesToZone(
8968         DWORD dwTemplate,
8969         DWORD dwZone,
8970         DWORD dwReserved) = 0;
8971 
8972 };
8973 #ifdef __CRT_UUID_DECL
8974 __CRT_UUID_DECL(IInternetZoneManager, 0x79eac9ef, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
8975 #endif
8976 #else
8977 typedef struct IInternetZoneManagerVtbl {
8978     BEGIN_INTERFACE
8979 
8980     /*** IUnknown methods ***/
8981     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8982         IInternetZoneManager* This,
8983         REFIID riid,
8984         void **ppvObject);
8985 
8986     ULONG (STDMETHODCALLTYPE *AddRef)(
8987         IInternetZoneManager* This);
8988 
8989     ULONG (STDMETHODCALLTYPE *Release)(
8990         IInternetZoneManager* This);
8991 
8992     /*** IInternetZoneManager methods ***/
8993     HRESULT (STDMETHODCALLTYPE *GetZoneAttributes)(
8994         IInternetZoneManager* This,
8995         DWORD dwZone,
8996         ZONEATTRIBUTES *pZoneAttributes);
8997 
8998     HRESULT (STDMETHODCALLTYPE *SetZoneAttributes)(
8999         IInternetZoneManager* This,
9000         DWORD dwZone,
9001         ZONEATTRIBUTES *pZoneAttributes);
9002 
9003     HRESULT (STDMETHODCALLTYPE *GetZoneCustomPolicy)(
9004         IInternetZoneManager* This,
9005         DWORD dwZone,
9006         REFGUID guidKey,
9007         BYTE **ppPolicy,
9008         DWORD *pcbPolicy,
9009         URLZONEREG urlZoneReg);
9010 
9011     HRESULT (STDMETHODCALLTYPE *SetZoneCustomPolicy)(
9012         IInternetZoneManager* This,
9013         DWORD dwZone,
9014         REFGUID guidKey,
9015         BYTE *pPolicy,
9016         DWORD cbPolicy,
9017         URLZONEREG urlZoneReg);
9018 
9019     HRESULT (STDMETHODCALLTYPE *GetZoneActionPolicy)(
9020         IInternetZoneManager* This,
9021         DWORD dwZone,
9022         DWORD dwAction,
9023         BYTE *pPolicy,
9024         DWORD cbPolicy,
9025         URLZONEREG urlZoneReg);
9026 
9027     HRESULT (STDMETHODCALLTYPE *SetZoneActionPolicy)(
9028         IInternetZoneManager* This,
9029         DWORD dwZone,
9030         DWORD dwAction,
9031         BYTE *pPolicy,
9032         DWORD cbPolicy,
9033         URLZONEREG urlZoneReg);
9034 
9035     HRESULT (STDMETHODCALLTYPE *PromptAction)(
9036         IInternetZoneManager* This,
9037         DWORD dwAction,
9038         HWND hwndParent,
9039         LPCWSTR pwszUrl,
9040         LPCWSTR pwszText,
9041         DWORD dwPromptFlags);
9042 
9043     HRESULT (STDMETHODCALLTYPE *LogAction)(
9044         IInternetZoneManager* This,
9045         DWORD dwAction,
9046         LPCWSTR pwszUrl,
9047         LPCWSTR pwszText,
9048         DWORD dwLogFlags);
9049 
9050     HRESULT (STDMETHODCALLTYPE *CreateZoneEnumerator)(
9051         IInternetZoneManager* This,
9052         DWORD *pdwEnum,
9053         DWORD *pdwCount,
9054         DWORD dwFlags);
9055 
9056     HRESULT (STDMETHODCALLTYPE *GetZoneAt)(
9057         IInternetZoneManager* This,
9058         DWORD dwEnum,
9059         DWORD dwIndex,
9060         DWORD *pdwZone);
9061 
9062     HRESULT (STDMETHODCALLTYPE *DestroyZoneEnumerator)(
9063         IInternetZoneManager* This,
9064         DWORD dwEnum);
9065 
9066     HRESULT (STDMETHODCALLTYPE *CopyTemplatePoliciesToZone)(
9067         IInternetZoneManager* This,
9068         DWORD dwTemplate,
9069         DWORD dwZone,
9070         DWORD dwReserved);
9071 
9072     END_INTERFACE
9073 } IInternetZoneManagerVtbl;
9074 interface IInternetZoneManager {
9075     CONST_VTBL IInternetZoneManagerVtbl* lpVtbl;
9076 };
9077 
9078 #ifdef COBJMACROS
9079 #ifndef WIDL_C_INLINE_WRAPPERS
9080 /*** IUnknown methods ***/
9081 #define IInternetZoneManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9082 #define IInternetZoneManager_AddRef(This) (This)->lpVtbl->AddRef(This)
9083 #define IInternetZoneManager_Release(This) (This)->lpVtbl->Release(This)
9084 /*** IInternetZoneManager methods ***/
9085 #define IInternetZoneManager_GetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes)
9086 #define IInternetZoneManager_SetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes)
9087 #define IInternetZoneManager_GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg)
9088 #define IInternetZoneManager_SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg)
9089 #define IInternetZoneManager_GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
9090 #define IInternetZoneManager_SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
9091 #define IInternetZoneManager_PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) (This)->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags)
9092 #define IInternetZoneManager_LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) (This)->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags)
9093 #define IInternetZoneManager_CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) (This)->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags)
9094 #define IInternetZoneManager_GetZoneAt(This,dwEnum,dwIndex,pdwZone) (This)->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone)
9095 #define IInternetZoneManager_DestroyZoneEnumerator(This,dwEnum) (This)->lpVtbl->DestroyZoneEnumerator(This,dwEnum)
9096 #define IInternetZoneManager_CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) (This)->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved)
9097 #else
9098 /*** IUnknown methods ***/
9099 static FORCEINLINE HRESULT IInternetZoneManager_QueryInterface(IInternetZoneManager* This,REFIID riid,void **ppvObject) {
9100     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9101 }
9102 static FORCEINLINE ULONG IInternetZoneManager_AddRef(IInternetZoneManager* This) {
9103     return This->lpVtbl->AddRef(This);
9104 }
9105 static FORCEINLINE ULONG IInternetZoneManager_Release(IInternetZoneManager* This) {
9106     return This->lpVtbl->Release(This);
9107 }
9108 /*** IInternetZoneManager methods ***/
9109 static FORCEINLINE HRESULT IInternetZoneManager_GetZoneAttributes(IInternetZoneManager* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) {
9110     return This->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes);
9111 }
9112 static FORCEINLINE HRESULT IInternetZoneManager_SetZoneAttributes(IInternetZoneManager* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) {
9113     return This->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes);
9114 }
9115 static FORCEINLINE HRESULT IInternetZoneManager_GetZoneCustomPolicy(IInternetZoneManager* This,DWORD dwZone,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,URLZONEREG urlZoneReg) {
9116     return This->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg);
9117 }
9118 static FORCEINLINE HRESULT IInternetZoneManager_SetZoneCustomPolicy(IInternetZoneManager* This,DWORD dwZone,REFGUID guidKey,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
9119     return This->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg);
9120 }
9121 static FORCEINLINE HRESULT IInternetZoneManager_GetZoneActionPolicy(IInternetZoneManager* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
9122     return This->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg);
9123 }
9124 static FORCEINLINE HRESULT IInternetZoneManager_SetZoneActionPolicy(IInternetZoneManager* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
9125     return This->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg);
9126 }
9127 static FORCEINLINE HRESULT IInternetZoneManager_PromptAction(IInternetZoneManager* This,DWORD dwAction,HWND hwndParent,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwPromptFlags) {
9128     return This->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags);
9129 }
9130 static FORCEINLINE HRESULT IInternetZoneManager_LogAction(IInternetZoneManager* This,DWORD dwAction,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwLogFlags) {
9131     return This->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags);
9132 }
9133 static FORCEINLINE HRESULT IInternetZoneManager_CreateZoneEnumerator(IInternetZoneManager* This,DWORD *pdwEnum,DWORD *pdwCount,DWORD dwFlags) {
9134     return This->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags);
9135 }
9136 static FORCEINLINE HRESULT IInternetZoneManager_GetZoneAt(IInternetZoneManager* This,DWORD dwEnum,DWORD dwIndex,DWORD *pdwZone) {
9137     return This->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone);
9138 }
9139 static FORCEINLINE HRESULT IInternetZoneManager_DestroyZoneEnumerator(IInternetZoneManager* This,DWORD dwEnum) {
9140     return This->lpVtbl->DestroyZoneEnumerator(This,dwEnum);
9141 }
9142 static FORCEINLINE HRESULT IInternetZoneManager_CopyTemplatePoliciesToZone(IInternetZoneManager* This,DWORD dwTemplate,DWORD dwZone,DWORD dwReserved) {
9143     return This->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved);
9144 }
9145 #endif
9146 #endif
9147 
9148 #endif
9149 
9150 HRESULT STDMETHODCALLTYPE IInternetZoneManager_GetZoneAttributes_Proxy(
9151     IInternetZoneManager* This,
9152     DWORD dwZone,
9153     ZONEATTRIBUTES *pZoneAttributes);
9154 void __RPC_STUB IInternetZoneManager_GetZoneAttributes_Stub(
9155     IRpcStubBuffer* This,
9156     IRpcChannelBuffer* pRpcChannelBuffer,
9157     PRPC_MESSAGE pRpcMessage,
9158     DWORD* pdwStubPhase);
9159 HRESULT STDMETHODCALLTYPE IInternetZoneManager_SetZoneAttributes_Proxy(
9160     IInternetZoneManager* This,
9161     DWORD dwZone,
9162     ZONEATTRIBUTES *pZoneAttributes);
9163 void __RPC_STUB IInternetZoneManager_SetZoneAttributes_Stub(
9164     IRpcStubBuffer* This,
9165     IRpcChannelBuffer* pRpcChannelBuffer,
9166     PRPC_MESSAGE pRpcMessage,
9167     DWORD* pdwStubPhase);
9168 HRESULT STDMETHODCALLTYPE IInternetZoneManager_GetZoneCustomPolicy_Proxy(
9169     IInternetZoneManager* This,
9170     DWORD dwZone,
9171     REFGUID guidKey,
9172     BYTE **ppPolicy,
9173     DWORD *pcbPolicy,
9174     URLZONEREG urlZoneReg);
9175 void __RPC_STUB IInternetZoneManager_GetZoneCustomPolicy_Stub(
9176     IRpcStubBuffer* This,
9177     IRpcChannelBuffer* pRpcChannelBuffer,
9178     PRPC_MESSAGE pRpcMessage,
9179     DWORD* pdwStubPhase);
9180 HRESULT STDMETHODCALLTYPE IInternetZoneManager_SetZoneCustomPolicy_Proxy(
9181     IInternetZoneManager* This,
9182     DWORD dwZone,
9183     REFGUID guidKey,
9184     BYTE *pPolicy,
9185     DWORD cbPolicy,
9186     URLZONEREG urlZoneReg);
9187 void __RPC_STUB IInternetZoneManager_SetZoneCustomPolicy_Stub(
9188     IRpcStubBuffer* This,
9189     IRpcChannelBuffer* pRpcChannelBuffer,
9190     PRPC_MESSAGE pRpcMessage,
9191     DWORD* pdwStubPhase);
9192 HRESULT STDMETHODCALLTYPE IInternetZoneManager_GetZoneActionPolicy_Proxy(
9193     IInternetZoneManager* This,
9194     DWORD dwZone,
9195     DWORD dwAction,
9196     BYTE *pPolicy,
9197     DWORD cbPolicy,
9198     URLZONEREG urlZoneReg);
9199 void __RPC_STUB IInternetZoneManager_GetZoneActionPolicy_Stub(
9200     IRpcStubBuffer* This,
9201     IRpcChannelBuffer* pRpcChannelBuffer,
9202     PRPC_MESSAGE pRpcMessage,
9203     DWORD* pdwStubPhase);
9204 HRESULT STDMETHODCALLTYPE IInternetZoneManager_SetZoneActionPolicy_Proxy(
9205     IInternetZoneManager* This,
9206     DWORD dwZone,
9207     DWORD dwAction,
9208     BYTE *pPolicy,
9209     DWORD cbPolicy,
9210     URLZONEREG urlZoneReg);
9211 void __RPC_STUB IInternetZoneManager_SetZoneActionPolicy_Stub(
9212     IRpcStubBuffer* This,
9213     IRpcChannelBuffer* pRpcChannelBuffer,
9214     PRPC_MESSAGE pRpcMessage,
9215     DWORD* pdwStubPhase);
9216 HRESULT STDMETHODCALLTYPE IInternetZoneManager_PromptAction_Proxy(
9217     IInternetZoneManager* This,
9218     DWORD dwAction,
9219     HWND hwndParent,
9220     LPCWSTR pwszUrl,
9221     LPCWSTR pwszText,
9222     DWORD dwPromptFlags);
9223 void __RPC_STUB IInternetZoneManager_PromptAction_Stub(
9224     IRpcStubBuffer* This,
9225     IRpcChannelBuffer* pRpcChannelBuffer,
9226     PRPC_MESSAGE pRpcMessage,
9227     DWORD* pdwStubPhase);
9228 HRESULT STDMETHODCALLTYPE IInternetZoneManager_LogAction_Proxy(
9229     IInternetZoneManager* This,
9230     DWORD dwAction,
9231     LPCWSTR pwszUrl,
9232     LPCWSTR pwszText,
9233     DWORD dwLogFlags);
9234 void __RPC_STUB IInternetZoneManager_LogAction_Stub(
9235     IRpcStubBuffer* This,
9236     IRpcChannelBuffer* pRpcChannelBuffer,
9237     PRPC_MESSAGE pRpcMessage,
9238     DWORD* pdwStubPhase);
9239 HRESULT STDMETHODCALLTYPE IInternetZoneManager_CreateZoneEnumerator_Proxy(
9240     IInternetZoneManager* This,
9241     DWORD *pdwEnum,
9242     DWORD *pdwCount,
9243     DWORD dwFlags);
9244 void __RPC_STUB IInternetZoneManager_CreateZoneEnumerator_Stub(
9245     IRpcStubBuffer* This,
9246     IRpcChannelBuffer* pRpcChannelBuffer,
9247     PRPC_MESSAGE pRpcMessage,
9248     DWORD* pdwStubPhase);
9249 HRESULT STDMETHODCALLTYPE IInternetZoneManager_GetZoneAt_Proxy(
9250     IInternetZoneManager* This,
9251     DWORD dwEnum,
9252     DWORD dwIndex,
9253     DWORD *pdwZone);
9254 void __RPC_STUB IInternetZoneManager_GetZoneAt_Stub(
9255     IRpcStubBuffer* This,
9256     IRpcChannelBuffer* pRpcChannelBuffer,
9257     PRPC_MESSAGE pRpcMessage,
9258     DWORD* pdwStubPhase);
9259 HRESULT STDMETHODCALLTYPE IInternetZoneManager_DestroyZoneEnumerator_Proxy(
9260     IInternetZoneManager* This,
9261     DWORD dwEnum);
9262 void __RPC_STUB IInternetZoneManager_DestroyZoneEnumerator_Stub(
9263     IRpcStubBuffer* This,
9264     IRpcChannelBuffer* pRpcChannelBuffer,
9265     PRPC_MESSAGE pRpcMessage,
9266     DWORD* pdwStubPhase);
9267 HRESULT STDMETHODCALLTYPE IInternetZoneManager_CopyTemplatePoliciesToZone_Proxy(
9268     IInternetZoneManager* This,
9269     DWORD dwTemplate,
9270     DWORD dwZone,
9271     DWORD dwReserved);
9272 void __RPC_STUB IInternetZoneManager_CopyTemplatePoliciesToZone_Stub(
9273     IRpcStubBuffer* This,
9274     IRpcChannelBuffer* pRpcChannelBuffer,
9275     PRPC_MESSAGE pRpcMessage,
9276     DWORD* pdwStubPhase);
9277 
9278 #endif  /* __IInternetZoneManager_INTERFACE_DEFINED__ */
9279 
9280 #endif
9281 
9282 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
9283 #ifndef _LPINTERNETZONEMANAGEREX_DEFINED
9284 #define _LPINTERNETZONEMANAGEREX_DEFINED
9285 
9286 /*****************************************************************************
9287  * IInternetZoneManagerEx interface
9288  */
9289 #ifndef __IInternetZoneManagerEx_INTERFACE_DEFINED__
9290 #define __IInternetZoneManagerEx_INTERFACE_DEFINED__
9291 
9292 DEFINE_GUID(IID_IInternetZoneManagerEx, 0xa4c23339, 0x8e06, 0x431e, 0x9b,0xf4, 0x7e,0x71,0x1c,0x08,0x56,0x48);
9293 #if defined(__cplusplus) && !defined(CINTERFACE)
9294 MIDL_INTERFACE("a4c23339-8e06-431e-9bf4-7e711c085648")
9295 IInternetZoneManagerEx : public IInternetZoneManager
9296 {
9297     virtual HRESULT STDMETHODCALLTYPE GetZoneActionPolicyEx(
9298         DWORD dwZone,
9299         DWORD dwAction,
9300         BYTE *pPolicy,
9301         DWORD cbPolicy,
9302         URLZONEREG urlZoneReg,
9303         DWORD dwFlags) = 0;
9304 
9305     virtual HRESULT STDMETHODCALLTYPE SetZoneActionPolicyEx(
9306         DWORD dwZone,
9307         DWORD dwAction,
9308         BYTE *pPolicy,
9309         DWORD cbPolicy,
9310         URLZONEREG urlZoneReg,
9311         DWORD dwFlags) = 0;
9312 
9313 };
9314 #ifdef __CRT_UUID_DECL
9315 __CRT_UUID_DECL(IInternetZoneManagerEx, 0xa4c23339, 0x8e06, 0x431e, 0x9b,0xf4, 0x7e,0x71,0x1c,0x08,0x56,0x48)
9316 #endif
9317 #else
9318 typedef struct IInternetZoneManagerExVtbl {
9319     BEGIN_INTERFACE
9320 
9321     /*** IUnknown methods ***/
9322     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9323         IInternetZoneManagerEx* This,
9324         REFIID riid,
9325         void **ppvObject);
9326 
9327     ULONG (STDMETHODCALLTYPE *AddRef)(
9328         IInternetZoneManagerEx* This);
9329 
9330     ULONG (STDMETHODCALLTYPE *Release)(
9331         IInternetZoneManagerEx* This);
9332 
9333     /*** IInternetZoneManager methods ***/
9334     HRESULT (STDMETHODCALLTYPE *GetZoneAttributes)(
9335         IInternetZoneManagerEx* This,
9336         DWORD dwZone,
9337         ZONEATTRIBUTES *pZoneAttributes);
9338 
9339     HRESULT (STDMETHODCALLTYPE *SetZoneAttributes)(
9340         IInternetZoneManagerEx* This,
9341         DWORD dwZone,
9342         ZONEATTRIBUTES *pZoneAttributes);
9343 
9344     HRESULT (STDMETHODCALLTYPE *GetZoneCustomPolicy)(
9345         IInternetZoneManagerEx* This,
9346         DWORD dwZone,
9347         REFGUID guidKey,
9348         BYTE **ppPolicy,
9349         DWORD *pcbPolicy,
9350         URLZONEREG urlZoneReg);
9351 
9352     HRESULT (STDMETHODCALLTYPE *SetZoneCustomPolicy)(
9353         IInternetZoneManagerEx* This,
9354         DWORD dwZone,
9355         REFGUID guidKey,
9356         BYTE *pPolicy,
9357         DWORD cbPolicy,
9358         URLZONEREG urlZoneReg);
9359 
9360     HRESULT (STDMETHODCALLTYPE *GetZoneActionPolicy)(
9361         IInternetZoneManagerEx* This,
9362         DWORD dwZone,
9363         DWORD dwAction,
9364         BYTE *pPolicy,
9365         DWORD cbPolicy,
9366         URLZONEREG urlZoneReg);
9367 
9368     HRESULT (STDMETHODCALLTYPE *SetZoneActionPolicy)(
9369         IInternetZoneManagerEx* This,
9370         DWORD dwZone,
9371         DWORD dwAction,
9372         BYTE *pPolicy,
9373         DWORD cbPolicy,
9374         URLZONEREG urlZoneReg);
9375 
9376     HRESULT (STDMETHODCALLTYPE *PromptAction)(
9377         IInternetZoneManagerEx* This,
9378         DWORD dwAction,
9379         HWND hwndParent,
9380         LPCWSTR pwszUrl,
9381         LPCWSTR pwszText,
9382         DWORD dwPromptFlags);
9383 
9384     HRESULT (STDMETHODCALLTYPE *LogAction)(
9385         IInternetZoneManagerEx* This,
9386         DWORD dwAction,
9387         LPCWSTR pwszUrl,
9388         LPCWSTR pwszText,
9389         DWORD dwLogFlags);
9390 
9391     HRESULT (STDMETHODCALLTYPE *CreateZoneEnumerator)(
9392         IInternetZoneManagerEx* This,
9393         DWORD *pdwEnum,
9394         DWORD *pdwCount,
9395         DWORD dwFlags);
9396 
9397     HRESULT (STDMETHODCALLTYPE *GetZoneAt)(
9398         IInternetZoneManagerEx* This,
9399         DWORD dwEnum,
9400         DWORD dwIndex,
9401         DWORD *pdwZone);
9402 
9403     HRESULT (STDMETHODCALLTYPE *DestroyZoneEnumerator)(
9404         IInternetZoneManagerEx* This,
9405         DWORD dwEnum);
9406 
9407     HRESULT (STDMETHODCALLTYPE *CopyTemplatePoliciesToZone)(
9408         IInternetZoneManagerEx* This,
9409         DWORD dwTemplate,
9410         DWORD dwZone,
9411         DWORD dwReserved);
9412 
9413     /*** IInternetZoneManagerEx methods ***/
9414     HRESULT (STDMETHODCALLTYPE *GetZoneActionPolicyEx)(
9415         IInternetZoneManagerEx* This,
9416         DWORD dwZone,
9417         DWORD dwAction,
9418         BYTE *pPolicy,
9419         DWORD cbPolicy,
9420         URLZONEREG urlZoneReg,
9421         DWORD dwFlags);
9422 
9423     HRESULT (STDMETHODCALLTYPE *SetZoneActionPolicyEx)(
9424         IInternetZoneManagerEx* This,
9425         DWORD dwZone,
9426         DWORD dwAction,
9427         BYTE *pPolicy,
9428         DWORD cbPolicy,
9429         URLZONEREG urlZoneReg,
9430         DWORD dwFlags);
9431 
9432     END_INTERFACE
9433 } IInternetZoneManagerExVtbl;
9434 interface IInternetZoneManagerEx {
9435     CONST_VTBL IInternetZoneManagerExVtbl* lpVtbl;
9436 };
9437 
9438 #ifdef COBJMACROS
9439 #ifndef WIDL_C_INLINE_WRAPPERS
9440 /*** IUnknown methods ***/
9441 #define IInternetZoneManagerEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9442 #define IInternetZoneManagerEx_AddRef(This) (This)->lpVtbl->AddRef(This)
9443 #define IInternetZoneManagerEx_Release(This) (This)->lpVtbl->Release(This)
9444 /*** IInternetZoneManager methods ***/
9445 #define IInternetZoneManagerEx_GetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes)
9446 #define IInternetZoneManagerEx_SetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes)
9447 #define IInternetZoneManagerEx_GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg)
9448 #define IInternetZoneManagerEx_SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg)
9449 #define IInternetZoneManagerEx_GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
9450 #define IInternetZoneManagerEx_SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
9451 #define IInternetZoneManagerEx_PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) (This)->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags)
9452 #define IInternetZoneManagerEx_LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) (This)->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags)
9453 #define IInternetZoneManagerEx_CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) (This)->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags)
9454 #define IInternetZoneManagerEx_GetZoneAt(This,dwEnum,dwIndex,pdwZone) (This)->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone)
9455 #define IInternetZoneManagerEx_DestroyZoneEnumerator(This,dwEnum) (This)->lpVtbl->DestroyZoneEnumerator(This,dwEnum)
9456 #define IInternetZoneManagerEx_CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) (This)->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved)
9457 /*** IInternetZoneManagerEx methods ***/
9458 #define IInternetZoneManagerEx_GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) (This)->lpVtbl->GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags)
9459 #define IInternetZoneManagerEx_SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) (This)->lpVtbl->SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags)
9460 #else
9461 /*** IUnknown methods ***/
9462 static FORCEINLINE HRESULT IInternetZoneManagerEx_QueryInterface(IInternetZoneManagerEx* This,REFIID riid,void **ppvObject) {
9463     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9464 }
9465 static FORCEINLINE ULONG IInternetZoneManagerEx_AddRef(IInternetZoneManagerEx* This) {
9466     return This->lpVtbl->AddRef(This);
9467 }
9468 static FORCEINLINE ULONG IInternetZoneManagerEx_Release(IInternetZoneManagerEx* This) {
9469     return This->lpVtbl->Release(This);
9470 }
9471 /*** IInternetZoneManager methods ***/
9472 static FORCEINLINE HRESULT IInternetZoneManagerEx_GetZoneAttributes(IInternetZoneManagerEx* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) {
9473     return This->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes);
9474 }
9475 static FORCEINLINE HRESULT IInternetZoneManagerEx_SetZoneAttributes(IInternetZoneManagerEx* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) {
9476     return This->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes);
9477 }
9478 static FORCEINLINE HRESULT IInternetZoneManagerEx_GetZoneCustomPolicy(IInternetZoneManagerEx* This,DWORD dwZone,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,URLZONEREG urlZoneReg) {
9479     return This->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg);
9480 }
9481 static FORCEINLINE HRESULT IInternetZoneManagerEx_SetZoneCustomPolicy(IInternetZoneManagerEx* This,DWORD dwZone,REFGUID guidKey,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
9482     return This->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg);
9483 }
9484 static FORCEINLINE HRESULT IInternetZoneManagerEx_GetZoneActionPolicy(IInternetZoneManagerEx* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
9485     return This->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg);
9486 }
9487 static FORCEINLINE HRESULT IInternetZoneManagerEx_SetZoneActionPolicy(IInternetZoneManagerEx* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
9488     return This->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg);
9489 }
9490 static FORCEINLINE HRESULT IInternetZoneManagerEx_PromptAction(IInternetZoneManagerEx* This,DWORD dwAction,HWND hwndParent,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwPromptFlags) {
9491     return This->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags);
9492 }
9493 static FORCEINLINE HRESULT IInternetZoneManagerEx_LogAction(IInternetZoneManagerEx* This,DWORD dwAction,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwLogFlags) {
9494     return This->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags);
9495 }
9496 static FORCEINLINE HRESULT IInternetZoneManagerEx_CreateZoneEnumerator(IInternetZoneManagerEx* This,DWORD *pdwEnum,DWORD *pdwCount,DWORD dwFlags) {
9497     return This->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags);
9498 }
9499 static FORCEINLINE HRESULT IInternetZoneManagerEx_GetZoneAt(IInternetZoneManagerEx* This,DWORD dwEnum,DWORD dwIndex,DWORD *pdwZone) {
9500     return This->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone);
9501 }
9502 static FORCEINLINE HRESULT IInternetZoneManagerEx_DestroyZoneEnumerator(IInternetZoneManagerEx* This,DWORD dwEnum) {
9503     return This->lpVtbl->DestroyZoneEnumerator(This,dwEnum);
9504 }
9505 static FORCEINLINE HRESULT IInternetZoneManagerEx_CopyTemplatePoliciesToZone(IInternetZoneManagerEx* This,DWORD dwTemplate,DWORD dwZone,DWORD dwReserved) {
9506     return This->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved);
9507 }
9508 /*** IInternetZoneManagerEx methods ***/
9509 static FORCEINLINE HRESULT IInternetZoneManagerEx_GetZoneActionPolicyEx(IInternetZoneManagerEx* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags) {
9510     return This->lpVtbl->GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags);
9511 }
9512 static FORCEINLINE HRESULT IInternetZoneManagerEx_SetZoneActionPolicyEx(IInternetZoneManagerEx* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags) {
9513     return This->lpVtbl->SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags);
9514 }
9515 #endif
9516 #endif
9517 
9518 #endif
9519 
9520 HRESULT STDMETHODCALLTYPE IInternetZoneManagerEx_GetZoneActionPolicyEx_Proxy(
9521     IInternetZoneManagerEx* This,
9522     DWORD dwZone,
9523     DWORD dwAction,
9524     BYTE *pPolicy,
9525     DWORD cbPolicy,
9526     URLZONEREG urlZoneReg,
9527     DWORD dwFlags);
9528 void __RPC_STUB IInternetZoneManagerEx_GetZoneActionPolicyEx_Stub(
9529     IRpcStubBuffer* This,
9530     IRpcChannelBuffer* pRpcChannelBuffer,
9531     PRPC_MESSAGE pRpcMessage,
9532     DWORD* pdwStubPhase);
9533 HRESULT STDMETHODCALLTYPE IInternetZoneManagerEx_SetZoneActionPolicyEx_Proxy(
9534     IInternetZoneManagerEx* This,
9535     DWORD dwZone,
9536     DWORD dwAction,
9537     BYTE *pPolicy,
9538     DWORD cbPolicy,
9539     URLZONEREG urlZoneReg,
9540     DWORD dwFlags);
9541 void __RPC_STUB IInternetZoneManagerEx_SetZoneActionPolicyEx_Stub(
9542     IRpcStubBuffer* This,
9543     IRpcChannelBuffer* pRpcChannelBuffer,
9544     PRPC_MESSAGE pRpcMessage,
9545     DWORD* pdwStubPhase);
9546 
9547 #endif  /* __IInternetZoneManagerEx_INTERFACE_DEFINED__ */
9548 
9549 #endif
9550 #endif
9551 
9552 #if (_WIN32_IE >= _WIN32_IE_IE70)
9553 #ifndef _LPINTERNETZONEMANAGEREX2_DEFINED
9554 #define _LPINTERNETZONEMANAGEREX2_DEFINED
9555 
9556 #define SECURITY_IE_STATE_GREEN 0x0
9557 #define SECURITY_IE_STATE_RED 0x1
9558 
9559 /*****************************************************************************
9560  * IInternetZoneManagerEx2 interface
9561  */
9562 #ifndef __IInternetZoneManagerEx2_INTERFACE_DEFINED__
9563 #define __IInternetZoneManagerEx2_INTERFACE_DEFINED__
9564 
9565 DEFINE_GUID(IID_IInternetZoneManagerEx2, 0xedc17559, 0xdd5d, 0x4846, 0x8e,0xef, 0x8b,0xec,0xba,0x5a,0x4a,0xbf);
9566 #if defined(__cplusplus) && !defined(CINTERFACE)
9567 MIDL_INTERFACE("edc17559-dd5d-4846-8eef-8becba5a4abf")
9568 IInternetZoneManagerEx2 : public IInternetZoneManagerEx
9569 {
9570     virtual HRESULT STDMETHODCALLTYPE GetZoneAttributesEx(
9571         DWORD dwZone,
9572         ZONEATTRIBUTES *pZoneAttributes,
9573         DWORD dwFlags) = 0;
9574 
9575     virtual HRESULT STDMETHODCALLTYPE GetZoneSecurityState(
9576         DWORD dwZoneIndex,
9577         WINBOOL fRespectPolicy,
9578         LPDWORD pdwState,
9579         WINBOOL *pfPolicyEncountered) = 0;
9580 
9581     virtual HRESULT STDMETHODCALLTYPE GetIESecurityState(
9582         WINBOOL fRespectPolicy,
9583         LPDWORD pdwState,
9584         WINBOOL *pfPolicyEncountered,
9585         WINBOOL fNoCache) = 0;
9586 
9587     virtual HRESULT STDMETHODCALLTYPE FixUnsecureSettings(
9588         ) = 0;
9589 
9590 };
9591 #ifdef __CRT_UUID_DECL
9592 __CRT_UUID_DECL(IInternetZoneManagerEx2, 0xedc17559, 0xdd5d, 0x4846, 0x8e,0xef, 0x8b,0xec,0xba,0x5a,0x4a,0xbf)
9593 #endif
9594 #else
9595 typedef struct IInternetZoneManagerEx2Vtbl {
9596     BEGIN_INTERFACE
9597 
9598     /*** IUnknown methods ***/
9599     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9600         IInternetZoneManagerEx2* This,
9601         REFIID riid,
9602         void **ppvObject);
9603 
9604     ULONG (STDMETHODCALLTYPE *AddRef)(
9605         IInternetZoneManagerEx2* This);
9606 
9607     ULONG (STDMETHODCALLTYPE *Release)(
9608         IInternetZoneManagerEx2* This);
9609 
9610     /*** IInternetZoneManager methods ***/
9611     HRESULT (STDMETHODCALLTYPE *GetZoneAttributes)(
9612         IInternetZoneManagerEx2* This,
9613         DWORD dwZone,
9614         ZONEATTRIBUTES *pZoneAttributes);
9615 
9616     HRESULT (STDMETHODCALLTYPE *SetZoneAttributes)(
9617         IInternetZoneManagerEx2* This,
9618         DWORD dwZone,
9619         ZONEATTRIBUTES *pZoneAttributes);
9620 
9621     HRESULT (STDMETHODCALLTYPE *GetZoneCustomPolicy)(
9622         IInternetZoneManagerEx2* This,
9623         DWORD dwZone,
9624         REFGUID guidKey,
9625         BYTE **ppPolicy,
9626         DWORD *pcbPolicy,
9627         URLZONEREG urlZoneReg);
9628 
9629     HRESULT (STDMETHODCALLTYPE *SetZoneCustomPolicy)(
9630         IInternetZoneManagerEx2* This,
9631         DWORD dwZone,
9632         REFGUID guidKey,
9633         BYTE *pPolicy,
9634         DWORD cbPolicy,
9635         URLZONEREG urlZoneReg);
9636 
9637     HRESULT (STDMETHODCALLTYPE *GetZoneActionPolicy)(
9638         IInternetZoneManagerEx2* This,
9639         DWORD dwZone,
9640         DWORD dwAction,
9641         BYTE *pPolicy,
9642         DWORD cbPolicy,
9643         URLZONEREG urlZoneReg);
9644 
9645     HRESULT (STDMETHODCALLTYPE *SetZoneActionPolicy)(
9646         IInternetZoneManagerEx2* This,
9647         DWORD dwZone,
9648         DWORD dwAction,
9649         BYTE *pPolicy,
9650         DWORD cbPolicy,
9651         URLZONEREG urlZoneReg);
9652 
9653     HRESULT (STDMETHODCALLTYPE *PromptAction)(
9654         IInternetZoneManagerEx2* This,
9655         DWORD dwAction,
9656         HWND hwndParent,
9657         LPCWSTR pwszUrl,
9658         LPCWSTR pwszText,
9659         DWORD dwPromptFlags);
9660 
9661     HRESULT (STDMETHODCALLTYPE *LogAction)(
9662         IInternetZoneManagerEx2* This,
9663         DWORD dwAction,
9664         LPCWSTR pwszUrl,
9665         LPCWSTR pwszText,
9666         DWORD dwLogFlags);
9667 
9668     HRESULT (STDMETHODCALLTYPE *CreateZoneEnumerator)(
9669         IInternetZoneManagerEx2* This,
9670         DWORD *pdwEnum,
9671         DWORD *pdwCount,
9672         DWORD dwFlags);
9673 
9674     HRESULT (STDMETHODCALLTYPE *GetZoneAt)(
9675         IInternetZoneManagerEx2* This,
9676         DWORD dwEnum,
9677         DWORD dwIndex,
9678         DWORD *pdwZone);
9679 
9680     HRESULT (STDMETHODCALLTYPE *DestroyZoneEnumerator)(
9681         IInternetZoneManagerEx2* This,
9682         DWORD dwEnum);
9683 
9684     HRESULT (STDMETHODCALLTYPE *CopyTemplatePoliciesToZone)(
9685         IInternetZoneManagerEx2* This,
9686         DWORD dwTemplate,
9687         DWORD dwZone,
9688         DWORD dwReserved);
9689 
9690     /*** IInternetZoneManagerEx methods ***/
9691     HRESULT (STDMETHODCALLTYPE *GetZoneActionPolicyEx)(
9692         IInternetZoneManagerEx2* This,
9693         DWORD dwZone,
9694         DWORD dwAction,
9695         BYTE *pPolicy,
9696         DWORD cbPolicy,
9697         URLZONEREG urlZoneReg,
9698         DWORD dwFlags);
9699 
9700     HRESULT (STDMETHODCALLTYPE *SetZoneActionPolicyEx)(
9701         IInternetZoneManagerEx2* This,
9702         DWORD dwZone,
9703         DWORD dwAction,
9704         BYTE *pPolicy,
9705         DWORD cbPolicy,
9706         URLZONEREG urlZoneReg,
9707         DWORD dwFlags);
9708 
9709     /*** IInternetZoneManagerEx2 methods ***/
9710     HRESULT (STDMETHODCALLTYPE *GetZoneAttributesEx)(
9711         IInternetZoneManagerEx2* This,
9712         DWORD dwZone,
9713         ZONEATTRIBUTES *pZoneAttributes,
9714         DWORD dwFlags);
9715 
9716     HRESULT (STDMETHODCALLTYPE *GetZoneSecurityState)(
9717         IInternetZoneManagerEx2* This,
9718         DWORD dwZoneIndex,
9719         WINBOOL fRespectPolicy,
9720         LPDWORD pdwState,
9721         WINBOOL *pfPolicyEncountered);
9722 
9723     HRESULT (STDMETHODCALLTYPE *GetIESecurityState)(
9724         IInternetZoneManagerEx2* This,
9725         WINBOOL fRespectPolicy,
9726         LPDWORD pdwState,
9727         WINBOOL *pfPolicyEncountered,
9728         WINBOOL fNoCache);
9729 
9730     HRESULT (STDMETHODCALLTYPE *FixUnsecureSettings)(
9731         IInternetZoneManagerEx2* This);
9732 
9733     END_INTERFACE
9734 } IInternetZoneManagerEx2Vtbl;
9735 interface IInternetZoneManagerEx2 {
9736     CONST_VTBL IInternetZoneManagerEx2Vtbl* lpVtbl;
9737 };
9738 
9739 #ifdef COBJMACROS
9740 #ifndef WIDL_C_INLINE_WRAPPERS
9741 /*** IUnknown methods ***/
9742 #define IInternetZoneManagerEx2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9743 #define IInternetZoneManagerEx2_AddRef(This) (This)->lpVtbl->AddRef(This)
9744 #define IInternetZoneManagerEx2_Release(This) (This)->lpVtbl->Release(This)
9745 /*** IInternetZoneManager methods ***/
9746 #define IInternetZoneManagerEx2_GetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes)
9747 #define IInternetZoneManagerEx2_SetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes)
9748 #define IInternetZoneManagerEx2_GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg)
9749 #define IInternetZoneManagerEx2_SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg)
9750 #define IInternetZoneManagerEx2_GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
9751 #define IInternetZoneManagerEx2_SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
9752 #define IInternetZoneManagerEx2_PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) (This)->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags)
9753 #define IInternetZoneManagerEx2_LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) (This)->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags)
9754 #define IInternetZoneManagerEx2_CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) (This)->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags)
9755 #define IInternetZoneManagerEx2_GetZoneAt(This,dwEnum,dwIndex,pdwZone) (This)->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone)
9756 #define IInternetZoneManagerEx2_DestroyZoneEnumerator(This,dwEnum) (This)->lpVtbl->DestroyZoneEnumerator(This,dwEnum)
9757 #define IInternetZoneManagerEx2_CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) (This)->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved)
9758 /*** IInternetZoneManagerEx methods ***/
9759 #define IInternetZoneManagerEx2_GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) (This)->lpVtbl->GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags)
9760 #define IInternetZoneManagerEx2_SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) (This)->lpVtbl->SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags)
9761 /*** IInternetZoneManagerEx2 methods ***/
9762 #define IInternetZoneManagerEx2_GetZoneAttributesEx(This,dwZone,pZoneAttributes,dwFlags) (This)->lpVtbl->GetZoneAttributesEx(This,dwZone,pZoneAttributes,dwFlags)
9763 #define IInternetZoneManagerEx2_GetZoneSecurityState(This,dwZoneIndex,fRespectPolicy,pdwState,pfPolicyEncountered) (This)->lpVtbl->GetZoneSecurityState(This,dwZoneIndex,fRespectPolicy,pdwState,pfPolicyEncountered)
9764 #define IInternetZoneManagerEx2_GetIESecurityState(This,fRespectPolicy,pdwState,pfPolicyEncountered,fNoCache) (This)->lpVtbl->GetIESecurityState(This,fRespectPolicy,pdwState,pfPolicyEncountered,fNoCache)
9765 #define IInternetZoneManagerEx2_FixUnsecureSettings(This) (This)->lpVtbl->FixUnsecureSettings(This)
9766 #else
9767 /*** IUnknown methods ***/
9768 static FORCEINLINE HRESULT IInternetZoneManagerEx2_QueryInterface(IInternetZoneManagerEx2* This,REFIID riid,void **ppvObject) {
9769     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9770 }
9771 static FORCEINLINE ULONG IInternetZoneManagerEx2_AddRef(IInternetZoneManagerEx2* This) {
9772     return This->lpVtbl->AddRef(This);
9773 }
9774 static FORCEINLINE ULONG IInternetZoneManagerEx2_Release(IInternetZoneManagerEx2* This) {
9775     return This->lpVtbl->Release(This);
9776 }
9777 /*** IInternetZoneManager methods ***/
9778 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneAttributes(IInternetZoneManagerEx2* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) {
9779     return This->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes);
9780 }
9781 static FORCEINLINE HRESULT IInternetZoneManagerEx2_SetZoneAttributes(IInternetZoneManagerEx2* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) {
9782     return This->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes);
9783 }
9784 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneCustomPolicy(IInternetZoneManagerEx2* This,DWORD dwZone,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,URLZONEREG urlZoneReg) {
9785     return This->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg);
9786 }
9787 static FORCEINLINE HRESULT IInternetZoneManagerEx2_SetZoneCustomPolicy(IInternetZoneManagerEx2* This,DWORD dwZone,REFGUID guidKey,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
9788     return This->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg);
9789 }
9790 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneActionPolicy(IInternetZoneManagerEx2* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
9791     return This->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg);
9792 }
9793 static FORCEINLINE HRESULT IInternetZoneManagerEx2_SetZoneActionPolicy(IInternetZoneManagerEx2* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
9794     return This->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg);
9795 }
9796 static FORCEINLINE HRESULT IInternetZoneManagerEx2_PromptAction(IInternetZoneManagerEx2* This,DWORD dwAction,HWND hwndParent,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwPromptFlags) {
9797     return This->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags);
9798 }
9799 static FORCEINLINE HRESULT IInternetZoneManagerEx2_LogAction(IInternetZoneManagerEx2* This,DWORD dwAction,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwLogFlags) {
9800     return This->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags);
9801 }
9802 static FORCEINLINE HRESULT IInternetZoneManagerEx2_CreateZoneEnumerator(IInternetZoneManagerEx2* This,DWORD *pdwEnum,DWORD *pdwCount,DWORD dwFlags) {
9803     return This->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags);
9804 }
9805 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneAt(IInternetZoneManagerEx2* This,DWORD dwEnum,DWORD dwIndex,DWORD *pdwZone) {
9806     return This->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone);
9807 }
9808 static FORCEINLINE HRESULT IInternetZoneManagerEx2_DestroyZoneEnumerator(IInternetZoneManagerEx2* This,DWORD dwEnum) {
9809     return This->lpVtbl->DestroyZoneEnumerator(This,dwEnum);
9810 }
9811 static FORCEINLINE HRESULT IInternetZoneManagerEx2_CopyTemplatePoliciesToZone(IInternetZoneManagerEx2* This,DWORD dwTemplate,DWORD dwZone,DWORD dwReserved) {
9812     return This->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved);
9813 }
9814 /*** IInternetZoneManagerEx methods ***/
9815 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneActionPolicyEx(IInternetZoneManagerEx2* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags) {
9816     return This->lpVtbl->GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags);
9817 }
9818 static FORCEINLINE HRESULT IInternetZoneManagerEx2_SetZoneActionPolicyEx(IInternetZoneManagerEx2* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags) {
9819     return This->lpVtbl->SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags);
9820 }
9821 /*** IInternetZoneManagerEx2 methods ***/
9822 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneAttributesEx(IInternetZoneManagerEx2* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes,DWORD dwFlags) {
9823     return This->lpVtbl->GetZoneAttributesEx(This,dwZone,pZoneAttributes,dwFlags);
9824 }
9825 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneSecurityState(IInternetZoneManagerEx2* This,DWORD dwZoneIndex,WINBOOL fRespectPolicy,LPDWORD pdwState,WINBOOL *pfPolicyEncountered) {
9826     return This->lpVtbl->GetZoneSecurityState(This,dwZoneIndex,fRespectPolicy,pdwState,pfPolicyEncountered);
9827 }
9828 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetIESecurityState(IInternetZoneManagerEx2* This,WINBOOL fRespectPolicy,LPDWORD pdwState,WINBOOL *pfPolicyEncountered,WINBOOL fNoCache) {
9829     return This->lpVtbl->GetIESecurityState(This,fRespectPolicy,pdwState,pfPolicyEncountered,fNoCache);
9830 }
9831 static FORCEINLINE HRESULT IInternetZoneManagerEx2_FixUnsecureSettings(IInternetZoneManagerEx2* This) {
9832     return This->lpVtbl->FixUnsecureSettings(This);
9833 }
9834 #endif
9835 #endif
9836 
9837 #endif
9838 
9839 HRESULT STDMETHODCALLTYPE IInternetZoneManagerEx2_GetZoneAttributesEx_Proxy(
9840     IInternetZoneManagerEx2* This,
9841     DWORD dwZone,
9842     ZONEATTRIBUTES *pZoneAttributes,
9843     DWORD dwFlags);
9844 void __RPC_STUB IInternetZoneManagerEx2_GetZoneAttributesEx_Stub(
9845     IRpcStubBuffer* This,
9846     IRpcChannelBuffer* pRpcChannelBuffer,
9847     PRPC_MESSAGE pRpcMessage,
9848     DWORD* pdwStubPhase);
9849 HRESULT STDMETHODCALLTYPE IInternetZoneManagerEx2_GetZoneSecurityState_Proxy(
9850     IInternetZoneManagerEx2* This,
9851     DWORD dwZoneIndex,
9852     WINBOOL fRespectPolicy,
9853     LPDWORD pdwState,
9854     WINBOOL *pfPolicyEncountered);
9855 void __RPC_STUB IInternetZoneManagerEx2_GetZoneSecurityState_Stub(
9856     IRpcStubBuffer* This,
9857     IRpcChannelBuffer* pRpcChannelBuffer,
9858     PRPC_MESSAGE pRpcMessage,
9859     DWORD* pdwStubPhase);
9860 HRESULT STDMETHODCALLTYPE IInternetZoneManagerEx2_GetIESecurityState_Proxy(
9861     IInternetZoneManagerEx2* This,
9862     WINBOOL fRespectPolicy,
9863     LPDWORD pdwState,
9864     WINBOOL *pfPolicyEncountered,
9865     WINBOOL fNoCache);
9866 void __RPC_STUB IInternetZoneManagerEx2_GetIESecurityState_Stub(
9867     IRpcStubBuffer* This,
9868     IRpcChannelBuffer* pRpcChannelBuffer,
9869     PRPC_MESSAGE pRpcMessage,
9870     DWORD* pdwStubPhase);
9871 HRESULT STDMETHODCALLTYPE IInternetZoneManagerEx2_FixUnsecureSettings_Proxy(
9872     IInternetZoneManagerEx2* This);
9873 void __RPC_STUB IInternetZoneManagerEx2_FixUnsecureSettings_Stub(
9874     IRpcStubBuffer* This,
9875     IRpcChannelBuffer* pRpcChannelBuffer,
9876     PRPC_MESSAGE pRpcMessage,
9877     DWORD* pdwStubPhase);
9878 
9879 #endif  /* __IInternetZoneManagerEx2_INTERFACE_DEFINED__ */
9880 
9881 #endif
9882 #endif
9883 
9884 EXTERN_C const IID CLSID_SoftDistExt;
9885 
9886 #ifndef _LPSOFTDISTEXT_DEFINED
9887 #define _LPSOFTDISTEXT_DEFINED
9888 
9889 #define SOFTDIST_FLAG_USAGE_EMAIL 0x1
9890 #define SOFTDIST_FLAG_USAGE_PRECACHE 0x2
9891 #define SOFTDIST_FLAG_USAGE_AUTOINSTALL 0x4
9892 #define SOFTDIST_FLAG_DELETE_SUBSCRIPTION 0x8
9893 
9894 #define SOFTDIST_ADSTATE_NONE 0x0
9895 #define SOFTDIST_ADSTATE_AVAILABLE 0x1
9896 #define SOFTDIST_ADSTATE_DOWNLOADED 0x2
9897 #define SOFTDIST_ADSTATE_INSTALLED 0x3
9898 
9899 typedef struct _tagCODEBASEHOLD {
9900     ULONG cbSize;
9901     LPWSTR szDistUnit;
9902     LPWSTR szCodeBase;
9903     DWORD dwVersionMS;
9904     DWORD dwVersionLS;
9905     DWORD dwStyle;
9906 } CODEBASEHOLD;
9907 typedef struct _tagCODEBASEHOLD *LPCODEBASEHOLD;
9908 
9909 typedef struct _tagSOFTDISTINFO {
9910     ULONG cbSize;
9911     DWORD dwFlags;
9912     DWORD dwAdState;
9913     LPWSTR szTitle;
9914     LPWSTR szAbstract;
9915     LPWSTR szHREF;
9916     DWORD dwInstalledVersionMS;
9917     DWORD dwInstalledVersionLS;
9918     DWORD dwUpdateVersionMS;
9919     DWORD dwUpdateVersionLS;
9920     DWORD dwAdvertisedVersionMS;
9921     DWORD dwAdvertisedVersionLS;
9922     DWORD dwReserved;
9923 } SOFTDISTINFO;
9924 typedef struct _tagSOFTDISTINFO *LPSOFTDISTINFO;
9925 
9926 /*****************************************************************************
9927  * ISoftDistExt interface
9928  */
9929 #ifndef __ISoftDistExt_INTERFACE_DEFINED__
9930 #define __ISoftDistExt_INTERFACE_DEFINED__
9931 
9932 DEFINE_GUID(IID_ISoftDistExt, 0xb15b8dc1, 0xc7e1, 0x11d0, 0x86,0x80, 0x00,0xaa,0x00,0xbd,0xcb,0x71);
9933 #if defined(__cplusplus) && !defined(CINTERFACE)
9934 MIDL_INTERFACE("b15b8dc1-c7e1-11d0-8680-00aa00bdcb71")
9935 ISoftDistExt : public IUnknown
9936 {
9937     virtual HRESULT STDMETHODCALLTYPE ProcessSoftDist(
9938         LPCWSTR szCDFURL,
9939         IXMLElement *pSoftDistElement,
9940         LPSOFTDISTINFO lpsdi) = 0;
9941 
9942     virtual HRESULT STDMETHODCALLTYPE GetFirstCodeBase(
9943         LPWSTR *szCodeBase,
9944         LPDWORD dwMaxSize) = 0;
9945 
9946     virtual HRESULT STDMETHODCALLTYPE GetNextCodeBase(
9947         LPWSTR *szCodeBase,
9948         LPDWORD dwMaxSize) = 0;
9949 
9950     virtual HRESULT STDMETHODCALLTYPE AsyncInstallDistributionUnit(
9951         IBindCtx *pbc,
9952         LPVOID pvReserved,
9953         DWORD flags,
9954         LPCODEBASEHOLD lpcbh) = 0;
9955 
9956 };
9957 #ifdef __CRT_UUID_DECL
9958 __CRT_UUID_DECL(ISoftDistExt, 0xb15b8dc1, 0xc7e1, 0x11d0, 0x86,0x80, 0x00,0xaa,0x00,0xbd,0xcb,0x71)
9959 #endif
9960 #else
9961 typedef struct ISoftDistExtVtbl {
9962     BEGIN_INTERFACE
9963 
9964     /*** IUnknown methods ***/
9965     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9966         ISoftDistExt* This,
9967         REFIID riid,
9968         void **ppvObject);
9969 
9970     ULONG (STDMETHODCALLTYPE *AddRef)(
9971         ISoftDistExt* This);
9972 
9973     ULONG (STDMETHODCALLTYPE *Release)(
9974         ISoftDistExt* This);
9975 
9976     /*** ISoftDistExt methods ***/
9977     HRESULT (STDMETHODCALLTYPE *ProcessSoftDist)(
9978         ISoftDistExt* This,
9979         LPCWSTR szCDFURL,
9980         IXMLElement *pSoftDistElement,
9981         LPSOFTDISTINFO lpsdi);
9982 
9983     HRESULT (STDMETHODCALLTYPE *GetFirstCodeBase)(
9984         ISoftDistExt* This,
9985         LPWSTR *szCodeBase,
9986         LPDWORD dwMaxSize);
9987 
9988     HRESULT (STDMETHODCALLTYPE *GetNextCodeBase)(
9989         ISoftDistExt* This,
9990         LPWSTR *szCodeBase,
9991         LPDWORD dwMaxSize);
9992 
9993     HRESULT (STDMETHODCALLTYPE *AsyncInstallDistributionUnit)(
9994         ISoftDistExt* This,
9995         IBindCtx *pbc,
9996         LPVOID pvReserved,
9997         DWORD flags,
9998         LPCODEBASEHOLD lpcbh);
9999 
10000     END_INTERFACE
10001 } ISoftDistExtVtbl;
10002 interface ISoftDistExt {
10003     CONST_VTBL ISoftDistExtVtbl* lpVtbl;
10004 };
10005 
10006 #ifdef COBJMACROS
10007 #ifndef WIDL_C_INLINE_WRAPPERS
10008 /*** IUnknown methods ***/
10009 #define ISoftDistExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10010 #define ISoftDistExt_AddRef(This) (This)->lpVtbl->AddRef(This)
10011 #define ISoftDistExt_Release(This) (This)->lpVtbl->Release(This)
10012 /*** ISoftDistExt methods ***/
10013 #define ISoftDistExt_ProcessSoftDist(This,szCDFURL,pSoftDistElement,lpsdi) (This)->lpVtbl->ProcessSoftDist(This,szCDFURL,pSoftDistElement,lpsdi)
10014 #define ISoftDistExt_GetFirstCodeBase(This,szCodeBase,dwMaxSize) (This)->lpVtbl->GetFirstCodeBase(This,szCodeBase,dwMaxSize)
10015 #define ISoftDistExt_GetNextCodeBase(This,szCodeBase,dwMaxSize) (This)->lpVtbl->GetNextCodeBase(This,szCodeBase,dwMaxSize)
10016 #define ISoftDistExt_AsyncInstallDistributionUnit(This,pbc,pvReserved,flags,lpcbh) (This)->lpVtbl->AsyncInstallDistributionUnit(This,pbc,pvReserved,flags,lpcbh)
10017 #else
10018 /*** IUnknown methods ***/
10019 static FORCEINLINE HRESULT ISoftDistExt_QueryInterface(ISoftDistExt* This,REFIID riid,void **ppvObject) {
10020     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10021 }
10022 static FORCEINLINE ULONG ISoftDistExt_AddRef(ISoftDistExt* This) {
10023     return This->lpVtbl->AddRef(This);
10024 }
10025 static FORCEINLINE ULONG ISoftDistExt_Release(ISoftDistExt* This) {
10026     return This->lpVtbl->Release(This);
10027 }
10028 /*** ISoftDistExt methods ***/
10029 static FORCEINLINE HRESULT ISoftDistExt_ProcessSoftDist(ISoftDistExt* This,LPCWSTR szCDFURL,IXMLElement *pSoftDistElement,LPSOFTDISTINFO lpsdi) {
10030     return This->lpVtbl->ProcessSoftDist(This,szCDFURL,pSoftDistElement,lpsdi);
10031 }
10032 static FORCEINLINE HRESULT ISoftDistExt_GetFirstCodeBase(ISoftDistExt* This,LPWSTR *szCodeBase,LPDWORD dwMaxSize) {
10033     return This->lpVtbl->GetFirstCodeBase(This,szCodeBase,dwMaxSize);
10034 }
10035 static FORCEINLINE HRESULT ISoftDistExt_GetNextCodeBase(ISoftDistExt* This,LPWSTR *szCodeBase,LPDWORD dwMaxSize) {
10036     return This->lpVtbl->GetNextCodeBase(This,szCodeBase,dwMaxSize);
10037 }
10038 static FORCEINLINE HRESULT ISoftDistExt_AsyncInstallDistributionUnit(ISoftDistExt* This,IBindCtx *pbc,LPVOID pvReserved,DWORD flags,LPCODEBASEHOLD lpcbh) {
10039     return This->lpVtbl->AsyncInstallDistributionUnit(This,pbc,pvReserved,flags,lpcbh);
10040 }
10041 #endif
10042 #endif
10043 
10044 #endif
10045 
10046 HRESULT STDMETHODCALLTYPE ISoftDistExt_ProcessSoftDist_Proxy(
10047     ISoftDistExt* This,
10048     LPCWSTR szCDFURL,
10049     IXMLElement *pSoftDistElement,
10050     LPSOFTDISTINFO lpsdi);
10051 void __RPC_STUB ISoftDistExt_ProcessSoftDist_Stub(
10052     IRpcStubBuffer* This,
10053     IRpcChannelBuffer* pRpcChannelBuffer,
10054     PRPC_MESSAGE pRpcMessage,
10055     DWORD* pdwStubPhase);
10056 HRESULT STDMETHODCALLTYPE ISoftDistExt_GetFirstCodeBase_Proxy(
10057     ISoftDistExt* This,
10058     LPWSTR *szCodeBase,
10059     LPDWORD dwMaxSize);
10060 void __RPC_STUB ISoftDistExt_GetFirstCodeBase_Stub(
10061     IRpcStubBuffer* This,
10062     IRpcChannelBuffer* pRpcChannelBuffer,
10063     PRPC_MESSAGE pRpcMessage,
10064     DWORD* pdwStubPhase);
10065 HRESULT STDMETHODCALLTYPE ISoftDistExt_GetNextCodeBase_Proxy(
10066     ISoftDistExt* This,
10067     LPWSTR *szCodeBase,
10068     LPDWORD dwMaxSize);
10069 void __RPC_STUB ISoftDistExt_GetNextCodeBase_Stub(
10070     IRpcStubBuffer* This,
10071     IRpcChannelBuffer* pRpcChannelBuffer,
10072     PRPC_MESSAGE pRpcMessage,
10073     DWORD* pdwStubPhase);
10074 HRESULT STDMETHODCALLTYPE ISoftDistExt_AsyncInstallDistributionUnit_Proxy(
10075     ISoftDistExt* This,
10076     IBindCtx *pbc,
10077     LPVOID pvReserved,
10078     DWORD flags,
10079     LPCODEBASEHOLD lpcbh);
10080 void __RPC_STUB ISoftDistExt_AsyncInstallDistributionUnit_Stub(
10081     IRpcStubBuffer* This,
10082     IRpcChannelBuffer* pRpcChannelBuffer,
10083     PRPC_MESSAGE pRpcMessage,
10084     DWORD* pdwStubPhase);
10085 
10086 #endif  /* __ISoftDistExt_INTERFACE_DEFINED__ */
10087 
10088 
10089 STDAPI GetSoftwareUpdateInfo(LPCWSTR szDistUnit, LPSOFTDISTINFO psdi);
10090 STDAPI SetSoftwareUpdateAdvertisementState(LPCWSTR szDistUnit, DWORD dwAdState, DWORD dwAdvertisedVersionMS, DWORD dwAdvertisedVersionLS);
10091 #endif
10092 
10093 #ifndef _LPCATALOGFILEINFO_DEFINED
10094 #define _LPCATALOGFILEINFO_DEFINED
10095 
10096 /*****************************************************************************
10097  * ICatalogFileInfo interface
10098  */
10099 #ifndef __ICatalogFileInfo_INTERFACE_DEFINED__
10100 #define __ICatalogFileInfo_INTERFACE_DEFINED__
10101 
10102 typedef ICatalogFileInfo *LPCATALOGFILEINFO;
10103 
10104 DEFINE_GUID(IID_ICatalogFileInfo, 0x711c7600, 0x6b48, 0x11d1, 0xb4,0x03, 0x00,0xaa,0x00,0xb9,0x2a,0xf1);
10105 #if defined(__cplusplus) && !defined(CINTERFACE)
10106 MIDL_INTERFACE("711c7600-6b48-11d1-b403-00aa00b92af1")
10107 ICatalogFileInfo : public IUnknown
10108 {
10109     virtual HRESULT STDMETHODCALLTYPE GetCatalogFile(
10110         LPSTR *ppszCatalogFile) = 0;
10111 
10112     virtual HRESULT STDMETHODCALLTYPE GetJavaTrust(
10113         void **ppJavaTrust) = 0;
10114 
10115 };
10116 #ifdef __CRT_UUID_DECL
10117 __CRT_UUID_DECL(ICatalogFileInfo, 0x711c7600, 0x6b48, 0x11d1, 0xb4,0x03, 0x00,0xaa,0x00,0xb9,0x2a,0xf1)
10118 #endif
10119 #else
10120 typedef struct ICatalogFileInfoVtbl {
10121     BEGIN_INTERFACE
10122 
10123     /*** IUnknown methods ***/
10124     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10125         ICatalogFileInfo* This,
10126         REFIID riid,
10127         void **ppvObject);
10128 
10129     ULONG (STDMETHODCALLTYPE *AddRef)(
10130         ICatalogFileInfo* This);
10131 
10132     ULONG (STDMETHODCALLTYPE *Release)(
10133         ICatalogFileInfo* This);
10134 
10135     /*** ICatalogFileInfo methods ***/
10136     HRESULT (STDMETHODCALLTYPE *GetCatalogFile)(
10137         ICatalogFileInfo* This,
10138         LPSTR *ppszCatalogFile);
10139 
10140     HRESULT (STDMETHODCALLTYPE *GetJavaTrust)(
10141         ICatalogFileInfo* This,
10142         void **ppJavaTrust);
10143 
10144     END_INTERFACE
10145 } ICatalogFileInfoVtbl;
10146 interface ICatalogFileInfo {
10147     CONST_VTBL ICatalogFileInfoVtbl* lpVtbl;
10148 };
10149 
10150 #ifdef COBJMACROS
10151 #ifndef WIDL_C_INLINE_WRAPPERS
10152 /*** IUnknown methods ***/
10153 #define ICatalogFileInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10154 #define ICatalogFileInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
10155 #define ICatalogFileInfo_Release(This) (This)->lpVtbl->Release(This)
10156 /*** ICatalogFileInfo methods ***/
10157 #define ICatalogFileInfo_GetCatalogFile(This,ppszCatalogFile) (This)->lpVtbl->GetCatalogFile(This,ppszCatalogFile)
10158 #define ICatalogFileInfo_GetJavaTrust(This,ppJavaTrust) (This)->lpVtbl->GetJavaTrust(This,ppJavaTrust)
10159 #else
10160 /*** IUnknown methods ***/
10161 static FORCEINLINE HRESULT ICatalogFileInfo_QueryInterface(ICatalogFileInfo* This,REFIID riid,void **ppvObject) {
10162     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10163 }
10164 static FORCEINLINE ULONG ICatalogFileInfo_AddRef(ICatalogFileInfo* This) {
10165     return This->lpVtbl->AddRef(This);
10166 }
10167 static FORCEINLINE ULONG ICatalogFileInfo_Release(ICatalogFileInfo* This) {
10168     return This->lpVtbl->Release(This);
10169 }
10170 /*** ICatalogFileInfo methods ***/
10171 static FORCEINLINE HRESULT ICatalogFileInfo_GetCatalogFile(ICatalogFileInfo* This,LPSTR *ppszCatalogFile) {
10172     return This->lpVtbl->GetCatalogFile(This,ppszCatalogFile);
10173 }
10174 static FORCEINLINE HRESULT ICatalogFileInfo_GetJavaTrust(ICatalogFileInfo* This,void **ppJavaTrust) {
10175     return This->lpVtbl->GetJavaTrust(This,ppJavaTrust);
10176 }
10177 #endif
10178 #endif
10179 
10180 #endif
10181 
10182 HRESULT STDMETHODCALLTYPE ICatalogFileInfo_GetCatalogFile_Proxy(
10183     ICatalogFileInfo* This,
10184     LPSTR *ppszCatalogFile);
10185 void __RPC_STUB ICatalogFileInfo_GetCatalogFile_Stub(
10186     IRpcStubBuffer* This,
10187     IRpcChannelBuffer* pRpcChannelBuffer,
10188     PRPC_MESSAGE pRpcMessage,
10189     DWORD* pdwStubPhase);
10190 HRESULT STDMETHODCALLTYPE ICatalogFileInfo_GetJavaTrust_Proxy(
10191     ICatalogFileInfo* This,
10192     void **ppJavaTrust);
10193 void __RPC_STUB ICatalogFileInfo_GetJavaTrust_Stub(
10194     IRpcStubBuffer* This,
10195     IRpcChannelBuffer* pRpcChannelBuffer,
10196     PRPC_MESSAGE pRpcMessage,
10197     DWORD* pdwStubPhase);
10198 
10199 #endif  /* __ICatalogFileInfo_INTERFACE_DEFINED__ */
10200 
10201 #endif
10202 
10203 #ifndef _LPDATAFILTER_DEFINED
10204 #define _LPDATAFILTER_DEFINED
10205 
10206 /*****************************************************************************
10207  * IDataFilter interface
10208  */
10209 #ifndef __IDataFilter_INTERFACE_DEFINED__
10210 #define __IDataFilter_INTERFACE_DEFINED__
10211 
10212 typedef IDataFilter *LPDATAFILTER;
10213 
10214 DEFINE_GUID(IID_IDataFilter, 0x69d14c80, 0xc18e, 0x11d0, 0xa9,0xce, 0x00,0x60,0x97,0x94,0x23,0x11);
10215 #if defined(__cplusplus) && !defined(CINTERFACE)
10216 MIDL_INTERFACE("69d14c80-c18e-11d0-a9ce-006097942311")
10217 IDataFilter : public IUnknown
10218 {
10219     virtual HRESULT STDMETHODCALLTYPE DoEncode(
10220         DWORD dwFlags,
10221         LONG lInBufferSize,
10222         BYTE *pbInBuffer,
10223         LONG lOutBufferSize,
10224         BYTE *pbOutBuffer,
10225         LONG lInBytesAvailable,
10226         LONG *plInBytesRead,
10227         LONG *plOutBytesWritten,
10228         DWORD dwReserved) = 0;
10229 
10230     virtual HRESULT STDMETHODCALLTYPE DoDecode(
10231         DWORD dwFlags,
10232         LONG lInBufferSize,
10233         BYTE *pbInBuffer,
10234         LONG lOutBufferSize,
10235         BYTE *pbOutBuffer,
10236         LONG lInBytesAvailable,
10237         LONG *plInBytesRead,
10238         LONG *plOutBytesWritten,
10239         DWORD dwReserved) = 0;
10240 
10241     virtual HRESULT STDMETHODCALLTYPE SetEncodingLevel(
10242         DWORD dwEncLevel) = 0;
10243 
10244 };
10245 #ifdef __CRT_UUID_DECL
10246 __CRT_UUID_DECL(IDataFilter, 0x69d14c80, 0xc18e, 0x11d0, 0xa9,0xce, 0x00,0x60,0x97,0x94,0x23,0x11)
10247 #endif
10248 #else
10249 typedef struct IDataFilterVtbl {
10250     BEGIN_INTERFACE
10251 
10252     /*** IUnknown methods ***/
10253     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10254         IDataFilter* This,
10255         REFIID riid,
10256         void **ppvObject);
10257 
10258     ULONG (STDMETHODCALLTYPE *AddRef)(
10259         IDataFilter* This);
10260 
10261     ULONG (STDMETHODCALLTYPE *Release)(
10262         IDataFilter* This);
10263 
10264     /*** IDataFilter methods ***/
10265     HRESULT (STDMETHODCALLTYPE *DoEncode)(
10266         IDataFilter* This,
10267         DWORD dwFlags,
10268         LONG lInBufferSize,
10269         BYTE *pbInBuffer,
10270         LONG lOutBufferSize,
10271         BYTE *pbOutBuffer,
10272         LONG lInBytesAvailable,
10273         LONG *plInBytesRead,
10274         LONG *plOutBytesWritten,
10275         DWORD dwReserved);
10276 
10277     HRESULT (STDMETHODCALLTYPE *DoDecode)(
10278         IDataFilter* This,
10279         DWORD dwFlags,
10280         LONG lInBufferSize,
10281         BYTE *pbInBuffer,
10282         LONG lOutBufferSize,
10283         BYTE *pbOutBuffer,
10284         LONG lInBytesAvailable,
10285         LONG *plInBytesRead,
10286         LONG *plOutBytesWritten,
10287         DWORD dwReserved);
10288 
10289     HRESULT (STDMETHODCALLTYPE *SetEncodingLevel)(
10290         IDataFilter* This,
10291         DWORD dwEncLevel);
10292 
10293     END_INTERFACE
10294 } IDataFilterVtbl;
10295 interface IDataFilter {
10296     CONST_VTBL IDataFilterVtbl* lpVtbl;
10297 };
10298 
10299 #ifdef COBJMACROS
10300 #ifndef WIDL_C_INLINE_WRAPPERS
10301 /*** IUnknown methods ***/
10302 #define IDataFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10303 #define IDataFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
10304 #define IDataFilter_Release(This) (This)->lpVtbl->Release(This)
10305 /*** IDataFilter methods ***/
10306 #define IDataFilter_DoEncode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved) (This)->lpVtbl->DoEncode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved)
10307 #define IDataFilter_DoDecode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved) (This)->lpVtbl->DoDecode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved)
10308 #define IDataFilter_SetEncodingLevel(This,dwEncLevel) (This)->lpVtbl->SetEncodingLevel(This,dwEncLevel)
10309 #else
10310 /*** IUnknown methods ***/
10311 static FORCEINLINE HRESULT IDataFilter_QueryInterface(IDataFilter* This,REFIID riid,void **ppvObject) {
10312     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10313 }
10314 static FORCEINLINE ULONG IDataFilter_AddRef(IDataFilter* This) {
10315     return This->lpVtbl->AddRef(This);
10316 }
10317 static FORCEINLINE ULONG IDataFilter_Release(IDataFilter* This) {
10318     return This->lpVtbl->Release(This);
10319 }
10320 /*** IDataFilter methods ***/
10321 static FORCEINLINE HRESULT IDataFilter_DoEncode(IDataFilter* This,DWORD dwFlags,LONG lInBufferSize,BYTE *pbInBuffer,LONG lOutBufferSize,BYTE *pbOutBuffer,LONG lInBytesAvailable,LONG *plInBytesRead,LONG *plOutBytesWritten,DWORD dwReserved) {
10322     return This->lpVtbl->DoEncode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved);
10323 }
10324 static FORCEINLINE HRESULT IDataFilter_DoDecode(IDataFilter* This,DWORD dwFlags,LONG lInBufferSize,BYTE *pbInBuffer,LONG lOutBufferSize,BYTE *pbOutBuffer,LONG lInBytesAvailable,LONG *plInBytesRead,LONG *plOutBytesWritten,DWORD dwReserved) {
10325     return This->lpVtbl->DoDecode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved);
10326 }
10327 static FORCEINLINE HRESULT IDataFilter_SetEncodingLevel(IDataFilter* This,DWORD dwEncLevel) {
10328     return This->lpVtbl->SetEncodingLevel(This,dwEncLevel);
10329 }
10330 #endif
10331 #endif
10332 
10333 #endif
10334 
10335 HRESULT STDMETHODCALLTYPE IDataFilter_DoEncode_Proxy(
10336     IDataFilter* This,
10337     DWORD dwFlags,
10338     LONG lInBufferSize,
10339     BYTE *pbInBuffer,
10340     LONG lOutBufferSize,
10341     BYTE *pbOutBuffer,
10342     LONG lInBytesAvailable,
10343     LONG *plInBytesRead,
10344     LONG *plOutBytesWritten,
10345     DWORD dwReserved);
10346 void __RPC_STUB IDataFilter_DoEncode_Stub(
10347     IRpcStubBuffer* This,
10348     IRpcChannelBuffer* pRpcChannelBuffer,
10349     PRPC_MESSAGE pRpcMessage,
10350     DWORD* pdwStubPhase);
10351 HRESULT STDMETHODCALLTYPE IDataFilter_DoDecode_Proxy(
10352     IDataFilter* This,
10353     DWORD dwFlags,
10354     LONG lInBufferSize,
10355     BYTE *pbInBuffer,
10356     LONG lOutBufferSize,
10357     BYTE *pbOutBuffer,
10358     LONG lInBytesAvailable,
10359     LONG *plInBytesRead,
10360     LONG *plOutBytesWritten,
10361     DWORD dwReserved);
10362 void __RPC_STUB IDataFilter_DoDecode_Stub(
10363     IRpcStubBuffer* This,
10364     IRpcChannelBuffer* pRpcChannelBuffer,
10365     PRPC_MESSAGE pRpcMessage,
10366     DWORD* pdwStubPhase);
10367 HRESULT STDMETHODCALLTYPE IDataFilter_SetEncodingLevel_Proxy(
10368     IDataFilter* This,
10369     DWORD dwEncLevel);
10370 void __RPC_STUB IDataFilter_SetEncodingLevel_Stub(
10371     IRpcStubBuffer* This,
10372     IRpcChannelBuffer* pRpcChannelBuffer,
10373     PRPC_MESSAGE pRpcMessage,
10374     DWORD* pdwStubPhase);
10375 
10376 #endif  /* __IDataFilter_INTERFACE_DEFINED__ */
10377 
10378 #endif
10379 
10380 #ifndef _LPENCODINGFILTERFACTORY_DEFINED
10381 #define _LPENCODINGFILTERFACTORY_DEFINED
10382 
10383 typedef struct _tagPROTOCOLFILTERDATA {
10384     DWORD cbSize;
10385     IInternetProtocolSink *pProtocolSink;
10386     IInternetProtocol *pProtocol;
10387     IUnknown *pUnk;
10388     DWORD dwFilterFlags;
10389 } PROTOCOLFILTERDATA;
10390 
10391 /*****************************************************************************
10392  * IEncodingFilterFactory interface
10393  */
10394 #ifndef __IEncodingFilterFactory_INTERFACE_DEFINED__
10395 #define __IEncodingFilterFactory_INTERFACE_DEFINED__
10396 
10397 typedef IEncodingFilterFactory *LPENCODINGFILTERFACTORY;
10398 
10399 typedef struct _tagDATAINFO {
10400     ULONG ulTotalSize;
10401     ULONG ulavrPacketSize;
10402     ULONG ulConnectSpeed;
10403     ULONG ulProcessorSpeed;
10404 } DATAINFO;
10405 
10406 DEFINE_GUID(IID_IEncodingFilterFactory, 0x70bdde00, 0xc18e, 0x11d0, 0xa9,0xce, 0x00,0x60,0x97,0x94,0x23,0x11);
10407 #if defined(__cplusplus) && !defined(CINTERFACE)
10408 MIDL_INTERFACE("70bdde00-c18e-11d0-a9ce-006097942311")
10409 IEncodingFilterFactory : public IUnknown
10410 {
10411     virtual HRESULT STDMETHODCALLTYPE FindBestFilter(
10412         LPCWSTR pwzCodeIn,
10413         LPCWSTR pwzCodeOut,
10414         DATAINFO info,
10415         IDataFilter **ppDF) = 0;
10416 
10417     virtual HRESULT STDMETHODCALLTYPE GetDefaultFilter(
10418         LPCWSTR pwzCodeIn,
10419         LPCWSTR pwzCodeOut,
10420         IDataFilter **ppDF) = 0;
10421 
10422 };
10423 #ifdef __CRT_UUID_DECL
10424 __CRT_UUID_DECL(IEncodingFilterFactory, 0x70bdde00, 0xc18e, 0x11d0, 0xa9,0xce, 0x00,0x60,0x97,0x94,0x23,0x11)
10425 #endif
10426 #else
10427 typedef struct IEncodingFilterFactoryVtbl {
10428     BEGIN_INTERFACE
10429 
10430     /*** IUnknown methods ***/
10431     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10432         IEncodingFilterFactory* This,
10433         REFIID riid,
10434         void **ppvObject);
10435 
10436     ULONG (STDMETHODCALLTYPE *AddRef)(
10437         IEncodingFilterFactory* This);
10438 
10439     ULONG (STDMETHODCALLTYPE *Release)(
10440         IEncodingFilterFactory* This);
10441 
10442     /*** IEncodingFilterFactory methods ***/
10443     HRESULT (STDMETHODCALLTYPE *FindBestFilter)(
10444         IEncodingFilterFactory* This,
10445         LPCWSTR pwzCodeIn,
10446         LPCWSTR pwzCodeOut,
10447         DATAINFO info,
10448         IDataFilter **ppDF);
10449 
10450     HRESULT (STDMETHODCALLTYPE *GetDefaultFilter)(
10451         IEncodingFilterFactory* This,
10452         LPCWSTR pwzCodeIn,
10453         LPCWSTR pwzCodeOut,
10454         IDataFilter **ppDF);
10455 
10456     END_INTERFACE
10457 } IEncodingFilterFactoryVtbl;
10458 interface IEncodingFilterFactory {
10459     CONST_VTBL IEncodingFilterFactoryVtbl* lpVtbl;
10460 };
10461 
10462 #ifdef COBJMACROS
10463 #ifndef WIDL_C_INLINE_WRAPPERS
10464 /*** IUnknown methods ***/
10465 #define IEncodingFilterFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10466 #define IEncodingFilterFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
10467 #define IEncodingFilterFactory_Release(This) (This)->lpVtbl->Release(This)
10468 /*** IEncodingFilterFactory methods ***/
10469 #define IEncodingFilterFactory_FindBestFilter(This,pwzCodeIn,pwzCodeOut,info,ppDF) (This)->lpVtbl->FindBestFilter(This,pwzCodeIn,pwzCodeOut,info,ppDF)
10470 #define IEncodingFilterFactory_GetDefaultFilter(This,pwzCodeIn,pwzCodeOut,ppDF) (This)->lpVtbl->GetDefaultFilter(This,pwzCodeIn,pwzCodeOut,ppDF)
10471 #else
10472 /*** IUnknown methods ***/
10473 static FORCEINLINE HRESULT IEncodingFilterFactory_QueryInterface(IEncodingFilterFactory* This,REFIID riid,void **ppvObject) {
10474     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10475 }
10476 static FORCEINLINE ULONG IEncodingFilterFactory_AddRef(IEncodingFilterFactory* This) {
10477     return This->lpVtbl->AddRef(This);
10478 }
10479 static FORCEINLINE ULONG IEncodingFilterFactory_Release(IEncodingFilterFactory* This) {
10480     return This->lpVtbl->Release(This);
10481 }
10482 /*** IEncodingFilterFactory methods ***/
10483 static FORCEINLINE HRESULT IEncodingFilterFactory_FindBestFilter(IEncodingFilterFactory* This,LPCWSTR pwzCodeIn,LPCWSTR pwzCodeOut,DATAINFO info,IDataFilter **ppDF) {
10484     return This->lpVtbl->FindBestFilter(This,pwzCodeIn,pwzCodeOut,info,ppDF);
10485 }
10486 static FORCEINLINE HRESULT IEncodingFilterFactory_GetDefaultFilter(IEncodingFilterFactory* This,LPCWSTR pwzCodeIn,LPCWSTR pwzCodeOut,IDataFilter **ppDF) {
10487     return This->lpVtbl->GetDefaultFilter(This,pwzCodeIn,pwzCodeOut,ppDF);
10488 }
10489 #endif
10490 #endif
10491 
10492 #endif
10493 
10494 HRESULT STDMETHODCALLTYPE IEncodingFilterFactory_FindBestFilter_Proxy(
10495     IEncodingFilterFactory* This,
10496     LPCWSTR pwzCodeIn,
10497     LPCWSTR pwzCodeOut,
10498     DATAINFO info,
10499     IDataFilter **ppDF);
10500 void __RPC_STUB IEncodingFilterFactory_FindBestFilter_Stub(
10501     IRpcStubBuffer* This,
10502     IRpcChannelBuffer* pRpcChannelBuffer,
10503     PRPC_MESSAGE pRpcMessage,
10504     DWORD* pdwStubPhase);
10505 HRESULT STDMETHODCALLTYPE IEncodingFilterFactory_GetDefaultFilter_Proxy(
10506     IEncodingFilterFactory* This,
10507     LPCWSTR pwzCodeIn,
10508     LPCWSTR pwzCodeOut,
10509     IDataFilter **ppDF);
10510 void __RPC_STUB IEncodingFilterFactory_GetDefaultFilter_Stub(
10511     IRpcStubBuffer* This,
10512     IRpcChannelBuffer* pRpcChannelBuffer,
10513     PRPC_MESSAGE pRpcMessage,
10514     DWORD* pdwStubPhase);
10515 
10516 #endif  /* __IEncodingFilterFactory_INTERFACE_DEFINED__ */
10517 
10518 #endif
10519 
10520 #ifndef _HITLOGGING_DEFINED
10521 #define _HITLOGGING_DEFINED
10522 
10523 WINBOOL WINAPI IsLoggingEnabledA(LPCSTR pszUrl);
10524 WINBOOL WINAPI IsLoggingEnabledW(LPCWSTR pwszUrl);
10525 
10526 #define IsLoggingEnabled __MINGW_NAME_AW(IsLoggingEnabled)
10527 typedef struct _tagHIT_LOGGING_INFO {
10528     DWORD dwStructSize;
10529     LPSTR lpszLoggedUrlName;
10530     SYSTEMTIME StartTime;
10531     SYSTEMTIME EndTime;
10532     LPSTR lpszExtendedInfo;
10533 } HIT_LOGGING_INFO;
10534 typedef struct _tagHIT_LOGGING_INFO *LPHIT_LOGGING_INFO;
10535 
10536 WINBOOL WINAPI WriteHitLogging(LPHIT_LOGGING_INFO lpLogginginfo);
10537 
10538 #define CONFIRMSAFETYACTION_LOADOBJECT 0x1
10539 
10540 struct CONFIRMSAFETY {
10541     CLSID clsid;
10542     IUnknown *pUnk;
10543     DWORD dwFlags;
10544 };
10545 
10546 
10547 EXTERN_C const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY;
10548 #endif
10549 
10550 #ifndef _LPIWRAPPEDPROTOCOL_DEFINED
10551 #define _LPIWRAPPEDPROTOCOL_DEFINED
10552 
10553 /*****************************************************************************
10554  * IWrappedProtocol interface
10555  */
10556 #ifndef __IWrappedProtocol_INTERFACE_DEFINED__
10557 #define __IWrappedProtocol_INTERFACE_DEFINED__
10558 
10559 typedef IWrappedProtocol *LPIWRAPPEDPROTOCOL;
10560 
10561 DEFINE_GUID(IID_IWrappedProtocol, 0x53c84785, 0x8425, 0x4dc5, 0x97,0x1b, 0xe5,0x8d,0x9c,0x19,0xf9,0xb6);
10562 #if defined(__cplusplus) && !defined(CINTERFACE)
10563 MIDL_INTERFACE("53c84785-8425-4dc5-971b-e58d9c19f9b6")
10564 IWrappedProtocol : public IUnknown
10565 {
10566     virtual HRESULT STDMETHODCALLTYPE GetWrapperCode(
10567         LONG *pnCode,
10568         DWORD_PTR dwReserved) = 0;
10569 
10570 };
10571 #ifdef __CRT_UUID_DECL
10572 __CRT_UUID_DECL(IWrappedProtocol, 0x53c84785, 0x8425, 0x4dc5, 0x97,0x1b, 0xe5,0x8d,0x9c,0x19,0xf9,0xb6)
10573 #endif
10574 #else
10575 typedef struct IWrappedProtocolVtbl {
10576     BEGIN_INTERFACE
10577 
10578     /*** IUnknown methods ***/
10579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10580         IWrappedProtocol* This,
10581         REFIID riid,
10582         void **ppvObject);
10583 
10584     ULONG (STDMETHODCALLTYPE *AddRef)(
10585         IWrappedProtocol* This);
10586 
10587     ULONG (STDMETHODCALLTYPE *Release)(
10588         IWrappedProtocol* This);
10589 
10590     /*** IWrappedProtocol methods ***/
10591     HRESULT (STDMETHODCALLTYPE *GetWrapperCode)(
10592         IWrappedProtocol* This,
10593         LONG *pnCode,
10594         DWORD_PTR dwReserved);
10595 
10596     END_INTERFACE
10597 } IWrappedProtocolVtbl;
10598 interface IWrappedProtocol {
10599     CONST_VTBL IWrappedProtocolVtbl* lpVtbl;
10600 };
10601 
10602 #ifdef COBJMACROS
10603 #ifndef WIDL_C_INLINE_WRAPPERS
10604 /*** IUnknown methods ***/
10605 #define IWrappedProtocol_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10606 #define IWrappedProtocol_AddRef(This) (This)->lpVtbl->AddRef(This)
10607 #define IWrappedProtocol_Release(This) (This)->lpVtbl->Release(This)
10608 /*** IWrappedProtocol methods ***/
10609 #define IWrappedProtocol_GetWrapperCode(This,pnCode,dwReserved) (This)->lpVtbl->GetWrapperCode(This,pnCode,dwReserved)
10610 #else
10611 /*** IUnknown methods ***/
10612 static FORCEINLINE HRESULT IWrappedProtocol_QueryInterface(IWrappedProtocol* This,REFIID riid,void **ppvObject) {
10613     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10614 }
10615 static FORCEINLINE ULONG IWrappedProtocol_AddRef(IWrappedProtocol* This) {
10616     return This->lpVtbl->AddRef(This);
10617 }
10618 static FORCEINLINE ULONG IWrappedProtocol_Release(IWrappedProtocol* This) {
10619     return This->lpVtbl->Release(This);
10620 }
10621 /*** IWrappedProtocol methods ***/
10622 static FORCEINLINE HRESULT IWrappedProtocol_GetWrapperCode(IWrappedProtocol* This,LONG *pnCode,DWORD_PTR dwReserved) {
10623     return This->lpVtbl->GetWrapperCode(This,pnCode,dwReserved);
10624 }
10625 #endif
10626 #endif
10627 
10628 #endif
10629 
10630 HRESULT STDMETHODCALLTYPE IWrappedProtocol_GetWrapperCode_Proxy(
10631     IWrappedProtocol* This,
10632     LONG *pnCode,
10633     DWORD_PTR dwReserved);
10634 void __RPC_STUB IWrappedProtocol_GetWrapperCode_Stub(
10635     IRpcStubBuffer* This,
10636     IRpcChannelBuffer* pRpcChannelBuffer,
10637     PRPC_MESSAGE pRpcMessage,
10638     DWORD* pdwStubPhase);
10639 
10640 #endif  /* __IWrappedProtocol_INTERFACE_DEFINED__ */
10641 
10642 #endif
10643 
10644 #ifndef _LPGETBINDHANDLE_DEFINED
10645 #define _LPGETBINDHANDLE_DEFINED
10646 
10647 /*****************************************************************************
10648  * IGetBindHandle interface
10649  */
10650 #ifndef __IGetBindHandle_INTERFACE_DEFINED__
10651 #define __IGetBindHandle_INTERFACE_DEFINED__
10652 
10653 typedef IGetBindHandle *LPGETBINDHANDLE;
10654 
10655 typedef enum __WIDL_urlmon_generated_name_00000012 {
10656     BINDHANDLETYPES_APPCACHE = 0x0,
10657     BINDHANDLETYPES_DEPENDENCY = 0x1,
10658     BINDHANDLETYPES_COUNT = 0x2
10659 } BINDHANDLETYPES;
10660 
10661 DEFINE_GUID(IID_IGetBindHandle, 0xaf0ff408, 0x129d, 0x4b20, 0x91,0xf0, 0x02,0xbd,0x23,0xd8,0x83,0x52);
10662 #if defined(__cplusplus) && !defined(CINTERFACE)
10663 MIDL_INTERFACE("af0ff408-129d-4b20-91f0-02bd23d88352")
10664 IGetBindHandle : public IUnknown
10665 {
10666     virtual HRESULT STDMETHODCALLTYPE GetBindHandle(
10667         BINDHANDLETYPES enumRequestedHandle,
10668         HANDLE *pRetHandle) = 0;
10669 
10670 };
10671 #ifdef __CRT_UUID_DECL
10672 __CRT_UUID_DECL(IGetBindHandle, 0xaf0ff408, 0x129d, 0x4b20, 0x91,0xf0, 0x02,0xbd,0x23,0xd8,0x83,0x52)
10673 #endif
10674 #else
10675 typedef struct IGetBindHandleVtbl {
10676     BEGIN_INTERFACE
10677 
10678     /*** IUnknown methods ***/
10679     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10680         IGetBindHandle* This,
10681         REFIID riid,
10682         void **ppvObject);
10683 
10684     ULONG (STDMETHODCALLTYPE *AddRef)(
10685         IGetBindHandle* This);
10686 
10687     ULONG (STDMETHODCALLTYPE *Release)(
10688         IGetBindHandle* This);
10689 
10690     /*** IGetBindHandle methods ***/
10691     HRESULT (STDMETHODCALLTYPE *GetBindHandle)(
10692         IGetBindHandle* This,
10693         BINDHANDLETYPES enumRequestedHandle,
10694         HANDLE *pRetHandle);
10695 
10696     END_INTERFACE
10697 } IGetBindHandleVtbl;
10698 interface IGetBindHandle {
10699     CONST_VTBL IGetBindHandleVtbl* lpVtbl;
10700 };
10701 
10702 #ifdef COBJMACROS
10703 #ifndef WIDL_C_INLINE_WRAPPERS
10704 /*** IUnknown methods ***/
10705 #define IGetBindHandle_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10706 #define IGetBindHandle_AddRef(This) (This)->lpVtbl->AddRef(This)
10707 #define IGetBindHandle_Release(This) (This)->lpVtbl->Release(This)
10708 /*** IGetBindHandle methods ***/
10709 #define IGetBindHandle_GetBindHandle(This,enumRequestedHandle,pRetHandle) (This)->lpVtbl->GetBindHandle(This,enumRequestedHandle,pRetHandle)
10710 #else
10711 /*** IUnknown methods ***/
10712 static FORCEINLINE HRESULT IGetBindHandle_QueryInterface(IGetBindHandle* This,REFIID riid,void **ppvObject) {
10713     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10714 }
10715 static FORCEINLINE ULONG IGetBindHandle_AddRef(IGetBindHandle* This) {
10716     return This->lpVtbl->AddRef(This);
10717 }
10718 static FORCEINLINE ULONG IGetBindHandle_Release(IGetBindHandle* This) {
10719     return This->lpVtbl->Release(This);
10720 }
10721 /*** IGetBindHandle methods ***/
10722 static FORCEINLINE HRESULT IGetBindHandle_GetBindHandle(IGetBindHandle* This,BINDHANDLETYPES enumRequestedHandle,HANDLE *pRetHandle) {
10723     return This->lpVtbl->GetBindHandle(This,enumRequestedHandle,pRetHandle);
10724 }
10725 #endif
10726 #endif
10727 
10728 #endif
10729 
10730 HRESULT STDMETHODCALLTYPE IGetBindHandle_GetBindHandle_Proxy(
10731     IGetBindHandle* This,
10732     BINDHANDLETYPES enumRequestedHandle,
10733     HANDLE *pRetHandle);
10734 void __RPC_STUB IGetBindHandle_GetBindHandle_Stub(
10735     IRpcStubBuffer* This,
10736     IRpcChannelBuffer* pRpcChannelBuffer,
10737     PRPC_MESSAGE pRpcMessage,
10738     DWORD* pdwStubPhase);
10739 
10740 #endif  /* __IGetBindHandle_INTERFACE_DEFINED__ */
10741 
10742 #endif
10743 
10744 #ifndef _XHRPLUGGABLEPROTOCOL_DEFINED
10745 #define _XHRPLUGGABLEPROTOCOL_DEFINED
10746 
10747 typedef struct _tagPROTOCOL_ARGUMENT {
10748     LPCWSTR szMethod;
10749     LPCWSTR szTargetUrl;
10750 } PROTOCOL_ARGUMENT;
10751 typedef struct _tagPROTOCOL_ARGUMENT *LPPROTOCOL_ARGUMENT;
10752 #endif
10753 
10754 #ifndef _LPBINDCALLBACKREDIRECT_DEFINED
10755 #define _LPBINDCALLBACKREDIRECT_DEFINED
10756 
10757 /*****************************************************************************
10758  * IBindCallbackRedirect interface
10759  */
10760 #ifndef __IBindCallbackRedirect_INTERFACE_DEFINED__
10761 #define __IBindCallbackRedirect_INTERFACE_DEFINED__
10762 
10763 typedef IBindCallbackRedirect *LPBINDCALLBACKREDIRECT;
10764 
10765 DEFINE_GUID(IID_IBindCallbackRedirect, 0x11c81bc2, 0x121e, 0x4ed5, 0xb9,0xc4, 0xb4,0x30,0xbd,0x54,0xf2,0xc0);
10766 #if defined(__cplusplus) && !defined(CINTERFACE)
10767 MIDL_INTERFACE("11c81bc2-121e-4ed5-b9c4-b430bd54f2c0")
10768 IBindCallbackRedirect : public IUnknown
10769 {
10770     virtual HRESULT STDMETHODCALLTYPE Redirect(
10771         LPCWSTR lpcUrl,
10772         VARIANT_BOOL *vbCancel) = 0;
10773 
10774 };
10775 #ifdef __CRT_UUID_DECL
10776 __CRT_UUID_DECL(IBindCallbackRedirect, 0x11c81bc2, 0x121e, 0x4ed5, 0xb9,0xc4, 0xb4,0x30,0xbd,0x54,0xf2,0xc0)
10777 #endif
10778 #else
10779 typedef struct IBindCallbackRedirectVtbl {
10780     BEGIN_INTERFACE
10781 
10782     /*** IUnknown methods ***/
10783     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10784         IBindCallbackRedirect* This,
10785         REFIID riid,
10786         void **ppvObject);
10787 
10788     ULONG (STDMETHODCALLTYPE *AddRef)(
10789         IBindCallbackRedirect* This);
10790 
10791     ULONG (STDMETHODCALLTYPE *Release)(
10792         IBindCallbackRedirect* This);
10793 
10794     /*** IBindCallbackRedirect methods ***/
10795     HRESULT (STDMETHODCALLTYPE *Redirect)(
10796         IBindCallbackRedirect* This,
10797         LPCWSTR lpcUrl,
10798         VARIANT_BOOL *vbCancel);
10799 
10800     END_INTERFACE
10801 } IBindCallbackRedirectVtbl;
10802 interface IBindCallbackRedirect {
10803     CONST_VTBL IBindCallbackRedirectVtbl* lpVtbl;
10804 };
10805 
10806 #ifdef COBJMACROS
10807 #ifndef WIDL_C_INLINE_WRAPPERS
10808 /*** IUnknown methods ***/
10809 #define IBindCallbackRedirect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10810 #define IBindCallbackRedirect_AddRef(This) (This)->lpVtbl->AddRef(This)
10811 #define IBindCallbackRedirect_Release(This) (This)->lpVtbl->Release(This)
10812 /*** IBindCallbackRedirect methods ***/
10813 #define IBindCallbackRedirect_Redirect(This,lpcUrl,vbCancel) (This)->lpVtbl->Redirect(This,lpcUrl,vbCancel)
10814 #else
10815 /*** IUnknown methods ***/
10816 static FORCEINLINE HRESULT IBindCallbackRedirect_QueryInterface(IBindCallbackRedirect* This,REFIID riid,void **ppvObject) {
10817     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10818 }
10819 static FORCEINLINE ULONG IBindCallbackRedirect_AddRef(IBindCallbackRedirect* This) {
10820     return This->lpVtbl->AddRef(This);
10821 }
10822 static FORCEINLINE ULONG IBindCallbackRedirect_Release(IBindCallbackRedirect* This) {
10823     return This->lpVtbl->Release(This);
10824 }
10825 /*** IBindCallbackRedirect methods ***/
10826 static FORCEINLINE HRESULT IBindCallbackRedirect_Redirect(IBindCallbackRedirect* This,LPCWSTR lpcUrl,VARIANT_BOOL *vbCancel) {
10827     return This->lpVtbl->Redirect(This,lpcUrl,vbCancel);
10828 }
10829 #endif
10830 #endif
10831 
10832 #endif
10833 
10834 HRESULT STDMETHODCALLTYPE IBindCallbackRedirect_Redirect_Proxy(
10835     IBindCallbackRedirect* This,
10836     LPCWSTR lpcUrl,
10837     VARIANT_BOOL *vbCancel);
10838 void __RPC_STUB IBindCallbackRedirect_Redirect_Stub(
10839     IRpcStubBuffer* This,
10840     IRpcChannelBuffer* pRpcChannelBuffer,
10841     PRPC_MESSAGE pRpcMessage,
10842     DWORD* pdwStubPhase);
10843 
10844 #endif  /* __IBindCallbackRedirect_INTERFACE_DEFINED__ */
10845 
10846 #endif
10847 
10848 #endif
10849 /* Begin additional prototypes for all interfaces */
10850 
10851 ULONG           __RPC_USER STGMEDIUM_UserSize     (ULONG *, ULONG, STGMEDIUM *);
10852 unsigned char * __RPC_USER STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, STGMEDIUM *);
10853 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, STGMEDIUM *);
10854 void            __RPC_USER STGMEDIUM_UserFree     (ULONG *, STGMEDIUM *);
10855 ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
10856 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
10857 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
10858 void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
10859 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
10860 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
10861 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
10862 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
10863 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
10864 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
10865 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
10866 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
10867 
10868 /* End additional prototypes */
10869 
10870 #ifdef __cplusplus
10871 }
10872 #endif
10873 
10874 #endif /* __urlmon_h__ */
10875