1{$mode objfpc}
2{$h+}
3{ urlmon.h translation.
4  Original urlmon.h copyright:
5  Microsoft Windows
6  Copyright (c) Microsoft Corporation. All rights reserved.
7}
8
9Unit urlmon;
10
11Interface
12
13Uses
14  windows, activex;
15
16Const
17  liburlmon = 'urlmon.dll';
18
19  SZ_URLCONTEXT: POLEStr   = 'URL Context';
20  SZ_ASYNC_CALLEE: POLEStr = 'AsyncCallee';
21  MKSYS_URLMONIKER = 6;
22
23  IID_IAuthenticate :  TGUID = '{79eac9d0-baf9-11ce-8c82-00aa004ba90b}';
24  IID_IBindHost :  TGUID = '{fc4801a1-2ba9-11cf-a229-00aa003d7352}';
25  IID_IBinding :  TGUID = '{79eac9c0-baf9-11ce-8c82-00aa004ba90b}';
26  IID_IBindStatusCallback : TGUID = '{79eac9c1-baf9-11ce-8c82-00aa004ba90b}';
27  IID_ICodeInstall :  TGUID = '{79eac9d1-baf9-11ce-8c82-00aa004ba90b}';
28  IID_IDataFilter : TGUID = '{69d14c80-c18e-11d0-a9ce-006097942311}';
29  IID_IEncodingFilterFactory : TGUID = '{70bdde00-c18e-11d0-a9ce-006097942311}';
30  IID_IHttpNegotiate : TGUID = '{79eac9d2-baf9-11ce-8c82-00aa004ba90b}';
31  IID_IHttpSecurity : TGUID = '{79eac9d7-bafa-11ce-8c82-00aa004ba90b}';
32  IID_IInternet :  TGUID = '{79eac9e0-baf9-11ce-8c82-00aa004ba90b}';
33  IID_IInternetBindInfo : TGUID = '{79eac9e1-baf9-11ce-8c82-00aa004ba90b}';
34  IID_IInternetHostSecurityManager : TGUID = '{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}';
35  IID_IInternetPriority : TGUID = '{79eac9eb-baf9-11ce-8c82-00aa004ba90b}';
36  IID_IInternetProtocol : TGUID = '{79eac9e4-baf9-11ce-8c82-00aa004ba90b}';
37  IID_IInternetProtocolInfo : TGUID = '{79eac9ec-baf9-11ce-8c82-00aa004ba90b}';
38  IID_IInternetProtocolRoot : TGUID = '{79eac9e3-baf9-11ce-8c82-00aa004ba90b}';
39  IID_IInternetProtocolSink : TGUID = '{79eac9e5-baf9-11ce-8c82-00aa004ba90b}';
40  IID_IInternetSecurityManager : TGUID = '{79eac9ee-baf9-11ce-8c82-00aa004ba90b}';
41  IID_IInternetSecurityMgrSite : TGUID = '{79eac9ed-baf9-11ce-8c82-00aa004ba90b}';
42  IID_IInternetSession : TGUID = '{79eac9e7-baf9-11ce-8c82-00aa004ba90b}';
43  IID_IInternetThreadSwitch : TGUID = '{79eac9e8-baf9-11ce-8c82-00aa004ba90b}';
44  IID_IInternetZoneManager : TGUID = '{79eac9ef-baf9-11ce-8c82-00aa004ba90b}';
45  IID_IOInet : TGUID = '{79eac9e0-baf9-11ce-8c82-00aa004ba90b}';
46  IID_IOInetBindInfo : TGUID = '{79eac9e1-baf9-11ce-8c82-00aa004ba90b}';
47  IID_IOInetPriority : TGUID = '{79eac9eb-baf9-11ce-8c82-00aa004ba90b}';
48  IID_IOInetProtocol : TGUID = '{79eac9e4-baf9-11ce-8c82-00aa004ba90b}';
49  IID_IOInetProtocolInfo : TGUID = '{79eac9ec-baf9-11ce-8c82-00aa004ba90b}';
50  IID_IOInetProtocolRoot : TGUID = '{79eac9e3-baf9-11ce-8c82-00aa004ba90b}';
51  IID_IOInetProtocolSink : TGUID = '{79eac9e5-baf9-11ce-8c82-00aa004ba90b}';
52  IID_IOInetSession : TGUID = '{79eac9e7-baf9-11ce-8c82-00aa004ba90b}';
53  IID_IOInetThreadSwitch : TGUID = '{79eac9e8-baf9-11ce-8c82-00aa004ba90b}';
54  IID_IPersistMoniker : TGUID = '{79eac9c9-baf9-11ce-8c82-00aa004ba90b}';
55  IID_ISoftDistExt : TGUID = '{B15B8DC1-C7E1-11d0-8680-00AA00BDCB71}';
56  IID_IWindowForBindingUI : TGUID = '{79eac9d5-bafa-11ce-8c82-00aa004ba90b}';
57  IID_IWinInetHttpInfo : TGUID = '{79eac9d8-bafa-11ce-8c82-00aa004ba90b}';
58  IID_IWinInetInfo : TGUID = '{79eac9d6-bafa-11ce-8c82-00aa004ba90b}';
59  SID_IBindHost : TGUID = '{fc4801a1-2ba9-11cf-a229-00aa003d7352}';
60  SID_IInternetHostSecurityManager : TGUID = '{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}';
61  SID_IInternetSecurityManager : TGUID = '{79eac9ee-baf9-11ce-8c82-00aa004ba90b}';
62  SID_SBindHost :  TGUID = '{fc4801a1-2ba9-11cf-a229-00aa003d7352}';
63
64  URLMON_OPTION_USERAGENT         = $10000001;
65  URLMON_OPTION_USERAGENT_REFRESH = $10000002;
66
67  CF_NULL                = 0;
68  CFSTR_MIME_NULL        = 0;
69  CFSTR_MIME_TEXT        = 'text/plain';
70  CFSTR_MIME_RICHTEXT    = 'text/richtext';
71  CFSTR_MIME_X_BITMAP    = 'image/x-xbitmap';
72  CFSTR_MIME_POSTSCRIPT  = 'application/postscript';
73  CFSTR_MIME_AIFF        = 'audio/aiff';
74  CFSTR_MIME_BASICAUDIO  = 'audio/basic';
75  CFSTR_MIME_WAV         = 'audio/wav';
76  CFSTR_MIME_X_WAV       = 'audio/x-wav';
77  CFSTR_MIME_GIF         = 'image/gif';
78  CFSTR_MIME_PJPEG       = 'image/pjpeg';
79  CFSTR_MIME_JPEG        = 'image/jpeg';
80  CFSTR_MIME_TIFF        = 'image/tiff';
81  CFSTR_MIME_X_PNG       = 'image/x-png';
82  CFSTR_MIME_BMP         = 'image/bmp';
83  CFSTR_MIME_X_ART       = 'image/x-jg';
84  CFSTR_MIME_X_EMF       = 'image/x-emf';
85  CFSTR_MIME_X_WMF       = 'image/x-wmf';
86  CFSTR_MIME_AVI         = 'video/avi';
87  CFSTR_MIME_MPEG        = 'video/mpeg';
88  CFSTR_MIME_FRACTALS    = 'application/fractals';
89  CFSTR_MIME_RAWDATA     = 'application/octet-stream';
90  CFSTR_MIME_RAWDATASTRM = 'application/octet-stream';
91  CFSTR_MIME_PDF         = 'application/pdf';
92  CFSTR_MIME_X_AIFF      = 'audio/x-aiff';
93  CFSTR_MIME_X_REALAUDIO = 'audio/x-pn-realaudio';
94  CFSTR_MIME_XBM         = 'image/xbm';
95  CFSTR_MIME_QUICKTIME   = 'video/quicktime';
96  CFSTR_MIME_X_MSVIDEO   = 'video/x-msvideo';
97  CFSTR_MIME_X_SGI_MOVIE = 'video/x-sgi-movie';
98  CFSTR_MIME_HTML        = 'text/html';
99
100  MK_S_ASYNCHRONOUS = $000401E8;
101  S_ASYNCHRONOUS    = MK_S_ASYNCHRONOUS;
102
103  E_PENDING = $8000000A;
104
105  BINDVERB_GET                   = $00000000;
106  BINDVERB_POST                  = $00000001;
107  BINDVERB_PUT                   = $00000002;
108  BINDVERB_CUSTOM                = $00000003;
109  BINDINFOF_URLENCODESTGMEDDATA  = $00000001;
110  BINDINFOF_URLENCODEDEXTRAINFO  = $00000002;
111  BINDF_ASYNCHRONOUS             = $00000001;
112  BINDF_ASYNCSTORAGE             = $00000002;
113  BINDF_NOPROGRESSIVERENDERING   = $00000004;
114  BINDF_OFFLINEOPERATION         = $00000008;
115  BINDF_GETNEWESTVERSION         = $00000010;
116  BINDF_NOWRITECACHE             = $00000020;
117  BINDF_NEEDFILE                 = $00000040;
118  BINDF_PULLDATA                 = $00000080;
119  BINDF_IGNORESECURITYPROBLEM    = $00000100;
120  BINDF_RESYNCHRONIZE            = $00000200;
121  BINDF_HYPERLINK                = $00000400;
122  BINDF_NO_UI                    = $00000800;
123  BINDF_SILENTOPERATION          = $00001000;
124  BINDF_PRAGMA_NO_CACHE          = $00002000;
125  BINDF_FREE_THREADED            = $00010000;
126  BINDF_DIRECT_READ              = $00020000;
127  BINDF_FORMS_SUBMIT             = $00040000;
128  BINDF_GETFROMCACHE_IF_NET_FAIL = $00080000;
129
130  BINDF_DONTUSECACHE             = BINDF_GETNEWESTVERSION;
131  BINDF_DONTPUTINCACHE           = BINDF_NOWRITECACHE;
132  BINDF_NOCOPYDATA               = BINDF_PULLDATA;
133
134
135  BSCF_FIRSTDATANOTIFICATION        = $00000001;
136  BSCF_INTERMEDIATEDATANOTIFICATION = $00000002;
137  BSCF_LASTDATANOTIFICATION         = $00000004;
138  BSCF_DATAFULLYAVAILABLE           = $00000008;
139  BSCF_AVAILABLEDATASIZEUNKNOWN     = $00000010;
140
141  BINDSTATUS_FINDINGRESOURCE            = 1;
142  BINDSTATUS_CONNECTING                 = BINDSTATUS_FINDINGRESOURCE+1;
143  BINDSTATUS_REDIRECTING                = BINDSTATUS_CONNECTING+1;
144  BINDSTATUS_BEGINDOWNLOADDATA          = BINDSTATUS_REDIRECTING+1;
145  BINDSTATUS_DOWNLOADINGDATA            = BINDSTATUS_BEGINDOWNLOADDATA+1;
146  BINDSTATUS_ENDDOWNLOADDATA            = BINDSTATUS_DOWNLOADINGDATA+1;
147  BINDSTATUS_BEGINDOWNLOADCOMPONENTS    = BINDSTATUS_ENDDOWNLOADDATA+1;
148  BINDSTATUS_INSTALLINGCOMPONENTS       = BINDSTATUS_BEGINDOWNLOADCOMPONENTS+1;
149  BINDSTATUS_ENDDOWNLOADCOMPONENTS      = BINDSTATUS_INSTALLINGCOMPONENTS+1;
150  BINDSTATUS_USINGCACHEDCOPY            = BINDSTATUS_ENDDOWNLOADCOMPONENTS+1;
151  BINDSTATUS_SENDINGREQUEST             = BINDSTATUS_USINGCACHEDCOPY+1;
152  BINDSTATUS_CLASSIDAVAILABLE           = BINDSTATUS_SENDINGREQUEST+1;
153  BINDSTATUS_MIMETYPEAVAILABLE          = BINDSTATUS_CLASSIDAVAILABLE+1;
154  BINDSTATUS_CACHEFILENAMEAVAILABLE     = BINDSTATUS_MIMETYPEAVAILABLE+1;
155  BINDSTATUS_BEGINSYNCOPERATION         = BINDSTATUS_CACHEFILENAMEAVAILABLE+1;
156  BINDSTATUS_ENDSYNCOPERATION           = BINDSTATUS_BEGINSYNCOPERATION+1;
157  BINDSTATUS_BEGINUPLOADDATA            = BINDSTATUS_ENDSYNCOPERATION+1;
158  BINDSTATUS_UPLOADINGDATA              = BINDSTATUS_BEGINUPLOADDATA+1;
159  BINDSTATUS_ENDUPLOADDATA              = BINDSTATUS_UPLOADINGDATA+1;
160  BINDSTATUS_PROTOCOLCLASSID            = BINDSTATUS_ENDUPLOADDATA+1;
161  BINDSTATUS_ENCODING                   = BINDSTATUS_PROTOCOLCLASSID+1;
162  BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE  = BINDSTATUS_ENCODING+1;
163  BINDSTATUS_CLASSINSTALLLOCATION       = BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE+1;
164  BINDSTATUS_DECODING                   = BINDSTATUS_CLASSINSTALLLOCATION+1;
165  BINDSTATUS_LOADINGMIMEHANDLER         = BINDSTATUS_DECODING+1;
166  BINDSTATUS_CONTENTDISPOSITIONATTACH   = BINDSTATUS_LOADINGMIMEHANDLER+1;
167  BINDSTATUS_FILTERREPORTMIMETYPE       = BINDSTATUS_CONTENTDISPOSITIONATTACH+1;
168  BINDSTATUS_CLSIDCANINSTANTIATE        = BINDSTATUS_FILTERREPORTMIMETYPE+1;
169  BINDSTATUS_IUNKNOWNAVAILABLE          = BINDSTATUS_CLSIDCANINSTANTIATE+1;
170  BINDSTATUS_DIRECTBIND                 = BINDSTATUS_IUNKNOWNAVAILABLE+1;
171  BINDSTATUS_RAWMIMETYPE                = BINDSTATUS_DIRECTBIND+1;
172  BINDSTATUS_PROXYDETECTING             = BINDSTATUS_RAWMIMETYPE+1;
173  BINDSTATUS_ACCEPTRANGES               = BINDSTATUS_PROXYDETECTING+1;
174  BINDSTATUS_COOKIE_SENT                = BINDSTATUS_ACCEPTRANGES+1;
175  BINDSTATUS_COMPACT_POLICY_RECEIVED    = BINDSTATUS_COOKIE_SENT+1;
176  BINDSTATUS_COOKIE_SUPPRESSED          = BINDSTATUS_COMPACT_POLICY_RECEIVED+1;
177  BINDSTATUS_COOKIE_STATE_UNKNOWN       = BINDSTATUS_COOKIE_SUPPRESSED+1;
178  BINDSTATUS_COOKIE_STATE_ACCEPT        = BINDSTATUS_COOKIE_STATE_UNKNOWN+1;
179  BINDSTATUS_COOKIE_STATE_REJECT        = BINDSTATUS_COOKIE_STATE_ACCEPT+1;
180  BINDSTATUS_COOKIE_STATE_PROMPT        = BINDSTATUS_COOKIE_STATE_REJECT+1;
181  BINDSTATUS_COOKIE_STATE_LEASH         = BINDSTATUS_COOKIE_STATE_PROMPT+1;
182  BINDSTATUS_COOKIE_STATE_DOWNGRADE     = BINDSTATUS_COOKIE_STATE_LEASH+1;
183  BINDSTATUS_POLICY_HREF                = BINDSTATUS_COOKIE_STATE_DOWNGRADE+1;
184  BINDSTATUS_P3P_HEADER                 = BINDSTATUS_POLICY_HREF+1;
185  BINDSTATUS_SESSION_COOKIE_RECEIVED    = BINDSTATUS_P3P_HEADER+1;
186  BINDSTATUS_PERSISTENT_COOKIE_RECEIVED = BINDSTATUS_SESSION_COOKIE_RECEIVED+1;
187  BINDSTATUS_SESSION_COOKIES_ALLOWED    = BINDSTATUS_PERSISTENT_COOKIE_RECEIVED+1;
188
189  BINDSTRING_HEADERS          = 1;
190  BINDSTRING_ACCEPT_MIMES     = BINDSTRING_HEADERS+1;
191  BINDSTRING_EXTRA_URL        = BINDSTRING_ACCEPT_MIMES+1;
192  BINDSTRING_LANGUAGE         = BINDSTRING_EXTRA_URL+1;
193  BINDSTRING_USERNAME         = BINDSTRING_LANGUAGE+1;
194  BINDSTRING_PASSWORD         = BINDSTRING_USERNAME+1;
195  BINDSTRING_UA_PIXELS        = BINDSTRING_PASSWORD+1;
196  BINDSTRING_UA_COLOR         = BINDSTRING_UA_PIXELS+1;
197  BINDSTRING_OS               = BINDSTRING_UA_COLOR+1;
198  BINDSTRING_USER_AGENT       = BINDSTRING_OS+1;
199  BINDSTRING_ACCEPT_ENCODINGS = BINDSTRING_USER_AGENT+1;
200  BINDSTRING_POST_COOKIE      = BINDSTRING_ACCEPT_ENCODINGS+1;
201  BINDSTRING_POST_DATA_MIME   = BINDSTRING_POST_COOKIE+1;
202  BINDSTRING_URL              = BINDSTRING_POST_DATA_MIME+1;
203
204  INET_E_INVALID_URL                 = HResult($800C0002);
205  INET_E_NO_SESSION                  = HResult($800C0003);
206  INET_E_CANNOT_CONNECT              = HResult($800C0004);
207  INET_E_RESOURCE_NOT_FOUND          = HResult($800C0005);
208  INET_E_OBJECT_NOT_FOUND            = HResult($800C0006);
209  INET_E_DATA_NOT_AVAILABLE          = HResult($800C0007);
210  INET_E_DOWNLOAD_FAILURE            = HResult($800C0008);
211  INET_E_AUTHENTICATION_REQUIRED     = HResult($800C0009);
212  INET_E_NO_VALID_MEDIA              = HResult($800C000A);
213  INET_E_CONNECTION_TIMEOUT          = HResult($800C000B);
214  INET_E_INVALID_REQUEST             = HResult($800C000C);
215  INET_E_UNKNOWN_PROTOCOL            = HResult($800C000D);
216  INET_E_SECURITY_PROBLEM            = HResult($800C000E);
217  INET_E_CANNOT_LOAD_DATA            = HResult($800C000F);
218  INET_E_CANNOT_INSTANTIATE_OBJECT   = HResult($800C0010);
219  INET_E_REDIRECT_FAILED             = HResult($800C0014);
220  INET_E_REDIRECT_TO_DIR             = HResult($800C0015);
221  INET_E_CANNOT_LOCK_REQUEST         = HResult($800C0016);
222  INET_E_ERROR_FIRST                 = HResult($800C0002);
223  INET_E_ERROR_LAST                  = INET_E_REDIRECT_TO_DIR;
224
225  CIP_DISK_FULL                            = 0;
226  CIP_ACCESS_DENIED                        = CIP_DISK_FULL+1;
227  CIP_NEWER_VERSION_EXISTS                 = CIP_ACCESS_DENIED+1;
228  CIP_OLDER_VERSION_EXISTS                 = CIP_NEWER_VERSION_EXISTS+1;
229  CIP_NAME_CONFLICT                        = CIP_OLDER_VERSION_EXISTS+1;
230  CIP_TRUST_VERIFICATION_COMPONENT_MISSING = CIP_NAME_CONFLICT+1;
231  CIP_EXE_SELF_REGISTERATION_TIMEOUT       = CIP_TRUST_VERIFICATION_COMPONENT_MISSING+1;
232  CIP_UNSAFE_TO_ABORT                      = CIP_EXE_SELF_REGISTERATION_TIMEOUT+1;
233  CIP_NEED_REBOOT                          = CIP_UNSAFE_TO_ABORT+1;
234
235  URLOSTRM_USECACHEDCOPY_ONLY = $00000001;
236  URLOSTRM_USECACHEDCOPY      = $00000002;
237  URLOSTRM_GETNEWESTVERSION   = $00000003;
238
239  WININETINFO_OPTION_LOCK_HANDLE   = 65534;
240
241  PI_PARSE_URL                = $00000001;
242  PI_FILTER_MODE              = $00000002;
243  PI_FORCE_ASYNC              = $00000004;
244  PI_USE_WORKERTHREAD         = $00000008;
245  PI_MIMEVERIFICATION         = $00000010;
246  PI_CLSIDLOOKUP              = $00000020;
247  PI_DATAPROGRESS             = $00000040;
248  PI_SYNCHRONOUS              = $00000080;
249  PI_APARTMENTTHREADED        = $00000100;
250  PI_CLASSINSTALL             = $00000200;
251  PD_FORCE_SWITCH             = $00010000;
252  PI_DOCFILECLSIDLOOKUP       = PI_CLSIDLOOKUP;
253  OIBDG_APARTMENTTHREADED     = $00000100;
254
255  PARSE_CANONICALIZE    = 1;
256  PARSE_FRIENDLY        = PARSE_CANONICALIZE+1;
257  PARSE_SECURITY_URL    = PARSE_FRIENDLY+1;
258  PARSE_ROOTDOCUMENT    = PARSE_SECURITY_URL+1;
259  PARSE_DOCUMENT        = PARSE_ROOTDOCUMENT+1;
260  PARSE_ANCHOR          = PARSE_DOCUMENT+1;
261  PARSE_ENCODE          = PARSE_ANCHOR+1;
262  PARSE_DECODE          = PARSE_ENCODE+1;
263  PARSE_PATH_FROM_URL   = PARSE_DECODE+1;
264  PARSE_URL_FROM_PATH   = PARSE_PATH_FROM_URL+1;
265  PARSE_MIME            = PARSE_URL_FROM_PATH+1;
266  PARSE_SERVER          = PARSE_MIME+1;
267  PARSE_SCHEMA          = PARSE_SERVER+1;
268  PARSE_SITE            = PARSE_SCHEMA+1;
269  PARSE_DOMAIN          = PARSE_SITE+1;
270  PARSE_LOCATION        = PARSE_DOMAIN+1;
271  PARSE_SECURITY_DOMAIN = PARSE_LOCATION+1;
272
273  PSU_DEFAULT           = 1;
274  PSU_SECURITY_URL_ONLY = PSU_DEFAULT+1;
275
276  QUERY_EXPIRATION_DATE     = 1;
277  QUERY_TIME_OF_LAST_CHANGE = QUERY_EXPIRATION_DATE+1;
278  QUERY_CONTENT_ENCODING    = QUERY_TIME_OF_LAST_CHANGE+1;
279  QUERY_CONTENT_TYPE        = QUERY_CONTENT_ENCODING+1;
280  QUERY_REFRESH             = QUERY_CONTENT_TYPE+1;
281  QUERY_RECOMBINE           = QUERY_REFRESH+1;
282  QUERY_CAN_NAVIGATE        = QUERY_RECOMBINE+1;
283  QUERY_USES_NETWORK        = QUERY_CAN_NAVIGATE+1;
284  QUERY_IS_CACHED           = QUERY_USES_NETWORK+1;
285  QUERY_IS_INSTALLEDENTRY   = QUERY_IS_CACHED+1;
286  QUERY_IS_CACHED_OR_MAPPED = QUERY_IS_INSTALLEDENTRY+1;
287  QUERY_USES_CACHE          = QUERY_IS_CACHED_OR_MAPPED+1;
288
289  INET_E_USE_DEFAULT_PROTOCOLHANDLER = HResult($800C0011);
290  INET_E_USE_DEFAULT_SETTING         = HResult($800C0012);
291  INET_E_DEFAULT_ACTION              = HResult($800C0011);
292  INET_E_QUERYOPTION_UNKNOWN         = HResult($800C0013);
293  INET_E_REDIRECTING                 = HResult($800C0014);
294
295  PROTOCOLFLAG_NO_PICS_CHECK         = $00000001;
296
297  URLACTION_MIN                                = $00001000;
298  URLACTION_DOWNLOAD_MIN                       = $00001000;
299  URLACTION_DOWNLOAD_SIGNED_ACTIVEX            = $00001001;
300  URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX          = $00001004;
301  URLACTION_DOWNLOAD_CURR_MAX                  = $00001004;
302  URLACTION_DOWNLOAD_MAX                       = $000011FF;
303  URLACTION_ACTIVEX_MIN                        = $00001200;
304  URLACTION_ACTIVEX_RUN                        = $00001200;
305  URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY     = $00001201;
306  URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY       = $00001202;
307  URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY     = $00001203;
308  URLACTION_SCRIPT_OVERRIDE_SAFETY             = $00001401;
309  URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY     = $00001204;
310  URLACTION_ACTIVEX_TREATASUNTRUSTED           = $00001205;
311  URLACTION_ACTIVEX_CURR_MAX                   = $00001205;
312  URLACTION_ACTIVEX_MAX                        = $000013FF;
313  URLACTION_SCRIPT_MIN                         = $00001400;
314  URLACTION_SCRIPT_RUN                         = $00001400;
315  URLACTION_SCRIPT_JAVA_USE                    = $00001402;
316  URLACTION_SCRIPT_SAFE_ACTIVEX                = $00001405;
317  URLACTION_SCRIPT_CURR_MAX                    = $00001405;
318  URLACTION_SCRIPT_MAX                         = $000015FF;
319  URLACTION_HTML_MIN                           = $00001600;
320  URLACTION_HTML_SUBMIT_FORMS                  = $00001601;
321  URLACTION_HTML_SUBMIT_FORMS_FROM             = $00001602;
322  URLACTION_HTML_SUBMIT_FORMS_TO               = $00001603;
323  URLACTION_HTML_FONT_DOWNLOAD                 = $00001604;
324  URLACTION_HTML_JAVA_RUN                      = $00001605;
325  URLACTION_HTML_CURR_MAX                      = $00001605;
326  URLACTION_HTML_MAX                           = $000017FF;
327  URLACTION_SHELL_MIN                          = $00001800;
328  URLACTION_SHELL_INSTALL_DTITEMS              = $00001800;
329  URLACTION_SHELL_MOVE_OR_COPY                 = $00001802;
330  URLACTION_SHELL_FILE_DOWNLOAD                = $00001803;
331  URLACTION_SHELL_VERB                         = $00001804;
332  URLACTION_SHELL_WEBVIEW_VERB                 = $00001805;
333  URLACTION_SHELL_CURR_MAX                     = $00001805;
334  URLACTION_SHELL_MAX                          = $000019ff;
335  URLACTION_NETWORK_MIN                        = $00001A00;
336  URLACTION_CREDENTIALS_USE                    = $00001A00;
337  URLPOLICY_CREDENTIALS_SILENT_LOGON_OK        = $00000000;
338  URLPOLICY_CREDENTIALS_MUST_PROMPT_USER       = $00010000;
339  URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT     = $00020000;
340  URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY         = $00030000;
341  URLACTION_AUTHENTICATE_CLIENT                = $00001A01;
342  URLPOLICY_AUTHENTICATE_CLEARTEXT_OK          = $00000000;
343  URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE    = $00010000;
344  URLPOLICY_AUTHENTICATE_MUTUAL_ONLY           = $00030000;
345  URLACTION_NETWORK_CURR_MAX                   = $00001A01;
346  URLACTION_NETWORK_MAX                        = $00001BFF;
347  URLACTION_JAVA_MIN                           = $00001C00;
348  URLACTION_JAVA_PERMISSIONS                   = $00001C00;
349  URLPOLICY_JAVA_PROHIBIT                      = $00000000;
350  URLPOLICY_JAVA_HIGH                          = $00010000;
351  URLPOLICY_JAVA_MEDIUM                        = $00020000;
352  URLPOLICY_JAVA_LOW                           = $00030000;
353  URLPOLICY_JAVA_CUSTOM                        = $00800000;
354  URLACTION_JAVA_CURR_MAX                      = $00001C00;
355  URLACTION_JAVA_MAX                           = $00001CFF;
356  URLACTION_INFODELIVERY_MIN                       = $00001D00;
357  URLACTION_INFODELIVERY_NO_ADDING_CHANNELS        = $00001D00;
358  URLACTION_INFODELIVERY_NO_EDITING_CHANNELS       = $00001D01;
359  URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS      = $00001D02;
360  URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS   = $00001D03;
361  URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS  = $00001D04;
362  URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS = $00001D05;
363  URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING        = $00001D06;
364  URLACTION_INFODELIVERY_CURR_MAX                  = $00001D06;
365  URLACTION_INFODELIVERY_MAX                       = $00001Dff;
366  URLACTION_CHANNEL_SOFTDIST_MIN                   = $00001E00;
367  URLACTION_CHANNEL_SOFTDIST_PERMISSIONS           = $00001E05;
368  URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT              = $00010000;
369  URLPOLICY_CHANNEL_SOFTDIST_PRECACHE              = $00020000;
370  URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL           = $00030000;
371  URLACTION_CHANNEL_SOFTDIST_MAX                   = $00001EFF;
372
373  URLPOLICY_ALLOW                = $00;
374  URLPOLICY_QUERY                = $01;
375  URLPOLICY_DISALLOW             = $03;
376  URLPOLICY_NOTIFY_ON_ALLOW      = $10;
377  URLPOLICY_NOTIFY_ON_DISALLOW   = $20;
378  URLPOLICY_LOG_ON_ALLOW         = $40;
379  URLPOLICY_LOG_ON_DISALLOW      = $80;
380
381  URLPOLICY_MASK_PERMISSIONS     = $0f;
382
383  MAX_SIZE_SECURITY_ID    = 512;
384
385  PUAF_DEFAULT            = $00000000;
386  PUAF_NOUI               = $00000001;
387  PUAF_ISFILE             = $00000002;
388  PUAF_WARN_IF_DENIED     = $00000004;
389  PUAF_FORCEUI_FOREGROUND = $00000008;
390  PUAF_CHECK_TIFS         = $00000010;
391
392  SZM_CREATE              = $00000000;
393  SZM_DELETE              = $00000001;
394
395  URLZONE_PREDEFINED_MIN = 0;
396  URLZONE_LOCAL_MACHINE  = 0;
397  URLZONE_INTRANET       = URLZONE_LOCAL_MACHINE+1;
398  URLZONE_TRUSTED        = URLZONE_INTRANET+1;
399  URLZONE_INTERNET       = URLZONE_TRUSTED+1;
400  URLZONE_UNTRUSTED      = URLZONE_INTERNET+1;
401  URLZONE_PREDEFINED_MAX = 999;
402  URLZONE_USER_MIN       = 1000;
403  URLZONE_USER_MAX       = 10000;
404
405  URLZONEREG_DEFAULT = 0;
406  URLZONEREG_HKLM    = URLZONEREG_DEFAULT+1;
407  URLZONEREG_HKCU    = URLZONEREG_HKLM+1;
408
409  URLTEMPLATE_CUSTOM         = $00000000;
410  URLTEMPLATE_PREDEFINED_MIN = $00010000;
411  URLTEMPLATE_LOW            = $00010000;
412  URLTEMPLATE_MEDIUM         = $00011000;
413  URLTEMPLATE_HIGH           = $00012000;
414  URLTEMPLATE_PREDEFINED_MAX = $00020000;
415
416  MAX_ZONE_PATH              = 260;
417  MAX_ZONE_DESCRIPTION       = 200;
418
419  ZAFLAGS_CUSTOM_EDIT            = $00000001;
420  ZAFLAGS_ADD_SITES              = $00000002;
421  ZAFLAGS_REQUIRE_VERIFICATION   = $00000004;
422  ZAFLAGS_INCLUDE_PROXY_OVERRIDE = $00000008;
423  ZAFLAGS_INCLUDE_INTRANET_SITES = $00000010;
424  ZAFLAGS_NO_UI                  = $00000020;
425  ZAFLAGS_SUPPORTS_VERIFICATION  = $00000040;
426  ZAFLAGS_UNC_AS_INTRANET        = $00000080;
427
428  SOFTDIST_FLAG_USAGE_EMAIL         = $00000001;
429  SOFTDIST_FLAG_USAGE_PRECACHE      = $00000002;
430  SOFTDIST_FLAG_USAGE_AUTOINSTALL   = $00000004;
431  SOFTDIST_FLAG_DELETE_SUBSCRIPTION = $00000008;
432
433  SOFTDIST_ADSTATE_NONE             = $00000000;
434  SOFTDIST_ADSTATE_AVAILABLE        = $00000001;
435  SOFTDIST_ADSTATE_DOWNLOADED       = $00000002;
436  SOFTDIST_ADSTATE_INSTALLED        = $00000003;
437
438Type
439  PHWnd = ^HWND;
440  PIunknown = ^IUnknown;
441  PIEnumString = ^IENumString;
442  PStgMedium = ^TStgMedium;
443
444  TUrlZoneReg = Cardinal;
445  TParseAction = Cardinal;
446  TQueryOption = Cardinal;
447  TPSUAction = Cardinal;
448
449  PLPCWSTR = ^LPCWSTR;
450  PPOLEStr = ^POLEStr;
451  PIBindCtx = ^IBindCtx;
452  PIEnumFormatEtc = ^IEnumFormatEtc;
453  PIstream = ^IStream;
454
455  // Forward declarations
456  IInternetProtocolSink = Interface;
457  IBinding = interface;
458  IInternetProtocol = interface;
459
460  TBINDINFO = packed record
461    cbSize : ULONG;
462    szExtraInfo : LPWSTR;
463    stgmedData : TStgMedium;
464    grfBindInfoF : DWORD;
465    dwBindVerb : DWORD;
466    szCustomVerb : LPWSTR;
467    cbstgmedData : DWORD;
468    dwOptions : DWORD;
469    dwOptionsFlags : DWORD;
470    dwCodePage : DWORD;
471    securityAttributes : SECURITY_ATTRIBUTES;
472    iid : TGUID;
473    pUnk : IUnknown;
474    dwReserved : DWORD;
475  end;
476  BINDINFO = TBINDINFO;
477  PBINDINFO = ^TBINDINFO;
478
479  TREMSECURITY_ATTRIBUTES = packed record
480    nLength : DWORD;
481    lpSecurityDescriptor : DWORD;
482    bInheritHandle : BOOL;
483  end;
484  REMSECURITY_ATTRIBUTES = TREMSECURITY_ATTRIBUTES;
485  PREMSECURITY_ATTRIBUTES = ^TREMSECURITY_ATTRIBUTES;
486
487  TRemBINDINFO = packed record
488    cbSize : ULONG;
489    szExtraInfo : LPWSTR;
490    grfBindInfoF : DWORD;
491    dwBindVerb : DWORD;
492    szCustomVerb : LPWSTR;
493    cbstgmedData : DWORD;
494    dwOptions : DWORD;
495    dwOptionsFlags : DWORD;
496    dwCodePage : DWORD;
497    securityAttributes : TREMSECURITY_ATTRIBUTES;
498    iid : TGUID;
499    pUnk : IUnknown;
500    dwReserved : DWORD;
501  end;
502  PRemBINDINFO = ^TRemBINDINFO;
503  RemBINDINFO = TRemBINDINFO;
504
505  TRemFORMATETC = packed record
506    cfFormat : DWORD;
507    ptd : DWORD;
508    dwAspect : DWORD;
509    lindex : Longint;
510    tymed : DWORD;
511  end;
512  RemFORMATETC = TRemFORMATETC;
513  PRemFORMATETC = ^TRemFORMATETC;
514
515  TPROTOCOLDATA = packed record
516    grfFlags : DWORD;
517    dwState : DWORD;
518    pData : Pointer;
519    cbData : ULONG;
520  end;
521  PROTOCOLDATA = TPROTOCOLDATA;
522  PPROTOCOLDATA = ^PROTOCOLDATA;
523
524  TZONEATTRIBUTES = packed record
525    cbSize : ULONG;
526    szDisplayName : array [0..259] of WideChar;
527    szDescription : array [0..199] of WideChar;
528    szIconPath : array [0..259] of WideChar;
529    dwTemplateMinLevel : DWORD;
530    dwTemplateRecommended : DWORD;
531    dwTemplateCurrentLevel : DWORD;
532    dwFlags : DWORD;
533  end;
534  ZONEATTRIBUTES = TZONEATTRIBUTES;
535  PZONEATTRIBUTES = ^TZONEATTRIBUTES;
536
537  TCODEBASEHOLD = packed record
538    cbSize : ULONG;
539    szDistUnit : LPWSTR;
540    szCodeBase : LPWSTR;
541    dwVersionMS : DWORD;
542    dwVersionLS : DWORD;
543    dwStyle : DWORD;
544  end;
545  CODEBASEHOLD = TCODEBASEHOLD;
546  PCODEBASEHOLD = ^TCODEBASEHOLD;
547
548  TSOFTDISTINFO = packed record
549    cbSize : ULONG;
550    dwFlags : DWORD;
551    dwAdState : DWORD;
552    szTitle : LPWSTR;
553    szAbstract : LPWSTR;
554    szHREF : LPWSTR;
555    dwInstalledVersionMS : DWORD;
556    dwInstalledVersionLS : DWORD;
557    dwUpdateVersionMS : DWORD;
558    dwUpdateVersionLS : DWORD;
559    dwAdvertisedVersionMS : DWORD;
560    dwAdvertisedVersionLS : DWORD;
561    dwReserved : DWORD;
562  end;
563  SOFTDISTINFO = TSOFTDISTINFO;
564  PSOFTDISTINFO = ^TSOFTDISTINFO;
565
566  TPROTOCOLFILTERDATA = packed record
567    cbSize : DWORD;
568    ProtocolSink : IInternetProtocolSink;
569    Protocol : IInternetProtocol;
570    Unk : IUnknown;
571    dwFilterFlags : DWORD;
572  end;
573  PROTOCOLFILTERDATA = TPROTOCOLFILTERDATA;
574  PPROTOCOLFILTERDATA = ^TPROTOCOLFILTERDATA;
575
576  TDATAINFO = packed record
577    ulTotalSize : ULONG;
578    ulavrPacketSize : ULONG;
579    ulConnectSpeed : ULONG;
580    ulProcessorSpeed : ULONG;
581  end;
582  DATAINFO = TDATAINFO;
583  PDATAINFO = ^TDATAINFO;
584
585  THIT_LOGGING_INFO = packed record
586    dwStructSize : DWORD;
587    lpszLoggedUrlName : LPSTR;
588    StartTime : TSystemTime;
589    EndTime : TSystemTime;
590    lpszExtendedInfo : LPSTR;
591  end;
592  HIT_LOGGING_INFO = THIT_LOGGING_INFO;
593  PHIT_LOGGING_INFO = ^THIT_LOGGING_INFO;
594
595
596  IPersistMonikerRaw = interface['{79eac9c9-baf9-11ce-8c82-00aa004ba90b}']
597    Function GetClassID(ClassID : PCLSID) : HResult; stdcall;
598    Function IsDirty : HResult; stdcall;
599    Function Load(fFullyAvailable : BOOL; pimkName : IMoniker; pibc : IBindCtx; grfMode : DWORD) : HResult; stdcall;
600    Function Save(pimkName : IMoniker; pbc : IBindCtx; fRemember : BOOL) : HResult; stdcall;
601    Function SaveCompleted(pimkName : IMoniker; pibc : IBindCtx) : HResult; stdcall;
602    Function GetCurMoniker(ppimkName : IMoniker) : HResult; stdcall;
603  end;
604  PIPersistMonikerRaw = ^IPersistMonikerRaw;
605
606  IPersistMoniker = interface['{79eac9c9-baf9-11ce-8c82-00aa004ba90b}']
607    Function GetClassID(out ClassID : TCLSID) : HResult; stdcall;
608    Function IsDirty : HResult; stdcall;
609    Function Load(fFullyAvailable : BOOL; pimkName : IMoniker; pibc : IBindCtx; grfMode : DWORD) : HResult; stdcall;
610    Function Save(pimkName : IMoniker; pbc : IBindCtx; fRemember : BOOL) : HResult; stdcall;
611    Function SaveCompleted(pimkName : IMoniker; pibc : IBindCtx) : HResult; stdcall;
612    Function GetCurMoniker(ppimkName : IMoniker) : HResult; stdcall;
613  end;
614  PIPersistMoniker = ^IPersistMoniker;
615
616
617  IBindingRaw = interface ['{79eac9c0-baf9-11ce-8c82-00aa004ba90b}']
618    Function Abort : HResult; stdcall;
619    Function Suspend : HResult; stdcall;
620    Function Resume : HResult; stdcall;
621    Function SetPriority(nPriority : Longint) : HResult; stdcall;
622    Function GetPriority(nPriority : PLongint) : HResult; stdcall;
623    Function GetBindResult(clsidProtocol : PCLSID; dwResult : PDWORD; szResult : PPOLEStr; dwReserved : DWORD) : HResult; stdcall;
624  end;
625  PIBindingRaw = ^IBindingRaw;
626
627  IBinding = interface ['{79eac9c0-baf9-11ce-8c82-00aa004ba90b}']
628    Function Abort : HResult; stdcall;
629    Function Suspend : HResult; stdcall;
630    Function Resume : HResult; stdcall;
631    Function SetPriority(nPriority : Longint) : HResult; stdcall;
632    Function GetPriority(out nPriority : Longint) : HResult; stdcall;
633    Function GetBindResult(out clsidProtocol : TCLSID; out dwResult : DWORD; out szResult : POLEStr; dwReserved : DWORD) : HResult; stdcall;
634  end;
635  PIBinding = ^IBinding;
636  IBindProtocolRaw = interface['{79eac9cd-baf9-11ce-8c82-00aa004ba90b}']
637    Function CreateBinding(szUrl : LPCWSTR; pbc : IBindCtx; ppb : PIBindingRaw) : HResult; stdcall;
638  end;
639  PIBindProtocolRaw = ^IBindProtocolRaw;
640
641  IBindProtocol = interface['{79eac9cd-baf9-11ce-8c82-00aa004ba90b}']
642    Function CreateBinding(szUrl : LPCWSTR; pbc : IBindCtx; out ppb : IBinding) : HResult; stdcall;
643  end;
644  PIBindProtocol = ^IBindProtocol;
645
646  IBindStatusCallbackRaw = interface['{79eac9c1-baf9-11ce-8c82-00aa004ba90b}']
647    Function OnStartBinding(dwReserved : DWORD; pib : IBindingRaw) : HResult; stdcall;
648    Function GetPriority(nPriority  : Pointer) : HResult; stdcall;
649    Function OnLowResource(reserved : DWORD) : HResult; stdcall;
650    Function OnProgress(ulProgress, ulProgressMax, ulStatusCode : ULONG; szStatusText : LPCWSTR) : HResult; stdcall;
651    Function OnStopBinding(hresult : HResult; szError : LPCWSTR) : HResult; stdcall;
652    Function GetBindInfo(grfBINDF : PDWORD; bindinfo : PBINDINFO) : HResult; stdcall;
653    Function OnDataAvailable(grfBSCF : DWORD; dwSize : DWORD; formatetc : PFormatEtc; stgmed : PStgMedium) : HResult; stdcall;
654    Function OnObjectAvailable(const iid : TGUID; punk : IUnknown) : HResult; stdcall;
655  end;
656  PIBindStatusCallbackRaw = ^IBindStatusCallbackRaw;
657
658  IBindStatusCallback = interface['{79eac9c1-baf9-11ce-8c82-00aa004ba90b}']
659    Function OnStartBinding(dwReserved : DWORD; pib : IBinding) : HResult; stdcall;
660    Function GetPriority(out nPriority) : HResult; stdcall;
661    Function OnLowResource(reserved : DWORD) : HResult; stdcall;
662    Function OnProgress(ulProgress, ulProgressMax, ulStatusCode : ULONG; szStatusText : LPCWSTR) : HResult; stdcall;
663    Function OnStopBinding(hresult : HResult; szError : LPCWSTR) : HResult; stdcall;
664    Function GetBindInfo(out grfBINDF : DWORD; var bindinfo : TBindInfo) : HResult; stdcall;
665    Function OnDataAvailable(grfBSCF : DWORD; dwSize : DWORD; formatetc : PFormatEtc; stgmed : PStgMedium) : HResult; stdcall;
666    Function OnObjectAvailable(const iid : TGUID; punk : IUnknown) : HResult; stdcall;
667  end;
668  PIBindStatusCallback = ^IBindStatusCallback;
669
670  IAuthenticateRaw = interface['{79eac9d0-baf9-11ce-8c82-00aa004ba90b}']
671    Function Authenticate(hwnd : PHWnd; szUserName, szPassWord : PLPWSTR) : HResult; stdcall;
672  end;
673  PIAuthenticateRaw = ^IAuthenticateRaw;
674
675  IAuthenticate = interface['{79eac9d0-baf9-11ce-8c82-00aa004ba90b}']
676    Function Authenticate(var hwnd : HWnd; var szUserName, szPassWord : LPWSTR) : HResult; stdcall;
677  end;
678  PIAuthenticate = ^IAuthenticate;
679
680  IHttpNegotiateRaw = interface['{79eac9d2-baf9-11ce-8c82-00aa004ba90b}']
681    Function BeginningTransaction(szURL, szHeaders : LPCWSTR; dwReserved : DWORD; szAdditionalHeaders : PLPWSTR) : HResult; stdcall;
682    Function OnResponse(dwResponseCode : DWORD; szResponseHeaders, szRequestHeaders : LPCWSTR; szAdditionalRequestHeaders : PLPWSTR) : HResult; stdcall;
683  end;
684  PIHttpNegotiateRaw = ^IHttpNegotiateRaw;
685
686  IHttpNegotiate = interface['{79eac9d2-baf9-11ce-8c82-00aa004ba90b}']
687    Function BeginningTransaction(szURL, szHeaders : LPCWSTR; dwReserved : DWORD; out szAdditionalHeaders : LPWSTR) : HResult; stdcall;
688    Function OnResponse(dwResponseCode : DWORD; szResponseHeaders, szRequestHeaders : LPCWSTR; out szAdditionalRequestHeaders : LPWSTR) : HResult; stdcall;
689  end;
690  PIHttpNegotiate = ^IHttpNegotiate;
691
692  IWindowForBindingUIRaw = interface['{79eac9d5-bafa-11ce-8c82-00aa004ba90b}']
693    Function GetWindow(const guidReason : TGUID; hwnd  : Pointer) : HResult; stdcall;
694  end;
695  PIWindowForBindingUIRaw = ^IWindowForBindingUIRaw;
696
697  IWindowForBindingUI = interface['{79eac9d5-bafa-11ce-8c82-00aa004ba90b}']
698    Function GetWindow(const guidReason : TGUID; out hwnd) : HResult; stdcall;
699  end;
700  PIWindowForBindingUI = ^IWindowForBindingUI;
701
702  ICodeInstallRaw = interface(IWindowForBindingUI)['{79eac9d1-baf9-11ce-8c82-00aa004ba90b}']
703    Function OnCodeInstallProblem(ulStatusCode : ULONG; szDestination, szSource : LPCWSTR; dwReserved : DWORD) : HResult; stdcall;
704  end;
705  ICodeInstall = ICodeInstallRaw;
706  PICodeInstall = ^ICodeInstall;
707
708  IWinInetInfoRaw = interface['{79eac9d6-bafa-11ce-8c82-00aa004ba90b}']
709    Function QueryOption(dwOption : DWORD; Buffer : Pointer; cbBuf : PDWORD) : HResult; stdcall;
710  end;
711  PIWinInetInfoRaw = ^IWinInetInfoRaw;
712
713  IWinInetInfo = interface['{79eac9d6-bafa-11ce-8c82-00aa004ba90b}']
714    Function QueryOption(dwOption : DWORD; Buffer : Pointer; var cbBuf : DWORD) : HResult; stdcall;
715  end;
716  PIWinInetInfo = ^IWinInetInfo;
717
718  IHttpSecurityRaw = interface(IWindowForBindingUIRaw)['{79eac9d7-bafa-11ce-8c82-00aa004ba90b}']
719    Function OnSecurityProblem(dwProblem : DWORD) : HResult; stdcall;
720  end;
721  PIHttpSecurityRaw = ^IHttpSecurityRaw;
722
723  IHttpSecurity = interface(IWindowForBindingUI)['{79eac9d7-bafa-11ce-8c82-00aa004ba90b}']
724    Function OnSecurityProblem(dwProblem : DWORD) : HResult; stdcall;
725  end;
726  PIHttpSecurity = ^IHttpSecurity;
727
728  IWinInetHttpInfoRaw = interface(IWinInetInfoRaw)['{79eac9d8-bafa-11ce-8c82-00aa004ba90b}']
729    Function QueryInfo(dwOption : DWORD; Buffer : Pointer; cbBuf, dwFlags, dwReserved : PDWORD) : HResult; stdcall;
730  end;
731  PIWinInetHttpInfoRaw = ^IWinInetHttpInfoRaw;
732
733  IWinInetHttpInfo = interface(IWinInetInfoRaw)['{79eac9d8-bafa-11ce-8c82-00aa004ba90b}']
734    Function QueryInfo(dwOption : DWORD; Buffer : Pointer; var cbBuf, dwFlags, dwReserved : DWORD) : HResult; stdcall;
735  end;
736  PIWinInetHttpInfo = ^IWinInetHttpInfo;
737
738  IBindHostRaw = interface['{fc4801a1-2ba9-11cf-a229-00aa003d7352}']
739    Function CreateMoniker(szName : POLEStr; BC : IBindCtx; mk : PIMoniker; dwReserved : DWORD) : HResult; stdcall;
740    Function MonikerBindToStorage(Mk : IMoniker; BC : IBindCtx; BSC : IBindStatusCallback; const iid : TGUID; pvObj : PPointer) : HResult; stdcall;
741    Function MonikerBindToObject(Mk : IMoniker; BC : IBindCtx; BSC : IBindStatusCallback; const iid : TGUID; pvObj : PPointer) : HResult; stdcall;
742  end;
743  PIBindHostRaw = ^IBindHostRaw;
744
745  IBindHost = interface['{fc4801a1-2ba9-11cf-a229-00aa003d7352}']
746    Function CreateMoniker(szName : POLEStr; BC : IBindCtx; out mk : IMoniker; dwReserved : DWORD) : HResult; stdcall;
747    Function MonikerBindToStorage(Mk : IMoniker; BC : IBindCtx; BSC : IBindStatusCallback; const iid : TGUID; out pvObj : Pointer) : HResult; stdcall;
748    Function MonikerBindToObject(Mk : IMoniker; BC : IBindCtx; BSC : IBindStatusCallback; const iid : TGUID; out pvObj : Pointer) : HResult; stdcall;
749  end;
750  PIBindHost = ^IBindHost;
751
752  IInternetRaw = interface['{79eac9e0-baf9-11ce-8c82-00aa004ba90b}']
753  end;
754  PIInternetRaw = ^IInternetRaw;
755  IInternet = IInternetRaw;
756  PIInternet = PIInternetRaw;
757
758  IInternetBindInfoRaw = interface ['{79eac9e1-baf9-11ce-8c82-00aa004ba90b}']
759    Function GetBindInfo(grfBINDF : PDWORD; bindinfo : PBindInfo) : HResult; stdcall;
760    Function GetBindString(ulStringType : ULONG; wzStr : POLEStr; cEl : ULONG; cElFetched : PULONG) : HResult; stdcall;
761  end;
762  PIInternetBindInfoRaw = ^IInternetBindInfoRaw;
763
764  IInternetBindInfo = interface ['{79eac9e1-baf9-11ce-8c82-00aa004ba90b}']
765    Function GetBindInfo(out grfBINDF : DWORD; var bindinfo : TBindInfo) : HResult; stdcall;
766	Function GetBindString(ulStringType : ULONG; wzStr : POLEStr; cEl : ULONG; var cElFetched : ULONG) : HResult; stdcall;
767  end;
768  PIInternetBindInfo = ^IInternetBindInfo;
769
770  IInternetProtocolRootRaw = interface ['{79eac9e3-baf9-11ce-8c82-00aa004ba90b}']
771    Function Start(szUrl : LPCWSTR; OIProtSink : IInternetProtocolSink; OIBindInfo : IInternetBindInfo; grfPI, dwReserved : DWORD) : HResult; stdcall;
772    Function Continue(const ProtocolData : TProtocolData) : HResult; stdcall;
773    Function Abort(hrReason : HResult; dwOptions : DWORD) : HResult; stdcall;
774    Function Terminate(dwOptions : DWORD) : HResult; stdcall;
775    Function Suspend : HResult; stdcall;
776    Function Resume : HResult; stdcall;
777  end;
778  PIInternetProtocolRootRaw = ^IInternetProtocolRootRaw;
779  IInternetProtocolRoot = IInternetProtocolRootRaw;
780  PIInternetProtocolRoot = PIInternetProtocolRootRaw;
781
782  IInternetProtocolRaw = interface(IInternetProtocolRootRaw)['{79eac9e4-baf9-11ce-8c82-00aa004ba90b}']
783    Function Read(pv : Pointer; cb : ULONG; cbRead : PULONG) : HResult; stdcall;
784    Function Seek(dlibMove : LARGE_INTEGER; dwOrigin : DWORD; libNewPosition : PULARGE_INTEGER) : HResult; stdcall;
785    Function LockRequest(dwOptions : DWORD) : HResult; stdcall;
786    Function UnlockRequest : HResult; stdcall;
787  end;
788  PIInternetProtocolRaw = ^IInternetProtocolRaw;
789
790  IInternetProtocol = interface(IInternetProtocolRoot)['{79eac9e4-baf9-11ce-8c82-00aa004ba90b}']
791    Function Read(pv : Pointer; cb : ULONG; out cbRead : ULONG) : HResult; stdcall;
792    Function Seek(dlibMove : LARGE_INTEGER; dwOrigin : DWORD; out libNewPosition : ULARGE_INTEGER) : HResult; stdcall;
793    Function LockRequest(dwOptions : DWORD) : HResult; stdcall;
794    Function UnlockRequest : HResult; stdcall;
795  end;
796  PIInternetProtocol = ^IInternetProtocol;
797
798  IInternetProtocolSink = interface['{79eac9e5-baf9-11ce-8c82-00aa004ba90b}']
799    Function Switch(const ProtocolData : TProtocolData) : HResult; stdcall;
800    Function ReportProgress(ulStatusCode : ULONG; szStatusText : LPCWSTR) : HResult; stdcall;
801    Function ReportData(grfBSCF : DWORD; ulProgress, ulProgressMax : ULONG) : HResult; stdcall;
802    Function ReportResult(hrResult : HResult; dwError : DWORD; szResult : LPCWSTR) : HResult; stdcall;
803  end;
804  PIInternetProtocolSink = ^IInternetProtocolSink;
805  IInternetProtocolSinkRaw = IInternetProtocolSink; // Because of the forward declaration, we must do it like this.
806  PIInternetProtocolSinkRaw = PIInternetProtocolSink;
807
808  IInternetSessionRaw = interface['{79eac9e7-baf9-11ce-8c82-00aa004ba90b}']
809    Function RegisterNameSpace(CF : IClassFactory; const clsid : TCLSID; pwzProtocol : LPCWSTR; cPatterns : ULONG; const pwzPatterns : PLPCWSTR; dwReserved : DWORD) : HResult; stdcall;
810    Function UnregisterNameSpace(CF : IClassFactory; pszProtocol : LPCWSTR) : HResult; stdcall;
811    Function RegisterMimeFilter(CF : IClassFactory; const rclsid : TCLSID; pwzType : LPCWSTR) : HResult; stdcall;
812    Function UnregisterMimeFilter(CF : IClassFactory; pwzType : LPCWSTR) : HResult; stdcall;
813    Function CreateBinding(BC : IBindCtx; szUrl : LPCWSTR; UnkOuter : IUnknown; Unk : PIUnknown; OINetProt : PIInternetProtocol; dwOption : DWORD) : HResult; stdcall;
814    Function SetSessionOption(dwOption : DWORD; pBuffer : Pointer; dwBufferLength : DWORD; dwReserved : DWORD) : HResult; stdcall;
815    Function GetSessionOption(dwOption : DWORD; pBuffer : Pointer; dwBufferLength : PDWORD; dwReserved : DWORD) : HResult; stdcall;
816  end;
817  PIInternetSessionRaw = ^IInternetSessionRaw;
818
819  IInternetSession = interface['{79eac9e7-baf9-11ce-8c82-00aa004ba90b}']
820    Function RegisterNameSpace(CF : IClassFactory; const clsid : TCLSID; pwzProtocol : LPCWSTR; cPatterns : ULONG; const pwzPatterns : PLPCWSTR; dwReserved : DWORD) : HResult; stdcall;
821    Function UnregisterNameSpace(CF : IClassFactory; pszProtocol : LPCWSTR) : HResult; stdcall;
822    Function RegisterMimeFilter(CF : IClassFactory; const rclsid : TCLSID; pwzType : LPCWSTR) : HResult; stdcall;
823    Function UnregisterMimeFilter(CF : IClassFactory; pwzType : LPCWSTR) : HResult; stdcall;
824    Function CreateBinding(BC : IBindCtx; szUrl : LPCWSTR; UnkOuter : IUnknown; out Unk : IUnknown; out OINetProt : IInternetProtocol; dwOption : DWORD) : HResult; stdcall;
825    Function SetSessionOption(dwOption : DWORD; pBuffer : Pointer; dwBufferLength : DWORD; dwReserved : DWORD) : HResult; stdcall;
826    Function GetSessionOption(dwOption : DWORD; pBuffer : Pointer; var dwBufferLength : DWORD; dwReserved : DWORD) : HResult; stdcall;
827  end;
828  PIInternetSession = ^IInternetSession;
829
830  IInternetThreadSwitchRaw = interface ['{79eac9e8-baf9-11ce-8c82-00aa004ba90b}']
831    Function Prepare : HResult; stdcall;
832    Function Continue : HResult; stdcall;
833  end;
834  PIInternetThreadSwitchRaw = ^IInternetThreadSwitchRaw;
835  IInternetThreadSwitch = IInternetThreadSwitchRaw;
836  PIInternetThreadSwitch = PIInternetThreadSwitchRaw;
837
838  IInternetPriorityRaw = interface ['{79eac9eb-baf9-11ce-8c82-00aa004ba90b}']
839    Function SetPriority(nPriority : Longint) : HResult; stdcall;
840    Function GetPriority(nPriority : PLongint) : HResult; stdcall;
841  end;
842  PIInternetPriorityRaw = ^IInternetPriorityRaw;
843
844  IInternetPriority = interface ['{79eac9eb-baf9-11ce-8c82-00aa004ba90b}']
845    Function SetPriority(nPriority : Longint) : HResult; stdcall;
846    Function GetPriority(out nPriority : Longint) : HResult; stdcall;
847  end;
848  PIInternetPriority = ^IInternetPriority;
849
850  IInternetProtocolInfoRaw = interface ['{79eac9ec-baf9-11ce-8c82-00aa004ba90b}']
851    Function ParseUrl(pwzUrl : LPCWSTR; ParseAction : TParseAction; dwParseFlags : DWORD; pwzResult : LPWSTR; cchResult : DWORD; pcchResult : DWORD; dwReserved : DWORD) : HResult; stdcall;
852    Function CombineUrl(pwzBaseUrl, pwzRelativeUrl : LPCWSTR; dwCombineFlags : DWORD; pwzResult : LPWSTR; cchResult : DWORD; pcchResult : PDWORD; dwReserved : DWORD) : HResult; stdcall;
853    Function CompareUrl(pwzUrl1, pwzUrl2 : LPCWSTR; dwCompareFlags : DWORD) : HResult; stdcall;
854    Function QueryInfo(pwzUrl : LPCWSTR; QueryOption : TQueryOption; dwQueryFlags : DWORD; pBuffer : Pointer; cbBuffer : DWORD; cbBuf : PDWORD; dwReserved : DWORD) : HResult; stdcall;
855  end;
856  PIInternetProtocolInfoRaw = ^IInternetProtocolInfoRaw;
857
858  IInternetProtocolInfo = interface ['{79eac9ec-baf9-11ce-8c82-00aa004ba90b}']
859    Function ParseUrl(pwzUrl : LPCWSTR; ParseAction : TParseAction; dwParseFlags : DWORD; pwzResult : LPWSTR; cchResult : DWORD; pcchResult : DWORD; dwReserved : DWORD) : HResult; stdcall;
860    Function CombineUrl(pwzBaseUrl, pwzRelativeUrl : LPCWSTR; dwCombineFlags : DWORD; pwzResult : LPWSTR; cchResult : DWORD; out pcchResult : DWORD; dwReserved : DWORD) : HResult; stdcall;
861    Function CompareUrl(pwzUrl1, pwzUrl2 : LPCWSTR; dwCompareFlags : DWORD) : HResult; stdcall;
862    Function QueryInfo(pwzUrl : LPCWSTR; QueryOption : TQueryOption; dwQueryFlags : DWORD; pBuffer : Pointer; cbBuffer : DWORD; var cbBuf : DWORD; dwReserved : DWORD) : HResult; stdcall;
863  end;
864  PIInternetProtocolInfo = ^IInternetProtocolInfo;
865
866  IInternetSecurityMgrSiteRaw = interface ['{79eac9ed-baf9-11ce-8c82-00aa004ba90b}']
867    Function GetWindow(hwnd : PHWnd) : HResult; stdcall;
868    Function EnableModeless(fEnable : BOOL) : HResult; stdcall;
869  end;
870  PIInternetSecurityMgrSiteRaw = ^IInternetSecurityMgrSiteRaw;
871
872  IInternetSecurityMgrSite = interface ['{79eac9ed-baf9-11ce-8c82-00aa004ba90b}']
873    Function GetWindow(out hwnd : HWnd) : HResult; stdcall;
874    Function EnableModeless(fEnable : BOOL) : HResult; stdcall;
875  end;
876  PIInternetSecurityMgrSite = ^IInternetSecurityMgrSite;
877
878  IInternetSecurityManagerRaw = interface ['{79eac9ee-baf9-11ce-8c82-00aa004ba90b}']
879    Function SetSecuritySite(Site : IInternetSecurityMgrSiteRaw) : HResult; stdcall;
880    Function GetSecuritySite(Site : PIInternetSecurityMgrSiteRaw) : HResult; stdcall;
881    Function MapUrlToZone(pwszUrl : LPCWSTR; dwZone : PDWORD; dwFlags : DWORD) : HResult; stdcall;
882    Function GetSecurityId(pwszUrl : LPCWSTR; pbSecurityId : Pointer; cbSecurityId : PDWORD; dwReserved : DWORD) : HResult; stdcall;
883    Function ProcessUrlAction(pwszUrl : LPCWSTR; dwAction : DWORD; pPolicy : Pointer; cbPolicy : DWORD; pContext : Pointer; cbContext : DWORD; dwFlags, dwReserved : DWORD) : HResult; stdcall;
884    Function QueryCustomPolicy(pwszUrl : LPCWSTR; const guidKey : TGUID; out pPolicy : Pointer; cbPolicy : PDWORD; pContext : Pointer; cbContext : DWORD; dwReserved : DWORD) : HResult; stdcall;
885    Function SetZoneMapping(dwZone : DWORD; lpszPattern : LPCWSTR; dwFlags : DWORD) : HResult; stdcall;
886    Function GetZoneMappings(dwZone : DWORD; enumString : PIEnumString; dwFlags : DWORD) : HResult; stdcall;
887  end;
888  PIInternetSecurityManagerRaw = ^IInternetSecurityManagerRaw;
889
890  IInternetSecurityManager = interface ['{79eac9ee-baf9-11ce-8c82-00aa004ba90b}']
891    Function SetSecuritySite(Site : IInternetSecurityMgrSite) : HResult; stdcall;
892    Function GetSecuritySite(out Site : IInternetSecurityMgrSite) : HResult; stdcall;
893    Function MapUrlToZone(pwszUrl : LPCWSTR; out dwZone : DWORD; dwFlags : DWORD) : HResult; stdcall;
894    Function GetSecurityId(pwszUrl : LPCWSTR; pbSecurityId : Pointer; var cbSecurityId : DWORD; dwReserved : DWORD) : HResult; stdcall;
895    Function ProcessUrlAction(pwszUrl : LPCWSTR; dwAction : DWORD; pPolicy : Pointer; cbPolicy : DWORD; pContext : Pointer; cbContext : DWORD; dwFlags, dwReserved : DWORD) : HResult; stdcall;
896    Function QueryCustomPolicy(pwszUrl : LPCWSTR; const guidKey : TGUID; out pPolicy : Pointer; out cbPolicy : DWORD; pContext : Pointer; cbContext : DWORD; dwReserved : DWORD) : HResult; stdcall;
897    Function SetZoneMapping(dwZone : DWORD; lpszPattern : LPCWSTR; dwFlags : DWORD) : HResult; stdcall;
898    Function GetZoneMappings(dwZone : DWORD; out enumString : IEnumString; dwFlags : DWORD) : HResult; stdcall;
899  end;
900  PIInternetSecurityManager = ^IInternetSecurityManager;
901
902  IInternetHostSecurityManagerRaw = interface ['{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}']
903    Function GetSecurityId(pbSecurityId : Pointer; cbSecurityId : PDWORD; dwReserved : DWORD) : HResult; stdcall;
904    Function ProcessUrlAction(dwAction : DWORD; pPolicy : Pointer; cbPolicy : DWORD; pContext : Pointer; cbContext, dwFlags, dwReserved : DWORD) : HResult; stdcall;
905    Function QueryCustomPolicy(const guidKey : TGUID; pPolicy : PPointer; cbPolicy : PDWORD; pContext : Pointer; cbContext, dwReserved : DWORD) : HResult; stdcall;
906  end;
907  PIInternetHostSecurityManagerRaw = ^IInternetHostSecurityManagerRaw;
908
909  IInternetHostSecurityManager = interface ['{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}']
910    Function GetSecurityId(pbSecurityId : Pointer; var cbSecurityId : DWORD; dwReserved : DWORD) : HResult; stdcall;
911    Function ProcessUrlAction(dwAction : DWORD; pPolicy : Pointer; cbPolicy : DWORD; pContext : Pointer; cbContext, dwFlags, dwReserved : DWORD) : HResult; stdcall;
912    Function QueryCustomPolicy(const guidKey : TGUID; out pPolicy : Pointer; out cbPolicy : DWORD; pContext : Pointer; cbContext, dwReserved : DWORD) : HResult; stdcall;
913  end;
914  PIInternetHostSecurityManager = ^IInternetHostSecurityManager;
915
916  IInternetZoneManagerRaw = interface  ['{79eac9ef-baf9-11ce-8c82-00aa004ba90b}']
917    Function GetZoneAttributes(dwZone : DWORD; ZoneAttributes : PZoneAttributes) : HResult; stdcall;
918    Function SetZoneAttributes(dwZone : DWORD; const ZoneAttributes : TZoneAttributes) : HResult; stdcall;
919    Function GetZoneCustomPolicy(dwZone : DWORD; const guidKey : TGUID; pPolicy : PPointer; cbPolicy : PDWORD; urlZoneReg : TUrlZoneReg) : HResult; stdcall;
920    Function SetZoneCustomPolicy(dwZone : DWORD; const guidKey : TGUID; pPolicy : Pointer; cbPolicy : DWORD; urlZoneReg : TUrlZoneReg) : HResult; stdcall;
921    Function GetZoneActionPolicy(dwZone, dwAction : DWORD; pPolicy : Pointer; cbPolicy : DWORD; urlZoneReg : TUrlZoneReg) : HResult; stdcall;
922    Function SetZoneActionPolicy(dwZone, dwAction : DWORD; pPolicy : Pointer; cbPolicy : DWORD; urlZoneReg : TUrlZoneReg) : HResult; stdcall;
923    Function PromptAction(dwAction : DWORD; hwndParent : HWnd; pwszUrl, pwszText : LPCWSTR; dwPromptFlags : DWORD) : HResult; stdcall;
924    Function LogAction(dwAction : DWORD; pwszUrl, pwszText : LPCWSTR; dwLogFlags : DWORD) : HResult; stdcall;
925    Function CreateZoneEnumerator(dwEnum, dwCount : PDWORD; dwFlags : DWORD) : HResult; stdcall;
926    Function GetZoneAt(dwEnum, dwIndex : DWORD; dwZone : PDWORD) : HResult; stdcall;
927    Function DestroyZoneEnumerator(dwEnum : DWORD) : HResult; stdcall;
928    Function CopyTemplatePoliciesToZone(dwTemplate, dwZone, dwReserved : DWORD) : HResult; stdcall;
929  end;
930  PIInternetZoneManagerRaw = ^IInternetZoneManagerRaw;
931
932  IInternetZoneManager = interface  ['{79eac9ef-baf9-11ce-8c82-00aa004ba90b}']
933    Function GetZoneAttributes(dwZone : DWORD; var ZoneAttributes : TZoneAttributes) : HResult; stdcall;
934    Function SetZoneAttributes(dwZone : DWORD; const ZoneAttributes : TZoneAttributes) : HResult; stdcall;
935    Function GetZoneCustomPolicy(dwZone : DWORD; const guidKey : TGUID; out pPolicy : Pointer; out cbPolicy : DWORD; urlZoneReg : TUrlZoneReg) : HResult; stdcall;
936    Function SetZoneCustomPolicy(dwZone : DWORD; const guidKey : TGUID; pPolicy : Pointer; cbPolicy : DWORD; urlZoneReg : TUrlZoneReg) : HResult; stdcall;
937    Function GetZoneActionPolicy(dwZone, dwAction : DWORD; pPolicy : Pointer; cbPolicy : DWORD; urlZoneReg : TUrlZoneReg) : HResult; stdcall;
938    Function SetZoneActionPolicy(dwZone, dwAction : DWORD; pPolicy : Pointer; cbPolicy : DWORD; urlZoneReg : TUrlZoneReg) : HResult; stdcall;
939    Function PromptAction(dwAction : DWORD; hwndParent : HWnd; pwszUrl, pwszText : LPCWSTR; dwPromptFlags : DWORD) : HResult; stdcall;
940    Function LogAction(dwAction : DWORD; pwszUrl, pwszText : LPCWSTR; dwLogFlags : DWORD) : HResult; stdcall;
941    Function CreateZoneEnumerator(out dwEnum, dwCount : DWORD; dwFlags : DWORD) : HResult; stdcall;
942    Function GetZoneAt(dwEnum, dwIndex : DWORD; out dwZone : DWORD) : HResult; stdcall;
943    Function DestroyZoneEnumerator(dwEnum : DWORD) : HResult; stdcall;
944    Function CopyTemplatePoliciesToZone(dwTemplate, dwZone, dwReserved : DWORD) : HResult; stdcall;
945  end;
946  PIInternetZoneManager = ^IInternetZoneManager;
947
948  ISoftDistExtRaw = interface ['{B15B8DC1-C7E1-11d0-8680-00AA00BDCB71}']
949    Function ProcessSoftDist(szCDFURL : LPCWSTR; SoftDistElement : Pointer; lpdsi : PSoftDistInfo) : HResult; stdcall;
950    Function GetFirstCodeBase(szCodeBase : PLPWSTR;const dwMaxSize : DWORD) : HResult; stdcall;
951    Function GetNextCodeBase(szCodeBase : PLPWSTR; const dwMaxSize : DWORD) : HResult; stdcall;
952    Function AsyncInstallDistributionUnit(bc : IBindCtx; pvReserved : Pointer; flags : DWORD; const cbh : TCodeBaseHold) : HResult; stdcall;
953  end;
954  PISoftDistExtRaw = ^ISoftDistExtRaw;
955
956  ISoftDistExt = interface ['{B15B8DC1-C7E1-11d0-8680-00AA00BDCB71}']
957    Function ProcessSoftDist(szCDFURL : LPCWSTR; SoftDistElement : Pointer; var lpdsi : TSoftDistInfo) : HResult; stdcall;
958    Function GetFirstCodeBase(var szCodeBase : LPWSTR;const dwMaxSize : DWORD) : HResult; stdcall;
959    Function GetNextCodeBase(var szCodeBase : LPWSTR; const dwMaxSize : DWORD) : HResult; stdcall;
960    Function AsyncInstallDistributionUnit(bc : IBindCtx; pvReserved : Pointer; flags : DWORD; const cbh : TCodeBaseHold) : HResult; stdcall;
961  end;
962  PISoftDistExt = ^ISoftDistExt;
963
964  IDataFilterRaw = interface ['{69d14c80-c18e-11d0-a9ce-006097942311}']
965    Function DoEncode(dwFlags : DWORD; lInBufferSize : Longint; pbInBuffer : Pointer; lOutBufferSize : Longint; pbOutBuffer : Pointer; lInBytesAvailable : Longint; lInBytesRead, lOutBytesWritten : PLongint; dwReserved : DWORD) : HResult; stdcall;
966    Function DoDecode(dwFlags : DWORD; lInBufferSize : Longint; pbInBuffer : Pointer; lOutBufferSize : Longint; pbOutBuffer : Pointer; lInBytesAvailable : Longint; lInBytesRead, lOutBytesWritten : PLongint; dwReserved : DWORD) : HResult; stdcall;
967    Function SetEncodingLevel(dwEncLevel : DWORD) : HResult; stdcall;
968  end;
969  PIDataFilterRaw = ^IDataFilterRaw;
970
971  IDataFilter = interface ['{69d14c80-c18e-11d0-a9ce-006097942311}']
972    Function DoEncode(dwFlags : DWORD; lInBufferSize : Longint; pbInBuffer : Pointer; lOutBufferSize : Longint; pbOutBuffer : Pointer; lInBytesAvailable : Longint;  out lInBytesRead, lOutBytesWritten : Longint; dwReserved : DWORD) : HResult; stdcall;
973    Function DoDecode(dwFlags : DWORD; lInBufferSize : Longint; pbInBuffer : Pointer; lOutBufferSize : Longint; pbOutBuffer : Pointer; lInBytesAvailable : Longint;    out lInBytesRead, lOutBytesWritten : Longint; dwReserved : DWORD) : HResult; stdcall;
974    Function SetEncodingLevel(dwEncLevel : DWORD) : HResult; stdcall;
975  end;
976  PIDataFilter = ^IDataFilter;
977
978  IEncodingFilterFactoryRaw = interface ['{70bdde00-c18e-11d0-a9ce-006097942311}']
979    Function FindBestFilter(pwzCodeIn, pwzCodeOut : LPCWSTR; info : TDataInfo; DF : PIDataFilterRaw) : HResult; stdcall;
980    Function GetDefaultFilter(pwzCodeIn, pwzCodeOut : LPCWSTR; info : TDataInfo; DF : PIDataFilterRaw) : HResult; stdcall;
981  end;
982  PIEncodingFilterFactoryRaw = ^IEncodingFilterFactoryRaw;
983
984  IEncodingFilterFactory = interface ['{70bdde00-c18e-11d0-a9ce-006097942311}']
985    Function FindBestFilter(pwzCodeIn, pwzCodeOut : LPCWSTR; info : TDataInfo; out DF : IDataFilter) : HResult; stdcall;
986    Function GetDefaultFilter(pwzCodeIn, pwzCodeOut : LPCWSTR; info : TDataInfo; out DF : IDataFilter) : HResult; stdcall;
987  end;
988  PIEncodingFilterFactory = ^IEncodingFilterFactory;
989
990Function CoGetClassObjectFromURL(const rCLASSID : TCLSID; szCODE : LPCWSTR; dwFileVersionMS, dwFileVersionLS : DWORD; szTYPE : LPCWSTR; pBindCtx : IBindCtx; dwClsContext : DWORD;  pvReserved : Pointer; const riid : TGUID; ppv  : pointer) : HResult; stdcall; external liburlmon;
991Function CoGetClassObjectFromURL(const rCLASSID : TCLSID; szCODE : LPCWSTR; dwFileVersionMS, dwFileVersionLS : DWORD; szTYPE : LPCWSTR; pBindCtx : IBindCtx; dwClsContext : DWORD;  pvReserved : Pointer; const riid : TGUID; out ppv) : HResult; stdcall; external liburlmon;
992Function CoInternetCombineUrl(pwzBaseUrl, pwzRelativeUrl : LPCWSTR; dwCombineFlags : DWORD; pszResult : LPWSTR; cchResult : DWORD; pcchResult : PDWORD; dwReserved : DWORD) : HResult ; stdcall; external liburlmon;
993Function CoInternetCombineUrl(pwzBaseUrl, pwzRelativeUrl : LPCWSTR; dwCombineFlags : DWORD; pszResult : LPWSTR; cchResult : DWORD; var pcchResult : DWORD; dwReserved : DWORD) : HResult ; stdcall; external liburlmon;
994Function CoInternetCompareUrl(pwzUrl1, pwzUrl2 : LPCWSTR; dwFlags : DWORD) : HResult; stdcall; external liburlmon;
995Function CoInternetGetProtocolFlags(pwzUrl : LPCWSTR; dwFlags : PDWORD; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
996Function CoInternetGetProtocolFlags(pwzUrl : LPCWSTR; var dwFlags : DWORD; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
997Function CoInternetCreateSecurityManager(SP : IServiceProvider; SM : PIInternetSecurityManager; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
998Function CoInternetCreateSecurityManager(SP : IServiceProvider; var SM : IInternetSecurityManager; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
999Function CoInternetCreateZoneManager(SP : IServiceProvider; ZM : PIInternetZoneManager; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1000Function CoInternetCreateZoneManager(SP : IServiceProvider; var ZM : IInternetZoneManager; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1001Function CoInternetGetSecurityUrl(pwzUrl : LPCWSTR; pwzSecUrl : PLPWSTR; psuAction : TPSUAction; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1002Function CoInternetGetSecurityUrl(pwzUrl : LPCWSTR; var pwzSecUrl : LPWSTR; psuAction : TPSUAction; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1003Function CoInternetGetSession(dwSessionMode : DWORD; pIInternetSession : PIInternetSession; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1004Function CoInternetGetSession(dwSessionMode : DWORD; var pIInternetSession : IInternetSession; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1005Function CoInternetParseUrl(pwzUrl : LPCWSTR; ParseAction : TParseAction; dwFlags : DWORD; pszResult : LPWSTR; cchResult : DWORD; pcchResult : PDWORD; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1006Function CoInternetParseUrl(pwzUrl : LPCWSTR; ParseAction : TParseAction; dwFlags : DWORD; pszResult : LPWSTR; cchResult : DWORD; var pcchResult : DWORD; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1007Function CoInternetQueryInfo(pwzUrl : LPCWSTR; QueryOptions : TQueryOption; dwQueryFlags : DWORD; pvBuffer : Pointer; cbBuffer : DWORD; pcbBuffer : PDWORD; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1008Function CoInternetQueryInfo(pwzUrl : LPCWSTR; QueryOptions : TQueryOption; dwQueryFlags : DWORD; pvBuffer : Pointer; cbBuffer : DWORD; var pcbBuffer : DWORD; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1009Function CopyBindInfo(const cbiSrc : TBindInfo; biDest : PBindInfo) : HResult; stdcall; external liburlmon;
1010Function CopyBindInfo(const cbiSrc : TBindInfo; var biDest : TBindInfo) : HResult; stdcall; external liburlmon;
1011Function CopyStgMedium(const cstgmedSrc : TStgMedium; stgmedDest : PStgMedium) : HResult; stdcall; external liburlmon;
1012Function CopyStgMedium(const cstgmedSrc : TStgMedium; var stgmedDest : TStgMedium) : HResult; stdcall; external liburlmon;
1013Function CreateAsyncBindCtxEx(pbc : IBindCtx; dwOptions : DWORD; BSCb : IBindStatusCallback; Enum : IEnumFORMATETC; ppBC : PIBindCtx; reserved : DWORD) : HResult; stdcall; external liburlmon;
1014Function CreateAsyncBindCtxEx(pbc : IBindCtx; dwOptions : DWORD; BSCb : IBindStatusCallback; Enum : IEnumFORMATETC; out ppBC : IBindCtx; reserved : DWORD) : HResult; stdcall; external liburlmon;
1015Function CreateAsyncBindCtx(reserved : DWORD; pBSCb : IBindStatusCallback; pEFetc : IEnumFORMATETC; ppBC : PIBindCtx) : HResult; stdcall; external liburlmon;
1016Function CreateAsyncBindCtx(reserved : DWORD; pBSCb : IBindStatusCallback; pEFetc : IEnumFORMATETC; out ppBC : IBindCtx) : HResult; stdcall; external liburlmon;
1017Function CreateFormatEnumerator(cfmtetc : UINT; const rgfmtetc : TFormatEtc; ppenumfmtetc : PIEnumFormatEtc) : HResult; stdcall; external liburlmon;
1018Function CreateFormatEnumerator(cfmtetc : UINT; const rgfmtetc : TFormatEtc; out ppenumfmtetc : IEnumFormatEtc) : HResult; stdcall; external liburlmon;
1019Function CreateURLBinding(lpszUrl : LPCWSTR; pbc : IBindCtx; ppBdg : PIBinding) : HResult; stdcall; external liburlmon;
1020Function CreateURLBinding(lpszUrl : LPCWSTR; pbc : IBindCtx; out ppBdg : IBinding) : HResult; stdcall; external liburlmon;
1021Function CreateURLMoniker(MkCtx : IMoniker; szURL : LPCWSTR; mk : PIMoniker) : HResult; stdcall; external liburlmon;
1022Function CreateURLMoniker(MkCtx : IMoniker; szURL : LPCWSTR; out mk : IMoniker) : HResult; stdcall; external liburlmon;
1023Function FindMediaTypeClass(pBC : IBindCtx; szType : LPCSTR; const pclsID : TCLSID; reserved : DWORD) : HResult; stdcall; external liburlmon;
1024Function FindMediaType(rgszTypes : LPCSTR; rgcfTypes : PClipFormat) : HResult; stdcall; external liburlmon;
1025Function FindMimeFromData(pBC : IBindCtx; pwzUrl : LPCWSTR; pBuffer : Pointer; cbSize : DWORD; pwzMimeProposed : LPCWSTR; dwMimeFlags : DWORD; ppwzMimeOut : PLPWSTR; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1026Function FindMimeFromData(pBC : IBindCtx; pwzUrl : LPCWSTR; pBuffer : Pointer; cbSize : DWORD; pwzMimeProposed : LPCWSTR; dwMimeFlags : DWORD; out ppwzMimeOut : LPWSTR; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1027Function GetClassFileOrMime(pBC : IBindCtx; szFilename : LPCWSTR; pBuffer : Pointer; cbSize : DWORD; szMime : LPCWSTR; dwReserved : DWORD; pclsid : PCLSID) : HResult; stdcall; external liburlmon;
1028Function GetClassFileOrMime(pBC : IBindCtx; szFilename : LPCWSTR; pBuffer : Pointer; cbSize : DWORD; szMime : LPCWSTR; dwReserved : DWORD; out pclsid : TCLSID) : HResult; stdcall; external liburlmon;
1029Function GetClassURL(szURL : LPCWSTR; const ClsID : TCLSID) : HResult; stdcall; external liburlmon;
1030Function GetSoftwareUpdateInfo(szDistUnit : LPCWSTR; var dsi : TSoftDistInfo) : HResult; stdcall; external liburlmon;
1031Function HlinkGoBack(unk : IUnknown) : HResult; stdcall; external liburlmon;
1032Function HlinkGoForward(unk : IUnknown) : HResult; stdcall; external liburlmon;
1033Function HlinkNavigateMoniker(Unk : IUnknown; mkTarget : IMoniker) : HResult; stdcall; external liburlmon;
1034Function HlinkNavigateString(unk : IUnknown; szTarget : LPCWSTR) : HResult; stdcall; external liburlmon;
1035Function HlinkSimpleNavigateToMoniker( mkTarget : Imoniker; szLocation, szTargetFrameName : LPCWSTR; Unk : IUnknown; bc : IBindCtx; BSC : IBindStatusCallback; grfHLNF, dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1036Function HlinkSimpleNavigateToString(szTarget, szLocation, szTargetFrameName : LPCWSTR; Unk : IUnknown; pbc : IBindCtx; BSC : IBindStatusCallback; grfHLNF, dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1037Function IsAsyncMoniker(pmk : IMoniker) : HResult; stdcall; external liburlmon;
1038Function IsLoggingEnabled(pszUrl : PAnsiChar) : BOOL; stdcall; external liburlmon name 'IsLoggingEnabledA';
1039Function IsLoggingEnabledA(pszUrl : PAnsiChar) : BOOL; stdcall; external liburlmon;
1040Function IsLoggingEnabledW(pszUrl : PWideChar) : BOOL; stdcall; external liburlmon;
1041Function IsValidURL(pBC : IBindCtx; szURL : LPCWSTR; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1042Function MkParseDisplayNameEx(pbc : IBindCtx; szDisplayName : LPCWSTR; pchEaten : PULONG; ppmk : PIMoniker) : HResult; stdcall; external liburlmon;
1043Function MkParseDisplayNameEx(pbc : IBindCtx; szDisplayName : LPCWSTR; out pchEaten : ULONG; out ppmk : IMoniker) : HResult; stdcall; external liburlmon;
1044Function ObtainUserAgentString(dwOption : DWORD; pszUAOut : LPSTR; cbSize : PDWORD) : HResult; stdcall; external liburlmon;
1045Function ObtainUserAgentString(dwOption : DWORD; pszUAOut : LPSTR; var cbSize : DWORD) : HResult; stdcall; external liburlmon;
1046Function RegisterBindStatusCallback(pBC : IBindCtx; pBSCb : IBindStatusCallback; ppBSCBPrev : PIBindStatusCallback; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1047Function RegisterBindStatusCallback(pBC : IBindCtx; pBSCb : IBindStatusCallback; out ppBSCBPrev : IBindStatusCallback; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1048Function RegisterFormatEnumerator(pBC : IBindCtx; pEFetc : IEnumFormatEtc; reserved : DWORD) : HResult; stdcall; external liburlmon;
1049Function RegisterMediaTypeClass(pBC : IBindCtx; ctypes : UINT; const rgszTypes : LPCSTR; rgclsID : PCLSID; reserved : DWORD) : HResult; stdcall; external liburlmon;
1050Function RegisterMediaTypes(ctypes : UINT; const rgszTypes : LPCSTR; const rgcfTypes : TClipFormat) : HResult; stdcall; external liburlmon;
1051Function RevokeBindStatusCallback(pBC : IBindCtx; pBSCb : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1052Function RevokeFormatEnumerator(pBC : IBindCtx; pEFetc : IEnumFormatEtc) : HResult; stdcall; external liburlmon;
1053Function SetSoftwareUpdateAdvertisementState(szDistUnit : LPCWSTR;dwAdState, dwAdvertisedVersionMS, dwAdvertisedVersionLS : DWORD) : HResult; stdcall; external liburlmon;
1054Function URLDownloadToCacheFile(p1 : IUnknown; p2 : PAnsiChar; p3 : PChar; p4 : DWORD; p5 : DWORD; p6 : IBindStatusCallback) : HResult; stdcall; external liburlmon name 'URLDownloadToCacheFileA';
1055Function URLDownloadToCacheFileA(p1 : IUnknown; p2 : PAnsiChar; p3 : PAnsiChar; p4 : DWORD; p5 : DWORD; p6 : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1056Function URLDownloadToCacheFileW(p1 : IUnknown; p2 : PWideChar; p3 : PWideChar; p4 : DWORD; p5 : DWORD; p6 : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1057Function URLDownloadToFile(Caller : IUnknown; URL : PAnsiChar; FileName : PChar; Reserved : DWORD; StatusCB : IBindStatusCallback) : HResult; stdcall; external liburlmon name 'URLDownloadToFileA';
1058Function URLDownloadToFileA(Caller : IUnknown; URL : PAnsiChar; FileName : PAnsiChar; Reserved : DWORD; StatusCB : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1059Function URLDownloadToFileW(Caller : IUnknown; URL : PWideChar; FileName : PWideChar; Reserved : DWORD; StatusCB : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1060Function UrlMkGetSessionOption(dwOption : DWORD; pBuffer : Pointer; dwBufferLength : DWORD; pdwBufferLength : PDWORD; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1061Function UrlMkGetSessionOption(dwOption : DWORD; pBuffer : Pointer; dwBufferLength : DWORD; out pdwBufferLength : DWORD; dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1062Function UrlMkSetSessionOption(dwOption : DWORD; pBuffer : Pointer; dwBufferLength, dwReserved : DWORD) : HResult; stdcall; external liburlmon;
1063Function URLOpenBlockingStream(p1 : IUnknown; p2 : PAnsiChar; p3 : PIStream; p4 : DWORD; p5 : IBindStatusCallback) : HResult; stdcall; external liburlmon name 'URLOpenBlockingStreamA';
1064Function URLOpenBlockingStream(p1 : IUnknown; p2 : PAnsiChar; out p3 : IStream; p4 : DWORD; p5 : IBindStatusCallback) : HResult; stdcall; external liburlmon name 'URLOpenBlockingStreamA';
1065Function URLOpenBlockingStreamA(p1 : IUnknown; p2 : PAnsiChar; p3 : PIStream; p4 : DWORD; p5 : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1066Function URLOpenBlockingStreamA(p1 : IUnknown; p2 : PAnsiChar; out p3 : IStream; p4 : DWORD; p5 : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1067Function URLOpenBlockingStreamW(p1 : IUnknown; p2 : PWideChar; p3 : PIStream; p4 : DWORD; p5 : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1068Function URLOpenBlockingStreamW(p1 : IUnknown; p2 : PWideChar; out p3 : IStream; p4 : DWORD; p5 : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1069Function URLOpenPullStream(p1 : IUnknown; p2 : PAnsiChar; p3 : DWORD; BSC : IBindStatusCallback) : HResult; stdcall; external liburlmon name 'URLOpenPullStreamA';
1070Function URLOpenPullStreamA(p1 : IUnknown; p2 : PAnsiChar; p3 : DWORD; BSC : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1071Function URLOpenPullStreamW(p1 : IUnknown; p2 : PWideChar; p3 : DWORD; BSC : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1072Function URLOpenStream(p1 : IUnknown; p2 : PAnsiChar; p3 : DWORD; p4 : IBindStatusCallback) : HResult; stdcall; external liburlmon name 'URLOpenStreamA';
1073Function URLOpenStreamA(p1 : IUnknown; p2 : PAnsiChar; p3 : DWORD; p4 : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1074Function URLOpenStreamW(p1 : IUnknown; p2 : PWideChar; p3 : DWORD; p4 : IBindStatusCallback) : HResult; stdcall; external liburlmon;
1075Function WriteHitLogging(const Logginginfo : THIT_LOGGING_INFO) : BOOL; stdcall; external liburlmon;
1076Procedure ReleaseBindInfo(const bindinfo : TBindInfo); stdcall; external liburlmon; external liburlmon;
1077
1078implementation
1079
1080end.
1081