winedbg: Added a close_process method to process_io.
[wine] / include / urlmon.idl
1 /*
2  * Copyright (C) 2000 Ulrich Czekalla
3  * Copyright (C) 2003 Alexandre Julliard
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  */
19
20 import "objidl.idl";
21 import "oleidl.idl";
22 import "servprov.idl";
23 import "msxml.idl";
24
25 interface IInternetProtocolSink;
26
27 /*****************************************************************************
28  * IBinding interface
29  */
30 [
31     object,
32     uuid(79eac9c0-baf9-11ce-8c82-00aa004ba90b),
33     pointer_default(unique)
34 ]
35 interface IBinding : IUnknown
36 {
37     typedef [unique] IBinding *LPBINDING;
38
39     HRESULT Abort();
40     HRESULT Suspend();
41     HRESULT Resume();
42
43     HRESULT SetPriority(
44         [in] LONG nPriority);
45
46     HRESULT GetPriority(
47         [out] LONG * pnPriority);
48
49     [local]
50     HRESULT GetBindResult(
51         [out] CLSID *pclsidProtocol,
52         [out] DWORD *pdwResult,
53         [out] LPOLESTR *pszResult,
54         [in, out] DWORD *pdwReserved);
55
56     [call_as(GetBindResult)]
57     HRESULT RemoteGetBindResult(
58         [out] CLSID *pclsidProtocol,
59         [out] DWORD *pdwResult,
60         [out] LPOLESTR *pszResult,
61         [in] DWORD dwReserved);
62 }
63
64
65 /*****************************************************************************
66  * IBindStatusCallback interface
67  */
68 [
69     object,
70     uuid(79eac9c1-baf9-11ce-8c82-00aa004ba90b),
71     pointer_default(unique)
72 ]
73 interface IBindStatusCallback : IUnknown
74 {
75     typedef [unique] IBindStatusCallback *LPBINDSTATUSCALLBACK;
76
77     typedef enum
78     {
79         BINDVERB_GET    = 0x00000000,
80         BINDVERB_POST   = 0x00000001,
81         BINDVERB_PUT    = 0x00000002,
82         BINDVERB_CUSTOM = 0x00000003
83     } BINDVERB;
84
85     typedef enum
86     {
87         BINDINFOF_URLENCODESTGMEDDATA = 0x00000001,
88         BINDINFOF_URLENCODEDEXTRAINFO = 0x00000002
89     } BINDINFOF;
90
91     typedef enum
92     {
93         BINDF_ASYNCHRONOUS = 0x00000001,
94         BINDF_ASYNCSTORAGE = 0x00000002,
95         BINDF_NOPROGRESSIVERENDERING = 0x00000004,
96         BINDF_OFFLINEOPERATION = 0x00000008,
97         BINDF_GETNEWESTVERSION = 0x00000010,
98         BINDF_NOWRITECACHE = 0x00000020,
99         BINDF_NEEDFILE = 0x00000040,
100         BINDF_PULLDATA = 0x00000080,
101         BINDF_IGNORESECURITYPROBLEM = 0x00000100,
102         BINDF_RESYNCHRONIZE = 0x00000200,
103         BINDF_HYPERLINK = 0x00000400,
104         BINDF_NO_UI = 0x00000800,
105         BINDF_SILENTOPERATION = 0x00001000,
106         BINDF_PRAGMA_NO_CACHE = 0x00002000,
107         BINDF_GETCLASSOBJECT = 0x00004000,
108         BINDF_RESERVED_1 = 0x00008000,
109         BINDF_FREE_THREADED = 0x00010000,
110         BINDF_DIRECT_READ = 0x00020000,
111         BINDF_FORMS_SUBMIT = 0x00040000,
112         BINDF_GETFROMCACHE_IF_NET_FAIL = 0x00080000,
113         BINDF_FROMURLMON = 0x00100000,
114         BINDF_FWD_BACK = 0x00200000,
115         BINDF_PREFERDEFAULTHANDLER = 0x00400000,
116         BINDF_ENFORCERESTRICTED = 0x00800000
117     } BINDF;
118
119     typedef struct _tagBINDINFO
120     {
121         ULONG cbSize;
122         LPWSTR szExtraInfo;
123         STGMEDIUM stgmedData;
124         DWORD grfBindInfoF;
125         DWORD dwBindVerb;
126         LPWSTR szCustomVerb;
127         DWORD cbStgmedData;
128         DWORD dwOptions;
129         DWORD dwOptionsFlags;
130         DWORD dwCodePage;
131         SECURITY_ATTRIBUTES securityAttributes;
132         IID iid;
133         IUnknown *pUnk;
134         DWORD dwReserved;
135     } BINDINFO;
136
137     typedef struct _REMSECURITY_ATTRIBUTES
138     {
139         DWORD nLength;
140         DWORD lpSecurityDescriptor;
141         BOOL bInheritHandle;
142     } REMSECURITY_ATTRIBUTES, *PREMSECURITY_ATTRIBUTES, *LPREMSECURITY_ATTRIBUTES;
143
144     typedef struct _tagRemBINDINFO
145     {
146         ULONG cbSize;
147         LPWSTR szExtraInfo;
148         DWORD grfBindInfoF;
149         DWORD dwBindVerb;
150         LPWSTR szCustomVerb;
151         DWORD cbstgmedData;
152         DWORD dwOptions;
153         DWORD dwOptionsFlags;
154         DWORD dwCodePage;
155         REMSECURITY_ATTRIBUTES securityAttributes;
156         IID iid;
157         IUnknown *pUnk;
158         DWORD dwReserved;
159     } RemBINDINFO;
160
161     typedef struct tagRemFORMATETC
162     {
163         DWORD cfFormat;
164         DWORD ptd;
165         DWORD dwAspect;
166         LONG lindex;
167         DWORD tymed;
168     } RemFORMATETC, *LPREMFORMATETC;
169
170     typedef enum
171     {
172         BSCF_FIRSTDATANOTIFICATION = 0x01,
173         BSCF_INTERMEDIATEDATANOTIFICATION = 0x02,
174         BSCF_LASTDATANOTIFICATION = 0x04,
175         BSCF_DATAFULLYAVAILABLE = 0x08,
176         BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10
177     } BSCF;
178
179     typedef enum BINDSTATUS
180     {
181         BINDSTATUS_FINDINGRESOURCE = 1,
182         BINDSTATUS_CONNECTING,
183         BINDSTATUS_REDIRECTING,
184         BINDSTATUS_BEGINDOWNLOADDATA,
185         BINDSTATUS_DOWNLOADINGDATA,
186         BINDSTATUS_ENDDOWNLOADDATA,
187         BINDSTATUS_BEGINDOWNLOADCOMPONENTS,
188         BINDSTATUS_INSTALLINGCOMPONENTS,
189         BINDSTATUS_ENDDOWNLOADCOMPONENTS,
190         BINDSTATUS_USINGCACHEDCOPY,
191         BINDSTATUS_SENDINGREQUEST,
192         BINDSTATUS_CLASSIDAVAILABLE,
193         BINDSTATUS_MIMETYPEAVAILABLE,
194         BINDSTATUS_CACHEFILENAMEAVAILABLE,
195         BINDSTATUS_BEGINSYNCOPERATION,
196         BINDSTATUS_ENDSYNCOPERATION,
197         BINDSTATUS_BEGINUPLOADDATA,
198         BINDSTATUS_UPLOADINGDATA,
199         BINDSTATUS_ENDUPLOADINGDATA,
200         BINDSTATUS_PROTOCOLCLASSID,
201         BINDSTATUS_ENCODING,
202         BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE,
203         BINDSTATUS_CLASSINSTALLLOCATION,
204         BINDSTATUS_DECODING,
205         BINDSTATUS_LOADINGMIMEHANDLER,
206         BINDSTATUS_CONTENTDISPOSITIONATTACH,
207         BINDSTATUS_FILTERREPORTMIMETYPE,
208         BINDSTATUS_CLSIDCANINSTANTIATE,
209         BINDSTATUS_IUNKNOWNAVAILABLE,
210         BINDSTATUS_DIRECTBIND,
211         BINDSTATUS_RAWMIMETYPE,
212         BINDSTATUS_PROXYDETECTING,
213         BINDSTATUS_ACCEPTRANGES,
214         BINDSTATUS_COOKIE_SENT,
215         BINDSTATUS_COMPACT_POLICY_RECEIVED,
216         BINDSTATUS_COOKIE_SUPPRESSED,
217         BINDSTATUS_COOKIE_STATE_UNKNOWN,
218         BINDSTATUS_COOKIE_STATE_ACCEPT,
219         BINDSTATUS_COOKIE_STATE_REJECT,
220         BINDSTATUS_COOKIE_STATE_PROMPT,
221         BINDSTATUS_COOKIE_STATE_LEASH,
222         BINDSTATUS_COOKIE_STATE_DOWNGRADE,
223         BINDSTATUS_POLICY_HREF,
224         BINDSTATUS_P3P_HEADER,
225         BINDSTATUS_SESSION_COOKIE_RECEIVED,
226         BINDSTATUS_PERSISTENT_COOKIE_RECEIVED,
227         BINDSTATUS_SESSION_COOKIES_ALLOWED,
228         BINDSTATUS_CACHECONTROL,
229         BINDSTATUS_CONTENTDISPOSITIONFILENAME,
230         BINDSTATUS_MIMETEXTPLAINMISMATCH,
231         BINDSTATUS_PUBLISHERAVAILABLE,
232         BINDSTATUS_DISPLAYNAMEAVAILABLE
233     } BINDSTATUS;
234
235
236     HRESULT OnStartBinding(
237         [in] DWORD dwReserved,
238         [in] IBinding * pib);
239
240     HRESULT GetPriority(
241         [out] LONG * pnPriority);
242
243     HRESULT OnLowResource(
244         [in] DWORD reserved);
245
246     HRESULT OnProgress(
247         [in] ULONG ulProgress,
248         [in] ULONG ulProgressMax,
249         [in] ULONG ulStatusCode,
250         [in] LPCWSTR szStatusText);
251
252     HRESULT OnStopBinding(
253         [in] HRESULT hresult,
254         [in, unique] LPCWSTR szError);
255
256     [local]
257     HRESULT GetBindInfo(
258         [out] DWORD *grfBINDF,
259         [in, out, unique] BINDINFO * pbindinfo);
260
261     [call_as(GetBindInfo)]
262     HRESULT RemoteGetBindInfo(
263         [out] DWORD *grfBINDF,
264         [in, out, unique] RemBINDINFO * pbindinfo,
265         [in, out, unique] RemSTGMEDIUM* pstgmed);
266
267     [local]
268     HRESULT OnDataAvailable(
269         [in] DWORD grfBSCF,
270         [in] DWORD dwSize,
271         [in] FORMATETC* pformatetc,
272         [in] STGMEDIUM* pstgmed);
273
274     [call_as(OnDataAvailable)]
275     HRESULT RemoteOnDataAvailable(
276         [in] DWORD grfBSCF,
277         [in] DWORD dwSize,
278         [in] RemFORMATETC *pformatetc,
279         [in] RemSTGMEDIUM* pstgmed);
280
281     HRESULT OnObjectAvailable(
282         [in] REFIID riid,
283         [in, iid_is(riid)] IUnknown* punk);
284 }
285
286 /*****************************************************************************
287  * IAuthenticate interface
288  */
289 [
290     local,
291     object,
292     uuid(79EAC9D0-BAf9-11CE-8C82-00AA004BA90B),
293     pointer_default(unique)
294 ]
295 interface IAuthenticate : IUnknown
296 {
297     typedef [unique] IAuthenticate *LPAUTHENTICATION;
298
299     HRESULT Authenticate(
300         [out] HWND* phwnd,
301         [out] LPWSTR *pszUsername,
302         [out] LPWSTR *pszPassword);
303 }
304
305 /*****************************************************************************
306  * IHttpNegotiate interface
307  */
308 [
309     object,
310     uuid(79EAC9D2-BAF9-11CE-8C82-00AA004BA90B),
311     pointer_default(unique)
312 ]
313 interface IHttpNegotiate : IUnknown
314 {
315     typedef [unique] IHttpNegotiate *LPHTTPNEGOTIATE;
316
317     HRESULT BeginningTransaction(
318         [in] LPCWSTR szURL,
319         [in, unique] LPCWSTR szHeaders,
320         [in] DWORD dwReserved,
321         [out] LPWSTR *pszAdditionalHeaders);
322
323     HRESULT OnResponse(
324         [in] DWORD dwResponseCode,
325         [in, unique] LPCWSTR szResponseHeaders,
326         [in, unique] LPCWSTR szRequestHeaders,
327         [out] LPWSTR *pszAdditionalRequestHeaders);
328 }
329
330 /*****************************************************************************
331  * IHttpNegotiate2 interface
332  */
333 [
334     object,
335     uuid(4F9F9FCB-E0F4-48eb-B7AB-FA2EA9365CB4),
336     pointer_default(unique)
337 ]
338 interface IHttpNegotiate2 : IHttpNegotiate
339 {
340     typedef [unique] IHttpNegotiate2 *LPHTTPNEGOTIATE2;
341
342     HRESULT GetRootSecurityId(
343          [out, size_is(*pcbSecurityId)] BYTE *pbSecurityId,
344          [in, out] DWORD *pcbSecurityId,
345          [in] DWORD_PTR dwReserved);
346 }
347
348 /*****************************************************************************
349  * IBindHost interface
350  */
351 cpp_quote("#define SID_IBindHost IID_IBindHost")
352 cpp_quote("#define SID_SBindHost IID_IBindHost")
353 [
354     object,
355     uuid(fc4801a1-2ba9-11cf-a229-00aa003d7352),
356     pointer_default(unique)
357 ]
358 interface IBindHost : IUnknown
359 {
360     typedef [unique] IBindHost *LPBINDHOST;
361
362     HRESULT CreateMoniker(
363         [in] LPOLESTR szName,
364         [in] IBindCtx *pBC,
365         [out] IMoniker** ppmk,
366         [in] DWORD dwReserved);
367
368     [local]
369     HRESULT MonikerBindToStorage(
370         [in] IMoniker *pMk,
371         [in] IBindCtx *pBC,
372         [in] IBindStatusCallback *pBSC,
373         [in] REFIID riid,
374         [out] void **ppvObj);
375
376     [call_as(MonikerBindToStorage)]
377     HRESULT RemoteMonikerBindToStorage(
378         [in, unique] IMoniker *pMk,
379         [in, unique] IBindCtx *pBC,
380         [in, unique] IBindStatusCallback *pBSC,
381         [in] REFIID riid,
382         [out, iid_is(riid)] IUnknown **ppvObj);
383
384     [local]
385     HRESULT MonikerBindToObject(
386         [in] IMoniker *pMk,
387         [in] IBindCtx *pBC,
388         [in] IBindStatusCallback *pBSC,
389         [in] REFIID riid,
390         [out] void **ppvObj);
391
392     [call_as(MonikerBindToObject)]
393     HRESULT RemoteMonikerBindToObject(
394         [in, unique] IMoniker *pMk,
395         [in, unique] IBindCtx *pBC,
396         [in, unique] IBindStatusCallback *pBSC,
397         [in] REFIID riid,
398         [out, iid_is(riid)] IUnknown **ppvObj);
399 }
400
401
402 /*****************************************************************************
403  * IWinInetInfo interface
404  */
405 [
406     object,
407     uuid(79eac9d6-bafa-11ce-8c82-00aa004ba90b),
408     pointer_default(unique)
409 ]
410 interface IWinInetInfo : IUnknown
411 {
412     typedef [unique] IWinInetInfo *LPWININETINFO;
413
414     [local]
415     HRESULT QueryOption(
416         [in] DWORD dwOption,
417         [in, out, size_is(*pcbBuf)] LPVOID pBuffer,
418         [in, out] DWORD *pcbBuf);
419
420     [call_as(QueryOption)]
421     HRESULT RemoteQueryOption(
422         [in] DWORD  dwOption,
423         [in, out, size_is(*pcbBuf)] BYTE *pBuffer,
424         [in, out] DWORD *pcbBuf);
425 }
426
427
428
429 /*****************************************************************************
430  * IWinInetHttpInfo interface
431  */
432 [
433     object,
434     uuid(79eac9d8-bafa-11ce-8c82-00aa004ba90b),
435     pointer_default(unique)
436 ]
437 interface IWinInetHttpInfo : IWinInetInfo
438 {
439     typedef [unique] IWinInetHttpInfo *LPWININETHTTPINFO;
440
441     [local]
442     HRESULT QueryInfo(
443         [in] DWORD dwOption,
444         [in, out,size_is(*pcbBuf)] LPVOID pBuffer,
445         [in, out] DWORD *pcbBuf,
446         [in, out] DWORD *pdwFlags,
447         [in, out] DWORD *pdwReserved);
448
449     [call_as(QueryInfo)]
450     HRESULT RemoteQueryInfo(
451         [in] DWORD dwOption,
452         [in,out,size_is(*pcbBuf)] BYTE *pBuffer,
453         [in, out] DWORD *pcbBuf,
454         [in, out] DWORD *pdwFlags,
455         [in, out] DWORD *pdwReserved);
456 }
457
458
459
460 /*****************************************************************************
461  * IPersistMoniker interface
462  */
463 [
464     object,
465     uuid(79eac9c9-baf9-11ce-8c82-00aa004ba90b),
466     pointer_default(unique)
467 ]
468 interface IPersistMoniker : IUnknown
469 {
470     typedef [unique] IPersistMoniker *LPPERSISTMONIKER;
471
472     HRESULT GetClassID(
473         [out] CLSID *pClassID);
474
475     HRESULT IsDirty();
476
477     HRESULT Load(
478         [in] BOOL fFullyAvailable,
479         [in] IMoniker *pimkName,
480         [in] LPBC pibc,
481         [in] DWORD grfMode);
482
483     HRESULT Save(
484         [in] IMoniker *pimkName,
485         [in] LPBC pbc,
486         [in] BOOL fRemember);
487
488     HRESULT SaveCompleted(
489         [in] IMoniker *pimkName,
490         [in] LPBC pibc);
491
492     HRESULT GetCurMoniker(
493         [out] IMoniker **ppimkName);
494 }
495
496 /*****************************************************************************
497  * IMonikerProp interface
498  */
499 [
500     object,
501     uuid(A5CA5F7F-1847-4D87-9C5B-918509F7511D),
502     pointer_default(unique)
503 ]
504 interface IMonikerProp : IUnknown
505 {
506     typedef [unique] IMonikerProp *LPMONIKERPROP;
507
508     typedef enum {
509         MIMETYPEPROP = 0x00000000,
510         USE_SRC_URL  = 0x00000001
511     } MONIKERPROPERTY;
512
513     HRESULT PutProperty(
514         [in] MONIKERPROPERTY mkp,
515         [in] LPCWSTR val);
516 }
517
518 /*****************************************************************************
519  * IInternetBindInfo interface
520  */
521 [
522     local,
523     object,
524     uuid(79EAC9E1-BAF9-11CE-8C82-00AA004BA90B),
525     pointer_default(unique)
526 ]
527 interface IInternetBindInfo : IUnknown
528 {
529     typedef [unique] IInternetBindInfo *LPIINTERNETBINDINFO;
530
531     typedef enum tagBINDSTRING
532     {
533         BINDSTRING_HEADERS = 1,
534         BINDSTRING_ACCEPT_MIMES,
535         BINDSTRING_EXTRA_URL,
536         BINDSTRING_LANGUAGE,
537         BINDSTRING_USERNAME,
538         BINDSTRING_PASSWORD,
539         BINDSTRING_UA_PIXELS,
540         BINDSTRING_UA_COLOR,
541         BINDSTRING_OS,
542         BINDSTRING_USER_AGENT,
543         BINDSTRING_ACCEPT_ENCODINGS,
544         BINDSTRING_POST_COOKIE,
545         BINDSTRING_POST_DATA_MIME,
546         BINDSTRING_URL,
547         BINDSTRING_IID,
548         BINDSTRING_FLAG_BIND_TO_OBJECT,
549         BINDSTRING_PTR_BIND_CONTEXT
550     } BINDSTRING;
551
552     HRESULT GetBindInfo(
553         [out] DWORD *grfBINDF,
554         [in, out, unique] BINDINFO *pbindinfo);
555
556     HRESULT GetBindString(
557         [in]      ULONG ulStringType,
558         [in, out] LPOLESTR *ppwzStr,
559         [in]      ULONG cEl,
560         [in, out] ULONG *pcElFetched);
561 }
562
563 /*****************************************************************************
564  * IInternetPriority interface
565  */
566 [
567     local,
568     object,
569     uuid(79EAC9EB-BAF9-11CE-8C82-00AA004BA90B),
570     pointer_default(unique)
571 ]
572 interface IInternetPriority : IUnknown
573 {
574     typedef [unique] IInternetPriority *LPIINTERNETPRIORITY;
575
576     HRESULT SetPriority([in] LONG nPriority);
577     HRESULT GetPriority([out] LONG *pnPriority);
578 }
579
580 /*****************************************************************************
581  * IInternetProtocolRoot interface
582  */
583 [
584     local,
585     object,
586     uuid(79EAC9E3-BAF9-11CE-8C82-00AA004BA90B),
587     pointer_default(unique)
588 ]
589 interface IInternetProtocolRoot : IUnknown
590 {
591     typedef [unique] IInternetProtocolRoot *LPIINTERNETPROTOCOLROOT;
592
593     typedef enum _tagPI_FLAGS
594     {
595         PI_PARSE_URL         = 0x00000001,
596         PI_FILTER_MODE       = 0x00000002,
597         PI_FORCE_ASYNC       = 0x00000004,
598         PI_USE_WORKERTHREAD  = 0x00000008,
599         PI_MIMEVERIFICATION  = 0x00000010,
600         PI_CLSIDLOOKUP       = 0x00000020,
601         PI_DATAPROGRESS      = 0x00000040,
602         PI_SYNCHRONOUS       = 0x00000080,
603         PI_APARTMENTTHREADED = 0x00000100,
604         PI_CLASSINSTALL      = 0x00000200,
605         PD_FORCE_SWITCH      = 0x00010000
606     } PI_FLAGS;
607
608     typedef struct _tagPROTOCOLDATA
609     {
610         DWORD grfFlags;
611         DWORD dwState;
612         LPVOID pData;
613         ULONG cbData;
614     } PROTOCOLDATA;
615
616     HRESULT Start(
617         [in] LPCWSTR szUrl,
618         [in] IInternetProtocolSink *pOIProtSink,
619         [in] IInternetBindInfo *pOIBindInfo,
620         [in] DWORD grfPI,
621         [in] DWORD dwReserved);
622
623     HRESULT Continue(
624         [in] PROTOCOLDATA *pProtocolData);
625
626     HRESULT Abort(
627         [in] HRESULT hrReason,
628         [in] DWORD dwOptions);
629
630     HRESULT Terminate(
631         [in] DWORD dwOptions);
632
633     HRESULT Suspend();
634
635     HRESULT Resume();
636 }
637
638 /*****************************************************************************
639  * IInternetProtocolSink interface
640  */
641 [
642     local,
643     object,
644     uuid(79EAC9E5-BAF9-11CE-8C82-00AA004BA90B),
645     pointer_default(unique)
646 ]
647 interface IInternetProtocolSink : IUnknown
648 {
649     typedef [unique] IInternetProtocolSink *LPIINTERNETPROTOCOLSINK;
650
651     HRESULT Switch(
652         [in] PROTOCOLDATA *pProtocolData);
653
654     HRESULT ReportProgress(
655         [in] ULONG ulStatusCode,
656         [in] LPCWSTR szStatusText);
657
658     HRESULT ReportData(
659         [in] DWORD grfBSCF,
660         [in] ULONG ulProgress,
661         [in] ULONG ulProgressMax);
662
663     HRESULT ReportResult(
664         [in] HRESULT hrResult,
665         [in] DWORD dwError,
666         [in] LPCWSTR szResult);
667 }
668
669 /*****************************************************************************
670  * IInternetProtocol interface
671  */
672 [
673     local,
674     object,
675     uuid(79EAC9E4-BAF9-11CE-8C82-00AA004BA90B),
676     pointer_default(unique)
677 ]
678 interface IInternetProtocol : IInternetProtocolRoot
679 {
680     typedef [unique] IInternetProtocol *LPIINTERNETPROTOCOL;
681
682     HRESULT Read(
683         [in,out, size_is(cb), length_is(*pcbRead)] void *pv,
684         [in]  ULONG cb,
685         [out] ULONG *pcbRead);
686
687     HRESULT Seek(
688         [in]  LARGE_INTEGER dlibMove,
689         [in]  DWORD dwOrigin,
690         [out] ULARGE_INTEGER *plibNewPosition);
691
692     HRESULT LockRequest(
693         [in] DWORD dwOptions);
694
695     HRESULT UnlockRequest();
696 }
697
698 /*****************************************************************************
699  * IInternetProtocolInfo interface
700  */
701 [
702     local,
703     object,
704     uuid(79eac9ec-baf9-11ce-8c82-00aa004ba90b),
705     pointer_default(unique)
706 ]
707 interface IInternetProtocolInfo : IUnknown
708 {
709     typedef [unique] IInternetProtocolInfo *LPIINTERNETPROTOCOLINFO;
710
711     typedef enum _tagPARSEACTION
712     {
713         PARSE_CANONICALIZE = 1,
714         PARSE_FRIENDLY,
715         PARSE_SECURITY_URL,
716         PARSE_ROOTDOCUMENT,
717         PARSE_DOCUMENT,
718         PARSE_ANCHOR,
719         PARSE_ENCODE,
720         PARSE_DECODE,
721         PARSE_PATH_FROM_URL,
722         PARSE_URL_FROM_PATH,
723         PARSE_MIME,
724         PARSE_SERVER,
725         PARSE_SCHEMA,
726         PARSE_SITE,
727         PARSE_DOMAIN,
728         PARSE_LOCATION,
729         PARSE_SECURITY_DOMAIN,
730         PARSE_ESCAPE,
731         PARSE_UNESCAPE
732     } PARSEACTION;
733
734     typedef enum _tagPSUACTION
735     {
736         PSU_DEFAULT = 1,
737         PSU_SECURITY_URL_ONLY
738     } PSUACTION;
739
740     typedef enum _tagQUERYOPTION
741     {
742         QUERY_EXPIRATION_DATE = 1,
743         QUERY_TIME_OF_LAST_CHANGE,
744         QUERY_CONTENT_ENCODING,
745         QUERY_CONTENT_TYPE,
746         QUERY_REFRESH,
747         QUERY_RECOMBINE,
748         QUERY_CAN_NAVIGATE,
749         QUERY_USES_NETWORK,
750         QUERY_IS_CACHED,
751         QUERY_IS_INSTALLEDENTRY,
752         QUERY_IS_CACHED_OR_MAPPED,
753         QUERY_USES_CACHE,
754         QUERY_IS_SECURE,
755         QUERY_IS_SAFE
756     } QUERYOPTION;
757
758     HRESULT ParseUrl(
759         [in] LPCWSTR pwzUrl,
760         [in] PARSEACTION ParseAction,
761         [in] DWORD dwParseFlags,
762         [out] LPWSTR pwzResult,
763         [in] DWORD cchResult,
764         [out] DWORD *pcchResult,
765         [in] DWORD dwReserved);
766
767     HRESULT CombineUrl(
768         [in] LPCWSTR pwzBaseUrl,
769         [in] LPCWSTR pwzRelativeUrl,
770         [in] DWORD dwCombineFlags,
771         [out] LPWSTR pwzResult,
772         [in] DWORD cchResult,
773         [out] DWORD *pcchResult,
774         [in] DWORD dwReserved);
775
776     HRESULT CompareUrl(
777         [in] LPCWSTR pwzUrl1,
778         [in] LPCWSTR pwzUrl2,
779         [in] DWORD dwCompareFlags);
780
781     HRESULT QueryInfo(
782         [in] LPCWSTR pwzUrl,
783         [in] QUERYOPTION OueryOption,
784         [in] DWORD dwQueryFlags,
785         [in, out,size_is(*pcbBuf)] LPVOID pBuffer,
786         [in] DWORD cbBuffer,
787         [in, out] DWORD *pcbBuf,
788         [in] DWORD dwReserved);
789 }
790
791 /*****************************************************************************
792  * IInternetSession interface
793  */
794 [
795     local,
796     object,
797     uuid(79eac9e7-baf9-11ce-8c82-00aa004ba90b),
798     pointer_default(unique)
799 ]
800 interface IInternetSession : IUnknown
801 {
802     typedef [unique] IInternetSession *LPIINTERNETSESSION;
803
804     typedef enum _tagOIBDG_FLAGS
805     {
806         OIBDG_APARTMENTTHREADED = 0x0100,
807         OIBDG_DATAONLY          = 0x1000
808     } OIBDG_FLAGS;
809
810     HRESULT RegisterNameSpace(
811         [in] IClassFactory *pCF,
812         [in] REFCLSID rclsid,
813         [in] LPCWSTR pwzProtocol,
814         [in] ULONG cPatterns,
815         [in] const LPCWSTR *ppwzPatterns,
816         [in] DWORD dwReserved);
817
818     HRESULT UnregisterNameSpace(
819         [in] IClassFactory *pCF,
820         [in] LPCWSTR pszProtocol);
821
822     HRESULT RegisterMimeFilter(
823         [in] IClassFactory *pCF,
824         [in] REFCLSID rclsid,
825         [in] LPCWSTR pwzType);
826
827     HRESULT UnregisterMimeFilter(
828         [in] IClassFactory *pCF,
829         [in] LPCWSTR pwzType);
830
831     HRESULT CreateBinding(
832         [in] LPBC pBC,
833         [in] LPCWSTR szUrl,
834         [in] IUnknown *pUnkOuter,
835         [out, unique] IUnknown **ppUnk,
836         [out, unique] IInternetProtocol **ppOInetProt,
837         [in] DWORD dwOption);
838
839     HRESULT SetSessionOption(
840         [in] DWORD dwOption,
841         [in] LPVOID pBuffer,
842         [in] DWORD dwBufferLength,
843         [in] DWORD dwReserved);
844 }
845
846 /*****************************************************************************
847  * IInternetSecurityMgrSite interface
848  */
849 [
850     local,
851     object,
852     uuid(79eac9ed-baf9-11ce-8c82-00aa004ba90b),
853     pointer_default(unique)
854 ]
855 interface IInternetSecurityMgrSite : IUnknown
856 {
857     HRESULT GetWindow(
858         [out] HWND *phwnd);
859
860     HRESULT EnableModeless(
861         [in] BOOL fEnable);
862 };
863
864
865 /*****************************************************************************
866  * IInternetSecurityManager interface
867  */
868 cpp_quote("#define SID_SInternetSecurityManager IID_IInternetSecurityManager")
869
870 [
871     object,
872     uuid(79eac9ee-baf9-11ce-8c82-00aa004ba90b),
873     pointer_default(unique)
874 ]
875 interface IInternetSecurityManager : IUnknown
876 {
877     HRESULT SetSecuritySite(
878         [in, unique] IInternetSecurityMgrSite *pSite);
879
880     HRESULT GetSecuritySite(
881         [out] IInternetSecurityMgrSite **ppSite);
882
883     HRESULT MapUrlToZone(
884         [in] LPCWSTR pwszUrl,
885         [out] DWORD *pdwZone,
886         [in] DWORD dwFlags);
887
888 cpp_quote("#define MAX_SIZE_SECURITY_ID 512")
889
890     HRESULT GetSecurityId(
891         [in] LPCWSTR pwszUrl,
892         [out, size_is(*pcbSecurityId)] BYTE *pbSecurityId,
893         [in, out] DWORD *pcbSecurityId,
894         [in] DWORD_PTR dwReserved);
895
896
897     typedef enum {
898         PUAF_DEFAULT                = 0x00,
899         PUAF_NOUI                   = 0x01,
900         PUAF_ISFILE                 = 0x02,
901         PUAF_WARN_IF_DENIED         = 0x04,
902         PUAF_FORCEUI_FOREGROUND     = 0x08,
903         PUAF_CHECK_TIPS             = 0x10
904     } PUAF;
905
906     HRESULT ProcessUrlAction(
907         [in] LPCWSTR pwszUrl,
908         [in] DWORD dwAction,
909         [out, size_is(cbPolicy)] BYTE *pPolicy,
910         [in] DWORD cbPolicy,
911         [in] BYTE *pContext,
912         [in] DWORD cbContext,
913         [in] DWORD dwFlags,
914         [in] DWORD dwReserved);
915
916     HRESULT QueryCustomPolicy(
917         [in] LPCWSTR pwszUrl,
918         [in] REFGUID guidKey,
919         [out, size_is(,*pcbPolicy)] BYTE **ppPolicy,
920         [out] DWORD *pcbPolicy,
921         [in] BYTE *pContext,
922         [in] DWORD cbContext,
923         [in] DWORD dwReserved);
924
925     typedef enum {
926         SZM_CREATE = 0x0,
927         SZM_DELETE = 0x1
928     } SZM_FLAGS;
929
930     HRESULT SetZoneMapping(
931         [in] DWORD dwZone,
932         [in] LPCWSTR lpszPattern,
933         [in] DWORD dwFlags);
934
935     HRESULT GetZoneMappings(
936         [in] DWORD dwZone,
937         [out] IEnumString **ppenumString,
938         [in] DWORD dwFlags);
939 };
940
941 /*****************************************************************************
942  * IInternetZoneManager interface
943  */
944 [
945     local,
946     object,
947     uuid(79EAC9EF-BAf9-11CE-8C82-00AA004BA90B),
948     pointer_default(unique)
949 ]
950 interface IInternetZoneManager : IUnknown
951 {
952     typedef [unique] IInternetZoneManager* LPURLZONEMANAGER;
953
954     typedef enum tagURLZONE
955     {
956         URLZONE_PREDEFINED_MIN  = 0,
957         URLZONE_LOCAL_MACHINE   = 0,
958         URLZONE_INTRANET        = 1,
959         URLZONE_TRUSTED         = 2,
960         URLZONE_INTERNET        = 3,
961         URLZONE_UNTRUSTED       = 4,
962         URLZONE_PREDEFINED_MAX  = 999,
963         URLZONE_USER_MIN        = 1000,
964         URLZONE_USER_MAX        = 10000,
965     }  URLZONE;
966
967     typedef enum tagURLTEMPLATE
968     {
969         URLTEMPLATE_CUSTOM         = 0x00000,
970         URLTEMPLATE_PREDEFINED_MIN = 0x10000,
971         URLTEMPLATE_LOW            = 0x10000,
972         URLTEMPLATE_MEDIUM         = 0x11000,
973         URLTEMPLATE_HIGH           = 0x12000,
974         URLTEMPLATE_PREDEFINED_MAX = 0x20000,
975     } URLTEMPLATE ;
976
977     typedef enum {
978         ZAFLAGS_CUSTOM_EDIT            = 0x00000001,
979         ZAFLAGS_ADD_SITES              = 0x00000002,
980         ZAFLAGS_REQUIRE_VERIFICATION   = 0x00000004,
981         ZAFLAGS_INCLUDE_PROXY_OVERRIDE = 0x00000008,
982         ZAFLAGS_INCLUDE_INTRANET_SITES = 0x00000010,
983         ZAFLAGS_NO_UI                  = 0x00000020,
984         ZAFLAGS_SUPPORTS_VERIFICATION  = 0x00000040,
985         ZAFLAGS_UNC_AS_INTRANET        = 0x00000080,
986     } ZAFLAGS ;
987
988     enum {
989         MAX_ZONE_PATH        = 260,
990         MAX_ZONE_DESCRIPTION = 200
991     };
992
993     typedef struct _ZONEATTRIBUTES {
994         ULONG cbSize;
995         WCHAR szDisplayName[MAX_ZONE_PATH];
996         WCHAR szDescription[MAX_ZONE_DESCRIPTION];
997         WCHAR szIconPath[MAX_ZONE_PATH];
998         DWORD dwTemplateMinLevel;
999         DWORD dwTemplateRecommended;
1000         DWORD dwTemplateCurrentLevel;
1001         DWORD dwFlags;
1002     } ZONEATTRIBUTES, *LPZONEATTRIBUTES;
1003
1004     typedef enum _URLZONEREG {
1005         URLZONEREG_DEFAULT,
1006         URLZONEREG_HKLM,
1007         URLZONEREG_HKCU
1008     } URLZONEREG;
1009
1010     HRESULT GetZoneAttributes(
1011         [in]              DWORD dwZone,
1012         [in, out, unique] ZONEATTRIBUTES* pZoneAttributes);
1013
1014     HRESULT SetZoneAttributes(
1015         [in] DWORD dwZone,
1016         [in] ZONEATTRIBUTES* pZoneAttributes);
1017
1018     HRESULT GetZoneCustomPolicy(
1019         [in]  DWORD dwZone,
1020         [in]  REFGUID guidKey,
1021         [out] BYTE **ppPolicy,
1022         [out] DWORD* pcbPolicy,
1023         [in]  URLZONEREG ulrZoneReg);
1024
1025     HRESULT SetZoneCustomPolicy(
1026         [in] DWORD dwZone,
1027         [in] REFGUID guidKey,
1028         [in] BYTE *ppPolicy,
1029         [in] DWORD pcbPolicy,
1030         [in] URLZONEREG ulrZoneReg);
1031
1032     HRESULT GetZoneActionPolicy(
1033         [in]  DWORD dwZone,
1034         [in]  DWORD dwAction,
1035         [out] BYTE* pPolicy,
1036         [in]  DWORD cbPolicy,
1037         [in]  URLZONEREG urlZoneReg);
1038
1039     HRESULT SetZoneActionPolicy(
1040         [in] DWORD dwZone,
1041         [in] DWORD dwAction,
1042         [in] BYTE* pPolicy,
1043         [in] DWORD cbPolicy,
1044         [in] URLZONEREG urlZoneReg);
1045
1046     HRESULT PromptAction(
1047         [in] DWORD dwAction,
1048         [in] HWND hwndParent,
1049         [in] LPCWSTR pwszUrl,
1050         [in] LPCWSTR pwszText,
1051         [in] DWORD dwPromptFlags );
1052
1053     HRESULT LogAction(
1054         [in] DWORD dwAction,
1055         [in] LPCWSTR pwszUrl,
1056         [in] LPCWSTR pwszText,
1057         [in] DWORD dwLogFlags);
1058
1059     HRESULT CreateZoneEnumerator(
1060         [out] DWORD* pdwEnum,
1061         [out] DWORD* pdwCount,
1062         [in]  DWORD dwFlags);
1063
1064     HRESULT GetZoneAt(
1065         [in]  DWORD dwEnum,
1066         [in]  DWORD dwIndex,
1067         [out] DWORD* pdwZone);
1068
1069     HRESULT DestroyZoneEnumerator(
1070         [in] DWORD dwEnum);
1071
1072     HRESULT CopyTemplatePoliciesToZone(
1073         [in] DWORD dwTemplate,
1074         [in] DWORD dwZone,
1075         [in] DWORD dwReserved);
1076 }
1077
1078 typedef struct _tagSOFTDISTINFO
1079 {
1080     ULONG cbSize;
1081     DWORD dwFlags;
1082     DWORD dwAdState;
1083     LPWSTR szTitle;
1084     LPWSTR szAbstract;
1085     LPWSTR szHREF;
1086     DWORD dwInstalledVersionMS;
1087     DWORD dwInstalledVersionLS;
1088     DWORD dwUpdateVersionMS;
1089     DWORD dwUpdateVersionLS;
1090     DWORD dwAdvertisedVersionMS;
1091     DWORD dwAdvertisedVersionLS;
1092     DWORD dwReserved;
1093 } SOFTDISTINFO, *LPSOFTDISTINFO;
1094
1095 typedef struct _tagCODEBASEHOLD
1096 {
1097     DWORD cbSize;
1098     LPWSTR szDistUnit;
1099     LPWSTR szCodeBase;
1100     DWORD dwVersionMS;
1101     DWORD dwVersionLS;
1102     DWORD dwStyle;
1103 } CODEBASEHOLD, *LPCODEBASEHOLD;
1104
1105 [
1106     local,
1107     object,
1108     uuid(b15b8dc1-c7e1-11d0-8680-00aa00bdcb71),
1109     pointer_default(unique)
1110 ]
1111 interface ISoftDistExt : IUnknown
1112 {
1113     HRESULT ProcessSoftDist(
1114         [in] LPCWSTR szCDFURL,
1115         [in] IXMLElement *pSoftDistElement,
1116         [in, out] LPSOFTDISTINFO lpsdi );
1117
1118     HRESULT GetFirstCodeBase(
1119         [in] LPWSTR *szCodeBase,
1120         [in] LPDWORD dwMaxSize );
1121
1122     HRESULT GetNextCodeBase(
1123         [in] LPWSTR *szCodeBase,
1124         [in] LPDWORD dwMaxSize );
1125
1126     HRESULT AsyncInstallDistributionUnit(
1127         [in] IBindCtx *pbc,
1128         [in] LPVOID lpReserved,
1129         [in] DWORD flags,
1130         [in] LPCODEBASEHOLD lpcbh);
1131 }
1132
1133 cpp_quote("DEFINE_GUID(CLSID_InternetSecurityManager, 0x7b8a2d94, 0x0ac9, 0x11d1, 0x89, 0x6c, 0x00, 0xc0, 0x4f, 0xB6, 0xbf, 0xc4);")
1134 cpp_quote("DEFINE_GUID(CLSID_InternetZoneManager, 0x7B8A2D95, 0x0AC9, 0x11D1, 0x89, 0x6C, 0x00, 0xC0, 0x4F, 0xB6, 0xBF, 0xC4);")
1135 cpp_quote("DEFINE_GUID(IID_IAsyncMoniker, 0x79EAC9D3, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);")
1136 cpp_quote("DEFINE_GUID(IID_IAsyncBindCtx, 0x79EAC9D4, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);")
1137 cpp_quote("DEFINE_GUID(CLSID_StdURLMoniker, 0x79EAC9E0, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);")
1138
1139 cpp_quote("DEFINE_GUID(CLSID_CdlProtocol, 0x3dd53d40, 0x7b8b, 0x11D0, 0xb0,0x13, 0x00,0xaa,0x00,0x59,0xce,0x02);")
1140 cpp_quote("DEFINE_GUID(CLSID_FileProtocol, 0x79EAC9E7, 0xBAF9, 0x11CE, 0x8C,0x82, 0x00,0xAA,0x00,0x4B,0xA9,0x0B);")
1141 cpp_quote("DEFINE_GUID(CLSID_FtpProtocol, 0x79EAC9E3, 0xBAF9, 0x11CE, 0x8C,0x82, 0x00,0xAA,0x00,0x4B,0xA9,0x0B);")
1142 cpp_quote("DEFINE_GUID(CLSID_GopherProtocol, 0x79EAC9E4, 0xBAF9, 0x11CE, 0x8C,0x82, 0x00,0xAA,0x00,0x4B,0xA9,0x0B);")
1143 cpp_quote("DEFINE_GUID(CLSID_HttpProtocol, 0x79EAC9E2, 0xBAF9, 0x11CE, 0x8C,0x82, 0x00,0xAA,0x00,0x4B,0xA9,0x0B);")
1144 cpp_quote("DEFINE_GUID(CLSID_HttpSProtocol, 0x79EAC9E5, 0xBAF9, 0x11CE, 0x8C,0x82, 0x00,0xAA,0x00,0x4B,0xA9,0x0B);")
1145 cpp_quote("DEFINE_GUID(CLSID_MkProtocol, 0x79EAC9E6, 0xBAF9, 0x11CE, 0x8C,0x82, 0x00,0xAA,0x00,0x4B,0xA9,0x0B);")
1146
1147
1148 cpp_quote("#define MK_S_ASYNCHRONOUS                0x000401E8")
1149 cpp_quote("#define S_ASYNCHRONOUS                   MK_S_ASYNCHRONOUS")
1150
1151 cpp_quote("#define INET_E_ERROR_FIRST               0x800C0002")
1152 cpp_quote("#define INET_E_INVALID_URL               0x800C0002")
1153 cpp_quote("#define INET_E_NO_SESSION                0x800C0003")
1154 cpp_quote("#define INET_E_CANNOT_CONNECT            0x800C0004")
1155 cpp_quote("#define INET_E_RESOURCE_NOT_FOUND        0x800C0005")
1156 cpp_quote("#define INET_E_OBJECT_NOT_FOUND          0x800C0006")
1157 cpp_quote("#define INET_E_DATA_NOT_AVAILABLE        0x800C0007")
1158 cpp_quote("#define INET_E_DOWNLOAD_FAILURE          0x800C0008")
1159 cpp_quote("#define INET_E_AUTHENTICATION_REQUIRED   0x800C0009")
1160 cpp_quote("#define INET_E_NO_VALID_MEDIA            0x800C000A")
1161 cpp_quote("#define INET_E_CONNECTION_TIMEOUT        0x800C000B")
1162 cpp_quote("#define INET_E_INVALID_REQUEST           0x800C000C")
1163 cpp_quote("#define INET_E_UNKNOWN_PROTOCOL          0x800C000D")
1164 cpp_quote("#define INET_E_SECURITY_PROBLEM          0x800C000E")
1165 cpp_quote("#define INET_E_CANNOT_LOAD_DATA          0x800C000F")
1166 cpp_quote("#define INET_E_CANNOT_INSTANTIATE_OBJECT 0x800C0010")
1167 cpp_quote("#define INET_E_USE_DEFAULT_PROTOCOLHANDLER 0x800C0011")
1168 cpp_quote("#define INET_E_QUERYOPTION_UNKNOWN       0x800C0013")
1169 cpp_quote("#define INET_E_REDIRECT_FAILED           0x800C0014")
1170 cpp_quote("#define INET_E_REDIRECT_TO_DIR           0x800C0015")
1171 cpp_quote("#define INET_E_CANNOT_LOCK_REQUEST       0x800C0016")
1172 cpp_quote("#define INET_E_ERROR_LAST                INET_E_REDIRECT_TO_DIR")
1173 cpp_quote("#define INET_E_DEFAULT_ACTION            INET_E_USE_DEFAULT_PROTOCOLHANDLER")
1174
1175 cpp_quote("HRESULT WINAPI CoGetClassObjectFromURL(REFCLSID, LPCWSTR, DWORD, DWORD, LPCWSTR, LPBINDCTX, DWORD, LPVOID, REFIID, LPVOID*);")
1176 cpp_quote("HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk);")
1177 cpp_quote("HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pbsc, IBindStatusCallback **ppbsc, DWORD dwReserved);")
1178 cpp_quote("HRESULT WINAPI CompareSecurityIds(BYTE*,DWORD,BYTE*,DWORD,DWORD);")
1179 cpp_quote("HRESULT WINAPI URLDownloadToFileA(LPUNKNOWN,LPCSTR,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);")
1180 cpp_quote("HRESULT WINAPI URLDownloadToFileW(LPUNKNOWN,LPCWSTR,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);")
1181 cpp_quote("HRESULT WINAPI URLDownloadToCacheFileA(LPUNKNOWN,LPCSTR,LPSTR,DWORD,DWORD,LPBINDSTATUSCALLBACK);")
1182 cpp_quote("HRESULT WINAPI URLDownloadToCacheFileW(LPUNKNOWN,LPCWSTR,LPWSTR,DWORD,DWORD,LPBINDSTATUSCALLBACK);")
1183 cpp_quote("HRESULT WINAPI CoInternetGetSession(DWORD,IInternetSession**,DWORD);")
1184 cpp_quote("HRESULT WINAPI MkParseDisplayNameEx(IBindCtx*,LPCWSTR,ULONG*,IMoniker**);")
1185 cpp_quote("HRESULT WINAPI IsAsyncMoniker(IMoniker* pmk);")
1186 cpp_quote("HRESULT WINAPI CreateAsyncBindCtx(DWORD, IBindStatusCallback*, IEnumFORMATETC*, IBindCtx**);")
1187 cpp_quote("HRESULT WINAPI CreateAsyncBindCtxEx(IBindCtx*,DWORD,IBindStatusCallback*,IEnumFORMATETC*,IBindCtx**,DWORD);")
1188 cpp_quote("HRESULT WINAPI CoInternetCreateSecurityManager(IServiceProvider*,IInternetSecurityManager**,DWORD);")
1189 cpp_quote("HRESULT WINAPI CoInternetCombineUrl(LPCWSTR,LPCWSTR,DWORD,LPWSTR,DWORD,DWORD*,DWORD);")
1190 cpp_quote("HRESULT WINAPI CoInternetCompareUrl(LPCWSTR,LPCWSTR,DWORD);")
1191 cpp_quote("HRESULT WINAPI CoInternetCreateZoneManager(IServiceProvider*, IInternetZoneManager**, DWORD);")
1192 cpp_quote("HRESULT WINAPI CoInternetParseUrl(LPCWSTR,PARSEACTION,DWORD,LPWSTR,DWORD,DWORD*,DWORD);")
1193 cpp_quote("HRESULT WINAPI CoInternetQueryInfo(LPCWSTR,QUERYOPTION,DWORD,LPVOID,DWORD,DWORD*,DWORD);")
1194 cpp_quote("HRESULT WINAPI CreateFormatEnumerator(UINT,FORMATETC*,IEnumFORMATETC**);")
1195 cpp_quote("HRESULT WINAPI GetSoftwareUpdateInfo( LPCWSTR szDistUnit, LPSOFTDISTINFO psdi);")
1196 cpp_quote("HRESULT WINAPI FaultInIEFeature(HWND,uCLSSPEC*,QUERYCONTEXT*,DWORD);")
1197 cpp_quote("HRESULT WINAPI FindMimeFromData(LPBC,LPCWSTR,LPVOID,DWORD,LPCWSTR,DWORD,LPWSTR*,DWORD);")
1198 cpp_quote("HRESULT WINAPI HlinkGoBack(IUnknown*);")
1199 cpp_quote("HRESULT WINAPI HlinkGoForward(IUnknown*);")
1200 cpp_quote("HRESULT WINAPI HlinkNavigateMoniker(IUnknown*,IMoniker*);")
1201 cpp_quote("HRESULT WINAPI HlinkNavigateString(IUnknown*,LPCWSTR);")
1202 cpp_quote("HRESULT WINAPI HlinkSimpleNavigateToMoniker(IMoniker*,LPCWSTR,LPCWSTR,IUnknown*,IBindCtx*,IBindStatusCallback*,DWORD,DWORD);")
1203 cpp_quote("HRESULT WINAPI HlinkSimpleNavigateToString(LPCWSTR,LPCWSTR,LPCWSTR,IUnknown*,IBindCtx*,IBindStatusCallback*,DWORD,DWORD);")
1204 cpp_quote("HRESULT WINAPI IsValidURL(LPBC,LPCWSTR,DWORD);")
1205 cpp_quote("HRESULT WINAPI ObtainUserAgentString(DWORD,LPSTR,DWORD*);")
1206 cpp_quote("HRESULT WINAPI RegisterFormatEnumerator(LPBC,IEnumFORMATETC*,DWORD);")
1207 cpp_quote("HRESULT WINAPI RevokeFormatEnumerator(LPBC,IEnumFORMATETC*);")
1208 cpp_quote("HRESULT WINAPI RevokeBindStatusCallback(LPBC,IBindStatusCallback*);")
1209 cpp_quote("void WINAPI ReleaseBindInfo(BINDINFO*);")
1210 cpp_quote("HRESULT WINAPI UrlMkGetSessionOption(DWORD,LPVOID,DWORD,DWORD*,DWORD);")
1211 cpp_quote("HRESULT WINAPI UrlMkSetSessionOption(DWORD,LPVOID,DWORD,DWORD);")
1212
1213 cpp_quote("#define OInetCombineUrl CoInternetCombineUrl")
1214 cpp_quote("#define OInetCompareUrl CoInternetCompareUrl")
1215 cpp_quote("#define OInetGetSession CoInternetGetSession")
1216
1217 cpp_quote("#define MKSYS_URLMONIKER 6")