"Fossies" - the Fresh Open Source Software Archive

Member "FreeBASIC-1.09.0-win64/inc/win/urlmon.bi" (1 Jan 2022, 259309 Bytes) of package /windows/misc/FreeBASIC-1.09.0-win64.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Visual Basic source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.


    1 '' FreeBASIC binding for mingw-w64-v4.0.4
    2 ''
    3 '' based on the C header files:
    4 ''   This Software is provided under the Zope Public License (ZPL) Version 2.1.
    5 ''
    6 ''   Copyright (c) 2009, 2010 by the mingw-w64 project
    7 ''
    8 ''   See the AUTHORS file for the list of contributors to the mingw-w64 project.
    9 ''
   10 ''   This license has been certified as open source. It has also been designated
   11 ''   as GPL compatible by the Free Software Foundation (FSF).
   12 ''
   13 ''   Redistribution and use in source and binary forms, with or without
   14 ''   modification, are permitted provided that the following conditions are met:
   15 ''
   16 ''     1. Redistributions in source code must retain the accompanying copyright
   17 ''        notice, this list of conditions, and the following disclaimer.
   18 ''     2. Redistributions in binary form must reproduce the accompanying
   19 ''        copyright notice, this list of conditions, and the following disclaimer
   20 ''        in the documentation and/or other materials provided with the
   21 ''        distribution.
   22 ''     3. Names of the copyright holders must not be used to endorse or promote
   23 ''        products derived from this software without prior written permission
   24 ''        from the copyright holders.
   25 ''     4. The right to distribute this software or to use it for any purpose does
   26 ''        not give you the right to use Servicemarks (sm) or Trademarks (tm) of
   27 ''        the copyright holders.  Use of them is covered by separate agreement
   28 ''        with the copyright holders.
   29 ''     5. If any files are modified, you must cause the modified files to carry
   30 ''        prominent notices stating that you changed the files and the date of
   31 ''        any change.
   32 ''
   33 ''   Disclaimer
   34 ''
   35 ''   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
   36 ''   OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   37 ''   OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
   38 ''   EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
   39 ''   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   40 ''   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
   41 ''   OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   42 ''   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   43 ''   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
   44 ''   EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   45 ''
   46 '' translated to FreeBASIC by:
   47 ''   Copyright © 2015 FreeBASIC development team
   48 
   49 #pragma once
   50 
   51 #include once "rpc.bi"
   52 #include once "rpcndr.bi"
   53 #include once "windows.bi"
   54 #include once "ole2.bi"
   55 #include once "objidl.bi"
   56 #include once "oleidl.bi"
   57 #include once "servprov.bi"
   58 #include once "msxml.bi"
   59 #include once "winapifamily.bi"
   60 
   61 extern "Windows"
   62 
   63 #define __urlmon_h__
   64 #define __IPersistMoniker_FWD_DEFINED__
   65 #define __IMonikerProp_FWD_DEFINED__
   66 #define __IBindProtocol_FWD_DEFINED__
   67 #define __IBinding_FWD_DEFINED__
   68 #define __IBindStatusCallback_FWD_DEFINED__
   69 #define __IBindStatusCallbackEx_FWD_DEFINED__
   70 #define __IAuthenticate_FWD_DEFINED__
   71 #define __IAuthenticateEx_FWD_DEFINED__
   72 #define __IHttpNegotiate_FWD_DEFINED__
   73 #define __IHttpNegotiate2_FWD_DEFINED__
   74 #define __IHttpNegotiate3_FWD_DEFINED__
   75 #define __IWinInetFileStream_FWD_DEFINED__
   76 #define __IWindowForBindingUI_FWD_DEFINED__
   77 #define __ICodeInstall_FWD_DEFINED__
   78 #define __IUri_FWD_DEFINED__
   79 #define __IUriContainer_FWD_DEFINED__
   80 #define __IUriBuilder_FWD_DEFINED__
   81 #define __IUriBuilderFactory_FWD_DEFINED__
   82 #define __IWinInetInfo_FWD_DEFINED__
   83 #define __IHttpSecurity_FWD_DEFINED__
   84 #define __IWinInetHttpInfo_FWD_DEFINED__
   85 #define __IWinInetHttpTimeouts_FWD_DEFINED__
   86 #define __IWinInetCacheHints_FWD_DEFINED__
   87 #define __IWinInetCacheHints2_FWD_DEFINED__
   88 #define __IBindHost_FWD_DEFINED__
   89 #define __IInternet_FWD_DEFINED__
   90 #define __IInternetBindInfo_FWD_DEFINED__
   91 #define __IInternetBindInfoEx_FWD_DEFINED__
   92 #define __IInternetProtocolRoot_FWD_DEFINED__
   93 #define __IInternetProtocol_FWD_DEFINED__
   94 #define __IInternetProtocolEx_FWD_DEFINED__
   95 #define __IInternetProtocolSink_FWD_DEFINED__
   96 #define __IInternetProtocolSinkStackable_FWD_DEFINED__
   97 #define __IInternetSession_FWD_DEFINED__
   98 #define __IInternetThreadSwitch_FWD_DEFINED__
   99 #define __IInternetPriority_FWD_DEFINED__
  100 #define __IInternetProtocolInfo_FWD_DEFINED__
  101 #define __IInternetSecurityMgrSite_FWD_DEFINED__
  102 #define __IInternetSecurityManager_FWD_DEFINED__
  103 #define __IInternetSecurityManagerEx_FWD_DEFINED__
  104 #define __IInternetSecurityManagerEx2_FWD_DEFINED__
  105 #define __IZoneIdentifier_FWD_DEFINED__
  106 #define __IInternetHostSecurityManager_FWD_DEFINED__
  107 #define __IInternetZoneManager_FWD_DEFINED__
  108 #define __IInternetZoneManagerEx_FWD_DEFINED__
  109 #define __IInternetZoneManagerEx2_FWD_DEFINED__
  110 #define __ISoftDistExt_FWD_DEFINED__
  111 #define __ICatalogFileInfo_FWD_DEFINED__
  112 #define __IDataFilter_FWD_DEFINED__
  113 #define __IEncodingFilterFactory_FWD_DEFINED__
  114 #define __IWrappedProtocol_FWD_DEFINED__
  115 #define __IGetBindHandle_FWD_DEFINED__
  116 #define __IBindCallbackRedirect_FWD_DEFINED__
  117 
  118 #inclib "uuid"
  119 
  120 #define __IBindStatusCallbackMsg_FWD_DEFINED__
  121 extern CLSID_SBS_StdURLMoniker as const IID
  122 extern CLSID_SBS_HttpProtocol as const IID
  123 extern CLSID_SBS_FtpProtocol as const IID
  124 extern CLSID_SBS_GopherProtocol as const IID
  125 extern CLSID_SBS_HttpSProtocol as const IID
  126 extern CLSID_SBS_FileProtocol as const IID
  127 extern CLSID_SBS_MkProtocol as const IID
  128 extern CLSID_SBS_UrlMkBindCtx as const IID
  129 extern CLSID_SBS_SoftDistExt as const IID
  130 extern CLSID_SBS_CdlProtocol as const IID
  131 extern CLSID_SBS_ClassInstallFilter as const IID
  132 extern CLSID_SBS_InternetSecurityManager as const IID
  133 extern CLSID_SBS_InternetZoneManager as const IID
  134 const INVALID_P_ROOT_SECURITY_ID = cptr(UBYTE ptr, -1)
  135 extern IID_IAsyncMoniker as const IID
  136 extern CLSID_StdURLMoniker as const IID
  137 extern CLSID_HttpProtocol as const IID
  138 extern CLSID_FtpProtocol as const IID
  139 extern CLSID_GopherProtocol as const IID
  140 extern CLSID_HttpSProtocol as const IID
  141 extern CLSID_FileProtocol as const IID
  142 extern CLSID_MkProtocol as const IID
  143 extern CLSID_StdURLProtocol as const IID
  144 extern CLSID_UrlMkBindCtx as const IID
  145 extern CLSID_CdlProtocol as const IID
  146 extern CLSID_ClassInstallFilter as const IID
  147 extern IID_IAsyncBindCtx as const IID
  148 
  149 #define SZ_URLCONTEXT OLESTR("URL Context")
  150 #define SZ_ASYNC_CALLEE OLESTR("AsyncCallee")
  151 const MKSYS_URLMONIKER = 6
  152 const URL_MK_LEGACY = 0
  153 const URL_MK_UNIFORM = 1
  154 const URL_MK_NO_CANONICALIZE = 2
  155 
  156 declare function CreateURLMoniker(byval pMkCtx as LPMONIKER, byval szURL as LPCWSTR, byval ppmk as LPMONIKER ptr) as HRESULT
  157 declare function CreateURLMonikerEx(byval pMkCtx as LPMONIKER, byval szURL as LPCWSTR, byval ppmk as LPMONIKER ptr, byval dwFlags as DWORD) as HRESULT
  158 declare function GetClassURL(byval szURL as LPCWSTR, byval pClsID as CLSID ptr) as HRESULT
  159 type IBindStatusCallback as IBindStatusCallback_
  160 declare function CreateAsyncBindCtx(byval reserved as DWORD, byval pBSCb as IBindStatusCallback ptr, byval pEFetc as IEnumFORMATETC ptr, byval ppBC as IBindCtx ptr ptr) as HRESULT
  161 
  162 #if _WIN32_WINNT >= &h0600
  163     type IUri as IUri_
  164     declare function CreateURLMonikerEx2(byval pMkCtx as LPMONIKER, byval pUri as IUri ptr, byval ppmk as LPMONIKER ptr, byval dwFlags as DWORD) as HRESULT
  165 #endif
  166 
  167 declare function CreateAsyncBindCtxEx(byval pbc as IBindCtx ptr, byval dwOptions as DWORD, byval pBSCb as IBindStatusCallback ptr, byval pEnum as IEnumFORMATETC ptr, byval ppBC as IBindCtx ptr ptr, byval reserved as DWORD) as HRESULT
  168 declare function MkParseDisplayNameEx(byval pbc as IBindCtx ptr, byval szDisplayName as LPCWSTR, byval pchEaten as ULONG ptr, byval ppmk as LPMONIKER ptr) as HRESULT
  169 declare function RegisterBindStatusCallback(byval pBC as LPBC, byval pBSCb as IBindStatusCallback ptr, byval ppBSCBPrev as IBindStatusCallback ptr ptr, byval dwReserved as DWORD) as HRESULT
  170 declare function RevokeBindStatusCallback(byval pBC as LPBC, byval pBSCb as IBindStatusCallback ptr) as HRESULT
  171 declare function GetClassFileOrMime(byval pBC as LPBC, byval szFilename as LPCWSTR, byval pBuffer as LPVOID, byval cbSize as DWORD, byval szMime as LPCWSTR, byval dwReserved as DWORD, byval pclsid as CLSID ptr) as HRESULT
  172 declare function IsValidURL(byval pBC as LPBC, byval szURL as LPCWSTR, byval dwReserved as DWORD) as HRESULT
  173 declare function CoGetClassObjectFromURL(byval rCLASSID as const IID const ptr, byval szCODE as LPCWSTR, byval dwFileVersionMS as DWORD, byval dwFileVersionLS as DWORD, byval szTYPE as LPCWSTR, byval pBindCtx as LPBINDCTX, byval dwClsContext as DWORD, byval pvReserved as LPVOID, byval riid as const IID const ptr, byval ppv as LPVOID ptr) as HRESULT
  174 declare function IEInstallScope(byval pdwScope as LPDWORD) as HRESULT
  175 declare function FaultInIEFeature(byval hWnd as HWND, byval pClassSpec as uCLSSPEC ptr, byval pQuery as QUERYCONTEXT ptr, byval dwFlags as DWORD) as HRESULT
  176 declare function GetComponentIDFromCLSSPEC(byval pClassspec as uCLSSPEC ptr, byval ppszComponentID as LPSTR ptr) as HRESULT
  177 
  178 const FIEF_FLAG_FORCE_JITUI = &h1
  179 const FIEF_FLAG_PEEK = &h2
  180 const FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK = &h4
  181 declare function IsAsyncMoniker(byval pmk as IMoniker ptr) as HRESULT
  182 type IBinding as IBinding_
  183 
  184 declare function CreateURLBinding(byval lpszUrl as LPCWSTR, byval pbc as IBindCtx ptr, byval ppBdg as IBinding ptr ptr) as HRESULT
  185 declare function RegisterMediaTypes(byval ctypes as UINT, byval rgszTypes as const LPCSTR ptr, byval rgcfTypes as CLIPFORMAT ptr) as HRESULT
  186 declare function FindMediaType(byval rgszTypes as LPCSTR, byval rgcfTypes as CLIPFORMAT ptr) as HRESULT
  187 declare function CreateFormatEnumerator(byval cfmtetc as UINT, byval rgfmtetc as FORMATETC ptr, byval ppenumfmtetc as IEnumFORMATETC ptr ptr) as HRESULT
  188 declare function RegisterFormatEnumerator(byval pBC as LPBC, byval pEFetc as IEnumFORMATETC ptr, byval reserved as DWORD) as HRESULT
  189 declare function RevokeFormatEnumerator(byval pBC as LPBC, byval pEFetc as IEnumFORMATETC ptr) as HRESULT
  190 declare function RegisterMediaTypeClass(byval pBC as LPBC, byval ctypes as UINT, byval rgszTypes as const LPCSTR ptr, byval rgclsID as CLSID ptr, byval reserved as DWORD) as HRESULT
  191 declare function FindMediaTypeClass(byval pBC as LPBC, byval szType as LPCSTR, byval pclsID as CLSID ptr, byval reserved as DWORD) as HRESULT
  192 declare function UrlMkSetSessionOption(byval dwOption as DWORD, byval pBuffer as LPVOID, byval dwBufferLength as DWORD, byval dwReserved as DWORD) as HRESULT
  193 declare function UrlMkGetSessionOption(byval dwOption as DWORD, byval pBuffer as LPVOID, byval dwBufferLength as DWORD, byval pdwBufferLengthOut as DWORD ptr, byval dwReserved as DWORD) as HRESULT
  194 declare function FindMimeFromData(byval pBC as LPBC, byval pwzUrl as LPCWSTR, byval pBuffer as LPVOID, byval cbSize as DWORD, byval pwzMimeProposed as LPCWSTR, byval dwMimeFlags as DWORD, byval ppwzMimeOut as LPWSTR ptr, byval dwReserved as DWORD) as HRESULT
  195 const FMFD_DEFAULT = &h0
  196 const FMFD_URLASFILENAME = &h1
  197 
  198 #if _WIN32_WINNT >= &h0600
  199     const FMFD_ENABLEMIMESNIFFING = &h2
  200     const FMFD_IGNOREMIMETEXTPLAIN = &h4
  201 #endif
  202 
  203 const FMFD_SERVERMIME = &h8
  204 const FMFD_RESPECTTEXTPLAIN = &h10
  205 const FMFD_RETURNUPDATEDIMGMIMES = &h20
  206 const UAS_EXACTLEGACY = &h1000
  207 
  208 declare function ObtainUserAgentString(byval dwOption as DWORD, byval pszUAOut as LPSTR, byval cbSize as DWORD ptr) as HRESULT
  209 declare function CompareSecurityIds(byval pbSecurityId1 as UBYTE ptr, byval dwLen1 as DWORD, byval pbSecurityId2 as UBYTE ptr, byval dwLen2 as DWORD, byval dwReserved as DWORD) as HRESULT
  210 declare function CompatFlagsFromClsid(byval pclsid as CLSID ptr, byval pdwCompatFlags as LPDWORD, byval pdwMiscStatusFlags as LPDWORD) as HRESULT
  211 
  212 const URLMON_OPTION_USERAGENT = &h10000001
  213 const URLMON_OPTION_USERAGENT_REFRESH = &h10000002
  214 const URLMON_OPTION_URL_ENCODING = &h10000004
  215 
  216 #if _WIN32_WINNT >= &h0600
  217     const URLMON_OPTION_USE_BINDSTRINGCREDS = &h10000008
  218     const URLMON_OPTION_USE_BROWSERAPPSDOCUMENTS = &h10000010
  219 #endif
  220 
  221 const CF_NULL = 0
  222 #define CFSTR_MIME_NULL NULL
  223 #define CFSTR_MIME_TEXT __TEXT("text/plain")
  224 #define CFSTR_MIME_RICHTEXT __TEXT("text/richtext")
  225 #define CFSTR_MIME_MANIFEST __TEXT("text/cache-manifest")
  226 #define CFSTR_MIME_WEBVTT __TEXT("text/vtt")
  227 #define CFSTR_MIME_X_BITMAP __TEXT("image/x-xbitmap")
  228 #define CFSTR_MIME_POSTSCRIPT __TEXT("application/postscript")
  229 #define CFSTR_MIME_AIFF __TEXT("audio/aiff")
  230 #define CFSTR_MIME_BASICAUDIO __TEXT("audio/basic")
  231 #define CFSTR_MIME_WAV __TEXT("audio/wav")
  232 #define CFSTR_MIME_X_WAV __TEXT("audio/x-wav")
  233 #define CFSTR_MIME_GIF __TEXT("image/gif")
  234 #define CFSTR_MIME_PJPEG __TEXT("image/pjpeg")
  235 #define CFSTR_MIME_JPEG __TEXT("image/jpeg")
  236 #define CFSTR_MIME_TIFF __TEXT("image/tiff")
  237 #define CFSTR_MIME_JPEG_XR __TEXT("image/vnd.ms-photo")
  238 #define CFSTR_MIME_PNG __TEXT("image/png")
  239 #define CFSTR_MIME_X_PNG __TEXT("image/x-png")
  240 #define CFSTR_MIME_X_ICON __TEXT("image/x-icon")
  241 #define CFSTR_MIME_SVG_XML __TEXT("image/svg+xml")
  242 #define CFSTR_MIME_BMP __TEXT("image/bmp")
  243 #define CFSTR_MIME_X_EMF __TEXT("image/x-emf")
  244 #define CFSTR_MIME_X_WMF __TEXT("image/x-wmf")
  245 #define CFSTR_MIME_AVI __TEXT("video/avi")
  246 #define CFSTR_MIME_MPEG __TEXT("video/mpeg")
  247 #define CFSTR_MIME_FRACTALS __TEXT("application/fractals")
  248 #define CFSTR_MIME_RAWDATA __TEXT("application/octet-stream")
  249 #define CFSTR_MIME_RAWDATASTRM __TEXT("application/octet-stream")
  250 #define CFSTR_MIME_PDF __TEXT("application/pdf")
  251 #define CFSTR_MIME_HTA __TEXT("application/hta")
  252 #define CFSTR_MIME_APP_XML __TEXT("application/xml")
  253 #define CFSTR_MIME_XHTML __TEXT("application/xhtml+xml")
  254 #define CFSTR_MIME_X_AIFF __TEXT("audio/x-aiff")
  255 #define CFSTR_MIME_X_REALAUDIO __TEXT("audio/x-pn-realaudio")
  256 #define CFSTR_MIME_XBM __TEXT("image/xbm")
  257 #define CFSTR_MIME_QUICKTIME __TEXT("video/quicktime")
  258 #define CFSTR_MIME_X_MSVIDEO __TEXT("video/x-msvideo")
  259 #define CFSTR_MIME_X_SGI_MOVIE __TEXT("video/x-sgi-movie")
  260 #define CFSTR_MIME_HTML __TEXT("text/html")
  261 #define CFSTR_MIME_XML __TEXT("text/xml")
  262 #define CFSTR_MIME_TTML __TEXT("application/ttml+xml")
  263 #define CFSTR_MIME_TTAF __TEXT("application/ttaf+xml")
  264 #define MK_S_ASYNCHRONOUS _HRESULT_TYPEDEF_(&h401E8)
  265 #define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS
  266 #define INET_E_INVALID_URL _HRESULT_TYPEDEF_(&h800C0002)
  267 #define INET_E_NO_SESSION _HRESULT_TYPEDEF_(&h800C0003)
  268 #define INET_E_CANNOT_CONNECT _HRESULT_TYPEDEF_(&h800C0004)
  269 #define INET_E_RESOURCE_NOT_FOUND _HRESULT_TYPEDEF_(&h800C0005)
  270 #define INET_E_OBJECT_NOT_FOUND _HRESULT_TYPEDEF_(&h800C0006)
  271 #define INET_E_DATA_NOT_AVAILABLE _HRESULT_TYPEDEF_(&h800C0007)
  272 #define INET_E_DOWNLOAD_FAILURE _HRESULT_TYPEDEF_(&h800C0008)
  273 #define INET_E_AUTHENTICATION_REQUIRED _HRESULT_TYPEDEF_(&h800C0009)
  274 #define INET_E_NO_VALID_MEDIA _HRESULT_TYPEDEF_(&h800C000A)
  275 #define INET_E_CONNECTION_TIMEOUT _HRESULT_TYPEDEF_(&h800C000B)
  276 #define INET_E_INVALID_REQUEST _HRESULT_TYPEDEF_(&h800C000C)
  277 #define INET_E_UNKNOWN_PROTOCOL _HRESULT_TYPEDEF_(&h800C000D)
  278 #define INET_E_SECURITY_PROBLEM _HRESULT_TYPEDEF_(&h800C000E)
  279 #define INET_E_CANNOT_LOAD_DATA _HRESULT_TYPEDEF_(&h800C000F)
  280 #define INET_E_CANNOT_INSTANTIATE_OBJECT _HRESULT_TYPEDEF_(&h800C0010)
  281 #define INET_E_INVALID_CERTIFICATE _HRESULT_TYPEDEF_(&h800C0019)
  282 #define INET_E_REDIRECT_FAILED _HRESULT_TYPEDEF_(&h800C0014)
  283 #define INET_E_REDIRECT_TO_DIR _HRESULT_TYPEDEF_(&h800C0015)
  284 #define INET_E_CANNOT_LOCK_REQUEST _HRESULT_TYPEDEF_(&h800C0016)
  285 #define INET_E_USE_EXTEND_BINDING _HRESULT_TYPEDEF_(&h800C0017)
  286 #define INET_E_TERMINATED_BIND _HRESULT_TYPEDEF_(&h800C0018)
  287 #define INET_E_RESERVED_1 _HRESULT_TYPEDEF_(&h800C001A)
  288 #define INET_E_BLOCKED_REDIRECT_XSECURITYID _HRESULT_TYPEDEF_(&h800C001B)
  289 #define INET_E_DOMINJECTIONVALIDATION _HRESULT_TYPEDEF_(&h800C001C)
  290 #define INET_E_ERROR_FIRST _HRESULT_TYPEDEF_(&h800C0002)
  291 #define INET_E_CODE_DOWNLOAD_DECLINED _HRESULT_TYPEDEF_(&h800C0100)
  292 #define INET_E_RESULT_DISPATCHED _HRESULT_TYPEDEF_(&h800C0200)
  293 #define INET_E_CANNOT_REPLACE_SFP_FILE _HRESULT_TYPEDEF_(&h800C0300)
  294 
  295 #if _WIN32_WINNT >= &h0600
  296     #define INET_E_CODE_INSTALL_SUPPRESSED _HRESULT_TYPEDEF_(&h800C0400)
  297 #endif
  298 
  299 #define INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY _HRESULT_TYPEDEF_(&h800C0500)
  300 #define INET_E_DOWNLOAD_BLOCKED_BY_INPRIVATE _HRESULT_TYPEDEF_(&h800C0501)
  301 #define INET_E_CODE_INSTALL_BLOCKED_IMMERSIVE _HRESULT_TYPEDEF_(&h800C0502)
  302 #define INET_E_FORBIDFRAMING _HRESULT_TYPEDEF_(&h800C0503)
  303 #define INET_E_CODE_INSTALL_BLOCKED_ARM _HRESULT_TYPEDEF_(&h800C0504)
  304 #define INET_E_BLOCKED_PLUGGABLE_PROTOCOL _HRESULT_TYPEDEF_(&h800C0505)
  305 #define INET_E_ERROR_LAST INET_E_BLOCKED_PLUGGABLE_PROTOCOL
  306 #define _LPPERSISTMONIKER_DEFINED
  307 #define __IPersistMoniker_INTERFACE_DEFINED__
  308 type IPersistMoniker as IPersistMoniker_
  309 type LPPERSISTMONIKER as IPersistMoniker ptr
  310 extern IID_IPersistMoniker as const GUID
  311 
  312 type IPersistMonikerVtbl
  313     QueryInterface as function(byval This as IPersistMoniker ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  314     AddRef as function(byval This as IPersistMoniker ptr) as ULONG
  315     Release as function(byval This as IPersistMoniker ptr) as ULONG
  316     GetClassID as function(byval This as IPersistMoniker ptr, byval pClassID as CLSID ptr) as HRESULT
  317     IsDirty as function(byval This as IPersistMoniker ptr) as HRESULT
  318     Load as function(byval This as IPersistMoniker ptr, byval fFullyAvailable as WINBOOL, byval pimkName as IMoniker ptr, byval pibc as LPBC, byval grfMode as DWORD) as HRESULT
  319     Save as function(byval This as IPersistMoniker ptr, byval pimkName as IMoniker ptr, byval pbc as LPBC, byval fRemember as WINBOOL) as HRESULT
  320     SaveCompleted as function(byval This as IPersistMoniker ptr, byval pimkName as IMoniker ptr, byval pibc as LPBC) as HRESULT
  321     GetCurMoniker as function(byval This as IPersistMoniker ptr, byval ppimkName as IMoniker ptr ptr) as HRESULT
  322 end type
  323 
  324 type IPersistMoniker_
  325     lpVtbl as IPersistMonikerVtbl ptr
  326 end type
  327 
  328 #define IPersistMoniker_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  329 #define IPersistMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
  330 #define IPersistMoniker_Release(This) (This)->lpVtbl->Release(This)
  331 #define IPersistMoniker_GetClassID(This, pClassID) (This)->lpVtbl->GetClassID(This, pClassID)
  332 #define IPersistMoniker_IsDirty(This) (This)->lpVtbl->IsDirty(This)
  333 #define IPersistMoniker_Load(This, fFullyAvailable, pimkName, pibc, grfMode) (This)->lpVtbl->Load(This, fFullyAvailable, pimkName, pibc, grfMode)
  334 #define IPersistMoniker_Save(This, pimkName, pbc, fRemember) (This)->lpVtbl->Save(This, pimkName, pbc, fRemember)
  335 #define IPersistMoniker_SaveCompleted(This, pimkName, pibc) (This)->lpVtbl->SaveCompleted(This, pimkName, pibc)
  336 #define IPersistMoniker_GetCurMoniker(This, ppimkName) (This)->lpVtbl->GetCurMoniker(This, ppimkName)
  337 
  338 declare function IPersistMoniker_GetClassID_Proxy(byval This as IPersistMoniker ptr, byval pClassID as CLSID ptr) as HRESULT
  339 declare sub IPersistMoniker_GetClassID_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  340 declare function IPersistMoniker_IsDirty_Proxy(byval This as IPersistMoniker ptr) as HRESULT
  341 declare sub IPersistMoniker_IsDirty_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  342 declare function IPersistMoniker_Load_Proxy(byval This as IPersistMoniker ptr, byval fFullyAvailable as WINBOOL, byval pimkName as IMoniker ptr, byval pibc as LPBC, byval grfMode as DWORD) as HRESULT
  343 declare sub IPersistMoniker_Load_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  344 declare function IPersistMoniker_Save_Proxy(byval This as IPersistMoniker ptr, byval pimkName as IMoniker ptr, byval pbc as LPBC, byval fRemember as WINBOOL) as HRESULT
  345 declare sub IPersistMoniker_Save_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  346 declare function IPersistMoniker_SaveCompleted_Proxy(byval This as IPersistMoniker ptr, byval pimkName as IMoniker ptr, byval pibc as LPBC) as HRESULT
  347 declare sub IPersistMoniker_SaveCompleted_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  348 declare function IPersistMoniker_GetCurMoniker_Proxy(byval This as IPersistMoniker ptr, byval ppimkName as IMoniker ptr ptr) as HRESULT
  349 declare sub IPersistMoniker_GetCurMoniker_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  350 #define _LPMONIKERPROP_DEFINED
  351 #define __IMonikerProp_INTERFACE_DEFINED__
  352 type IMonikerProp as IMonikerProp_
  353 type LPMONIKERPROP as IMonikerProp ptr
  354 
  355 type __WIDL_urlmon_generated_name_00000002 as long
  356 enum
  357     MIMETYPEPROP = &h0
  358     USE_SRC_URL = &h1
  359     CLASSIDPROP = &h2
  360     TRUSTEDDOWNLOADPROP = &h3
  361     POPUPLEVELPROP = &h4
  362 end enum
  363 
  364 type MONIKERPROPERTY as __WIDL_urlmon_generated_name_00000002
  365 extern IID_IMonikerProp as const GUID
  366 
  367 type IMonikerPropVtbl
  368     QueryInterface as function(byval This as IMonikerProp ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  369     AddRef as function(byval This as IMonikerProp ptr) as ULONG
  370     Release as function(byval This as IMonikerProp ptr) as ULONG
  371     PutProperty as function(byval This as IMonikerProp ptr, byval mkp as MONIKERPROPERTY, byval val as LPCWSTR) as HRESULT
  372 end type
  373 
  374 type IMonikerProp_
  375     lpVtbl as IMonikerPropVtbl ptr
  376 end type
  377 
  378 #define IMonikerProp_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  379 #define IMonikerProp_AddRef(This) (This)->lpVtbl->AddRef(This)
  380 #define IMonikerProp_Release(This) (This)->lpVtbl->Release(This)
  381 #define IMonikerProp_PutProperty(This, mkp, val) (This)->lpVtbl->PutProperty(This, mkp, val)
  382 declare function IMonikerProp_PutProperty_Proxy(byval This as IMonikerProp ptr, byval mkp as MONIKERPROPERTY, byval val as LPCWSTR) as HRESULT
  383 declare sub IMonikerProp_PutProperty_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  384 #define _LPBINDPROTOCOL_DEFINED
  385 #define __IBindProtocol_INTERFACE_DEFINED__
  386 type IBindProtocol as IBindProtocol_
  387 type LPBINDPROTOCOL as IBindProtocol ptr
  388 extern IID_IBindProtocol as const GUID
  389 
  390 type IBindProtocolVtbl
  391     QueryInterface as function(byval This as IBindProtocol ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  392     AddRef as function(byval This as IBindProtocol ptr) as ULONG
  393     Release as function(byval This as IBindProtocol ptr) as ULONG
  394     CreateBinding as function(byval This as IBindProtocol ptr, byval szUrl as LPCWSTR, byval pbc as IBindCtx ptr, byval ppb as IBinding ptr ptr) as HRESULT
  395 end type
  396 
  397 type IBindProtocol_
  398     lpVtbl as IBindProtocolVtbl ptr
  399 end type
  400 
  401 #define IBindProtocol_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  402 #define IBindProtocol_AddRef(This) (This)->lpVtbl->AddRef(This)
  403 #define IBindProtocol_Release(This) (This)->lpVtbl->Release(This)
  404 #define IBindProtocol_CreateBinding(This, szUrl, pbc, ppb) (This)->lpVtbl->CreateBinding(This, szUrl, pbc, ppb)
  405 declare function IBindProtocol_CreateBinding_Proxy(byval This as IBindProtocol ptr, byval szUrl as LPCWSTR, byval pbc as IBindCtx ptr, byval ppb as IBinding ptr ptr) as HRESULT
  406 declare sub IBindProtocol_CreateBinding_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  407 #define _LPBINDING_DEFINED
  408 #define __IBinding_INTERFACE_DEFINED__
  409 type LPBINDING as IBinding ptr
  410 extern IID_IBinding as const GUID
  411 
  412 type IBindingVtbl
  413     QueryInterface as function(byval This as IBinding ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  414     AddRef as function(byval This as IBinding ptr) as ULONG
  415     Release as function(byval This as IBinding ptr) as ULONG
  416     Abort as function(byval This as IBinding ptr) as HRESULT
  417     Suspend as function(byval This as IBinding ptr) as HRESULT
  418     Resume as function(byval This as IBinding ptr) as HRESULT
  419     SetPriority as function(byval This as IBinding ptr, byval nPriority as LONG) as HRESULT
  420     GetPriority as function(byval This as IBinding ptr, byval pnPriority as LONG ptr) as HRESULT
  421     GetBindResult as function(byval This as IBinding ptr, byval pclsidProtocol as CLSID ptr, byval pdwResult as DWORD ptr, byval pszResult as LPOLESTR ptr, byval pdwReserved as DWORD ptr) as HRESULT
  422 end type
  423 
  424 type IBinding_
  425     lpVtbl as IBindingVtbl ptr
  426 end type
  427 
  428 #define IBinding_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  429 #define IBinding_AddRef(This) (This)->lpVtbl->AddRef(This)
  430 #define IBinding_Release(This) (This)->lpVtbl->Release(This)
  431 #define IBinding_Abort(This) (This)->lpVtbl->Abort(This)
  432 #define IBinding_Suspend(This) (This)->lpVtbl->Suspend(This)
  433 #define IBinding_Resume(This) (This)->lpVtbl->Resume(This)
  434 #define IBinding_SetPriority(This, nPriority) (This)->lpVtbl->SetPriority(This, nPriority)
  435 #define IBinding_GetPriority(This, pnPriority) (This)->lpVtbl->GetPriority(This, pnPriority)
  436 #define IBinding_GetBindResult(This, pclsidProtocol, pdwResult, pszResult, pdwReserved) (This)->lpVtbl->GetBindResult(This, pclsidProtocol, pdwResult, pszResult, pdwReserved)
  437 
  438 declare function IBinding_Abort_Proxy(byval This as IBinding ptr) as HRESULT
  439 declare sub IBinding_Abort_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  440 declare function IBinding_Suspend_Proxy(byval This as IBinding ptr) as HRESULT
  441 declare sub IBinding_Suspend_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  442 declare function IBinding_Resume_Proxy(byval This as IBinding ptr) as HRESULT
  443 declare sub IBinding_Resume_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  444 declare function IBinding_SetPriority_Proxy(byval This as IBinding ptr, byval nPriority as LONG) as HRESULT
  445 declare sub IBinding_SetPriority_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  446 declare function IBinding_GetPriority_Proxy(byval This as IBinding ptr, byval pnPriority as LONG ptr) as HRESULT
  447 declare sub IBinding_GetPriority_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  448 declare function IBinding_RemoteGetBindResult_Proxy(byval This as IBinding ptr, byval pclsidProtocol as CLSID ptr, byval pdwResult as DWORD ptr, byval pszResult as LPOLESTR ptr, byval dwReserved as DWORD) as HRESULT
  449 declare sub IBinding_RemoteGetBindResult_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  450 declare function IBinding_GetBindResult_Proxy(byval This as IBinding ptr, byval pclsidProtocol as CLSID ptr, byval pdwResult as DWORD ptr, byval pszResult as LPOLESTR ptr, byval pdwReserved as DWORD ptr) as HRESULT
  451 declare function IBinding_GetBindResult_Stub(byval This as IBinding ptr, byval pclsidProtocol as CLSID ptr, byval pdwResult as DWORD ptr, byval pszResult as LPOLESTR ptr, byval dwReserved as DWORD) as HRESULT
  452 #define _LPBINDSTATUSCALLBACK_DEFINED
  453 #define __IBindStatusCallback_INTERFACE_DEFINED__
  454 type LPBINDSTATUSCALLBACK as IBindStatusCallback ptr
  455 
  456 type __WIDL_urlmon_generated_name_00000003 as long
  457 enum
  458     BINDVERB_GET = &h0
  459     BINDVERB_POST = &h1
  460     BINDVERB_PUT = &h2
  461     BINDVERB_CUSTOM = &h3
  462     BINDVERB_RESERVED1 = &h4
  463 end enum
  464 
  465 type BINDVERB as __WIDL_urlmon_generated_name_00000003
  466 
  467 type __WIDL_urlmon_generated_name_00000004 as long
  468 enum
  469     BINDINFOF_URLENCODESTGMEDDATA = &h1
  470     BINDINFOF_URLENCODEDEXTRAINFO = &h2
  471 end enum
  472 
  473 type BINDINFOF as __WIDL_urlmon_generated_name_00000004
  474 
  475 type __WIDL_urlmon_generated_name_00000005 as long
  476 enum
  477     BINDF_ASYNCHRONOUS = &h1
  478     BINDF_ASYNCSTORAGE = &h2
  479     BINDF_NOPROGRESSIVERENDERING = &h4
  480     BINDF_OFFLINEOPERATION = &h8
  481     BINDF_GETNEWESTVERSION = &h10
  482     BINDF_NOWRITECACHE = &h20
  483     BINDF_NEEDFILE = &h40
  484     BINDF_PULLDATA = &h80
  485     BINDF_IGNORESECURITYPROBLEM = &h100
  486     BINDF_RESYNCHRONIZE = &h200
  487     BINDF_HYPERLINK = &h400
  488     BINDF_NO_UI = &h800
  489     BINDF_SILENTOPERATION = &h1000
  490     BINDF_PRAGMA_NO_CACHE = &h2000
  491     BINDF_GETCLASSOBJECT = &h4000
  492     BINDF_RESERVED_1 = &h8000
  493     BINDF_FREE_THREADED = &h10000
  494     BINDF_DIRECT_READ = &h20000
  495     BINDF_FORMS_SUBMIT = &h40000
  496     BINDF_GETFROMCACHE_IF_NET_FAIL = &h80000
  497     BINDF_FROMURLMON = &h100000
  498     BINDF_FWD_BACK = &h200000
  499     BINDF_PREFERDEFAULTHANDLER = &h400000
  500     BINDF_ENFORCERESTRICTED = &h800000
  501     BINDF_RESERVED_2 = &h80000000
  502     BINDF_RESERVED_3 = &h1000000
  503     BINDF_RESERVED_4 = &h2000000
  504     BINDF_RESERVED_5 = &h4000000
  505     BINDF_RESERVED_6 = &h8000000
  506     BINDF_RESERVED_7 = &h40000000
  507     BINDF_RESERVED_8 = &h20000000
  508 end enum
  509 
  510 const BINDF_NOCOPYDATA = BINDF_PULLDATA
  511 const BINDF_DONTPUTINCACHE = BINDF_NOWRITECACHE
  512 const BINDF_DONTUSECACHE = BINDF_GETNEWESTVERSION
  513 type BINDF as __WIDL_urlmon_generated_name_00000005
  514 
  515 type __WIDL_urlmon_generated_name_00000006 as long
  516 enum
  517     URL_ENCODING_NONE = &h0
  518     URL_ENCODING_ENABLE_UTF8 = &h10000000
  519     URL_ENCODING_DISABLE_UTF8 = &h20000000
  520 end enum
  521 
  522 type URL_ENCODING as __WIDL_urlmon_generated_name_00000006
  523 
  524 type _tagBINDINFO
  525     cbSize as ULONG
  526     szExtraInfo as LPWSTR
  527     stgmedData as STGMEDIUM
  528     grfBindInfoF as DWORD
  529     dwBindVerb as DWORD
  530     szCustomVerb as LPWSTR
  531     cbstgmedData as DWORD
  532     dwOptions as DWORD
  533     dwOptionsFlags as DWORD
  534     dwCodePage as DWORD
  535     securityAttributes as SECURITY_ATTRIBUTES
  536     iid as IID
  537     pUnk as IUnknown ptr
  538     dwReserved as DWORD
  539 end type
  540 
  541 type BINDINFO as _tagBINDINFO
  542 
  543 type _REMSECURITY_ATTRIBUTES
  544     nLength as DWORD
  545     lpSecurityDescriptor as DWORD
  546     bInheritHandle as WINBOOL
  547 end type
  548 
  549 type REMSECURITY_ATTRIBUTES as _REMSECURITY_ATTRIBUTES
  550 type PREMSECURITY_ATTRIBUTES as _REMSECURITY_ATTRIBUTES ptr
  551 type LPREMSECURITY_ATTRIBUTES as _REMSECURITY_ATTRIBUTES ptr
  552 
  553 type _tagRemBINDINFO
  554     cbSize as ULONG
  555     szExtraInfo as LPWSTR
  556     grfBindInfoF as DWORD
  557     dwBindVerb as DWORD
  558     szCustomVerb as LPWSTR
  559     cbstgmedData as DWORD
  560     dwOptions as DWORD
  561     dwOptionsFlags as DWORD
  562     dwCodePage as DWORD
  563     securityAttributes as REMSECURITY_ATTRIBUTES
  564     iid as IID
  565     pUnk as IUnknown ptr
  566     dwReserved as DWORD
  567 end type
  568 
  569 type RemBINDINFO as _tagRemBINDINFO
  570 
  571 type tagRemFORMATETC
  572     cfFormat as DWORD
  573     ptd as DWORD
  574     dwAspect as DWORD
  575     lindex as LONG
  576     tymed as DWORD
  577 end type
  578 
  579 type RemFORMATETC as tagRemFORMATETC
  580 type LPREMFORMATETC as tagRemFORMATETC ptr
  581 
  582 type __WIDL_urlmon_generated_name_00000007 as long
  583 enum
  584     BINDINFO_OPTIONS_WININETFLAG = &h10000
  585     BINDINFO_OPTIONS_ENABLE_UTF8 = &h20000
  586     BINDINFO_OPTIONS_DISABLE_UTF8 = &h40000
  587     BINDINFO_OPTIONS_USE_IE_ENCODING = &h80000
  588     BINDINFO_OPTIONS_BINDTOOBJECT = &h100000
  589     BINDINFO_OPTIONS_SECURITYOPTOUT = &h200000
  590     BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN = &h400000
  591     BINDINFO_OPTIONS_USEBINDSTRINGCREDS = &h800000
  592     BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS = &h1000000
  593     BINDINFO_OPTIONS_IGNORE_SSLERRORS_ONCE = &h2000000
  594     BINDINFO_WPC_DOWNLOADBLOCKED = &h8000000
  595     BINDINFO_WPC_LOGGING_ENABLED = &h10000000
  596     BINDINFO_OPTIONS_ALLOWCONNECTDATA = &h20000000
  597     BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS = &h40000000
  598     BINDINFO_OPTIONS_SHDOCVW_NAVIGATE = clng(&h80000000)
  599 end enum
  600 
  601 type BINDINFO_OPTIONS as __WIDL_urlmon_generated_name_00000007
  602 
  603 type __WIDL_urlmon_generated_name_00000008 as long
  604 enum
  605     BSCF_FIRSTDATANOTIFICATION = &h1
  606     BSCF_INTERMEDIATEDATANOTIFICATION = &h2
  607     BSCF_LASTDATANOTIFICATION = &h4
  608     BSCF_DATAFULLYAVAILABLE = &h8
  609     BSCF_AVAILABLEDATASIZEUNKNOWN = &h10
  610     BSCF_SKIPDRAINDATAFORFILEURLS = &h20
  611     BSCF_64BITLENGTHDOWNLOAD = &h40
  612 end enum
  613 
  614 type BSCF as __WIDL_urlmon_generated_name_00000008
  615 
  616 type tagBINDSTATUS as long
  617 enum
  618     BINDSTATUS_FINDINGRESOURCE = 1
  619     BINDSTATUS_CONNECTING = 2
  620     BINDSTATUS_REDIRECTING = 3
  621     BINDSTATUS_BEGINDOWNLOADDATA = 4
  622     BINDSTATUS_DOWNLOADINGDATA = 5
  623     BINDSTATUS_ENDDOWNLOADDATA = 6
  624     BINDSTATUS_BEGINDOWNLOADCOMPONENTS = 7
  625     BINDSTATUS_INSTALLINGCOMPONENTS = 8
  626     BINDSTATUS_ENDDOWNLOADCOMPONENTS = 9
  627     BINDSTATUS_USINGCACHEDCOPY = 10
  628     BINDSTATUS_SENDINGREQUEST = 11
  629     BINDSTATUS_CLASSIDAVAILABLE = 12
  630     BINDSTATUS_MIMETYPEAVAILABLE = 13
  631     BINDSTATUS_CACHEFILENAMEAVAILABLE = 14
  632     BINDSTATUS_BEGINSYNCOPERATION = 15
  633     BINDSTATUS_ENDSYNCOPERATION = 16
  634     BINDSTATUS_BEGINUPLOADDATA = 17
  635     BINDSTATUS_UPLOADINGDATA = 18
  636     BINDSTATUS_ENDUPLOADDATA = 19
  637     BINDSTATUS_PROTOCOLCLASSID = 20
  638     BINDSTATUS_ENCODING = 21
  639     BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE = 22
  640     BINDSTATUS_CLASSINSTALLLOCATION = 23
  641     BINDSTATUS_DECODING = 24
  642     BINDSTATUS_LOADINGMIMEHANDLER = 25
  643     BINDSTATUS_CONTENTDISPOSITIONATTACH = 26
  644     BINDSTATUS_FILTERREPORTMIMETYPE = 27
  645     BINDSTATUS_CLSIDCANINSTANTIATE = 28
  646     BINDSTATUS_IUNKNOWNAVAILABLE = 29
  647     BINDSTATUS_DIRECTBIND = 30
  648     BINDSTATUS_RAWMIMETYPE = 31
  649     BINDSTATUS_PROXYDETECTING = 32
  650     BINDSTATUS_ACCEPTRANGES = 33
  651     BINDSTATUS_COOKIE_SENT = 34
  652     BINDSTATUS_COMPACT_POLICY_RECEIVED = 35
  653     BINDSTATUS_COOKIE_SUPPRESSED = 36
  654     BINDSTATUS_COOKIE_STATE_UNKNOWN = 37
  655     BINDSTATUS_COOKIE_STATE_ACCEPT = 38
  656     BINDSTATUS_COOKIE_STATE_REJECT = 39
  657     BINDSTATUS_COOKIE_STATE_PROMPT = 40
  658     BINDSTATUS_COOKIE_STATE_LEASH = 41
  659     BINDSTATUS_COOKIE_STATE_DOWNGRADE = 42
  660     BINDSTATUS_POLICY_HREF = 43
  661     BINDSTATUS_P3P_HEADER = 44
  662     BINDSTATUS_SESSION_COOKIE_RECEIVED = 45
  663     BINDSTATUS_PERSISTENT_COOKIE_RECEIVED = 46
  664     BINDSTATUS_SESSION_COOKIES_ALLOWED = 47
  665     BINDSTATUS_CACHECONTROL = 48
  666     BINDSTATUS_CONTENTDISPOSITIONFILENAME = 49
  667     BINDSTATUS_MIMETEXTPLAINMISMATCH = 50
  668     BINDSTATUS_PUBLISHERAVAILABLE = 51
  669     BINDSTATUS_DISPLAYNAMEAVAILABLE = 52
  670     BINDSTATUS_SSLUX_NAVBLOCKED = 53
  671     BINDSTATUS_SERVER_MIMETYPEAVAILABLE = 54
  672     BINDSTATUS_SNIFFED_CLASSIDAVAILABLE = 55
  673     BINDSTATUS_64BIT_PROGRESS = 56
  674     BINDSTATUS_LAST = BINDSTATUS_64BIT_PROGRESS
  675     BINDSTATUS_RESERVED_0 = 57
  676     BINDSTATUS_RESERVED_1 = 58
  677     BINDSTATUS_RESERVED_2 = 59
  678     BINDSTATUS_RESERVED_3 = 60
  679     BINDSTATUS_RESERVED_4 = 61
  680     BINDSTATUS_RESERVED_5 = 62
  681     BINDSTATUS_RESERVED_6 = 63
  682     BINDSTATUS_RESERVED_7 = 64
  683     BINDSTATUS_RESERVED_8 = 65
  684     BINDSTATUS_RESERVED_9 = 66
  685     BINDSTATUS_LAST_PRIVATE = BINDSTATUS_RESERVED_9
  686 end enum
  687 
  688 type BINDSTATUS as tagBINDSTATUS
  689 extern IID_IBindStatusCallback as const GUID
  690 
  691 type IBindStatusCallbackVtbl
  692     QueryInterface as function(byval This as IBindStatusCallback ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  693     AddRef as function(byval This as IBindStatusCallback ptr) as ULONG
  694     Release as function(byval This as IBindStatusCallback ptr) as ULONG
  695     OnStartBinding as function(byval This as IBindStatusCallback ptr, byval dwReserved as DWORD, byval pib as IBinding ptr) as HRESULT
  696     GetPriority as function(byval This as IBindStatusCallback ptr, byval pnPriority as LONG ptr) as HRESULT
  697     OnLowResource as function(byval This as IBindStatusCallback ptr, byval reserved as DWORD) as HRESULT
  698     OnProgress as function(byval This as IBindStatusCallback ptr, byval ulProgress as ULONG, byval ulProgressMax as ULONG, byval ulStatusCode as ULONG, byval szStatusText as LPCWSTR) as HRESULT
  699     OnStopBinding as function(byval This as IBindStatusCallback ptr, byval hresult as HRESULT, byval szError as LPCWSTR) as HRESULT
  700     GetBindInfo as function(byval This as IBindStatusCallback ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as BINDINFO ptr) as HRESULT
  701     OnDataAvailable as function(byval This as IBindStatusCallback ptr, byval grfBSCF as DWORD, byval dwSize as DWORD, byval pformatetc as FORMATETC ptr, byval pstgmed as STGMEDIUM ptr) as HRESULT
  702     OnObjectAvailable as function(byval This as IBindStatusCallback ptr, byval riid as const IID const ptr, byval punk as IUnknown ptr) as HRESULT
  703 end type
  704 
  705 type IBindStatusCallback_
  706     lpVtbl as IBindStatusCallbackVtbl ptr
  707 end type
  708 
  709 #define IBindStatusCallback_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  710 #define IBindStatusCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
  711 #define IBindStatusCallback_Release(This) (This)->lpVtbl->Release(This)
  712 #define IBindStatusCallback_OnStartBinding(This, dwReserved, pib) (This)->lpVtbl->OnStartBinding(This, dwReserved, pib)
  713 #define IBindStatusCallback_GetPriority(This, pnPriority) (This)->lpVtbl->GetPriority(This, pnPriority)
  714 #define IBindStatusCallback_OnLowResource(This, reserved) (This)->lpVtbl->OnLowResource(This, reserved)
  715 #define IBindStatusCallback_OnProgress(This, ulProgress, ulProgressMax, ulStatusCode, szStatusText) (This)->lpVtbl->OnProgress(This, ulProgress, ulProgressMax, ulStatusCode, szStatusText)
  716 #define IBindStatusCallback_OnStopBinding(This, hresult, szError) (This)->lpVtbl->OnStopBinding(This, hresult, szError)
  717 #define IBindStatusCallback_GetBindInfo(This, grfBINDF, pbindinfo) (This)->lpVtbl->GetBindInfo(This, grfBINDF, pbindinfo)
  718 #define IBindStatusCallback_OnDataAvailable(This, grfBSCF, dwSize, pformatetc, pstgmed) (This)->lpVtbl->OnDataAvailable(This, grfBSCF, dwSize, pformatetc, pstgmed)
  719 #define IBindStatusCallback_OnObjectAvailable(This, riid, punk) (This)->lpVtbl->OnObjectAvailable(This, riid, punk)
  720 
  721 declare function IBindStatusCallback_OnStartBinding_Proxy(byval This as IBindStatusCallback ptr, byval dwReserved as DWORD, byval pib as IBinding ptr) as HRESULT
  722 declare sub IBindStatusCallback_OnStartBinding_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  723 declare function IBindStatusCallback_GetPriority_Proxy(byval This as IBindStatusCallback ptr, byval pnPriority as LONG ptr) as HRESULT
  724 declare sub IBindStatusCallback_GetPriority_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  725 declare function IBindStatusCallback_OnLowResource_Proxy(byval This as IBindStatusCallback ptr, byval reserved as DWORD) as HRESULT
  726 declare sub IBindStatusCallback_OnLowResource_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  727 declare function IBindStatusCallback_OnProgress_Proxy(byval This as IBindStatusCallback ptr, byval ulProgress as ULONG, byval ulProgressMax as ULONG, byval ulStatusCode as ULONG, byval szStatusText as LPCWSTR) as HRESULT
  728 declare sub IBindStatusCallback_OnProgress_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  729 declare function IBindStatusCallback_OnStopBinding_Proxy(byval This as IBindStatusCallback ptr, byval hresult as HRESULT, byval szError as LPCWSTR) as HRESULT
  730 declare sub IBindStatusCallback_OnStopBinding_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  731 declare function IBindStatusCallback_RemoteGetBindInfo_Proxy(byval This as IBindStatusCallback ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as RemBINDINFO ptr, byval pstgmed as RemSTGMEDIUM ptr) as HRESULT
  732 declare sub IBindStatusCallback_RemoteGetBindInfo_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  733 declare function IBindStatusCallback_RemoteOnDataAvailable_Proxy(byval This as IBindStatusCallback ptr, byval grfBSCF as DWORD, byval dwSize as DWORD, byval pformatetc as RemFORMATETC ptr, byval pstgmed as RemSTGMEDIUM ptr) as HRESULT
  734 declare sub IBindStatusCallback_RemoteOnDataAvailable_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  735 declare function IBindStatusCallback_OnObjectAvailable_Proxy(byval This as IBindStatusCallback ptr, byval riid as const IID const ptr, byval punk as IUnknown ptr) as HRESULT
  736 declare sub IBindStatusCallback_OnObjectAvailable_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  737 declare function IBindStatusCallback_GetBindInfo_Proxy(byval This as IBindStatusCallback ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as BINDINFO ptr) as HRESULT
  738 declare function IBindStatusCallback_GetBindInfo_Stub(byval This as IBindStatusCallback ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as RemBINDINFO ptr, byval pstgmed as RemSTGMEDIUM ptr) as HRESULT
  739 declare function IBindStatusCallback_OnDataAvailable_Proxy(byval This as IBindStatusCallback ptr, byval grfBSCF as DWORD, byval dwSize as DWORD, byval pformatetc as FORMATETC ptr, byval pstgmed as STGMEDIUM ptr) as HRESULT
  740 declare function IBindStatusCallback_OnDataAvailable_Stub(byval This as IBindStatusCallback ptr, byval grfBSCF as DWORD, byval dwSize as DWORD, byval pformatetc as RemFORMATETC ptr, byval pstgmed as RemSTGMEDIUM ptr) as HRESULT
  741 #define _LPBINDSTATUSCALLBACKEX_DEFINED
  742 #define __IBindStatusCallbackEx_INTERFACE_DEFINED__
  743 type IBindStatusCallbackEx as IBindStatusCallbackEx_
  744 type LPBINDSTATUSCALLBACKEX as IBindStatusCallbackEx ptr
  745 
  746 type __WIDL_urlmon_generated_name_00000009 as long
  747 enum
  748     BINDF2_DISABLEBASICOVERHTTP = &h1
  749     BINDF2_DISABLEAUTOCOOKIEHANDLING = &h2
  750     BINDF2_READ_DATA_GREATER_THAN_4GB = &h4
  751     BINDF2_DISABLE_HTTP_REDIRECT_XSECURITYID = &h8
  752     BINDF2_SETDOWNLOADMODE = &h20
  753     BINDF2_DISABLE_HTTP_REDIRECT_CACHING = &h40
  754     BINDF2_KEEP_CALLBACK_MODULE_LOADED = &h80
  755     BINDF2_ALLOW_PROXY_CRED_PROMPT = &h100
  756     BINDF2_RESERVED_F = &h20000
  757     BINDF2_RESERVED_E = &h40000
  758     BINDF2_RESERVED_D = &h80000
  759     BINDF2_RESERVED_C = &h100000
  760     BINDF2_RESERVED_B = &h200000
  761     BINDF2_RESERVED_A = &h400000
  762     BINDF2_RESERVED_9 = &h800000
  763     BINDF2_RESERVED_8 = &h1000000
  764     BINDF2_RESERVED_7 = &h2000000
  765     BINDF2_RESERVED_6 = &h4000000
  766     BINDF2_RESERVED_5 = &h8000000
  767     BINDF2_RESERVED_4 = &h10000000
  768     BINDF2_RESERVED_3 = &h20000000
  769     BINDF2_RESERVED_2 = &h40000000
  770     BINDF2_RESERVED_1 = &h80000000
  771 end enum
  772 
  773 type BINDF2 as __WIDL_urlmon_generated_name_00000009
  774 extern IID_IBindStatusCallbackEx as const GUID
  775 
  776 type IBindStatusCallbackExVtbl
  777     QueryInterface as function(byval This as IBindStatusCallbackEx ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  778     AddRef as function(byval This as IBindStatusCallbackEx ptr) as ULONG
  779     Release as function(byval This as IBindStatusCallbackEx ptr) as ULONG
  780     OnStartBinding as function(byval This as IBindStatusCallbackEx ptr, byval dwReserved as DWORD, byval pib as IBinding ptr) as HRESULT
  781     GetPriority as function(byval This as IBindStatusCallbackEx ptr, byval pnPriority as LONG ptr) as HRESULT
  782     OnLowResource as function(byval This as IBindStatusCallbackEx ptr, byval reserved as DWORD) as HRESULT
  783     OnProgress as function(byval This as IBindStatusCallbackEx ptr, byval ulProgress as ULONG, byval ulProgressMax as ULONG, byval ulStatusCode as ULONG, byval szStatusText as LPCWSTR) as HRESULT
  784     OnStopBinding as function(byval This as IBindStatusCallbackEx ptr, byval hresult as HRESULT, byval szError as LPCWSTR) as HRESULT
  785     GetBindInfo as function(byval This as IBindStatusCallbackEx ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as BINDINFO ptr) as HRESULT
  786     OnDataAvailable as function(byval This as IBindStatusCallbackEx ptr, byval grfBSCF as DWORD, byval dwSize as DWORD, byval pformatetc as FORMATETC ptr, byval pstgmed as STGMEDIUM ptr) as HRESULT
  787     OnObjectAvailable as function(byval This as IBindStatusCallbackEx ptr, byval riid as const IID const ptr, byval punk as IUnknown ptr) as HRESULT
  788     GetBindInfoEx as function(byval This as IBindStatusCallbackEx ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as BINDINFO ptr, byval grfBINDF2 as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
  789 end type
  790 
  791 type IBindStatusCallbackEx_
  792     lpVtbl as IBindStatusCallbackExVtbl ptr
  793 end type
  794 
  795 #define IBindStatusCallbackEx_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  796 #define IBindStatusCallbackEx_AddRef(This) (This)->lpVtbl->AddRef(This)
  797 #define IBindStatusCallbackEx_Release(This) (This)->lpVtbl->Release(This)
  798 #define IBindStatusCallbackEx_OnStartBinding(This, dwReserved, pib) (This)->lpVtbl->OnStartBinding(This, dwReserved, pib)
  799 #define IBindStatusCallbackEx_GetPriority(This, pnPriority) (This)->lpVtbl->GetPriority(This, pnPriority)
  800 #define IBindStatusCallbackEx_OnLowResource(This, reserved) (This)->lpVtbl->OnLowResource(This, reserved)
  801 #define IBindStatusCallbackEx_OnProgress(This, ulProgress, ulProgressMax, ulStatusCode, szStatusText) (This)->lpVtbl->OnProgress(This, ulProgress, ulProgressMax, ulStatusCode, szStatusText)
  802 #define IBindStatusCallbackEx_OnStopBinding(This, hresult, szError) (This)->lpVtbl->OnStopBinding(This, hresult, szError)
  803 #define IBindStatusCallbackEx_GetBindInfo(This, grfBINDF, pbindinfo) (This)->lpVtbl->GetBindInfo(This, grfBINDF, pbindinfo)
  804 #define IBindStatusCallbackEx_OnDataAvailable(This, grfBSCF, dwSize, pformatetc, pstgmed) (This)->lpVtbl->OnDataAvailable(This, grfBSCF, dwSize, pformatetc, pstgmed)
  805 #define IBindStatusCallbackEx_OnObjectAvailable(This, riid, punk) (This)->lpVtbl->OnObjectAvailable(This, riid, punk)
  806 #define IBindStatusCallbackEx_GetBindInfoEx(This, grfBINDF, pbindinfo, grfBINDF2, pdwReserved) (This)->lpVtbl->GetBindInfoEx(This, grfBINDF, pbindinfo, grfBINDF2, pdwReserved)
  807 
  808 declare function IBindStatusCallbackEx_RemoteGetBindInfoEx_Proxy(byval This as IBindStatusCallbackEx ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as RemBINDINFO ptr, byval pstgmed as RemSTGMEDIUM ptr, byval grfBINDF2 as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
  809 declare sub IBindStatusCallbackEx_RemoteGetBindInfoEx_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  810 declare function IBindStatusCallbackEx_GetBindInfoEx_Proxy(byval This as IBindStatusCallbackEx ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as BINDINFO ptr, byval grfBINDF2 as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
  811 declare function IBindStatusCallbackEx_GetBindInfoEx_Stub(byval This as IBindStatusCallbackEx ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as RemBINDINFO ptr, byval pstgmed as RemSTGMEDIUM ptr, byval grfBINDF2 as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
  812 #define _LPAUTHENTICATION_DEFINED
  813 #define __IAuthenticate_INTERFACE_DEFINED__
  814 type IAuthenticate as IAuthenticate_
  815 type LPAUTHENTICATION as IAuthenticate ptr
  816 extern IID_IAuthenticate as const GUID
  817 
  818 type IAuthenticateVtbl
  819     QueryInterface as function(byval This as IAuthenticate ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  820     AddRef as function(byval This as IAuthenticate ptr) as ULONG
  821     Release as function(byval This as IAuthenticate ptr) as ULONG
  822     Authenticate as function(byval This as IAuthenticate ptr, byval phwnd as HWND ptr, byval pszUsername as LPWSTR ptr, byval pszPassword as LPWSTR ptr) as HRESULT
  823 end type
  824 
  825 type IAuthenticate_
  826     lpVtbl as IAuthenticateVtbl ptr
  827 end type
  828 
  829 #define IAuthenticate_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  830 #define IAuthenticate_AddRef(This) (This)->lpVtbl->AddRef(This)
  831 #define IAuthenticate_Release(This) (This)->lpVtbl->Release(This)
  832 #define IAuthenticate_Authenticate(This, phwnd, pszUsername, pszPassword) (This)->lpVtbl->Authenticate(This, phwnd, pszUsername, pszPassword)
  833 declare function IAuthenticate_Authenticate_Proxy(byval This as IAuthenticate ptr, byval phwnd as HWND ptr, byval pszUsername as LPWSTR ptr, byval pszPassword as LPWSTR ptr) as HRESULT
  834 declare sub IAuthenticate_Authenticate_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  835 #define _LPAUTHENTICATIONEX_DEFINED
  836 #define __IAuthenticateEx_INTERFACE_DEFINED__
  837 type IAuthenticateEx as IAuthenticateEx_
  838 type LPAUTHENTICATIONEX as IAuthenticateEx ptr
  839 
  840 type __WIDL_urlmon_generated_name_0000000A as long
  841 enum
  842     AUTHENTICATEF_PROXY = &h1
  843     AUTHENTICATEF_BASIC = &h2
  844     AUTHENTICATEF_HTTP = &h4
  845 end enum
  846 
  847 type AUTHENTICATEF as __WIDL_urlmon_generated_name_0000000A
  848 
  849 type _tagAUTHENTICATEINFO
  850     dwFlags as DWORD
  851     dwReserved as DWORD
  852 end type
  853 
  854 type AUTHENTICATEINFO as _tagAUTHENTICATEINFO
  855 extern IID_IAuthenticateEx as const GUID
  856 
  857 type IAuthenticateExVtbl
  858     QueryInterface as function(byval This as IAuthenticateEx ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  859     AddRef as function(byval This as IAuthenticateEx ptr) as ULONG
  860     Release as function(byval This as IAuthenticateEx ptr) as ULONG
  861     Authenticate as function(byval This as IAuthenticateEx ptr, byval phwnd as HWND ptr, byval pszUsername as LPWSTR ptr, byval pszPassword as LPWSTR ptr) as HRESULT
  862     AuthenticateEx as function(byval This as IAuthenticateEx ptr, byval phwnd as HWND ptr, byval pszUsername as LPWSTR ptr, byval pszPassword as LPWSTR ptr, byval pauthinfo as AUTHENTICATEINFO ptr) as HRESULT
  863 end type
  864 
  865 type IAuthenticateEx_
  866     lpVtbl as IAuthenticateExVtbl ptr
  867 end type
  868 
  869 #define IAuthenticateEx_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  870 #define IAuthenticateEx_AddRef(This) (This)->lpVtbl->AddRef(This)
  871 #define IAuthenticateEx_Release(This) (This)->lpVtbl->Release(This)
  872 #define IAuthenticateEx_Authenticate(This, phwnd, pszUsername, pszPassword) (This)->lpVtbl->Authenticate(This, phwnd, pszUsername, pszPassword)
  873 #define IAuthenticateEx_AuthenticateEx(This, phwnd, pszUsername, pszPassword, pauthinfo) (This)->lpVtbl->AuthenticateEx(This, phwnd, pszUsername, pszPassword, pauthinfo)
  874 declare function IAuthenticateEx_AuthenticateEx_Proxy(byval This as IAuthenticateEx ptr, byval phwnd as HWND ptr, byval pszUsername as LPWSTR ptr, byval pszPassword as LPWSTR ptr, byval pauthinfo as AUTHENTICATEINFO ptr) as HRESULT
  875 declare sub IAuthenticateEx_AuthenticateEx_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  876 #define _LPHTTPNEGOTIATE_DEFINED
  877 #define __IHttpNegotiate_INTERFACE_DEFINED__
  878 type IHttpNegotiate as IHttpNegotiate_
  879 type LPHTTPNEGOTIATE as IHttpNegotiate ptr
  880 extern IID_IHttpNegotiate as const GUID
  881 
  882 type IHttpNegotiateVtbl
  883     QueryInterface as function(byval This as IHttpNegotiate ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  884     AddRef as function(byval This as IHttpNegotiate ptr) as ULONG
  885     Release as function(byval This as IHttpNegotiate ptr) as ULONG
  886     BeginningTransaction as function(byval This as IHttpNegotiate ptr, byval szURL as LPCWSTR, byval szHeaders as LPCWSTR, byval dwReserved as DWORD, byval pszAdditionalHeaders as LPWSTR ptr) as HRESULT
  887     OnResponse as function(byval This as IHttpNegotiate ptr, byval dwResponseCode as DWORD, byval szResponseHeaders as LPCWSTR, byval szRequestHeaders as LPCWSTR, byval pszAdditionalRequestHeaders as LPWSTR ptr) as HRESULT
  888 end type
  889 
  890 type IHttpNegotiate_
  891     lpVtbl as IHttpNegotiateVtbl ptr
  892 end type
  893 
  894 #define IHttpNegotiate_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  895 #define IHttpNegotiate_AddRef(This) (This)->lpVtbl->AddRef(This)
  896 #define IHttpNegotiate_Release(This) (This)->lpVtbl->Release(This)
  897 #define IHttpNegotiate_BeginningTransaction(This, szURL, szHeaders, dwReserved, pszAdditionalHeaders) (This)->lpVtbl->BeginningTransaction(This, szURL, szHeaders, dwReserved, pszAdditionalHeaders)
  898 #define IHttpNegotiate_OnResponse(This, dwResponseCode, szResponseHeaders, szRequestHeaders, pszAdditionalRequestHeaders) (This)->lpVtbl->OnResponse(This, dwResponseCode, szResponseHeaders, szRequestHeaders, pszAdditionalRequestHeaders)
  899 
  900 declare function IHttpNegotiate_BeginningTransaction_Proxy(byval This as IHttpNegotiate ptr, byval szURL as LPCWSTR, byval szHeaders as LPCWSTR, byval dwReserved as DWORD, byval pszAdditionalHeaders as LPWSTR ptr) as HRESULT
  901 declare sub IHttpNegotiate_BeginningTransaction_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  902 declare function IHttpNegotiate_OnResponse_Proxy(byval This as IHttpNegotiate ptr, byval dwResponseCode as DWORD, byval szResponseHeaders as LPCWSTR, byval szRequestHeaders as LPCWSTR, byval pszAdditionalRequestHeaders as LPWSTR ptr) as HRESULT
  903 declare sub IHttpNegotiate_OnResponse_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  904 #define _LPHTTPNEGOTIATE2_DEFINED
  905 #define __IHttpNegotiate2_INTERFACE_DEFINED__
  906 type IHttpNegotiate2 as IHttpNegotiate2_
  907 type LPHTTPNEGOTIATE2 as IHttpNegotiate2 ptr
  908 extern IID_IHttpNegotiate2 as const GUID
  909 
  910 type IHttpNegotiate2Vtbl
  911     QueryInterface as function(byval This as IHttpNegotiate2 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  912     AddRef as function(byval This as IHttpNegotiate2 ptr) as ULONG
  913     Release as function(byval This as IHttpNegotiate2 ptr) as ULONG
  914     BeginningTransaction as function(byval This as IHttpNegotiate2 ptr, byval szURL as LPCWSTR, byval szHeaders as LPCWSTR, byval dwReserved as DWORD, byval pszAdditionalHeaders as LPWSTR ptr) as HRESULT
  915     OnResponse as function(byval This as IHttpNegotiate2 ptr, byval dwResponseCode as DWORD, byval szResponseHeaders as LPCWSTR, byval szRequestHeaders as LPCWSTR, byval pszAdditionalRequestHeaders as LPWSTR ptr) as HRESULT
  916     GetRootSecurityId as function(byval This as IHttpNegotiate2 ptr, byval pbSecurityId as UBYTE ptr, byval pcbSecurityId as DWORD ptr, byval dwReserved as DWORD_PTR) as HRESULT
  917 end type
  918 
  919 type IHttpNegotiate2_
  920     lpVtbl as IHttpNegotiate2Vtbl ptr
  921 end type
  922 
  923 #define IHttpNegotiate2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  924 #define IHttpNegotiate2_AddRef(This) (This)->lpVtbl->AddRef(This)
  925 #define IHttpNegotiate2_Release(This) (This)->lpVtbl->Release(This)
  926 #define IHttpNegotiate2_BeginningTransaction(This, szURL, szHeaders, dwReserved, pszAdditionalHeaders) (This)->lpVtbl->BeginningTransaction(This, szURL, szHeaders, dwReserved, pszAdditionalHeaders)
  927 #define IHttpNegotiate2_OnResponse(This, dwResponseCode, szResponseHeaders, szRequestHeaders, pszAdditionalRequestHeaders) (This)->lpVtbl->OnResponse(This, dwResponseCode, szResponseHeaders, szRequestHeaders, pszAdditionalRequestHeaders)
  928 #define IHttpNegotiate2_GetRootSecurityId(This, pbSecurityId, pcbSecurityId, dwReserved) (This)->lpVtbl->GetRootSecurityId(This, pbSecurityId, pcbSecurityId, dwReserved)
  929 declare function IHttpNegotiate2_GetRootSecurityId_Proxy(byval This as IHttpNegotiate2 ptr, byval pbSecurityId as UBYTE ptr, byval pcbSecurityId as DWORD ptr, byval dwReserved as DWORD_PTR) as HRESULT
  930 declare sub IHttpNegotiate2_GetRootSecurityId_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  931 #define _LPHTTPNEGOTIATE3_DEFINED
  932 #define __IHttpNegotiate3_INTERFACE_DEFINED__
  933 type IHttpNegotiate3 as IHttpNegotiate3_
  934 type LPHTTPNEGOTIATE3 as IHttpNegotiate3 ptr
  935 extern IID_IHttpNegotiate3 as const GUID
  936 
  937 type IHttpNegotiate3Vtbl
  938     QueryInterface as function(byval This as IHttpNegotiate3 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  939     AddRef as function(byval This as IHttpNegotiate3 ptr) as ULONG
  940     Release as function(byval This as IHttpNegotiate3 ptr) as ULONG
  941     BeginningTransaction as function(byval This as IHttpNegotiate3 ptr, byval szURL as LPCWSTR, byval szHeaders as LPCWSTR, byval dwReserved as DWORD, byval pszAdditionalHeaders as LPWSTR ptr) as HRESULT
  942     OnResponse as function(byval This as IHttpNegotiate3 ptr, byval dwResponseCode as DWORD, byval szResponseHeaders as LPCWSTR, byval szRequestHeaders as LPCWSTR, byval pszAdditionalRequestHeaders as LPWSTR ptr) as HRESULT
  943     GetRootSecurityId as function(byval This as IHttpNegotiate3 ptr, byval pbSecurityId as UBYTE ptr, byval pcbSecurityId as DWORD ptr, byval dwReserved as DWORD_PTR) as HRESULT
  944     GetSerializedClientCertContext as function(byval This as IHttpNegotiate3 ptr, byval ppbCert as UBYTE ptr ptr, byval pcbCert as DWORD ptr) as HRESULT
  945 end type
  946 
  947 type IHttpNegotiate3_
  948     lpVtbl as IHttpNegotiate3Vtbl ptr
  949 end type
  950 
  951 #define IHttpNegotiate3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  952 #define IHttpNegotiate3_AddRef(This) (This)->lpVtbl->AddRef(This)
  953 #define IHttpNegotiate3_Release(This) (This)->lpVtbl->Release(This)
  954 #define IHttpNegotiate3_BeginningTransaction(This, szURL, szHeaders, dwReserved, pszAdditionalHeaders) (This)->lpVtbl->BeginningTransaction(This, szURL, szHeaders, dwReserved, pszAdditionalHeaders)
  955 #define IHttpNegotiate3_OnResponse(This, dwResponseCode, szResponseHeaders, szRequestHeaders, pszAdditionalRequestHeaders) (This)->lpVtbl->OnResponse(This, dwResponseCode, szResponseHeaders, szRequestHeaders, pszAdditionalRequestHeaders)
  956 #define IHttpNegotiate3_GetRootSecurityId(This, pbSecurityId, pcbSecurityId, dwReserved) (This)->lpVtbl->GetRootSecurityId(This, pbSecurityId, pcbSecurityId, dwReserved)
  957 #define IHttpNegotiate3_GetSerializedClientCertContext(This, ppbCert, pcbCert) (This)->lpVtbl->GetSerializedClientCertContext(This, ppbCert, pcbCert)
  958 declare function IHttpNegotiate3_GetSerializedClientCertContext_Proxy(byval This as IHttpNegotiate3 ptr, byval ppbCert as UBYTE ptr ptr, byval pcbCert as DWORD ptr) as HRESULT
  959 declare sub IHttpNegotiate3_GetSerializedClientCertContext_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  960 #define _LPWININETFILESTREAM_DEFINED
  961 #define __IWinInetFileStream_INTERFACE_DEFINED__
  962 type IWinInetFileStream as IWinInetFileStream_
  963 type LPWININETFILESTREAM as IWinInetFileStream ptr
  964 extern IID_IWinInetFileStream as const GUID
  965 
  966 type IWinInetFileStreamVtbl
  967     QueryInterface as function(byval This as IWinInetFileStream ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  968     AddRef as function(byval This as IWinInetFileStream ptr) as ULONG
  969     Release as function(byval This as IWinInetFileStream ptr) as ULONG
  970     SetHandleForUnlock as function(byval This as IWinInetFileStream ptr, byval hWinInetLockHandle as DWORD_PTR, byval dwReserved as DWORD_PTR) as HRESULT
  971     SetDeleteFile as function(byval This as IWinInetFileStream ptr, byval dwReserved as DWORD_PTR) as HRESULT
  972 end type
  973 
  974 type IWinInetFileStream_
  975     lpVtbl as IWinInetFileStreamVtbl ptr
  976 end type
  977 
  978 #define IWinInetFileStream_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  979 #define IWinInetFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  980 #define IWinInetFileStream_Release(This) (This)->lpVtbl->Release(This)
  981 #define IWinInetFileStream_SetHandleForUnlock(This, hWinInetLockHandle, dwReserved) (This)->lpVtbl->SetHandleForUnlock(This, hWinInetLockHandle, dwReserved)
  982 #define IWinInetFileStream_SetDeleteFile(This, dwReserved) (This)->lpVtbl->SetDeleteFile(This, dwReserved)
  983 
  984 declare function IWinInetFileStream_SetHandleForUnlock_Proxy(byval This as IWinInetFileStream ptr, byval hWinInetLockHandle as DWORD_PTR, byval dwReserved as DWORD_PTR) as HRESULT
  985 declare sub IWinInetFileStream_SetHandleForUnlock_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  986 declare function IWinInetFileStream_SetDeleteFile_Proxy(byval This as IWinInetFileStream ptr, byval dwReserved as DWORD_PTR) as HRESULT
  987 declare sub IWinInetFileStream_SetDeleteFile_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  988 #define _LPWINDOWFORBINDINGUI_DEFINED
  989 #define __IWindowForBindingUI_INTERFACE_DEFINED__
  990 type IWindowForBindingUI as IWindowForBindingUI_
  991 type LPWINDOWFORBINDINGUI as IWindowForBindingUI ptr
  992 extern IID_IWindowForBindingUI as const GUID
  993 
  994 type IWindowForBindingUIVtbl
  995     QueryInterface as function(byval This as IWindowForBindingUI ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  996     AddRef as function(byval This as IWindowForBindingUI ptr) as ULONG
  997     Release as function(byval This as IWindowForBindingUI ptr) as ULONG
  998     GetWindow as function(byval This as IWindowForBindingUI ptr, byval rguidReason as const GUID const ptr, byval phwnd as HWND ptr) as HRESULT
  999 end type
 1000 
 1001 type IWindowForBindingUI_
 1002     lpVtbl as IWindowForBindingUIVtbl ptr
 1003 end type
 1004 
 1005 #define IWindowForBindingUI_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1006 #define IWindowForBindingUI_AddRef(This) (This)->lpVtbl->AddRef(This)
 1007 #define IWindowForBindingUI_Release(This) (This)->lpVtbl->Release(This)
 1008 #define IWindowForBindingUI_GetWindow(This, rguidReason, phwnd) (This)->lpVtbl->GetWindow(This, rguidReason, phwnd)
 1009 declare function IWindowForBindingUI_GetWindow_Proxy(byval This as IWindowForBindingUI ptr, byval rguidReason as const GUID const ptr, byval phwnd as HWND ptr) as HRESULT
 1010 declare sub IWindowForBindingUI_GetWindow_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1011 #define _LPCODEINSTALL_DEFINED
 1012 #define __ICodeInstall_INTERFACE_DEFINED__
 1013 type ICodeInstall as ICodeInstall_
 1014 type LPCODEINSTALL as ICodeInstall ptr
 1015 
 1016 type __WIDL_urlmon_generated_name_0000000B as long
 1017 enum
 1018     CIP_DISK_FULL = 0
 1019     CIP_ACCESS_DENIED = 1
 1020     CIP_NEWER_VERSION_EXISTS = 2
 1021     CIP_OLDER_VERSION_EXISTS = 3
 1022     CIP_NAME_CONFLICT = 4
 1023     CIP_TRUST_VERIFICATION_COMPONENT_MISSING = 5
 1024     CIP_EXE_SELF_REGISTERATION_TIMEOUT = 6
 1025     CIP_UNSAFE_TO_ABORT = 7
 1026     CIP_NEED_REBOOT = 8
 1027     CIP_NEED_REBOOT_UI_PERMISSION = 9
 1028 end enum
 1029 
 1030 type CIP_STATUS as __WIDL_urlmon_generated_name_0000000B
 1031 extern IID_ICodeInstall as const GUID
 1032 
 1033 type ICodeInstallVtbl
 1034     QueryInterface as function(byval This as ICodeInstall ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1035     AddRef as function(byval This as ICodeInstall ptr) as ULONG
 1036     Release as function(byval This as ICodeInstall ptr) as ULONG
 1037     GetWindow as function(byval This as ICodeInstall ptr, byval rguidReason as const GUID const ptr, byval phwnd as HWND ptr) as HRESULT
 1038     OnCodeInstallProblem as function(byval This as ICodeInstall ptr, byval ulStatusCode as ULONG, byval szDestination as LPCWSTR, byval szSource as LPCWSTR, byval dwReserved as DWORD) as HRESULT
 1039 end type
 1040 
 1041 type ICodeInstall_
 1042     lpVtbl as ICodeInstallVtbl ptr
 1043 end type
 1044 
 1045 #define ICodeInstall_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1046 #define ICodeInstall_AddRef(This) (This)->lpVtbl->AddRef(This)
 1047 #define ICodeInstall_Release(This) (This)->lpVtbl->Release(This)
 1048 #define ICodeInstall_GetWindow(This, rguidReason, phwnd) (This)->lpVtbl->GetWindow(This, rguidReason, phwnd)
 1049 #define ICodeInstall_OnCodeInstallProblem(This, ulStatusCode, szDestination, szSource, dwReserved) (This)->lpVtbl->OnCodeInstallProblem(This, ulStatusCode, szDestination, szSource, dwReserved)
 1050 declare function ICodeInstall_OnCodeInstallProblem_Proxy(byval This as ICodeInstall ptr, byval ulStatusCode as ULONG, byval szDestination as LPCWSTR, byval szSource as LPCWSTR, byval dwReserved as DWORD) as HRESULT
 1051 declare sub ICodeInstall_OnCodeInstallProblem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1052 
 1053 #if _WIN32_WINNT >= &h0600
 1054     #define _LPUri_DEFINED
 1055     #define __IUri_INTERFACE_DEFINED__
 1056 
 1057     type __WIDL_urlmon_generated_name_0000000C as long
 1058     enum
 1059         Uri_PROPERTY_ABSOLUTE_URI = 0
 1060         Uri_PROPERTY_STRING_START = Uri_PROPERTY_ABSOLUTE_URI
 1061         Uri_PROPERTY_AUTHORITY = 1
 1062         Uri_PROPERTY_DISPLAY_URI = 2
 1063         Uri_PROPERTY_DOMAIN = 3
 1064         Uri_PROPERTY_EXTENSION = 4
 1065         Uri_PROPERTY_FRAGMENT = 5
 1066         Uri_PROPERTY_HOST = 6
 1067         Uri_PROPERTY_PASSWORD = 7
 1068         Uri_PROPERTY_PATH = 8
 1069         Uri_PROPERTY_PATH_AND_QUERY = 9
 1070         Uri_PROPERTY_QUERY = 10
 1071         Uri_PROPERTY_RAW_URI = 11
 1072         Uri_PROPERTY_SCHEME_NAME = 12
 1073         Uri_PROPERTY_USER_INFO = 13
 1074         Uri_PROPERTY_USER_NAME = 14
 1075         Uri_PROPERTY_STRING_LAST = Uri_PROPERTY_USER_NAME
 1076         Uri_PROPERTY_HOST_TYPE = 15
 1077         Uri_PROPERTY_DWORD_START = Uri_PROPERTY_HOST_TYPE
 1078         Uri_PROPERTY_PORT = 16
 1079         Uri_PROPERTY_SCHEME = 17
 1080         Uri_PROPERTY_ZONE = 18
 1081         Uri_PROPERTY_DWORD_LAST = Uri_PROPERTY_ZONE
 1082     end enum
 1083 
 1084     type Uri_PROPERTY as __WIDL_urlmon_generated_name_0000000C
 1085 
 1086     type __WIDL_urlmon_generated_name_0000000D as long
 1087     enum
 1088         Uri_HOST_UNKNOWN = 0
 1089         Uri_HOST_DNS = 1
 1090         Uri_HOST_IPV4 = 2
 1091         Uri_HOST_IPV6 = 3
 1092         Uri_HOST_IDN = 4
 1093     end enum
 1094 
 1095     type Uri_HOST_TYPE as __WIDL_urlmon_generated_name_0000000D
 1096     extern IID_IUri as const GUID
 1097 
 1098     type IUriVtbl
 1099         QueryInterface as function(byval This as IUri ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1100         AddRef as function(byval This as IUri ptr) as ULONG
 1101         Release as function(byval This as IUri ptr) as ULONG
 1102         GetPropertyBSTR as function(byval This as IUri ptr, byval uriProp as Uri_PROPERTY, byval pbstrProperty as BSTR ptr, byval dwFlags as DWORD) as HRESULT
 1103         GetPropertyLength as function(byval This as IUri ptr, byval uriProp as Uri_PROPERTY, byval pcchProperty as DWORD ptr, byval dwFlags as DWORD) as HRESULT
 1104         GetPropertyDWORD as function(byval This as IUri ptr, byval uriProp as Uri_PROPERTY, byval pdwProperty as DWORD ptr, byval dwFlags as DWORD) as HRESULT
 1105         HasProperty as function(byval This as IUri ptr, byval uriProp as Uri_PROPERTY, byval pfHasProperty as WINBOOL ptr) as HRESULT
 1106         GetAbsoluteUri as function(byval This as IUri ptr, byval pbstrAbsoluteUri as BSTR ptr) as HRESULT
 1107         GetAuthority as function(byval This as IUri ptr, byval pbstrAuthority as BSTR ptr) as HRESULT
 1108         GetDisplayUri as function(byval This as IUri ptr, byval pbstrDisplayString as BSTR ptr) as HRESULT
 1109         GetDomain as function(byval This as IUri ptr, byval pbstrDomain as BSTR ptr) as HRESULT
 1110         GetExtension as function(byval This as IUri ptr, byval pbstrExtension as BSTR ptr) as HRESULT
 1111         GetFragment as function(byval This as IUri ptr, byval pbstrFragment as BSTR ptr) as HRESULT
 1112         GetHost as function(byval This as IUri ptr, byval pbstrHost as BSTR ptr) as HRESULT
 1113         GetPassword as function(byval This as IUri ptr, byval pbstrPassword as BSTR ptr) as HRESULT
 1114         GetPath as function(byval This as IUri ptr, byval pbstrPath as BSTR ptr) as HRESULT
 1115         GetPathAndQuery as function(byval This as IUri ptr, byval pbstrPathAndQuery as BSTR ptr) as HRESULT
 1116         GetQuery as function(byval This as IUri ptr, byval pbstrQuery as BSTR ptr) as HRESULT
 1117         GetRawUri as function(byval This as IUri ptr, byval pbstrRawUri as BSTR ptr) as HRESULT
 1118         GetSchemeName as function(byval This as IUri ptr, byval pbstrSchemeName as BSTR ptr) as HRESULT
 1119         GetUserInfo as function(byval This as IUri ptr, byval pbstrUserInfo as BSTR ptr) as HRESULT
 1120 
 1121         #if defined(UNICODE) and (_WIN32_WINNT >= &h0600)
 1122             GetUserNameW as function(byval This as IUri ptr, byval pbstrUserName as BSTR ptr) as HRESULT
 1123         #elseif (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600)
 1124             GetUserNameA as function(byval This as IUri ptr, byval pbstrUserName as BSTR ptr) as HRESULT
 1125         #endif
 1126 
 1127         GetHostType as function(byval This as IUri ptr, byval pdwHostType as DWORD ptr) as HRESULT
 1128         GetPort as function(byval This as IUri ptr, byval pdwPort as DWORD ptr) as HRESULT
 1129         GetScheme as function(byval This as IUri ptr, byval pdwScheme as DWORD ptr) as HRESULT
 1130         GetZone as function(byval This as IUri ptr, byval pdwZone as DWORD ptr) as HRESULT
 1131         GetProperties as function(byval This as IUri ptr, byval pdwFlags as LPDWORD) as HRESULT
 1132         IsEqual as function(byval This as IUri ptr, byval pUri as IUri ptr, byval pfEqual as WINBOOL ptr) as HRESULT
 1133     end type
 1134 
 1135     type IUri_
 1136         lpVtbl as IUriVtbl ptr
 1137     end type
 1138 
 1139     #define IUri_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1140     #define IUri_AddRef(This) (This)->lpVtbl->AddRef(This)
 1141     #define IUri_Release(This) (This)->lpVtbl->Release(This)
 1142     #define IUri_GetPropertyBSTR(This, uriProp, pbstrProperty, dwFlags) (This)->lpVtbl->GetPropertyBSTR(This, uriProp, pbstrProperty, dwFlags)
 1143     #define IUri_GetPropertyLength(This, uriProp, pcchProperty, dwFlags) (This)->lpVtbl->GetPropertyLength(This, uriProp, pcchProperty, dwFlags)
 1144     #define IUri_GetPropertyDWORD(This, uriProp, pdwProperty, dwFlags) (This)->lpVtbl->GetPropertyDWORD(This, uriProp, pdwProperty, dwFlags)
 1145     #define IUri_HasProperty(This, uriProp, pfHasProperty) (This)->lpVtbl->HasProperty(This, uriProp, pfHasProperty)
 1146     #define IUri_GetAbsoluteUri(This, pbstrAbsoluteUri) (This)->lpVtbl->GetAbsoluteUri(This, pbstrAbsoluteUri)
 1147     #define IUri_GetAuthority(This, pbstrAuthority) (This)->lpVtbl->GetAuthority(This, pbstrAuthority)
 1148     #define IUri_GetDisplayUri(This, pbstrDisplayString) (This)->lpVtbl->GetDisplayUri(This, pbstrDisplayString)
 1149     #define IUri_GetDomain(This, pbstrDomain) (This)->lpVtbl->GetDomain(This, pbstrDomain)
 1150     #define IUri_GetExtension(This, pbstrExtension) (This)->lpVtbl->GetExtension(This, pbstrExtension)
 1151     #define IUri_GetFragment(This, pbstrFragment) (This)->lpVtbl->GetFragment(This, pbstrFragment)
 1152     #define IUri_GetHost(This, pbstrHost) (This)->lpVtbl->GetHost(This, pbstrHost)
 1153     #define IUri_GetPassword(This, pbstrPassword) (This)->lpVtbl->GetPassword(This, pbstrPassword)
 1154     #define IUri_GetPath(This, pbstrPath) (This)->lpVtbl->GetPath(This, pbstrPath)
 1155     #define IUri_GetPathAndQuery(This, pbstrPathAndQuery) (This)->lpVtbl->GetPathAndQuery(This, pbstrPathAndQuery)
 1156     #define IUri_GetQuery(This, pbstrQuery) (This)->lpVtbl->GetQuery(This, pbstrQuery)
 1157     #define IUri_GetRawUri(This, pbstrRawUri) (This)->lpVtbl->GetRawUri(This, pbstrRawUri)
 1158     #define IUri_GetSchemeName(This, pbstrSchemeName) (This)->lpVtbl->GetSchemeName(This, pbstrSchemeName)
 1159     #define IUri_GetUserInfo(This, pbstrUserInfo) (This)->lpVtbl->GetUserInfo(This, pbstrUserInfo)
 1160     #define IUri_GetUserName(This, pbstrUserName) (This)->lpVtbl->GetUserName(This, pbstrUserName)
 1161     #define IUri_GetHostType(This, pdwHostType) (This)->lpVtbl->GetHostType(This, pdwHostType)
 1162     #define IUri_GetPort(This, pdwPort) (This)->lpVtbl->GetPort(This, pdwPort)
 1163     #define IUri_GetScheme(This, pdwScheme) (This)->lpVtbl->GetScheme(This, pdwScheme)
 1164     #define IUri_GetZone(This, pdwZone) (This)->lpVtbl->GetZone(This, pdwZone)
 1165     #define IUri_GetProperties(This, pdwFlags) (This)->lpVtbl->GetProperties(This, pdwFlags)
 1166     #define IUri_IsEqual(This, pUri, pfEqual) (This)->lpVtbl->IsEqual(This, pUri, pfEqual)
 1167 
 1168     declare function IUri_GetPropertyBSTR_Proxy(byval This as IUri ptr, byval uriProp as Uri_PROPERTY, byval pbstrProperty as BSTR ptr, byval dwFlags as DWORD) as HRESULT
 1169     declare sub IUri_GetPropertyBSTR_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1170     declare function IUri_GetPropertyLength_Proxy(byval This as IUri ptr, byval uriProp as Uri_PROPERTY, byval pcchProperty as DWORD ptr, byval dwFlags as DWORD) as HRESULT
 1171     declare sub IUri_GetPropertyLength_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1172     declare function IUri_GetPropertyDWORD_Proxy(byval This as IUri ptr, byval uriProp as Uri_PROPERTY, byval pdwProperty as DWORD ptr, byval dwFlags as DWORD) as HRESULT
 1173     declare sub IUri_GetPropertyDWORD_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1174     declare function IUri_HasProperty_Proxy(byval This as IUri ptr, byval uriProp as Uri_PROPERTY, byval pfHasProperty as WINBOOL ptr) as HRESULT
 1175     declare sub IUri_HasProperty_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1176     declare function IUri_GetAbsoluteUri_Proxy(byval This as IUri ptr, byval pbstrAbsoluteUri as BSTR ptr) as HRESULT
 1177     declare sub IUri_GetAbsoluteUri_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1178     declare function IUri_GetAuthority_Proxy(byval This as IUri ptr, byval pbstrAuthority as BSTR ptr) as HRESULT
 1179     declare sub IUri_GetAuthority_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1180     declare function IUri_GetDisplayUri_Proxy(byval This as IUri ptr, byval pbstrDisplayString as BSTR ptr) as HRESULT
 1181     declare sub IUri_GetDisplayUri_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1182     declare function IUri_GetDomain_Proxy(byval This as IUri ptr, byval pbstrDomain as BSTR ptr) as HRESULT
 1183     declare sub IUri_GetDomain_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1184     declare function IUri_GetExtension_Proxy(byval This as IUri ptr, byval pbstrExtension as BSTR ptr) as HRESULT
 1185     declare sub IUri_GetExtension_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1186     declare function IUri_GetFragment_Proxy(byval This as IUri ptr, byval pbstrFragment as BSTR ptr) as HRESULT
 1187     declare sub IUri_GetFragment_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1188     declare function IUri_GetHost_Proxy(byval This as IUri ptr, byval pbstrHost as BSTR ptr) as HRESULT
 1189     declare sub IUri_GetHost_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1190     declare function IUri_GetPassword_Proxy(byval This as IUri ptr, byval pbstrPassword as BSTR ptr) as HRESULT
 1191     declare sub IUri_GetPassword_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1192     declare function IUri_GetPath_Proxy(byval This as IUri ptr, byval pbstrPath as BSTR ptr) as HRESULT
 1193     declare sub IUri_GetPath_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1194     declare function IUri_GetPathAndQuery_Proxy(byval This as IUri ptr, byval pbstrPathAndQuery as BSTR ptr) as HRESULT
 1195     declare sub IUri_GetPathAndQuery_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1196     declare function IUri_GetQuery_Proxy(byval This as IUri ptr, byval pbstrQuery as BSTR ptr) as HRESULT
 1197     declare sub IUri_GetQuery_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1198     declare function IUri_GetRawUri_Proxy(byval This as IUri ptr, byval pbstrRawUri as BSTR ptr) as HRESULT
 1199     declare sub IUri_GetRawUri_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1200     declare function IUri_GetSchemeName_Proxy(byval This as IUri ptr, byval pbstrSchemeName as BSTR ptr) as HRESULT
 1201     declare sub IUri_GetSchemeName_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1202     declare function IUri_GetUserInfo_Proxy(byval This as IUri ptr, byval pbstrUserInfo as BSTR ptr) as HRESULT
 1203     declare sub IUri_GetUserInfo_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1204     declare function IUri_GetUserName_Proxy(byval This as IUri ptr, byval pbstrUserName as BSTR ptr) as HRESULT
 1205     declare sub IUri_GetUserName_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1206     declare function IUri_GetHostType_Proxy(byval This as IUri ptr, byval pdwHostType as DWORD ptr) as HRESULT
 1207     declare sub IUri_GetHostType_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1208     declare function IUri_GetPort_Proxy(byval This as IUri ptr, byval pdwPort as DWORD ptr) as HRESULT
 1209     declare sub IUri_GetPort_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1210     declare function IUri_GetScheme_Proxy(byval This as IUri ptr, byval pdwScheme as DWORD ptr) as HRESULT
 1211     declare sub IUri_GetScheme_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1212     declare function IUri_GetZone_Proxy(byval This as IUri ptr, byval pdwZone as DWORD ptr) as HRESULT
 1213     declare sub IUri_GetZone_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1214     declare function IUri_GetProperties_Proxy(byval This as IUri ptr, byval pdwFlags as LPDWORD) as HRESULT
 1215     declare sub IUri_GetProperties_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1216     declare function IUri_IsEqual_Proxy(byval This as IUri ptr, byval pUri as IUri ptr, byval pfEqual as WINBOOL ptr) as HRESULT
 1217     declare sub IUri_IsEqual_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1218     declare function CreateUri(byval pwzURI as LPCWSTR, byval dwFlags as DWORD, byval dwReserved as DWORD_PTR, byval ppURI as IUri ptr ptr) as HRESULT
 1219     declare function CreateUriWithFragment(byval pwzURI as LPCWSTR, byval pwzFragment as LPCWSTR, byval dwFlags as DWORD, byval dwReserved as DWORD_PTR, byval ppURI as IUri ptr ptr) as HRESULT
 1220     declare function CreateUriFromMultiByteString(byval pszANSIInputUri as LPCSTR, byval dwEncodingFlags as DWORD, byval dwCodePage as DWORD, byval dwCreateFlags as DWORD, byval dwReserved as DWORD_PTR, byval ppUri as IUri ptr ptr) as HRESULT
 1221 
 1222     const Uri_HAS_ABSOLUTE_URI = 1 shl Uri_PROPERTY_ABSOLUTE_URI
 1223     const Uri_HAS_AUTHORITY = 1 shl Uri_PROPERTY_AUTHORITY
 1224     const Uri_HAS_DISPLAY_URI = 1 shl Uri_PROPERTY_DISPLAY_URI
 1225     const Uri_HAS_DOMAIN = 1 shl Uri_PROPERTY_DOMAIN
 1226     const Uri_HAS_EXTENSION = 1 shl Uri_PROPERTY_EXTENSION
 1227     const Uri_HAS_FRAGMENT = 1 shl Uri_PROPERTY_FRAGMENT
 1228     const Uri_HAS_HOST = 1 shl Uri_PROPERTY_HOST
 1229     const Uri_HAS_PASSWORD = 1 shl Uri_PROPERTY_PASSWORD
 1230     const Uri_HAS_PATH = 1 shl Uri_PROPERTY_PATH
 1231     const Uri_HAS_QUERY = 1 shl Uri_PROPERTY_QUERY
 1232     const Uri_HAS_RAW_URI = 1 shl Uri_PROPERTY_RAW_URI
 1233     const Uri_HAS_SCHEME_NAME = 1 shl Uri_PROPERTY_SCHEME_NAME
 1234     const Uri_HAS_USER_NAME = 1 shl Uri_PROPERTY_USER_NAME
 1235     const Uri_HAS_PATH_AND_QUERY = 1 shl Uri_PROPERTY_PATH_AND_QUERY
 1236     const Uri_HAS_USER_INFO = 1 shl Uri_PROPERTY_USER_INFO
 1237     const Uri_HAS_HOST_TYPE = 1 shl Uri_PROPERTY_HOST_TYPE
 1238     const Uri_HAS_PORT = 1 shl Uri_PROPERTY_PORT
 1239     const Uri_HAS_SCHEME = 1 shl Uri_PROPERTY_SCHEME
 1240     const Uri_HAS_ZONE = 1 shl Uri_PROPERTY_ZONE
 1241     const Uri_CREATE_ALLOW_RELATIVE = &h1
 1242     const Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME = &h2
 1243     const Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME = &h4
 1244     const Uri_CREATE_NOFRAG = &h8
 1245     const Uri_CREATE_NO_CANONICALIZE = &h10
 1246     const Uri_CREATE_CANONICALIZE = &h100
 1247     const Uri_CREATE_FILE_USE_DOS_PATH = &h20
 1248     const Uri_CREATE_DECODE_EXTRA_INFO = &h40
 1249     const Uri_CREATE_NO_DECODE_EXTRA_INFO = &h80
 1250     const Uri_CREATE_CRACK_UNKNOWN_SCHEMES = &h200
 1251     const Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES = &h400
 1252     const Uri_CREATE_PRE_PROCESS_HTML_URI = &h800
 1253     const Uri_CREATE_NO_PRE_PROCESS_HTML_URI = &h1000
 1254     const Uri_CREATE_IE_SETTINGS = &h2000
 1255     const Uri_CREATE_NO_IE_SETTINGS = &h4000
 1256     const Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS = &h8000
 1257     const Uri_CREATE_NORMALIZE_INTL_CHARACTERS = &h10000
 1258     const Uri_CREATE_CANONICALIZE_ABSOLUTE = &h20000
 1259     const Uri_DISPLAY_NO_FRAGMENT = &h1
 1260     const Uri_PUNYCODE_IDN_HOST = &h2
 1261     const Uri_DISPLAY_IDN_HOST = &h4
 1262     const Uri_DISPLAY_NO_PUNYCODE = &h8
 1263     const Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 = &h1
 1264     const Uri_ENCODING_USER_INFO_AND_PATH_IS_CP = &h2
 1265     const Uri_ENCODING_HOST_IS_IDN = &h4
 1266     const Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 = &h8
 1267     const Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP = &h10
 1268     const Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8 = &h20
 1269     const Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP = &h40
 1270     const Uri_ENCODING_RFC = (Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 or Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8) or Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8
 1271     const UriBuilder_USE_ORIGINAL_FLAGS = &h1
 1272     #define __IUriContainer_INTERFACE_DEFINED__
 1273     extern IID_IUriContainer as const GUID
 1274     type IUriContainer as IUriContainer_
 1275 
 1276     type IUriContainerVtbl
 1277         QueryInterface as function(byval This as IUriContainer ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1278         AddRef as function(byval This as IUriContainer ptr) as ULONG
 1279         Release as function(byval This as IUriContainer ptr) as ULONG
 1280         GetIUri as function(byval This as IUriContainer ptr, byval ppIUri as IUri ptr ptr) as HRESULT
 1281     end type
 1282 
 1283     type IUriContainer_
 1284         lpVtbl as IUriContainerVtbl ptr
 1285     end type
 1286 
 1287     #define IUriContainer_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1288     #define IUriContainer_AddRef(This) (This)->lpVtbl->AddRef(This)
 1289     #define IUriContainer_Release(This) (This)->lpVtbl->Release(This)
 1290     #define IUriContainer_GetIUri(This, ppIUri) (This)->lpVtbl->GetIUri(This, ppIUri)
 1291     declare function IUriContainer_GetIUri_Proxy(byval This as IUriContainer ptr, byval ppIUri as IUri ptr ptr) as HRESULT
 1292     declare sub IUriContainer_GetIUri_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1293     #define __IUriBuilder_INTERFACE_DEFINED__
 1294     extern IID_IUriBuilder as const GUID
 1295     type IUriBuilder as IUriBuilder_
 1296 
 1297     type IUriBuilderVtbl
 1298         QueryInterface as function(byval This as IUriBuilder ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1299         AddRef as function(byval This as IUriBuilder ptr) as ULONG
 1300         Release as function(byval This as IUriBuilder ptr) as ULONG
 1301         CreateUriSimple as function(byval This as IUriBuilder ptr, byval dwAllowEncodingPropertyMask as DWORD, byval dwReserved as DWORD_PTR, byval ppIUri as IUri ptr ptr) as HRESULT
 1302         CreateUri as function(byval This as IUriBuilder ptr, byval dwCreateFlags as DWORD, byval dwAllowEncodingPropertyMask as DWORD, byval dwReserved as DWORD_PTR, byval ppIUri as IUri ptr ptr) as HRESULT
 1303         CreateUriWithFlags as function(byval This as IUriBuilder ptr, byval dwCreateFlags as DWORD, byval dwUriBuilderFlags as DWORD, byval dwAllowEncodingPropertyMask as DWORD, byval dwReserved as DWORD_PTR, byval ppIUri as IUri ptr ptr) as HRESULT
 1304         GetIUri as function(byval This as IUriBuilder ptr, byval ppIUri as IUri ptr ptr) as HRESULT
 1305         SetIUri as function(byval This as IUriBuilder ptr, byval pIUri as IUri ptr) as HRESULT
 1306         GetFragment as function(byval This as IUriBuilder ptr, byval pcchFragment as DWORD ptr, byval ppwzFragment as LPCWSTR ptr) as HRESULT
 1307         GetHost as function(byval This as IUriBuilder ptr, byval pcchHost as DWORD ptr, byval ppwzHost as LPCWSTR ptr) as HRESULT
 1308         GetPassword as function(byval This as IUriBuilder ptr, byval pcchPassword as DWORD ptr, byval ppwzPassword as LPCWSTR ptr) as HRESULT
 1309         GetPath as function(byval This as IUriBuilder ptr, byval pcchPath as DWORD ptr, byval ppwzPath as LPCWSTR ptr) as HRESULT
 1310         GetPort as function(byval This as IUriBuilder ptr, byval pfHasPort as WINBOOL ptr, byval pdwPort as DWORD ptr) as HRESULT
 1311         GetQuery as function(byval This as IUriBuilder ptr, byval pcchQuery as DWORD ptr, byval ppwzQuery as LPCWSTR ptr) as HRESULT
 1312         GetSchemeName as function(byval This as IUriBuilder ptr, byval pcchSchemeName as DWORD ptr, byval ppwzSchemeName as LPCWSTR ptr) as HRESULT
 1313 
 1314         #if defined(UNICODE) and (_WIN32_WINNT >= &h0600)
 1315             GetUserNameW as function(byval This as IUriBuilder ptr, byval pcchUserName as DWORD ptr, byval ppwzUserName as LPCWSTR ptr) as HRESULT
 1316         #elseif (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600)
 1317             GetUserNameA as function(byval This as IUriBuilder ptr, byval pcchUserName as DWORD ptr, byval ppwzUserName as LPCWSTR ptr) as HRESULT
 1318         #endif
 1319 
 1320         SetFragment as function(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1321         SetHost as function(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1322         SetPassword as function(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1323         SetPath as function(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1324         SetPort as function(byval This as IUriBuilder ptr, byval fHasPort as WINBOOL, byval dwNewValue as DWORD) as HRESULT
 1325         SetQuery as function(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1326         SetSchemeName as function(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1327         SetUserName as function(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1328         RemoveProperties as function(byval This as IUriBuilder ptr, byval dwPropertyMask as DWORD) as HRESULT
 1329         HasBeenModified as function(byval This as IUriBuilder ptr, byval pfModified as WINBOOL ptr) as HRESULT
 1330     end type
 1331 
 1332     type IUriBuilder_
 1333         lpVtbl as IUriBuilderVtbl ptr
 1334     end type
 1335 
 1336     #define IUriBuilder_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1337     #define IUriBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
 1338     #define IUriBuilder_Release(This) (This)->lpVtbl->Release(This)
 1339     #define IUriBuilder_CreateUriSimple(This, dwAllowEncodingPropertyMask, dwReserved, ppIUri) (This)->lpVtbl->CreateUriSimple(This, dwAllowEncodingPropertyMask, dwReserved, ppIUri)
 1340     #define IUriBuilder_CreateUri(This, dwCreateFlags, dwAllowEncodingPropertyMask, dwReserved, ppIUri) (This)->lpVtbl->CreateUri(This, dwCreateFlags, dwAllowEncodingPropertyMask, dwReserved, ppIUri)
 1341     #define IUriBuilder_CreateUriWithFlags(This, dwCreateFlags, dwUriBuilderFlags, dwAllowEncodingPropertyMask, dwReserved, ppIUri) (This)->lpVtbl->CreateUriWithFlags(This, dwCreateFlags, dwUriBuilderFlags, dwAllowEncodingPropertyMask, dwReserved, ppIUri)
 1342     #define IUriBuilder_GetIUri(This, ppIUri) (This)->lpVtbl->GetIUri(This, ppIUri)
 1343     #define IUriBuilder_SetIUri(This, pIUri) (This)->lpVtbl->SetIUri(This, pIUri)
 1344     #define IUriBuilder_GetFragment(This, pcchFragment, ppwzFragment) (This)->lpVtbl->GetFragment(This, pcchFragment, ppwzFragment)
 1345     #define IUriBuilder_GetHost(This, pcchHost, ppwzHost) (This)->lpVtbl->GetHost(This, pcchHost, ppwzHost)
 1346     #define IUriBuilder_GetPassword(This, pcchPassword, ppwzPassword) (This)->lpVtbl->GetPassword(This, pcchPassword, ppwzPassword)
 1347     #define IUriBuilder_GetPath(This, pcchPath, ppwzPath) (This)->lpVtbl->GetPath(This, pcchPath, ppwzPath)
 1348     #define IUriBuilder_GetPort(This, pfHasPort, pdwPort) (This)->lpVtbl->GetPort(This, pfHasPort, pdwPort)
 1349     #define IUriBuilder_GetQuery(This, pcchQuery, ppwzQuery) (This)->lpVtbl->GetQuery(This, pcchQuery, ppwzQuery)
 1350     #define IUriBuilder_GetSchemeName(This, pcchSchemeName, ppwzSchemeName) (This)->lpVtbl->GetSchemeName(This, pcchSchemeName, ppwzSchemeName)
 1351     #define IUriBuilder_GetUserName(This, pcchUserName, ppwzUserName) (This)->lpVtbl->GetUserName(This, pcchUserName, ppwzUserName)
 1352     #define IUriBuilder_SetFragment(This, pwzNewValue) (This)->lpVtbl->SetFragment(This, pwzNewValue)
 1353     #define IUriBuilder_SetHost(This, pwzNewValue) (This)->lpVtbl->SetHost(This, pwzNewValue)
 1354     #define IUriBuilder_SetPassword(This, pwzNewValue) (This)->lpVtbl->SetPassword(This, pwzNewValue)
 1355     #define IUriBuilder_SetPath(This, pwzNewValue) (This)->lpVtbl->SetPath(This, pwzNewValue)
 1356     #define IUriBuilder_SetPort(This, fHasPort, dwNewValue) (This)->lpVtbl->SetPort(This, fHasPort, dwNewValue)
 1357     #define IUriBuilder_SetQuery(This, pwzNewValue) (This)->lpVtbl->SetQuery(This, pwzNewValue)
 1358     #define IUriBuilder_SetSchemeName(This, pwzNewValue) (This)->lpVtbl->SetSchemeName(This, pwzNewValue)
 1359     #define IUriBuilder_SetUserName(This, pwzNewValue) (This)->lpVtbl->SetUserName(This, pwzNewValue)
 1360     #define IUriBuilder_RemoveProperties(This, dwPropertyMask) (This)->lpVtbl->RemoveProperties(This, dwPropertyMask)
 1361     #define IUriBuilder_HasBeenModified(This, pfModified) (This)->lpVtbl->HasBeenModified(This, pfModified)
 1362 
 1363     declare function IUriBuilder_CreateUriSimple_Proxy(byval This as IUriBuilder ptr, byval dwAllowEncodingPropertyMask as DWORD, byval dwReserved as DWORD_PTR, byval ppIUri as IUri ptr ptr) as HRESULT
 1364     declare sub IUriBuilder_CreateUriSimple_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1365     declare function IUriBuilder_CreateUri_Proxy(byval This as IUriBuilder ptr, byval dwCreateFlags as DWORD, byval dwAllowEncodingPropertyMask as DWORD, byval dwReserved as DWORD_PTR, byval ppIUri as IUri ptr ptr) as HRESULT
 1366     declare sub IUriBuilder_CreateUri_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1367     declare function IUriBuilder_CreateUriWithFlags_Proxy(byval This as IUriBuilder ptr, byval dwCreateFlags as DWORD, byval dwUriBuilderFlags as DWORD, byval dwAllowEncodingPropertyMask as DWORD, byval dwReserved as DWORD_PTR, byval ppIUri as IUri ptr ptr) as HRESULT
 1368     declare sub IUriBuilder_CreateUriWithFlags_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1369     declare function IUriBuilder_GetIUri_Proxy(byval This as IUriBuilder ptr, byval ppIUri as IUri ptr ptr) as HRESULT
 1370     declare sub IUriBuilder_GetIUri_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1371     declare function IUriBuilder_SetIUri_Proxy(byval This as IUriBuilder ptr, byval pIUri as IUri ptr) as HRESULT
 1372     declare sub IUriBuilder_SetIUri_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1373     declare function IUriBuilder_GetFragment_Proxy(byval This as IUriBuilder ptr, byval pcchFragment as DWORD ptr, byval ppwzFragment as LPCWSTR ptr) as HRESULT
 1374     declare sub IUriBuilder_GetFragment_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1375     declare function IUriBuilder_GetHost_Proxy(byval This as IUriBuilder ptr, byval pcchHost as DWORD ptr, byval ppwzHost as LPCWSTR ptr) as HRESULT
 1376     declare sub IUriBuilder_GetHost_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1377     declare function IUriBuilder_GetPassword_Proxy(byval This as IUriBuilder ptr, byval pcchPassword as DWORD ptr, byval ppwzPassword as LPCWSTR ptr) as HRESULT
 1378     declare sub IUriBuilder_GetPassword_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1379     declare function IUriBuilder_GetPath_Proxy(byval This as IUriBuilder ptr, byval pcchPath as DWORD ptr, byval ppwzPath as LPCWSTR ptr) as HRESULT
 1380     declare sub IUriBuilder_GetPath_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1381     declare function IUriBuilder_GetPort_Proxy(byval This as IUriBuilder ptr, byval pfHasPort as WINBOOL ptr, byval pdwPort as DWORD ptr) as HRESULT
 1382     declare sub IUriBuilder_GetPort_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1383     declare function IUriBuilder_GetQuery_Proxy(byval This as IUriBuilder ptr, byval pcchQuery as DWORD ptr, byval ppwzQuery as LPCWSTR ptr) as HRESULT
 1384     declare sub IUriBuilder_GetQuery_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1385     declare function IUriBuilder_GetSchemeName_Proxy(byval This as IUriBuilder ptr, byval pcchSchemeName as DWORD ptr, byval ppwzSchemeName as LPCWSTR ptr) as HRESULT
 1386     declare sub IUriBuilder_GetSchemeName_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1387     declare function IUriBuilder_GetUserName_Proxy(byval This as IUriBuilder ptr, byval pcchUserName as DWORD ptr, byval ppwzUserName as LPCWSTR ptr) as HRESULT
 1388     declare sub IUriBuilder_GetUserName_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1389     declare function IUriBuilder_SetFragment_Proxy(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1390     declare sub IUriBuilder_SetFragment_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1391     declare function IUriBuilder_SetHost_Proxy(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1392     declare sub IUriBuilder_SetHost_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1393     declare function IUriBuilder_SetPassword_Proxy(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1394     declare sub IUriBuilder_SetPassword_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1395     declare function IUriBuilder_SetPath_Proxy(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1396     declare sub IUriBuilder_SetPath_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1397     declare function IUriBuilder_SetPort_Proxy(byval This as IUriBuilder ptr, byval fHasPort as WINBOOL, byval dwNewValue as DWORD) as HRESULT
 1398     declare sub IUriBuilder_SetPort_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1399     declare function IUriBuilder_SetQuery_Proxy(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1400     declare sub IUriBuilder_SetQuery_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1401     declare function IUriBuilder_SetSchemeName_Proxy(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1402     declare sub IUriBuilder_SetSchemeName_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1403     declare function IUriBuilder_SetUserName_Proxy(byval This as IUriBuilder ptr, byval pwzNewValue as LPCWSTR) as HRESULT
 1404     declare sub IUriBuilder_SetUserName_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1405     declare function IUriBuilder_RemoveProperties_Proxy(byval This as IUriBuilder ptr, byval dwPropertyMask as DWORD) as HRESULT
 1406     declare sub IUriBuilder_RemoveProperties_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1407     declare function IUriBuilder_HasBeenModified_Proxy(byval This as IUriBuilder ptr, byval pfModified as WINBOOL ptr) as HRESULT
 1408     declare sub IUriBuilder_HasBeenModified_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1409     #define __IUriBuilderFactory_INTERFACE_DEFINED__
 1410     extern IID_IUriBuilderFactory as const GUID
 1411     type IUriBuilderFactory as IUriBuilderFactory_
 1412 
 1413     type IUriBuilderFactoryVtbl
 1414         QueryInterface as function(byval This as IUriBuilderFactory ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1415         AddRef as function(byval This as IUriBuilderFactory ptr) as ULONG
 1416         Release as function(byval This as IUriBuilderFactory ptr) as ULONG
 1417         CreateIUriBuilder as function(byval This as IUriBuilderFactory ptr, byval dwFlags as DWORD, byval dwReserved as DWORD_PTR, byval ppIUriBuilder as IUriBuilder ptr ptr) as HRESULT
 1418         CreateInitializedIUriBuilder as function(byval This as IUriBuilderFactory ptr, byval dwFlags as DWORD, byval dwReserved as DWORD_PTR, byval ppIUriBuilder as IUriBuilder ptr ptr) as HRESULT
 1419     end type
 1420 
 1421     type IUriBuilderFactory_
 1422         lpVtbl as IUriBuilderFactoryVtbl ptr
 1423     end type
 1424 
 1425     #define IUriBuilderFactory_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1426     #define IUriBuilderFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
 1427     #define IUriBuilderFactory_Release(This) (This)->lpVtbl->Release(This)
 1428     #define IUriBuilderFactory_CreateIUriBuilder(This, dwFlags, dwReserved, ppIUriBuilder) (This)->lpVtbl->CreateIUriBuilder(This, dwFlags, dwReserved, ppIUriBuilder)
 1429     #define IUriBuilderFactory_CreateInitializedIUriBuilder(This, dwFlags, dwReserved, ppIUriBuilder) (This)->lpVtbl->CreateInitializedIUriBuilder(This, dwFlags, dwReserved, ppIUriBuilder)
 1430 
 1431     declare function IUriBuilderFactory_CreateIUriBuilder_Proxy(byval This as IUriBuilderFactory ptr, byval dwFlags as DWORD, byval dwReserved as DWORD_PTR, byval ppIUriBuilder as IUriBuilder ptr ptr) as HRESULT
 1432     declare sub IUriBuilderFactory_CreateIUriBuilder_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1433     declare function IUriBuilderFactory_CreateInitializedIUriBuilder_Proxy(byval This as IUriBuilderFactory ptr, byval dwFlags as DWORD, byval dwReserved as DWORD_PTR, byval ppIUriBuilder as IUriBuilder ptr ptr) as HRESULT
 1434     declare sub IUriBuilderFactory_CreateInitializedIUriBuilder_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1435     declare function CreateIUriBuilder(byval pIUri as IUri ptr, byval dwFlags as DWORD, byval dwReserved as DWORD_PTR, byval ppIUriBuilder as IUriBuilder ptr ptr) as HRESULT
 1436 #endif
 1437 
 1438 #define _LPWININETINFO_DEFINED
 1439 #define __IWinInetInfo_INTERFACE_DEFINED__
 1440 type IWinInetInfo as IWinInetInfo_
 1441 type LPWININETINFO as IWinInetInfo ptr
 1442 extern IID_IWinInetInfo as const GUID
 1443 
 1444 type IWinInetInfoVtbl
 1445     QueryInterface as function(byval This as IWinInetInfo ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1446     AddRef as function(byval This as IWinInetInfo ptr) as ULONG
 1447     Release as function(byval This as IWinInetInfo ptr) as ULONG
 1448     QueryOption as function(byval This as IWinInetInfo ptr, byval dwOption as DWORD, byval pBuffer as LPVOID, byval pcbBuf as DWORD ptr) as HRESULT
 1449 end type
 1450 
 1451 type IWinInetInfo_
 1452     lpVtbl as IWinInetInfoVtbl ptr
 1453 end type
 1454 
 1455 #define IWinInetInfo_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1456 #define IWinInetInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
 1457 #define IWinInetInfo_Release(This) (This)->lpVtbl->Release(This)
 1458 #define IWinInetInfo_QueryOption(This, dwOption, pBuffer, pcbBuf) (This)->lpVtbl->QueryOption(This, dwOption, pBuffer, pcbBuf)
 1459 
 1460 declare function IWinInetInfo_RemoteQueryOption_Proxy(byval This as IWinInetInfo ptr, byval dwOption as DWORD, byval pBuffer as UBYTE ptr, byval pcbBuf as DWORD ptr) as HRESULT
 1461 declare sub IWinInetInfo_RemoteQueryOption_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1462 declare function IWinInetInfo_QueryOption_Proxy(byval This as IWinInetInfo ptr, byval dwOption as DWORD, byval pBuffer as LPVOID, byval pcbBuf as DWORD ptr) as HRESULT
 1463 declare function IWinInetInfo_QueryOption_Stub(byval This as IWinInetInfo ptr, byval dwOption as DWORD, byval pBuffer as UBYTE ptr, byval pcbBuf as DWORD ptr) as HRESULT
 1464 
 1465 const WININETINFO_OPTION_LOCK_HANDLE = 65534
 1466 #define _LPHTTPSECURITY_DEFINED
 1467 #define __IHttpSecurity_INTERFACE_DEFINED__
 1468 type IHttpSecurity as IHttpSecurity_
 1469 type LPHTTPSECURITY as IHttpSecurity ptr
 1470 extern IID_IHttpSecurity as const GUID
 1471 
 1472 type IHttpSecurityVtbl
 1473     QueryInterface as function(byval This as IHttpSecurity ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1474     AddRef as function(byval This as IHttpSecurity ptr) as ULONG
 1475     Release as function(byval This as IHttpSecurity ptr) as ULONG
 1476     GetWindow as function(byval This as IHttpSecurity ptr, byval rguidReason as const GUID const ptr, byval phwnd as HWND ptr) as HRESULT
 1477     OnSecurityProblem as function(byval This as IHttpSecurity ptr, byval dwProblem as DWORD) as HRESULT
 1478 end type
 1479 
 1480 type IHttpSecurity_
 1481     lpVtbl as IHttpSecurityVtbl ptr
 1482 end type
 1483 
 1484 #define IHttpSecurity_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1485 #define IHttpSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
 1486 #define IHttpSecurity_Release(This) (This)->lpVtbl->Release(This)
 1487 #define IHttpSecurity_GetWindow(This, rguidReason, phwnd) (This)->lpVtbl->GetWindow(This, rguidReason, phwnd)
 1488 #define IHttpSecurity_OnSecurityProblem(This, dwProblem) (This)->lpVtbl->OnSecurityProblem(This, dwProblem)
 1489 declare function IHttpSecurity_OnSecurityProblem_Proxy(byval This as IHttpSecurity ptr, byval dwProblem as DWORD) as HRESULT
 1490 declare sub IHttpSecurity_OnSecurityProblem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1491 #define _LPWININETHTTPINFO_DEFINED
 1492 #define __IWinInetHttpInfo_INTERFACE_DEFINED__
 1493 type IWinInetHttpInfo as IWinInetHttpInfo_
 1494 type LPWININETHTTPINFO as IWinInetHttpInfo ptr
 1495 extern IID_IWinInetHttpInfo as const GUID
 1496 
 1497 type IWinInetHttpInfoVtbl
 1498     QueryInterface as function(byval This as IWinInetHttpInfo ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1499     AddRef as function(byval This as IWinInetHttpInfo ptr) as ULONG
 1500     Release as function(byval This as IWinInetHttpInfo ptr) as ULONG
 1501     QueryOption as function(byval This as IWinInetHttpInfo ptr, byval dwOption as DWORD, byval pBuffer as LPVOID, byval pcbBuf as DWORD ptr) as HRESULT
 1502     QueryInfo as function(byval This as IWinInetHttpInfo ptr, byval dwOption as DWORD, byval pBuffer as LPVOID, byval pcbBuf as DWORD ptr, byval pdwFlags as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
 1503 end type
 1504 
 1505 type IWinInetHttpInfo_
 1506     lpVtbl as IWinInetHttpInfoVtbl ptr
 1507 end type
 1508 
 1509 #define IWinInetHttpInfo_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1510 #define IWinInetHttpInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
 1511 #define IWinInetHttpInfo_Release(This) (This)->lpVtbl->Release(This)
 1512 #define IWinInetHttpInfo_QueryOption(This, dwOption, pBuffer, pcbBuf) (This)->lpVtbl->QueryOption(This, dwOption, pBuffer, pcbBuf)
 1513 #define IWinInetHttpInfo_QueryInfo(This, dwOption, pBuffer, pcbBuf, pdwFlags, pdwReserved) (This)->lpVtbl->QueryInfo(This, dwOption, pBuffer, pcbBuf, pdwFlags, pdwReserved)
 1514 
 1515 declare function IWinInetHttpInfo_RemoteQueryInfo_Proxy(byval This as IWinInetHttpInfo ptr, byval dwOption as DWORD, byval pBuffer as UBYTE ptr, byval pcbBuf as DWORD ptr, byval pdwFlags as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
 1516 declare sub IWinInetHttpInfo_RemoteQueryInfo_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1517 declare function IWinInetHttpInfo_QueryInfo_Proxy(byval This as IWinInetHttpInfo ptr, byval dwOption as DWORD, byval pBuffer as LPVOID, byval pcbBuf as DWORD ptr, byval pdwFlags as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
 1518 declare function IWinInetHttpInfo_QueryInfo_Stub(byval This as IWinInetHttpInfo ptr, byval dwOption as DWORD, byval pBuffer as UBYTE ptr, byval pcbBuf as DWORD ptr, byval pdwFlags as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
 1519 #define _LPWININETHTTPTIMEOUTS_DEFINED
 1520 #define __IWinInetHttpTimeouts_INTERFACE_DEFINED__
 1521 extern IID_IWinInetHttpTimeouts as const GUID
 1522 type IWinInetHttpTimeouts as IWinInetHttpTimeouts_
 1523 
 1524 type IWinInetHttpTimeoutsVtbl
 1525     QueryInterface as function(byval This as IWinInetHttpTimeouts ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1526     AddRef as function(byval This as IWinInetHttpTimeouts ptr) as ULONG
 1527     Release as function(byval This as IWinInetHttpTimeouts ptr) as ULONG
 1528     GetRequestTimeouts as function(byval This as IWinInetHttpTimeouts ptr, byval pdwConnectTimeout as DWORD ptr, byval pdwSendTimeout as DWORD ptr, byval pdwReceiveTimeout as DWORD ptr) as HRESULT
 1529 end type
 1530 
 1531 type IWinInetHttpTimeouts_
 1532     lpVtbl as IWinInetHttpTimeoutsVtbl ptr
 1533 end type
 1534 
 1535 #define IWinInetHttpTimeouts_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1536 #define IWinInetHttpTimeouts_AddRef(This) (This)->lpVtbl->AddRef(This)
 1537 #define IWinInetHttpTimeouts_Release(This) (This)->lpVtbl->Release(This)
 1538 #define IWinInetHttpTimeouts_GetRequestTimeouts(This, pdwConnectTimeout, pdwSendTimeout, pdwReceiveTimeout) (This)->lpVtbl->GetRequestTimeouts(This, pdwConnectTimeout, pdwSendTimeout, pdwReceiveTimeout)
 1539 declare function IWinInetHttpTimeouts_GetRequestTimeouts_Proxy(byval This as IWinInetHttpTimeouts ptr, byval pdwConnectTimeout as DWORD ptr, byval pdwSendTimeout as DWORD ptr, byval pdwReceiveTimeout as DWORD ptr) as HRESULT
 1540 declare sub IWinInetHttpTimeouts_GetRequestTimeouts_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1541 
 1542 #if _WIN32_WINNT >= &h0600
 1543     #define _LPWININETCACHEHINTS_DEFINED
 1544     #define __IWinInetCacheHints_INTERFACE_DEFINED__
 1545     type IWinInetCacheHints as IWinInetCacheHints_
 1546     type LPWININETCACHEHINTS as IWinInetCacheHints ptr
 1547     extern IID_IWinInetCacheHints as const GUID
 1548 
 1549     type IWinInetCacheHintsVtbl
 1550         QueryInterface as function(byval This as IWinInetCacheHints ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1551         AddRef as function(byval This as IWinInetCacheHints ptr) as ULONG
 1552         Release as function(byval This as IWinInetCacheHints ptr) as ULONG
 1553         SetCacheExtension as function(byval This as IWinInetCacheHints ptr, byval pwzExt as LPCWSTR, byval pszCacheFile as LPVOID, byval pcbCacheFile as DWORD ptr, byval pdwWinInetError as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
 1554     end type
 1555 
 1556     type IWinInetCacheHints_
 1557         lpVtbl as IWinInetCacheHintsVtbl ptr
 1558     end type
 1559 
 1560     #define IWinInetCacheHints_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1561     #define IWinInetCacheHints_AddRef(This) (This)->lpVtbl->AddRef(This)
 1562     #define IWinInetCacheHints_Release(This) (This)->lpVtbl->Release(This)
 1563     #define IWinInetCacheHints_SetCacheExtension(This, pwzExt, pszCacheFile, pcbCacheFile, pdwWinInetError, pdwReserved) (This)->lpVtbl->SetCacheExtension(This, pwzExt, pszCacheFile, pcbCacheFile, pdwWinInetError, pdwReserved)
 1564     declare function IWinInetCacheHints_SetCacheExtension_Proxy(byval This as IWinInetCacheHints ptr, byval pwzExt as LPCWSTR, byval pszCacheFile as LPVOID, byval pcbCacheFile as DWORD ptr, byval pdwWinInetError as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
 1565     declare sub IWinInetCacheHints_SetCacheExtension_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1566     #define _LPWININETCACHEHINTS2_DEFINED
 1567     #define __IWinInetCacheHints2_INTERFACE_DEFINED__
 1568     type IWinInetCacheHints2 as IWinInetCacheHints2_
 1569     type LPWININETCACHEHINTS2 as IWinInetCacheHints2 ptr
 1570     extern IID_IWinInetCacheHints2 as const GUID
 1571 
 1572     type IWinInetCacheHints2Vtbl
 1573         QueryInterface as function(byval This as IWinInetCacheHints2 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1574         AddRef as function(byval This as IWinInetCacheHints2 ptr) as ULONG
 1575         Release as function(byval This as IWinInetCacheHints2 ptr) as ULONG
 1576         SetCacheExtension as function(byval This as IWinInetCacheHints2 ptr, byval pwzExt as LPCWSTR, byval pszCacheFile as LPVOID, byval pcbCacheFile as DWORD ptr, byval pdwWinInetError as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
 1577         SetCacheExtension2 as function(byval This as IWinInetCacheHints2 ptr, byval pwzExt as LPCWSTR, byval pwzCacheFile as wstring ptr, byval pcchCacheFile as DWORD ptr, byval pdwWinInetError as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
 1578     end type
 1579 
 1580     type IWinInetCacheHints2_
 1581         lpVtbl as IWinInetCacheHints2Vtbl ptr
 1582     end type
 1583 
 1584     #define IWinInetCacheHints2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1585     #define IWinInetCacheHints2_AddRef(This) (This)->lpVtbl->AddRef(This)
 1586     #define IWinInetCacheHints2_Release(This) (This)->lpVtbl->Release(This)
 1587     #define IWinInetCacheHints2_SetCacheExtension(This, pwzExt, pszCacheFile, pcbCacheFile, pdwWinInetError, pdwReserved) (This)->lpVtbl->SetCacheExtension(This, pwzExt, pszCacheFile, pcbCacheFile, pdwWinInetError, pdwReserved)
 1588     #define IWinInetCacheHints2_SetCacheExtension2(This, pwzExt, pwzCacheFile, pcchCacheFile, pdwWinInetError, pdwReserved) (This)->lpVtbl->SetCacheExtension2(This, pwzExt, pwzCacheFile, pcchCacheFile, pdwWinInetError, pdwReserved)
 1589     declare function IWinInetCacheHints2_SetCacheExtension2_Proxy(byval This as IWinInetCacheHints2 ptr, byval pwzExt as LPCWSTR, byval pwzCacheFile as wstring ptr, byval pcchCacheFile as DWORD ptr, byval pdwWinInetError as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
 1590     declare sub IWinInetCacheHints2_SetCacheExtension2_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1591 #endif
 1592 
 1593 #define _LPBINDHOST_DEFINED
 1594 extern SID_BindHost as const GUID
 1595 #define __IBindHost_INTERFACE_DEFINED__
 1596 type IBindHost as IBindHost_
 1597 type LPBINDHOST as IBindHost ptr
 1598 extern IID_IBindHost as const GUID
 1599 extern SID_IBindHost alias "IID_IBindHost" as const GUID
 1600 extern SID_SBindHost alias "IID_IBindHost" as const GUID
 1601 
 1602 type IBindHostVtbl
 1603     QueryInterface as function(byval This as IBindHost ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1604     AddRef as function(byval This as IBindHost ptr) as ULONG
 1605     Release as function(byval This as IBindHost ptr) as ULONG
 1606     CreateMoniker as function(byval This as IBindHost ptr, byval szName as LPOLESTR, byval pBC as IBindCtx ptr, byval ppmk as IMoniker ptr ptr, byval dwReserved as DWORD) as HRESULT
 1607     MonikerBindToStorage as function(byval This as IBindHost ptr, byval pMk as IMoniker ptr, byval pBC as IBindCtx ptr, byval pBSC as IBindStatusCallback ptr, byval riid as const IID const ptr, byval ppvObj as any ptr ptr) as HRESULT
 1608     MonikerBindToObject as function(byval This as IBindHost ptr, byval pMk as IMoniker ptr, byval pBC as IBindCtx ptr, byval pBSC as IBindStatusCallback ptr, byval riid as const IID const ptr, byval ppvObj as any ptr ptr) as HRESULT
 1609 end type
 1610 
 1611 type IBindHost_
 1612     lpVtbl as IBindHostVtbl ptr
 1613 end type
 1614 
 1615 #define IBindHost_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1616 #define IBindHost_AddRef(This) (This)->lpVtbl->AddRef(This)
 1617 #define IBindHost_Release(This) (This)->lpVtbl->Release(This)
 1618 #define IBindHost_CreateMoniker(This, szName, pBC, ppmk, dwReserved) (This)->lpVtbl->CreateMoniker(This, szName, pBC, ppmk, dwReserved)
 1619 #define IBindHost_MonikerBindToStorage(This, pMk, pBC, pBSC, riid, ppvObj) (This)->lpVtbl->MonikerBindToStorage(This, pMk, pBC, pBSC, riid, ppvObj)
 1620 #define IBindHost_MonikerBindToObject(This, pMk, pBC, pBSC, riid, ppvObj) (This)->lpVtbl->MonikerBindToObject(This, pMk, pBC, pBSC, riid, ppvObj)
 1621 
 1622 declare function IBindHost_CreateMoniker_Proxy(byval This as IBindHost ptr, byval szName as LPOLESTR, byval pBC as IBindCtx ptr, byval ppmk as IMoniker ptr ptr, byval dwReserved as DWORD) as HRESULT
 1623 declare sub IBindHost_CreateMoniker_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1624 declare function IBindHost_RemoteMonikerBindToStorage_Proxy(byval This as IBindHost ptr, byval pMk as IMoniker ptr, byval pBC as IBindCtx ptr, byval pBSC as IBindStatusCallback ptr, byval riid as const IID const ptr, byval ppvObj as IUnknown ptr ptr) as HRESULT
 1625 declare sub IBindHost_RemoteMonikerBindToStorage_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1626 declare function IBindHost_RemoteMonikerBindToObject_Proxy(byval This as IBindHost ptr, byval pMk as IMoniker ptr, byval pBC as IBindCtx ptr, byval pBSC as IBindStatusCallback ptr, byval riid as const IID const ptr, byval ppvObj as IUnknown ptr ptr) as HRESULT
 1627 declare sub IBindHost_RemoteMonikerBindToObject_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1628 declare function IBindHost_MonikerBindToStorage_Proxy(byval This as IBindHost ptr, byval pMk as IMoniker ptr, byval pBC as IBindCtx ptr, byval pBSC as IBindStatusCallback ptr, byval riid as const IID const ptr, byval ppvObj as any ptr ptr) as HRESULT
 1629 declare function IBindHost_MonikerBindToStorage_Stub(byval This as IBindHost ptr, byval pMk as IMoniker ptr, byval pBC as IBindCtx ptr, byval pBSC as IBindStatusCallback ptr, byval riid as const IID const ptr, byval ppvObj as IUnknown ptr ptr) as HRESULT
 1630 declare function IBindHost_MonikerBindToObject_Proxy(byval This as IBindHost ptr, byval pMk as IMoniker ptr, byval pBC as IBindCtx ptr, byval pBSC as IBindStatusCallback ptr, byval riid as const IID const ptr, byval ppvObj as any ptr ptr) as HRESULT
 1631 declare function IBindHost_MonikerBindToObject_Stub(byval This as IBindHost ptr, byval pMk as IMoniker ptr, byval pBC as IBindCtx ptr, byval pBSC as IBindStatusCallback ptr, byval riid as const IID const ptr, byval ppvObj as IUnknown ptr ptr) as HRESULT
 1632 
 1633 const URLOSTRM_USECACHEDCOPY_ONLY = &h1
 1634 const URLOSTRM_USECACHEDCOPY = &h2
 1635 const URLOSTRM_GETNEWESTVERSION = &h3
 1636 
 1637 declare function HlinkSimpleNavigateToString(byval szTarget as LPCWSTR, byval szLocation as LPCWSTR, byval szTargetFrameName as LPCWSTR, byval pUnk as IUnknown ptr, byval pbc as IBindCtx ptr, byval as IBindStatusCallback ptr, byval grfHLNF as DWORD, byval dwReserved as DWORD) as HRESULT
 1638 declare function HlinkSimpleNavigateToMoniker(byval pmkTarget as IMoniker ptr, byval szLocation as LPCWSTR, byval szTargetFrameName as LPCWSTR, byval pUnk as IUnknown ptr, byval pbc as IBindCtx ptr, byval as IBindStatusCallback ptr, byval grfHLNF as DWORD, byval dwReserved as DWORD) as HRESULT
 1639 declare function URLOpenStreamA(byval as LPUNKNOWN, byval as LPCSTR, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1640 declare function URLOpenStreamW(byval as LPUNKNOWN, byval as LPCWSTR, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1641 declare function URLOpenPullStreamA(byval as LPUNKNOWN, byval as LPCSTR, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1642 declare function URLOpenPullStreamW(byval as LPUNKNOWN, byval as LPCWSTR, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1643 declare function URLDownloadToFileA(byval as LPUNKNOWN, byval as LPCSTR, byval as LPCSTR, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1644 declare function URLDownloadToFileW(byval as LPUNKNOWN, byval as LPCWSTR, byval as LPCWSTR, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1645 declare function URLDownloadToCacheFileA(byval as LPUNKNOWN, byval as LPCSTR, byval as LPSTR, byval as DWORD, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1646 declare function URLDownloadToCacheFileW(byval as LPUNKNOWN, byval as LPCWSTR, byval as LPWSTR, byval as DWORD, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1647 declare function URLOpenBlockingStreamA(byval as LPUNKNOWN, byval as LPCSTR, byval as LPSTREAM ptr, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1648 declare function URLOpenBlockingStreamW(byval as LPUNKNOWN, byval as LPCWSTR, byval as LPSTREAM ptr, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1649 
 1650 #ifdef UNICODE
 1651     declare function URLOpenStream alias "URLOpenStreamW"(byval as LPUNKNOWN, byval as LPCWSTR, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1652     declare function URLOpenPullStream alias "URLOpenPullStreamW"(byval as LPUNKNOWN, byval as LPCWSTR, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1653     declare function URLDownloadToFile alias "URLDownloadToFileW"(byval as LPUNKNOWN, byval as LPCWSTR, byval as LPCWSTR, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1654     declare function URLDownloadToCacheFile alias "URLDownloadToCacheFileW"(byval as LPUNKNOWN, byval as LPCWSTR, byval as LPWSTR, byval as DWORD, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1655     declare function URLOpenBlockingStream alias "URLOpenBlockingStreamW"(byval as LPUNKNOWN, byval as LPCWSTR, byval as LPSTREAM ptr, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1656 #else
 1657     declare function URLOpenStream alias "URLOpenStreamA"(byval as LPUNKNOWN, byval as LPCSTR, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1658     declare function URLOpenPullStream alias "URLOpenPullStreamA"(byval as LPUNKNOWN, byval as LPCSTR, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1659     declare function URLDownloadToFile alias "URLDownloadToFileA"(byval as LPUNKNOWN, byval as LPCSTR, byval as LPCSTR, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1660     declare function URLDownloadToCacheFile alias "URLDownloadToCacheFileA"(byval as LPUNKNOWN, byval as LPCSTR, byval as LPSTR, byval as DWORD, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1661     declare function URLOpenBlockingStream alias "URLOpenBlockingStreamA"(byval as LPUNKNOWN, byval as LPCSTR, byval as LPSTREAM ptr, byval as DWORD, byval as LPBINDSTATUSCALLBACK) as HRESULT
 1662 #endif
 1663 
 1664 declare function HlinkGoBack(byval pUnk as IUnknown ptr) as HRESULT
 1665 declare function HlinkGoForward(byval pUnk as IUnknown ptr) as HRESULT
 1666 declare function HlinkNavigateString(byval pUnk as IUnknown ptr, byval szTarget as LPCWSTR) as HRESULT
 1667 declare function HlinkNavigateMoniker(byval pUnk as IUnknown ptr, byval pmkTarget as IMoniker ptr) as HRESULT
 1668 #define _LPIINTERNET
 1669 #define __IInternet_INTERFACE_DEFINED__
 1670 type IInternet as IInternet_
 1671 type LPIINTERNET as IInternet ptr
 1672 extern IID_IInternet as const GUID
 1673 
 1674 type IInternetVtbl
 1675     QueryInterface as function(byval This as IInternet ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1676     AddRef as function(byval This as IInternet ptr) as ULONG
 1677     Release as function(byval This as IInternet ptr) as ULONG
 1678 end type
 1679 
 1680 type IInternet_
 1681     lpVtbl as IInternetVtbl ptr
 1682 end type
 1683 
 1684 #define IInternet_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1685 #define IInternet_AddRef(This) (This)->lpVtbl->AddRef(This)
 1686 #define IInternet_Release(This) (This)->lpVtbl->Release(This)
 1687 #define _LPIINTERNETBINDINFO
 1688 #define __IInternetBindInfo_INTERFACE_DEFINED__
 1689 type IInternetBindInfo as IInternetBindInfo_
 1690 type LPIINTERNETBINDINFO as IInternetBindInfo ptr
 1691 
 1692 type tagBINDSTRING as long
 1693 enum
 1694     BINDSTRING_HEADERS = 1
 1695     BINDSTRING_ACCEPT_MIMES = 2
 1696     BINDSTRING_EXTRA_URL = 3
 1697     BINDSTRING_LANGUAGE = 4
 1698     BINDSTRING_USERNAME = 5
 1699     BINDSTRING_PASSWORD = 6
 1700     BINDSTRING_UA_PIXELS = 7
 1701     BINDSTRING_UA_COLOR = 8
 1702     BINDSTRING_OS = 9
 1703     BINDSTRING_USER_AGENT = 10
 1704     BINDSTRING_ACCEPT_ENCODINGS = 11
 1705     BINDSTRING_POST_COOKIE = 12
 1706     BINDSTRING_POST_DATA_MIME = 13
 1707     BINDSTRING_URL = 14
 1708     BINDSTRING_IID = 15
 1709     BINDSTRING_FLAG_BIND_TO_OBJECT = 16
 1710     BINDSTRING_PTR_BIND_CONTEXT = 17
 1711     BINDSTRING_XDR_ORIGIN = 18
 1712     BINDSTRING_DOWNLOADPATH = 19
 1713     BINDSTRING_ROOTDOC_URL = 20
 1714     BINDSTRING_INITIAL_FILENAME = 21
 1715     BINDSTRING_PROXY_USERNAME = 22
 1716     BINDSTRING_PROXY_PASSWORD = 23
 1717 end enum
 1718 
 1719 type BINDSTRING as tagBINDSTRING
 1720 extern IID_IInternetBindInfo as const GUID
 1721 
 1722 type IInternetBindInfoVtbl
 1723     QueryInterface as function(byval This as IInternetBindInfo ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1724     AddRef as function(byval This as IInternetBindInfo ptr) as ULONG
 1725     Release as function(byval This as IInternetBindInfo ptr) as ULONG
 1726     GetBindInfo as function(byval This as IInternetBindInfo ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as BINDINFO ptr) as HRESULT
 1727     GetBindString as function(byval This as IInternetBindInfo ptr, byval ulStringType as ULONG, byval ppwzStr as LPOLESTR ptr, byval cEl as ULONG, byval pcElFetched as ULONG ptr) as HRESULT
 1728 end type
 1729 
 1730 type IInternetBindInfo_
 1731     lpVtbl as IInternetBindInfoVtbl ptr
 1732 end type
 1733 
 1734 #define IInternetBindInfo_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1735 #define IInternetBindInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
 1736 #define IInternetBindInfo_Release(This) (This)->lpVtbl->Release(This)
 1737 #define IInternetBindInfo_GetBindInfo(This, grfBINDF, pbindinfo) (This)->lpVtbl->GetBindInfo(This, grfBINDF, pbindinfo)
 1738 #define IInternetBindInfo_GetBindString(This, ulStringType, ppwzStr, cEl, pcElFetched) (This)->lpVtbl->GetBindString(This, ulStringType, ppwzStr, cEl, pcElFetched)
 1739 
 1740 declare function IInternetBindInfo_GetBindInfo_Proxy(byval This as IInternetBindInfo ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as BINDINFO ptr) as HRESULT
 1741 declare sub IInternetBindInfo_GetBindInfo_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1742 declare function IInternetBindInfo_GetBindString_Proxy(byval This as IInternetBindInfo ptr, byval ulStringType as ULONG, byval ppwzStr as LPOLESTR ptr, byval cEl as ULONG, byval pcElFetched as ULONG ptr) as HRESULT
 1743 declare sub IInternetBindInfo_GetBindString_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1744 #define _LPIINTERNETBINDINFOEX
 1745 #define __IInternetBindInfoEx_INTERFACE_DEFINED__
 1746 type IInternetBindInfoEx as IInternetBindInfoEx_
 1747 type LPIINTERNETBINDINFOEX as IInternetBindInfoEx ptr
 1748 extern IID_IInternetBindInfoEx as const GUID
 1749 
 1750 type IInternetBindInfoExVtbl
 1751     QueryInterface as function(byval This as IInternetBindInfoEx ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1752     AddRef as function(byval This as IInternetBindInfoEx ptr) as ULONG
 1753     Release as function(byval This as IInternetBindInfoEx ptr) as ULONG
 1754     GetBindInfo as function(byval This as IInternetBindInfoEx ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as BINDINFO ptr) as HRESULT
 1755     GetBindString as function(byval This as IInternetBindInfoEx ptr, byval ulStringType as ULONG, byval ppwzStr as LPOLESTR ptr, byval cEl as ULONG, byval pcElFetched as ULONG ptr) as HRESULT
 1756     GetBindInfoEx as function(byval This as IInternetBindInfoEx ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as BINDINFO ptr, byval grfBINDF2 as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
 1757 end type
 1758 
 1759 type IInternetBindInfoEx_
 1760     lpVtbl as IInternetBindInfoExVtbl ptr
 1761 end type
 1762 
 1763 #define IInternetBindInfoEx_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1764 #define IInternetBindInfoEx_AddRef(This) (This)->lpVtbl->AddRef(This)
 1765 #define IInternetBindInfoEx_Release(This) (This)->lpVtbl->Release(This)
 1766 #define IInternetBindInfoEx_GetBindInfo(This, grfBINDF, pbindinfo) (This)->lpVtbl->GetBindInfo(This, grfBINDF, pbindinfo)
 1767 #define IInternetBindInfoEx_GetBindString(This, ulStringType, ppwzStr, cEl, pcElFetched) (This)->lpVtbl->GetBindString(This, ulStringType, ppwzStr, cEl, pcElFetched)
 1768 #define IInternetBindInfoEx_GetBindInfoEx(This, grfBINDF, pbindinfo, grfBINDF2, pdwReserved) (This)->lpVtbl->GetBindInfoEx(This, grfBINDF, pbindinfo, grfBINDF2, pdwReserved)
 1769 declare function IInternetBindInfoEx_GetBindInfoEx_Proxy(byval This as IInternetBindInfoEx ptr, byval grfBINDF as DWORD ptr, byval pbindinfo as BINDINFO ptr, byval grfBINDF2 as DWORD ptr, byval pdwReserved as DWORD ptr) as HRESULT
 1770 declare sub IInternetBindInfoEx_GetBindInfoEx_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1771 #define _LPIINTERNETPROTOCOLROOT_DEFINED
 1772 #define __IInternetProtocolRoot_INTERFACE_DEFINED__
 1773 type IInternetProtocolRoot as IInternetProtocolRoot_
 1774 type LPIINTERNETPROTOCOLROOT as IInternetProtocolRoot ptr
 1775 
 1776 type _tagPI_FLAGS as long
 1777 enum
 1778     PI_PARSE_URL = &h1
 1779     PI_FILTER_MODE = &h2
 1780     PI_FORCE_ASYNC = &h4
 1781     PI_USE_WORKERTHREAD = &h8
 1782     PI_MIMEVERIFICATION = &h10
 1783     PI_CLSIDLOOKUP = &h20
 1784     PI_DATAPROGRESS = &h40
 1785     PI_SYNCHRONOUS = &h80
 1786     PI_APARTMENTTHREADED = &h100
 1787     PI_CLASSINSTALL = &h200
 1788     PI_PASSONBINDCTX = &h2000
 1789     PI_NOMIMEHANDLER = &h8000
 1790     PI_LOADAPPDIRECT = &h4000
 1791     PD_FORCE_SWITCH = &h10000
 1792     PI_PREFERDEFAULTHANDLER = &h20000
 1793 end enum
 1794 
 1795 const PI_DOCFILECLSIDLOOKUP = PI_CLSIDLOOKUP
 1796 type PI_FLAGS as _tagPI_FLAGS
 1797 
 1798 type _tagPROTOCOLDATA
 1799     grfFlags as DWORD
 1800     dwState as DWORD
 1801     pData as LPVOID
 1802     cbData as ULONG
 1803 end type
 1804 
 1805 type PROTOCOLDATA as _tagPROTOCOLDATA
 1806 
 1807 type _tagStartParam
 1808     iid as IID
 1809     pIBindCtx as IBindCtx ptr
 1810     pItf as IUnknown ptr
 1811 end type
 1812 
 1813 type StartParam as _tagStartParam
 1814 extern IID_IInternetProtocolRoot as const GUID
 1815 type IInternetProtocolSink as IInternetProtocolSink_
 1816 
 1817 type IInternetProtocolRootVtbl
 1818     QueryInterface as function(byval This as IInternetProtocolRoot ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1819     AddRef as function(byval This as IInternetProtocolRoot ptr) as ULONG
 1820     Release as function(byval This as IInternetProtocolRoot ptr) as ULONG
 1821     Start as function(byval This as IInternetProtocolRoot ptr, byval szUrl as LPCWSTR, byval pOIProtSink as IInternetProtocolSink ptr, byval pOIBindInfo as IInternetBindInfo ptr, byval grfPI as DWORD, byval dwReserved as HANDLE_PTR) as HRESULT
 1822     Continue as function(byval This as IInternetProtocolRoot ptr, byval pProtocolData as PROTOCOLDATA ptr) as HRESULT
 1823     Abort as function(byval This as IInternetProtocolRoot ptr, byval hrReason as HRESULT, byval dwOptions as DWORD) as HRESULT
 1824     Terminate as function(byval This as IInternetProtocolRoot ptr, byval dwOptions as DWORD) as HRESULT
 1825     Suspend as function(byval This as IInternetProtocolRoot ptr) as HRESULT
 1826     Resume as function(byval This as IInternetProtocolRoot ptr) as HRESULT
 1827 end type
 1828 
 1829 type IInternetProtocolRoot_
 1830     lpVtbl as IInternetProtocolRootVtbl ptr
 1831 end type
 1832 
 1833 #define IInternetProtocolRoot_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1834 #define IInternetProtocolRoot_AddRef(This) (This)->lpVtbl->AddRef(This)
 1835 #define IInternetProtocolRoot_Release(This) (This)->lpVtbl->Release(This)
 1836 #define IInternetProtocolRoot_Start(This, szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved) (This)->lpVtbl->Start(This, szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved)
 1837 #define IInternetProtocolRoot_Continue(This, pProtocolData) (This)->lpVtbl->Continue(This, pProtocolData)
 1838 #define IInternetProtocolRoot_Abort(This, hrReason, dwOptions) (This)->lpVtbl->Abort(This, hrReason, dwOptions)
 1839 #define IInternetProtocolRoot_Terminate(This, dwOptions) (This)->lpVtbl->Terminate(This, dwOptions)
 1840 #define IInternetProtocolRoot_Suspend(This) (This)->lpVtbl->Suspend(This)
 1841 #define IInternetProtocolRoot_Resume(This) (This)->lpVtbl->Resume(This)
 1842 
 1843 declare function IInternetProtocolRoot_Start_Proxy(byval This as IInternetProtocolRoot ptr, byval szUrl as LPCWSTR, byval pOIProtSink as IInternetProtocolSink ptr, byval pOIBindInfo as IInternetBindInfo ptr, byval grfPI as DWORD, byval dwReserved as HANDLE_PTR) as HRESULT
 1844 declare sub IInternetProtocolRoot_Start_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1845 declare function IInternetProtocolRoot_Continue_Proxy(byval This as IInternetProtocolRoot ptr, byval pProtocolData as PROTOCOLDATA ptr) as HRESULT
 1846 declare sub IInternetProtocolRoot_Continue_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1847 declare function IInternetProtocolRoot_Abort_Proxy(byval This as IInternetProtocolRoot ptr, byval hrReason as HRESULT, byval dwOptions as DWORD) as HRESULT
 1848 declare sub IInternetProtocolRoot_Abort_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1849 declare function IInternetProtocolRoot_Terminate_Proxy(byval This as IInternetProtocolRoot ptr, byval dwOptions as DWORD) as HRESULT
 1850 declare sub IInternetProtocolRoot_Terminate_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1851 declare function IInternetProtocolRoot_Suspend_Proxy(byval This as IInternetProtocolRoot ptr) as HRESULT
 1852 declare sub IInternetProtocolRoot_Suspend_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1853 declare function IInternetProtocolRoot_Resume_Proxy(byval This as IInternetProtocolRoot ptr) as HRESULT
 1854 declare sub IInternetProtocolRoot_Resume_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1855 #define _LPIINTERNETPROTOCOL_DEFINED
 1856 #define __IInternetProtocol_INTERFACE_DEFINED__
 1857 type IInternetProtocol as IInternetProtocol_
 1858 type LPIINTERNETPROTOCOL as IInternetProtocol ptr
 1859 extern IID_IInternetProtocol as const GUID
 1860 
 1861 type IInternetProtocolVtbl
 1862     QueryInterface as function(byval This as IInternetProtocol ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1863     AddRef as function(byval This as IInternetProtocol ptr) as ULONG
 1864     Release as function(byval This as IInternetProtocol ptr) as ULONG
 1865     Start as function(byval This as IInternetProtocol ptr, byval szUrl as LPCWSTR, byval pOIProtSink as IInternetProtocolSink ptr, byval pOIBindInfo as IInternetBindInfo ptr, byval grfPI as DWORD, byval dwReserved as HANDLE_PTR) as HRESULT
 1866     Continue as function(byval This as IInternetProtocol ptr, byval pProtocolData as PROTOCOLDATA ptr) as HRESULT
 1867     Abort as function(byval This as IInternetProtocol ptr, byval hrReason as HRESULT, byval dwOptions as DWORD) as HRESULT
 1868     Terminate as function(byval This as IInternetProtocol ptr, byval dwOptions as DWORD) as HRESULT
 1869     Suspend as function(byval This as IInternetProtocol ptr) as HRESULT
 1870     Resume as function(byval This as IInternetProtocol ptr) as HRESULT
 1871     Read as function(byval This as IInternetProtocol ptr, byval pv as any ptr, byval cb as ULONG, byval pcbRead as ULONG ptr) as HRESULT
 1872     Seek as function(byval This as IInternetProtocol ptr, byval dlibMove as LARGE_INTEGER, byval dwOrigin as DWORD, byval plibNewPosition as ULARGE_INTEGER ptr) as HRESULT
 1873     LockRequest as function(byval This as IInternetProtocol ptr, byval dwOptions as DWORD) as HRESULT
 1874     UnlockRequest as function(byval This as IInternetProtocol ptr) as HRESULT
 1875 end type
 1876 
 1877 type IInternetProtocol_
 1878     lpVtbl as IInternetProtocolVtbl ptr
 1879 end type
 1880 
 1881 #define IInternetProtocol_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1882 #define IInternetProtocol_AddRef(This) (This)->lpVtbl->AddRef(This)
 1883 #define IInternetProtocol_Release(This) (This)->lpVtbl->Release(This)
 1884 #define IInternetProtocol_Start(This, szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved) (This)->lpVtbl->Start(This, szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved)
 1885 #define IInternetProtocol_Continue(This, pProtocolData) (This)->lpVtbl->Continue(This, pProtocolData)
 1886 #define IInternetProtocol_Abort(This, hrReason, dwOptions) (This)->lpVtbl->Abort(This, hrReason, dwOptions)
 1887 #define IInternetProtocol_Terminate(This, dwOptions) (This)->lpVtbl->Terminate(This, dwOptions)
 1888 #define IInternetProtocol_Suspend(This) (This)->lpVtbl->Suspend(This)
 1889 #define IInternetProtocol_Resume(This) (This)->lpVtbl->Resume(This)
 1890 #define IInternetProtocol_Read(This, pv, cb, pcbRead) (This)->lpVtbl->Read(This, pv, cb, pcbRead)
 1891 #define IInternetProtocol_Seek(This, dlibMove, dwOrigin, plibNewPosition) (This)->lpVtbl->Seek(This, dlibMove, dwOrigin, plibNewPosition)
 1892 #define IInternetProtocol_LockRequest(This, dwOptions) (This)->lpVtbl->LockRequest(This, dwOptions)
 1893 #define IInternetProtocol_UnlockRequest(This) (This)->lpVtbl->UnlockRequest(This)
 1894 
 1895 declare function IInternetProtocol_Read_Proxy(byval This as IInternetProtocol ptr, byval pv as any ptr, byval cb as ULONG, byval pcbRead as ULONG ptr) as HRESULT
 1896 declare sub IInternetProtocol_Read_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1897 declare function IInternetProtocol_Seek_Proxy(byval This as IInternetProtocol ptr, byval dlibMove as LARGE_INTEGER, byval dwOrigin as DWORD, byval plibNewPosition as ULARGE_INTEGER ptr) as HRESULT
 1898 declare sub IInternetProtocol_Seek_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1899 declare function IInternetProtocol_LockRequest_Proxy(byval This as IInternetProtocol ptr, byval dwOptions as DWORD) as HRESULT
 1900 declare sub IInternetProtocol_LockRequest_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1901 declare function IInternetProtocol_UnlockRequest_Proxy(byval This as IInternetProtocol ptr) as HRESULT
 1902 declare sub IInternetProtocol_UnlockRequest_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1903 
 1904 #if _WIN32_WINNT >= &h0600
 1905     #define _LPIINTERNETPROTOCOLEX_DEFINED
 1906     #define __IInternetProtocolEx_INTERFACE_DEFINED__
 1907     extern IID_IInternetProtocolEx as const GUID
 1908     type IInternetProtocolEx as IInternetProtocolEx_
 1909 
 1910     type IInternetProtocolExVtbl
 1911         QueryInterface as function(byval This as IInternetProtocolEx ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1912         AddRef as function(byval This as IInternetProtocolEx ptr) as ULONG
 1913         Release as function(byval This as IInternetProtocolEx ptr) as ULONG
 1914         Start as function(byval This as IInternetProtocolEx ptr, byval szUrl as LPCWSTR, byval pOIProtSink as IInternetProtocolSink ptr, byval pOIBindInfo as IInternetBindInfo ptr, byval grfPI as DWORD, byval dwReserved as HANDLE_PTR) as HRESULT
 1915         Continue as function(byval This as IInternetProtocolEx ptr, byval pProtocolData as PROTOCOLDATA ptr) as HRESULT
 1916         Abort as function(byval This as IInternetProtocolEx ptr, byval hrReason as HRESULT, byval dwOptions as DWORD) as HRESULT
 1917         Terminate as function(byval This as IInternetProtocolEx ptr, byval dwOptions as DWORD) as HRESULT
 1918         Suspend as function(byval This as IInternetProtocolEx ptr) as HRESULT
 1919         Resume as function(byval This as IInternetProtocolEx ptr) as HRESULT
 1920         Read as function(byval This as IInternetProtocolEx ptr, byval pv as any ptr, byval cb as ULONG, byval pcbRead as ULONG ptr) as HRESULT
 1921         Seek as function(byval This as IInternetProtocolEx ptr, byval dlibMove as LARGE_INTEGER, byval dwOrigin as DWORD, byval plibNewPosition as ULARGE_INTEGER ptr) as HRESULT
 1922         LockRequest as function(byval This as IInternetProtocolEx ptr, byval dwOptions as DWORD) as HRESULT
 1923         UnlockRequest as function(byval This as IInternetProtocolEx ptr) as HRESULT
 1924         StartEx as function(byval This as IInternetProtocolEx ptr, byval pUri as IUri ptr, byval pOIProtSink as IInternetProtocolSink ptr, byval pOIBindInfo as IInternetBindInfo ptr, byval grfPI as DWORD, byval dwReserved as HANDLE_PTR) as HRESULT
 1925     end type
 1926 
 1927     type IInternetProtocolEx_
 1928         lpVtbl as IInternetProtocolExVtbl ptr
 1929     end type
 1930 
 1931     #define IInternetProtocolEx_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1932     #define IInternetProtocolEx_AddRef(This) (This)->lpVtbl->AddRef(This)
 1933     #define IInternetProtocolEx_Release(This) (This)->lpVtbl->Release(This)
 1934     #define IInternetProtocolEx_Start(This, szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved) (This)->lpVtbl->Start(This, szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved)
 1935     #define IInternetProtocolEx_Continue(This, pProtocolData) (This)->lpVtbl->Continue(This, pProtocolData)
 1936     #define IInternetProtocolEx_Abort(This, hrReason, dwOptions) (This)->lpVtbl->Abort(This, hrReason, dwOptions)
 1937     #define IInternetProtocolEx_Terminate(This, dwOptions) (This)->lpVtbl->Terminate(This, dwOptions)
 1938     #define IInternetProtocolEx_Suspend(This) (This)->lpVtbl->Suspend(This)
 1939     #define IInternetProtocolEx_Resume(This) (This)->lpVtbl->Resume(This)
 1940     #define IInternetProtocolEx_Read(This, pv, cb, pcbRead) (This)->lpVtbl->Read(This, pv, cb, pcbRead)
 1941     #define IInternetProtocolEx_Seek(This, dlibMove, dwOrigin, plibNewPosition) (This)->lpVtbl->Seek(This, dlibMove, dwOrigin, plibNewPosition)
 1942     #define IInternetProtocolEx_LockRequest(This, dwOptions) (This)->lpVtbl->LockRequest(This, dwOptions)
 1943     #define IInternetProtocolEx_UnlockRequest(This) (This)->lpVtbl->UnlockRequest(This)
 1944     #define IInternetProtocolEx_StartEx(This, pUri, pOIProtSink, pOIBindInfo, grfPI, dwReserved) (This)->lpVtbl->StartEx(This, pUri, pOIProtSink, pOIBindInfo, grfPI, dwReserved)
 1945     declare function IInternetProtocolEx_StartEx_Proxy(byval This as IInternetProtocolEx ptr, byval pUri as IUri ptr, byval pOIProtSink as IInternetProtocolSink ptr, byval pOIBindInfo as IInternetBindInfo ptr, byval grfPI as DWORD, byval dwReserved as HANDLE_PTR) as HRESULT
 1946     declare sub IInternetProtocolEx_StartEx_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1947 #endif
 1948 
 1949 #define _LPIINTERNETPROTOCOLSINK_DEFINED
 1950 #define __IInternetProtocolSink_INTERFACE_DEFINED__
 1951 type LPIINTERNETPROTOCOLSINK as IInternetProtocolSink ptr
 1952 extern IID_IInternetProtocolSink as const GUID
 1953 
 1954 type IInternetProtocolSinkVtbl
 1955     QueryInterface as function(byval This as IInternetProtocolSink ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1956     AddRef as function(byval This as IInternetProtocolSink ptr) as ULONG
 1957     Release as function(byval This as IInternetProtocolSink ptr) as ULONG
 1958     Switch as function(byval This as IInternetProtocolSink ptr, byval pProtocolData as PROTOCOLDATA ptr) as HRESULT
 1959     ReportProgress as function(byval This as IInternetProtocolSink ptr, byval ulStatusCode as ULONG, byval szStatusText as LPCWSTR) as HRESULT
 1960     ReportData as function(byval This as IInternetProtocolSink ptr, byval grfBSCF as DWORD, byval ulProgress as ULONG, byval ulProgressMax as ULONG) as HRESULT
 1961     ReportResult as function(byval This as IInternetProtocolSink ptr, byval hrResult as HRESULT, byval dwError as DWORD, byval szResult as LPCWSTR) as HRESULT
 1962 end type
 1963 
 1964 type IInternetProtocolSink_
 1965     lpVtbl as IInternetProtocolSinkVtbl ptr
 1966 end type
 1967 
 1968 #define IInternetProtocolSink_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1969 #define IInternetProtocolSink_AddRef(This) (This)->lpVtbl->AddRef(This)
 1970 #define IInternetProtocolSink_Release(This) (This)->lpVtbl->Release(This)
 1971 #define IInternetProtocolSink_Switch(This, pProtocolData) (This)->lpVtbl->Switch(This, pProtocolData)
 1972 #define IInternetProtocolSink_ReportProgress(This, ulStatusCode, szStatusText) (This)->lpVtbl->ReportProgress(This, ulStatusCode, szStatusText)
 1973 #define IInternetProtocolSink_ReportData(This, grfBSCF, ulProgress, ulProgressMax) (This)->lpVtbl->ReportData(This, grfBSCF, ulProgress, ulProgressMax)
 1974 #define IInternetProtocolSink_ReportResult(This, hrResult, dwError, szResult) (This)->lpVtbl->ReportResult(This, hrResult, dwError, szResult)
 1975 
 1976 declare function IInternetProtocolSink_Switch_Proxy(byval This as IInternetProtocolSink ptr, byval pProtocolData as PROTOCOLDATA ptr) as HRESULT
 1977 declare sub IInternetProtocolSink_Switch_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1978 declare function IInternetProtocolSink_ReportProgress_Proxy(byval This as IInternetProtocolSink ptr, byval ulStatusCode as ULONG, byval szStatusText as LPCWSTR) as HRESULT
 1979 declare sub IInternetProtocolSink_ReportProgress_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1980 declare function IInternetProtocolSink_ReportData_Proxy(byval This as IInternetProtocolSink ptr, byval grfBSCF as DWORD, byval ulProgress as ULONG, byval ulProgressMax as ULONG) as HRESULT
 1981 declare sub IInternetProtocolSink_ReportData_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1982 declare function IInternetProtocolSink_ReportResult_Proxy(byval This as IInternetProtocolSink ptr, byval hrResult as HRESULT, byval dwError as DWORD, byval szResult as LPCWSTR) as HRESULT
 1983 declare sub IInternetProtocolSink_ReportResult_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1984 #define _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED
 1985 #define __IInternetProtocolSinkStackable_INTERFACE_DEFINED__
 1986 type IInternetProtocolSinkStackable as IInternetProtocolSinkStackable_
 1987 type LPIINTERNETPROTOCOLSINKStackable as IInternetProtocolSinkStackable ptr
 1988 extern IID_IInternetProtocolSinkStackable as const GUID
 1989 
 1990 type IInternetProtocolSinkStackableVtbl
 1991     QueryInterface as function(byval This as IInternetProtocolSinkStackable ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1992     AddRef as function(byval This as IInternetProtocolSinkStackable ptr) as ULONG
 1993     Release as function(byval This as IInternetProtocolSinkStackable ptr) as ULONG
 1994     SwitchSink as function(byval This as IInternetProtocolSinkStackable ptr, byval pOIProtSink as IInternetProtocolSink ptr) as HRESULT
 1995     CommitSwitch as function(byval This as IInternetProtocolSinkStackable ptr) as HRESULT
 1996     RollbackSwitch as function(byval This as IInternetProtocolSinkStackable ptr) as HRESULT
 1997 end type
 1998 
 1999 type IInternetProtocolSinkStackable_
 2000     lpVtbl as IInternetProtocolSinkStackableVtbl ptr
 2001 end type
 2002 
 2003 #define IInternetProtocolSinkStackable_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2004 #define IInternetProtocolSinkStackable_AddRef(This) (This)->lpVtbl->AddRef(This)
 2005 #define IInternetProtocolSinkStackable_Release(This) (This)->lpVtbl->Release(This)
 2006 #define IInternetProtocolSinkStackable_SwitchSink(This, pOIProtSink) (This)->lpVtbl->SwitchSink(This, pOIProtSink)
 2007 #define IInternetProtocolSinkStackable_CommitSwitch(This) (This)->lpVtbl->CommitSwitch(This)
 2008 #define IInternetProtocolSinkStackable_RollbackSwitch(This) (This)->lpVtbl->RollbackSwitch(This)
 2009 
 2010 declare function IInternetProtocolSinkStackable_SwitchSink_Proxy(byval This as IInternetProtocolSinkStackable ptr, byval pOIProtSink as IInternetProtocolSink ptr) as HRESULT
 2011 declare sub IInternetProtocolSinkStackable_SwitchSink_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2012 declare function IInternetProtocolSinkStackable_CommitSwitch_Proxy(byval This as IInternetProtocolSinkStackable ptr) as HRESULT
 2013 declare sub IInternetProtocolSinkStackable_CommitSwitch_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2014 declare function IInternetProtocolSinkStackable_RollbackSwitch_Proxy(byval This as IInternetProtocolSinkStackable ptr) as HRESULT
 2015 declare sub IInternetProtocolSinkStackable_RollbackSwitch_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2016 #define _LPIINTERNETSESSION_DEFINED
 2017 #define __IInternetSession_INTERFACE_DEFINED__
 2018 type IInternetSession as IInternetSession_
 2019 type LPIINTERNETSESSION as IInternetSession ptr
 2020 
 2021 type _tagOIBDG_FLAGS as long
 2022 enum
 2023     OIBDG_APARTMENTTHREADED = &h100
 2024     OIBDG_DATAONLY = &h1000
 2025 end enum
 2026 
 2027 type OIBDG_FLAGS as _tagOIBDG_FLAGS
 2028 extern IID_IInternetSession as const GUID
 2029 
 2030 type IInternetSessionVtbl
 2031     QueryInterface as function(byval This as IInternetSession ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2032     AddRef as function(byval This as IInternetSession ptr) as ULONG
 2033     Release as function(byval This as IInternetSession ptr) as ULONG
 2034     RegisterNameSpace as function(byval This as IInternetSession ptr, byval pCF as IClassFactory ptr, byval rclsid as const IID const ptr, byval pwzProtocol as LPCWSTR, byval cPatterns as ULONG, byval ppwzPatterns as const LPCWSTR ptr, byval dwReserved as DWORD) as HRESULT
 2035     UnregisterNameSpace as function(byval This as IInternetSession ptr, byval pCF as IClassFactory ptr, byval pszProtocol as LPCWSTR) as HRESULT
 2036     RegisterMimeFilter as function(byval This as IInternetSession ptr, byval pCF as IClassFactory ptr, byval rclsid as const IID const ptr, byval pwzType as LPCWSTR) as HRESULT
 2037     UnregisterMimeFilter as function(byval This as IInternetSession ptr, byval pCF as IClassFactory ptr, byval pwzType as LPCWSTR) as HRESULT
 2038     CreateBinding as function(byval This as IInternetSession ptr, byval pBC as LPBC, byval szUrl as LPCWSTR, byval pUnkOuter as IUnknown ptr, byval ppUnk as IUnknown ptr ptr, byval ppOInetProt as IInternetProtocol ptr ptr, byval dwOption as DWORD) as HRESULT
 2039     SetSessionOption as function(byval This as IInternetSession ptr, byval dwOption as DWORD, byval pBuffer as LPVOID, byval dwBufferLength as DWORD, byval dwReserved as DWORD) as HRESULT
 2040     GetSessionOption as function(byval This as IInternetSession ptr, byval dwOption as DWORD, byval pBuffer as LPVOID, byval pdwBufferLength as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2041 end type
 2042 
 2043 type IInternetSession_
 2044     lpVtbl as IInternetSessionVtbl ptr
 2045 end type
 2046 
 2047 #define IInternetSession_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2048 #define IInternetSession_AddRef(This) (This)->lpVtbl->AddRef(This)
 2049 #define IInternetSession_Release(This) (This)->lpVtbl->Release(This)
 2050 #define IInternetSession_RegisterNameSpace(This, pCF, rclsid, pwzProtocol, cPatterns, ppwzPatterns, dwReserved) (This)->lpVtbl->RegisterNameSpace(This, pCF, rclsid, pwzProtocol, cPatterns, ppwzPatterns, dwReserved)
 2051 #define IInternetSession_UnregisterNameSpace(This, pCF, pszProtocol) (This)->lpVtbl->UnregisterNameSpace(This, pCF, pszProtocol)
 2052 #define IInternetSession_RegisterMimeFilter(This, pCF, rclsid, pwzType) (This)->lpVtbl->RegisterMimeFilter(This, pCF, rclsid, pwzType)
 2053 #define IInternetSession_UnregisterMimeFilter(This, pCF, pwzType) (This)->lpVtbl->UnregisterMimeFilter(This, pCF, pwzType)
 2054 #define IInternetSession_CreateBinding(This, pBC, szUrl, pUnkOuter, ppUnk, ppOInetProt, dwOption) (This)->lpVtbl->CreateBinding(This, pBC, szUrl, pUnkOuter, ppUnk, ppOInetProt, dwOption)
 2055 #define IInternetSession_SetSessionOption(This, dwOption, pBuffer, dwBufferLength, dwReserved) (This)->lpVtbl->SetSessionOption(This, dwOption, pBuffer, dwBufferLength, dwReserved)
 2056 #define IInternetSession_GetSessionOption(This, dwOption, pBuffer, pdwBufferLength, dwReserved) (This)->lpVtbl->GetSessionOption(This, dwOption, pBuffer, pdwBufferLength, dwReserved)
 2057 
 2058 declare function IInternetSession_RegisterNameSpace_Proxy(byval This as IInternetSession ptr, byval pCF as IClassFactory ptr, byval rclsid as const IID const ptr, byval pwzProtocol as LPCWSTR, byval cPatterns as ULONG, byval ppwzPatterns as const LPCWSTR ptr, byval dwReserved as DWORD) as HRESULT
 2059 declare sub IInternetSession_RegisterNameSpace_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2060 declare function IInternetSession_UnregisterNameSpace_Proxy(byval This as IInternetSession ptr, byval pCF as IClassFactory ptr, byval pszProtocol as LPCWSTR) as HRESULT
 2061 declare sub IInternetSession_UnregisterNameSpace_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2062 declare function IInternetSession_RegisterMimeFilter_Proxy(byval This as IInternetSession ptr, byval pCF as IClassFactory ptr, byval rclsid as const IID const ptr, byval pwzType as LPCWSTR) as HRESULT
 2063 declare sub IInternetSession_RegisterMimeFilter_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2064 declare function IInternetSession_UnregisterMimeFilter_Proxy(byval This as IInternetSession ptr, byval pCF as IClassFactory ptr, byval pwzType as LPCWSTR) as HRESULT
 2065 declare sub IInternetSession_UnregisterMimeFilter_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2066 declare function IInternetSession_CreateBinding_Proxy(byval This as IInternetSession ptr, byval pBC as LPBC, byval szUrl as LPCWSTR, byval pUnkOuter as IUnknown ptr, byval ppUnk as IUnknown ptr ptr, byval ppOInetProt as IInternetProtocol ptr ptr, byval dwOption as DWORD) as HRESULT
 2067 declare sub IInternetSession_CreateBinding_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2068 declare function IInternetSession_SetSessionOption_Proxy(byval This as IInternetSession ptr, byval dwOption as DWORD, byval pBuffer as LPVOID, byval dwBufferLength as DWORD, byval dwReserved as DWORD) as HRESULT
 2069 declare sub IInternetSession_SetSessionOption_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2070 declare function IInternetSession_GetSessionOption_Proxy(byval This as IInternetSession ptr, byval dwOption as DWORD, byval pBuffer as LPVOID, byval pdwBufferLength as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2071 declare sub IInternetSession_GetSessionOption_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2072 #define _LPIINTERNETTHREADSWITCH_DEFINED
 2073 #define __IInternetThreadSwitch_INTERFACE_DEFINED__
 2074 type IInternetThreadSwitch as IInternetThreadSwitch_
 2075 type LPIINTERNETTHREADSWITCH as IInternetThreadSwitch ptr
 2076 extern IID_IInternetThreadSwitch as const GUID
 2077 
 2078 type IInternetThreadSwitchVtbl
 2079     QueryInterface as function(byval This as IInternetThreadSwitch ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2080     AddRef as function(byval This as IInternetThreadSwitch ptr) as ULONG
 2081     Release as function(byval This as IInternetThreadSwitch ptr) as ULONG
 2082     Prepare as function(byval This as IInternetThreadSwitch ptr) as HRESULT
 2083     Continue as function(byval This as IInternetThreadSwitch ptr) as HRESULT
 2084 end type
 2085 
 2086 type IInternetThreadSwitch_
 2087     lpVtbl as IInternetThreadSwitchVtbl ptr
 2088 end type
 2089 
 2090 #define IInternetThreadSwitch_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2091 #define IInternetThreadSwitch_AddRef(This) (This)->lpVtbl->AddRef(This)
 2092 #define IInternetThreadSwitch_Release(This) (This)->lpVtbl->Release(This)
 2093 #define IInternetThreadSwitch_Prepare(This) (This)->lpVtbl->Prepare(This)
 2094 #define IInternetThreadSwitch_Continue(This) (This)->lpVtbl->Continue(This)
 2095 
 2096 declare function IInternetThreadSwitch_Prepare_Proxy(byval This as IInternetThreadSwitch ptr) as HRESULT
 2097 declare sub IInternetThreadSwitch_Prepare_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2098 declare function IInternetThreadSwitch_Continue_Proxy(byval This as IInternetThreadSwitch ptr) as HRESULT
 2099 declare sub IInternetThreadSwitch_Continue_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2100 #define _LPIINTERNETPRIORITY_DEFINED
 2101 #define __IInternetPriority_INTERFACE_DEFINED__
 2102 type IInternetPriority as IInternetPriority_
 2103 type LPIINTERNETPRIORITY as IInternetPriority ptr
 2104 extern IID_IInternetPriority as const GUID
 2105 
 2106 type IInternetPriorityVtbl
 2107     QueryInterface as function(byval This as IInternetPriority ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2108     AddRef as function(byval This as IInternetPriority ptr) as ULONG
 2109     Release as function(byval This as IInternetPriority ptr) as ULONG
 2110     SetPriority as function(byval This as IInternetPriority ptr, byval nPriority as LONG) as HRESULT
 2111     GetPriority as function(byval This as IInternetPriority ptr, byval pnPriority as LONG ptr) as HRESULT
 2112 end type
 2113 
 2114 type IInternetPriority_
 2115     lpVtbl as IInternetPriorityVtbl ptr
 2116 end type
 2117 
 2118 #define IInternetPriority_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2119 #define IInternetPriority_AddRef(This) (This)->lpVtbl->AddRef(This)
 2120 #define IInternetPriority_Release(This) (This)->lpVtbl->Release(This)
 2121 #define IInternetPriority_SetPriority(This, nPriority) (This)->lpVtbl->SetPriority(This, nPriority)
 2122 #define IInternetPriority_GetPriority(This, pnPriority) (This)->lpVtbl->GetPriority(This, pnPriority)
 2123 
 2124 declare function IInternetPriority_SetPriority_Proxy(byval This as IInternetPriority ptr, byval nPriority as LONG) as HRESULT
 2125 declare sub IInternetPriority_SetPriority_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2126 declare function IInternetPriority_GetPriority_Proxy(byval This as IInternetPriority ptr, byval pnPriority as LONG ptr) as HRESULT
 2127 declare sub IInternetPriority_GetPriority_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2128 #define _LPIINTERNETPROTOCOLINFO_DEFINED
 2129 #define __IInternetProtocolInfo_INTERFACE_DEFINED__
 2130 type IInternetProtocolInfo as IInternetProtocolInfo_
 2131 type LPIINTERNETPROTOCOLINFO as IInternetProtocolInfo ptr
 2132 
 2133 type _tagPARSEACTION as long
 2134 enum
 2135     PARSE_CANONICALIZE = 1
 2136     PARSE_FRIENDLY = 2
 2137     PARSE_SECURITY_URL = 3
 2138     PARSE_ROOTDOCUMENT = 4
 2139     PARSE_DOCUMENT = 5
 2140     PARSE_ANCHOR = 6
 2141     PARSE_ENCODE_IS_UNESCAPE = 7
 2142     PARSE_DECODE_IS_ESCAPE = 8
 2143     PARSE_PATH_FROM_URL = 9
 2144     PARSE_URL_FROM_PATH = 10
 2145     PARSE_MIME = 11
 2146     PARSE_SERVER = 12
 2147     PARSE_SCHEMA = 13
 2148     PARSE_SITE = 14
 2149     PARSE_DOMAIN = 15
 2150     PARSE_LOCATION = 16
 2151     PARSE_SECURITY_DOMAIN = 17
 2152     PARSE_ESCAPE = 18
 2153     PARSE_UNESCAPE = 19
 2154 end enum
 2155 
 2156 type PARSEACTION as _tagPARSEACTION
 2157 
 2158 type _tagPSUACTION as long
 2159 enum
 2160     PSU_DEFAULT = 1
 2161     PSU_SECURITY_URL_ONLY = 2
 2162 end enum
 2163 
 2164 type PSUACTION as _tagPSUACTION
 2165 
 2166 type _tagQUERYOPTION as long
 2167 enum
 2168     QUERY_EXPIRATION_DATE = 1
 2169     QUERY_TIME_OF_LAST_CHANGE = 2
 2170     QUERY_CONTENT_ENCODING = 3
 2171     QUERY_CONTENT_TYPE = 4
 2172     QUERY_REFRESH = 5
 2173     QUERY_RECOMBINE = 6
 2174     QUERY_CAN_NAVIGATE = 7
 2175     QUERY_USES_NETWORK = 8
 2176     QUERY_IS_CACHED = 9
 2177     QUERY_IS_INSTALLEDENTRY = 10
 2178     QUERY_IS_CACHED_OR_MAPPED = 11
 2179     QUERY_USES_CACHE = 12
 2180     QUERY_IS_SECURE = 13
 2181     QUERY_IS_SAFE = 14
 2182     QUERY_USES_HISTORYFOLDER = 15
 2183     QUERY_IS_CACHED_AND_USABLE_OFFLINE = 16
 2184 end enum
 2185 
 2186 type QUERYOPTION as _tagQUERYOPTION
 2187 extern IID_IInternetProtocolInfo as const GUID
 2188 
 2189 type IInternetProtocolInfoVtbl
 2190     QueryInterface as function(byval This as IInternetProtocolInfo ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2191     AddRef as function(byval This as IInternetProtocolInfo ptr) as ULONG
 2192     Release as function(byval This as IInternetProtocolInfo ptr) as ULONG
 2193     ParseUrl as function(byval This as IInternetProtocolInfo ptr, byval pwzUrl as LPCWSTR, byval ParseAction as PARSEACTION, byval dwParseFlags as DWORD, byval pwzResult as LPWSTR, byval cchResult as DWORD, byval pcchResult as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2194     CombineUrl as function(byval This as IInternetProtocolInfo ptr, byval pwzBaseUrl as LPCWSTR, byval pwzRelativeUrl as LPCWSTR, byval dwCombineFlags as DWORD, byval pwzResult as LPWSTR, byval cchResult as DWORD, byval pcchResult as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2195     CompareUrl as function(byval This as IInternetProtocolInfo ptr, byval pwzUrl1 as LPCWSTR, byval pwzUrl2 as LPCWSTR, byval dwCompareFlags as DWORD) as HRESULT
 2196     QueryInfo as function(byval This as IInternetProtocolInfo ptr, byval pwzUrl as LPCWSTR, byval OueryOption as QUERYOPTION, byval dwQueryFlags as DWORD, byval pBuffer as LPVOID, byval cbBuffer as DWORD, byval pcbBuf as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2197 end type
 2198 
 2199 type IInternetProtocolInfo_
 2200     lpVtbl as IInternetProtocolInfoVtbl ptr
 2201 end type
 2202 
 2203 #define IInternetProtocolInfo_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2204 #define IInternetProtocolInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
 2205 #define IInternetProtocolInfo_Release(This) (This)->lpVtbl->Release(This)
 2206 #define IInternetProtocolInfo_ParseUrl(This, pwzUrl, ParseAction, dwParseFlags, pwzResult, cchResult, pcchResult, dwReserved) (This)->lpVtbl->ParseUrl(This, pwzUrl, ParseAction, dwParseFlags, pwzResult, cchResult, pcchResult, dwReserved)
 2207 #define IInternetProtocolInfo_CombineUrl(This, pwzBaseUrl, pwzRelativeUrl, dwCombineFlags, pwzResult, cchResult, pcchResult, dwReserved) (This)->lpVtbl->CombineUrl(This, pwzBaseUrl, pwzRelativeUrl, dwCombineFlags, pwzResult, cchResult, pcchResult, dwReserved)
 2208 #define IInternetProtocolInfo_CompareUrl(This, pwzUrl1, pwzUrl2, dwCompareFlags) (This)->lpVtbl->CompareUrl(This, pwzUrl1, pwzUrl2, dwCompareFlags)
 2209 #define IInternetProtocolInfo_QueryInfo(This, pwzUrl, OueryOption, dwQueryFlags, pBuffer, cbBuffer, pcbBuf, dwReserved) (This)->lpVtbl->QueryInfo(This, pwzUrl, OueryOption, dwQueryFlags, pBuffer, cbBuffer, pcbBuf, dwReserved)
 2210 
 2211 declare function IInternetProtocolInfo_ParseUrl_Proxy(byval This as IInternetProtocolInfo ptr, byval pwzUrl as LPCWSTR, byval ParseAction as PARSEACTION, byval dwParseFlags as DWORD, byval pwzResult as LPWSTR, byval cchResult as DWORD, byval pcchResult as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2212 declare sub IInternetProtocolInfo_ParseUrl_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2213 declare function IInternetProtocolInfo_CombineUrl_Proxy(byval This as IInternetProtocolInfo ptr, byval pwzBaseUrl as LPCWSTR, byval pwzRelativeUrl as LPCWSTR, byval dwCombineFlags as DWORD, byval pwzResult as LPWSTR, byval cchResult as DWORD, byval pcchResult as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2214 declare sub IInternetProtocolInfo_CombineUrl_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2215 declare function IInternetProtocolInfo_CompareUrl_Proxy(byval This as IInternetProtocolInfo ptr, byval pwzUrl1 as LPCWSTR, byval pwzUrl2 as LPCWSTR, byval dwCompareFlags as DWORD) as HRESULT
 2216 declare sub IInternetProtocolInfo_CompareUrl_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2217 declare function IInternetProtocolInfo_QueryInfo_Proxy(byval This as IInternetProtocolInfo ptr, byval pwzUrl as LPCWSTR, byval OueryOption as QUERYOPTION, byval dwQueryFlags as DWORD, byval pBuffer as LPVOID, byval cbBuffer as DWORD, byval pcbBuf as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2218 declare sub IInternetProtocolInfo_QueryInfo_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2219 const PARSE_ENCODE = PARSE_ENCODE_IS_UNESCAPE
 2220 const PARSE_DECODE = PARSE_DECODE_IS_ESCAPE
 2221 
 2222 type IOInet as IInternet
 2223 type IOInetBindInfo as IInternetBindInfo
 2224 type IOInetBindInfoEx as IInternetBindInfoEx
 2225 type IOInetProtocolRoot as IInternetProtocolRoot
 2226 type IOInetProtocol as IInternetProtocol
 2227 
 2228 #if _WIN32_WINNT >= &h0600
 2229     type IOInetProtocolEx as IInternetProtocolEx
 2230 #endif
 2231 
 2232 type IOInetProtocolSink as IInternetProtocolSink
 2233 type IOInetProtocolInfo as IInternetProtocolInfo
 2234 type IOInetSession as IInternetSession
 2235 type IOInetPriority as IInternetPriority
 2236 type IOInetThreadSwitch as IInternetThreadSwitch
 2237 type IOInetProtocolSinkStackable as IInternetProtocolSinkStackable
 2238 type LPOINET as LPIINTERNET
 2239 type LPOINETPROTOCOLINFO as LPIINTERNETPROTOCOLINFO
 2240 type LPOINETBINDINFO as LPIINTERNETBINDINFO
 2241 type LPOINETPROTOCOLROOT as LPIINTERNETPROTOCOLROOT
 2242 type LPOINETPROTOCOL as LPIINTERNETPROTOCOL
 2243 
 2244 #if _WIN32_WINNT >= &h0600
 2245     #define LPOINETPROTOCOLEX LPIINTERNETPROTOCOLEX
 2246 #endif
 2247 
 2248 type LPOINETPROTOCOLSINK as LPIINTERNETPROTOCOLSINK
 2249 type LPOINETSESSION as LPIINTERNETSESSION
 2250 type LPOINETTHREADSWITCH as LPIINTERNETTHREADSWITCH
 2251 type LPOINETPRIORITY as LPIINTERNETPRIORITY
 2252 type LPOINETPROTOCOLINFO as LPIINTERNETPROTOCOLINFO
 2253 #define LPOINETPROTOCOLSINKSTACKABLE LPIINTERNETPROTOCOLSINKSTACKABLE
 2254 
 2255 extern IID_IOInet alias "IID_IInternet" as const GUID
 2256 extern IID_IOInetBindInfo alias "IID_IInternetBindInfo" as const GUID
 2257 extern IID_IOInetBindInfoEx alias "IID_IInternetBindInfoEx" as const GUID
 2258 extern IID_IOInetProtocolRoot alias "IID_IInternetProtocolRoot" as const GUID
 2259 extern IID_IOInetProtocol alias "IID_IInternetProtocol" as const GUID
 2260 
 2261 #if _WIN32_WINNT >= &h0600
 2262     extern IID_IOInetProtocolEx alias "IID_IInternetProtocolEx" as const GUID
 2263 #endif
 2264 
 2265 extern IID_IOInetProtocolSink alias "IID_IInternetProtocolSink" as const GUID
 2266 extern IID_IOInetProtocolInfo alias "IID_IInternetProtocolInfo" as const GUID
 2267 extern IID_IOInetSession alias "IID_IInternetSession" as const GUID
 2268 extern IID_IOInetPriority alias "IID_IInternetPriority" as const GUID
 2269 extern IID_IOInetThreadSwitch alias "IID_IInternetThreadSwitch" as const GUID
 2270 extern IID_IOInetProtocolSinkStackable alias "IID_IInternetProtocolSinkStackable" as const GUID
 2271 declare function CoInternetParseUrl(byval pwzUrl as LPCWSTR, byval ParseAction as PARSEACTION, byval dwFlags as DWORD, byval pszResult as LPWSTR, byval cchResult as DWORD, byval pcchResult as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2272 
 2273 #if _WIN32_WINNT >= &h0600
 2274     declare function CoInternetParseIUri(byval pIUri as IUri ptr, byval ParseAction as PARSEACTION, byval dwFlags as DWORD, byval pwzResult as LPWSTR, byval cchResult as DWORD, byval pcchResult as DWORD ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2275 #endif
 2276 
 2277 declare function CoInternetCombineUrl(byval pwzBaseUrl as LPCWSTR, byval pwzRelativeUrl as LPCWSTR, byval dwCombineFlags as DWORD, byval pszResult as LPWSTR, byval cchResult as DWORD, byval pcchResult as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2278 
 2279 #if _WIN32_WINNT >= &h0600
 2280     declare function CoInternetCombineUrlEx(byval pBaseUri as IUri ptr, byval pwzRelativeUrl as LPCWSTR, byval dwCombineFlags as DWORD, byval ppCombinedUri as IUri ptr ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2281     declare function CoInternetCombineIUri(byval pBaseUri as IUri ptr, byval pRelativeUri as IUri ptr, byval dwCombineFlags as DWORD, byval ppCombinedUri as IUri ptr ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2282 #endif
 2283 
 2284 declare function CoInternetCompareUrl(byval pwzUrl1 as LPCWSTR, byval pwzUrl2 as LPCWSTR, byval dwFlags as DWORD) as HRESULT
 2285 declare function CoInternetGetProtocolFlags(byval pwzUrl as LPCWSTR, byval pdwFlags as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2286 declare function CoInternetQueryInfo(byval pwzUrl as LPCWSTR, byval QueryOptions as QUERYOPTION, byval dwQueryFlags as DWORD, byval pvBuffer as LPVOID, byval cbBuffer as DWORD, byval pcbBuffer as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2287 declare function CoInternetGetSession(byval dwSessionMode as DWORD, byval ppIInternetSession as IInternetSession ptr ptr, byval dwReserved as DWORD) as HRESULT
 2288 declare function CoInternetGetSecurityUrl(byval pwszUrl as LPCWSTR, byval ppwszSecUrl as LPWSTR ptr, byval psuAction as PSUACTION, byval dwReserved as DWORD) as HRESULT
 2289 declare function AsyncInstallDistributionUnit(byval szDistUnit as LPCWSTR, byval szTYPE as LPCWSTR, byval szExt as LPCWSTR, byval dwFileVersionMS as DWORD, byval dwFileVersionLS as DWORD, byval szURL as LPCWSTR, byval pbc as IBindCtx ptr, byval pvReserved as LPVOID, byval flags as DWORD) as HRESULT
 2290 
 2291 #if _WIN32_WINNT >= &h0600
 2292     declare function CoInternetGetSecurityUrlEx(byval pUri as IUri ptr, byval ppSecUri as IUri ptr ptr, byval psuAction as PSUACTION, byval dwReserved as DWORD_PTR) as HRESULT
 2293     #define _INTERNETFEATURELIST_DEFINED
 2294 
 2295     type _tagINTERNETFEATURELIST as long
 2296     enum
 2297         FEATURE_OBJECT_CACHING = 0
 2298         FEATURE_ZONE_ELEVATION = 1
 2299         FEATURE_MIME_HANDLING = 2
 2300         FEATURE_MIME_SNIFFING = 3
 2301         FEATURE_WINDOW_RESTRICTIONS = 4
 2302         FEATURE_WEBOC_POPUPMANAGEMENT = 5
 2303         FEATURE_BEHAVIORS = 6
 2304         FEATURE_DISABLE_MK_PROTOCOL = 7
 2305         FEATURE_LOCALMACHINE_LOCKDOWN = 8
 2306         FEATURE_SECURITYBAND = 9
 2307         FEATURE_RESTRICT_ACTIVEXINSTALL = 10
 2308         FEATURE_VALIDATE_NAVIGATE_URL = 11
 2309         FEATURE_RESTRICT_FILEDOWNLOAD = 12
 2310         FEATURE_ADDON_MANAGEMENT = 13
 2311         FEATURE_PROTOCOL_LOCKDOWN = 14
 2312         FEATURE_HTTP_USERNAME_PASSWORD_DISABLE = 15
 2313         FEATURE_SAFE_BINDTOOBJECT = 16
 2314         FEATURE_UNC_SAVEDFILECHECK = 17
 2315         FEATURE_GET_URL_DOM_FILEPATH_UNENCODED = 18
 2316         FEATURE_TABBED_BROWSING = 19
 2317         FEATURE_SSLUX = 20
 2318         FEATURE_DISABLE_NAVIGATION_SOUNDS = 21
 2319         FEATURE_DISABLE_LEGACY_COMPRESSION = 22
 2320         FEATURE_FORCE_ADDR_AND_STATUS = 23
 2321         FEATURE_XMLHTTP = 24
 2322         FEATURE_DISABLE_TELNET_PROTOCOL = 25
 2323         FEATURE_FEEDS = 26
 2324         FEATURE_BLOCK_INPUT_PROMPTS = 27
 2325         FEATURE_ENTRY_COUNT = 28
 2326     end enum
 2327 
 2328     type INTERNETFEATURELIST as _tagINTERNETFEATURELIST
 2329     const SET_FEATURE_ON_THREAD = &h1
 2330     const SET_FEATURE_ON_PROCESS = &h2
 2331     const SET_FEATURE_IN_REGISTRY = &h4
 2332     const SET_FEATURE_ON_THREAD_LOCALMACHINE = &h8
 2333     const SET_FEATURE_ON_THREAD_INTRANET = &h10
 2334     const SET_FEATURE_ON_THREAD_TRUSTED = &h20
 2335     const SET_FEATURE_ON_THREAD_INTERNET = &h40
 2336     const SET_FEATURE_ON_THREAD_RESTRICTED = &h80
 2337     const GET_FEATURE_FROM_THREAD = &h1
 2338     const GET_FEATURE_FROM_PROCESS = &h2
 2339     const GET_FEATURE_FROM_REGISTRY = &h4
 2340     const GET_FEATURE_FROM_THREAD_LOCALMACHINE = &h8
 2341     const GET_FEATURE_FROM_THREAD_INTRANET = &h10
 2342     const GET_FEATURE_FROM_THREAD_TRUSTED = &h20
 2343     const GET_FEATURE_FROM_THREAD_INTERNET = &h40
 2344     const GET_FEATURE_FROM_THREAD_RESTRICTED = &h80
 2345     declare function CoInternetSetFeatureEnabled(byval FeatureEntry as INTERNETFEATURELIST, byval dwFlags as DWORD, byval fEnable as WINBOOL) as HRESULT
 2346     declare function CoInternetIsFeatureEnabled(byval FeatureEntry as INTERNETFEATURELIST, byval dwFlags as DWORD) as HRESULT
 2347     type IInternetSecurityManager as IInternetSecurityManager_
 2348     declare function CoInternetIsFeatureEnabledForUrl(byval FeatureEntry as INTERNETFEATURELIST, byval dwFlags as DWORD, byval szURL as LPCWSTR, byval pSecMgr as IInternetSecurityManager ptr) as HRESULT
 2349     type IInternetSecurityManagerEx2 as IInternetSecurityManagerEx2_
 2350     declare function CoInternetIsFeatureEnabledForIUri(byval FeatureEntry as INTERNETFEATURELIST, byval dwFlags as DWORD, byval pIUri as IUri ptr, byval pSecMgr as IInternetSecurityManagerEx2 ptr) as HRESULT
 2351     declare function CoInternetIsFeatureZoneElevationEnabled(byval szFromURL as LPCWSTR, byval szToURL as LPCWSTR, byval pSecMgr as IInternetSecurityManager ptr, byval dwFlags as DWORD) as HRESULT
 2352 #endif
 2353 
 2354 declare function CopyStgMedium(byval pcstgmedSrc as const STGMEDIUM ptr, byval pstgmedDest as STGMEDIUM ptr) as HRESULT
 2355 declare function CopyBindInfo(byval pcbiSrc as const BINDINFO ptr, byval pbiDest as BINDINFO ptr) as HRESULT
 2356 declare sub ReleaseBindInfo(byval pbindinfo as BINDINFO ptr)
 2357 
 2358 #define INET_E_USE_DEFAULT_PROTOCOLHANDLER _HRESULT_TYPEDEF_(&h800C0011)
 2359 #define INET_E_USE_DEFAULT_SETTING _HRESULT_TYPEDEF_(&h800C0012)
 2360 #define INET_E_DEFAULT_ACTION INET_E_USE_DEFAULT_PROTOCOLHANDLER
 2361 #define INET_E_QUERYOPTION_UNKNOWN _HRESULT_TYPEDEF_(&h800C0013)
 2362 #define INET_E_REDIRECTING _HRESULT_TYPEDEF_(&h800C0014)
 2363 declare function OInetParseUrl alias "CoInternetParseUrl"(byval pwzUrl as LPCWSTR, byval ParseAction as PARSEACTION, byval dwFlags as DWORD, byval pszResult as LPWSTR, byval cchResult as DWORD, byval pcchResult as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2364 declare function OInetCombineUrl alias "CoInternetCombineUrl"(byval pwzBaseUrl as LPCWSTR, byval pwzRelativeUrl as LPCWSTR, byval dwCombineFlags as DWORD, byval pszResult as LPWSTR, byval cchResult as DWORD, byval pcchResult as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2365 
 2366 #if _WIN32_WINNT >= &h0600
 2367     declare function OInetCombineUrlEx alias "CoInternetCombineUrlEx"(byval pBaseUri as IUri ptr, byval pwzRelativeUrl as LPCWSTR, byval dwCombineFlags as DWORD, byval ppCombinedUri as IUri ptr ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2368     declare function OInetCombineIUri alias "CoInternetCombineIUri"(byval pBaseUri as IUri ptr, byval pRelativeUri as IUri ptr, byval dwCombineFlags as DWORD, byval ppCombinedUri as IUri ptr ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2369 #endif
 2370 
 2371 declare function OInetCompareUrl alias "CoInternetCompareUrl"(byval pwzUrl1 as LPCWSTR, byval pwzUrl2 as LPCWSTR, byval dwFlags as DWORD) as HRESULT
 2372 declare function OInetQueryInfo alias "CoInternetQueryInfo"(byval pwzUrl as LPCWSTR, byval QueryOptions as QUERYOPTION, byval dwQueryFlags as DWORD, byval pvBuffer as LPVOID, byval cbBuffer as DWORD, byval pcbBuffer as DWORD ptr, byval dwReserved as DWORD) as HRESULT
 2373 declare function OInetGetSession alias "CoInternetGetSession"(byval dwSessionMode as DWORD, byval ppIInternetSession as IInternetSession ptr ptr, byval dwReserved as DWORD) as HRESULT
 2374 const PROTOCOLFLAG_NO_PICS_CHECK = &h1
 2375 
 2376 #if _WIN32_WINNT <= &h0502
 2377     type IInternetSecurityManager as IInternetSecurityManager_
 2378 #endif
 2379 
 2380 declare function CoInternetCreateSecurityManager(byval pSP as IServiceProvider ptr, byval ppSM as IInternetSecurityManager ptr ptr, byval dwReserved as DWORD) as HRESULT
 2381 type IInternetZoneManager as IInternetZoneManager_
 2382 declare function CoInternetCreateZoneManager(byval pSP as IServiceProvider ptr, byval ppZM as IInternetZoneManager ptr ptr, byval dwReserved as DWORD) as HRESULT
 2383 extern CLSID_InternetSecurityManager as const IID
 2384 extern CLSID_InternetZoneManager as const IID
 2385 
 2386 #if _WIN32_WINNT >= &h0600
 2387     extern CLSID_PersistentZoneIdentifier as const IID
 2388 #endif
 2389 
 2390 #define _LPINTERNETSECURITYMGRSITE_DEFINED
 2391 #define __IInternetSecurityMgrSite_INTERFACE_DEFINED__
 2392 extern IID_IInternetSecurityMgrSite as const GUID
 2393 type IInternetSecurityMgrSite as IInternetSecurityMgrSite_
 2394 
 2395 type IInternetSecurityMgrSiteVtbl
 2396     QueryInterface as function(byval This as IInternetSecurityMgrSite ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2397     AddRef as function(byval This as IInternetSecurityMgrSite ptr) as ULONG
 2398     Release as function(byval This as IInternetSecurityMgrSite ptr) as ULONG
 2399     GetWindow as function(byval This as IInternetSecurityMgrSite ptr, byval phwnd as HWND ptr) as HRESULT
 2400     EnableModeless as function(byval This as IInternetSecurityMgrSite ptr, byval fEnable as WINBOOL) as HRESULT
 2401 end type
 2402 
 2403 type IInternetSecurityMgrSite_
 2404     lpVtbl as IInternetSecurityMgrSiteVtbl ptr
 2405 end type
 2406 
 2407 #define IInternetSecurityMgrSite_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2408 #define IInternetSecurityMgrSite_AddRef(This) (This)->lpVtbl->AddRef(This)
 2409 #define IInternetSecurityMgrSite_Release(This) (This)->lpVtbl->Release(This)
 2410 #define IInternetSecurityMgrSite_GetWindow(This, phwnd) (This)->lpVtbl->GetWindow(This, phwnd)
 2411 #define IInternetSecurityMgrSite_EnableModeless(This, fEnable) (This)->lpVtbl->EnableModeless(This, fEnable)
 2412 
 2413 declare function IInternetSecurityMgrSite_GetWindow_Proxy(byval This as IInternetSecurityMgrSite ptr, byval phwnd as HWND ptr) as HRESULT
 2414 declare sub IInternetSecurityMgrSite_GetWindow_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2415 declare function IInternetSecurityMgrSite_EnableModeless_Proxy(byval This as IInternetSecurityMgrSite ptr, byval fEnable as WINBOOL) as HRESULT
 2416 declare sub IInternetSecurityMgrSite_EnableModeless_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2417 
 2418 #define _LPINTERNETSECURITYMANANGER_DEFINED
 2419 #define __IInternetSecurityManager_INTERFACE_DEFINED__
 2420 const MUTZ_NOSAVEDFILECHECK = &h1
 2421 const MUTZ_ISFILE = &h2
 2422 const MUTZ_ACCEPT_WILDCARD_SCHEME = &h80
 2423 const MUTZ_ENFORCERESTRICTED = &h100
 2424 const MUTZ_RESERVED = &h200
 2425 const MUTZ_REQUIRESAVEDFILECHECK = &h400
 2426 const MUTZ_DONT_UNESCAPE = &h800
 2427 const MUTZ_DONT_USE_CACHE = &h1000
 2428 const MUTZ_FORCE_INTRANET_FLAGS = &h2000
 2429 const MUTZ_IGNORE_ZONE_MAPPINGS = &h4000
 2430 const MAX_SIZE_SECURITY_ID = 512
 2431 
 2432 type __WIDL_urlmon_generated_name_0000000E as long
 2433 enum
 2434     PUAF_DEFAULT = &h0
 2435     PUAF_NOUI = &h1
 2436     PUAF_ISFILE = &h2
 2437     PUAF_WARN_IF_DENIED = &h4
 2438     PUAF_FORCEUI_FOREGROUND = &h8
 2439     PUAF_CHECK_TIFS = &h10
 2440     PUAF_DONTCHECKBOXINDIALOG = &h20
 2441     PUAF_TRUSTED = &h40
 2442     PUAF_ACCEPT_WILDCARD_SCHEME = &h80
 2443     PUAF_ENFORCERESTRICTED = &h100
 2444     PUAF_NOSAVEDFILECHECK = &h200
 2445     PUAF_REQUIRESAVEDFILECHECK = &h400
 2446     PUAF_DONT_USE_CACHE = &h1000
 2447     PUAF_RESERVED1 = &h2000
 2448     PUAF_RESERVED2 = &h4000
 2449     PUAF_LMZ_UNLOCKED = &h10000
 2450     PUAF_LMZ_LOCKED = &h20000
 2451     PUAF_DEFAULTZONEPOL = &h40000
 2452     PUAF_NPL_USE_LOCKED_IF_RESTRICTED = &h80000
 2453     PUAF_NOUIIFLOCKED = &h100000
 2454     PUAF_DRAGPROTOCOLCHECK = &h200000
 2455 end enum
 2456 
 2457 type PUAF as __WIDL_urlmon_generated_name_0000000E
 2458 
 2459 type __WIDL_urlmon_generated_name_0000000F as long
 2460 enum
 2461     PUAFOUT_DEFAULT = &h0
 2462     PUAFOUT_ISLOCKZONEPOLICY = &h1
 2463 end enum
 2464 
 2465 type PUAFOUT as __WIDL_urlmon_generated_name_0000000F
 2466 
 2467 type __WIDL_urlmon_generated_name_00000010 as long
 2468 enum
 2469     SZM_CREATE = &h0
 2470     SZM_DELETE = &h1
 2471 end enum
 2472 
 2473 type SZM_FLAGS as __WIDL_urlmon_generated_name_00000010
 2474 extern IID_IInternetSecurityManager as const GUID
 2475 extern SID_SInternetSecurityManager alias "IID_IInternetSecurityManager" as const GUID
 2476 
 2477 type IInternetSecurityManagerVtbl
 2478     QueryInterface as function(byval This as IInternetSecurityManager ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2479     AddRef as function(byval This as IInternetSecurityManager ptr) as ULONG
 2480     Release as function(byval This as IInternetSecurityManager ptr) as ULONG
 2481     SetSecuritySite as function(byval This as IInternetSecurityManager ptr, byval pSite as IInternetSecurityMgrSite ptr) as HRESULT
 2482     GetSecuritySite as function(byval This as IInternetSecurityManager ptr, byval ppSite as IInternetSecurityMgrSite ptr ptr) as HRESULT
 2483     MapUrlToZone as function(byval This as IInternetSecurityManager ptr, byval pwszUrl as LPCWSTR, byval pdwZone as DWORD ptr, byval dwFlags as DWORD) as HRESULT
 2484     GetSecurityId as function(byval This as IInternetSecurityManager ptr, byval pwszUrl as LPCWSTR, byval pbSecurityId as UBYTE ptr, byval pcbSecurityId as DWORD ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2485     ProcessUrlAction as function(byval This as IInternetSecurityManager ptr, byval pwszUrl as LPCWSTR, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwFlags as DWORD, byval dwReserved as DWORD) as HRESULT
 2486     QueryCustomPolicy as function(byval This as IInternetSecurityManager ptr, byval pwszUrl as LPCWSTR, byval guidKey as const GUID const ptr, byval ppPolicy as UBYTE ptr ptr, byval pcbPolicy as DWORD ptr, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwReserved as DWORD) as HRESULT
 2487     SetZoneMapping as function(byval This as IInternetSecurityManager ptr, byval dwZone as DWORD, byval lpszPattern as LPCWSTR, byval dwFlags as DWORD) as HRESULT
 2488     GetZoneMappings as function(byval This as IInternetSecurityManager ptr, byval dwZone as DWORD, byval ppenumString as IEnumString ptr ptr, byval dwFlags as DWORD) as HRESULT
 2489 end type
 2490 
 2491 type IInternetSecurityManager_
 2492     lpVtbl as IInternetSecurityManagerVtbl ptr
 2493 end type
 2494 
 2495 #define IInternetSecurityManager_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2496 #define IInternetSecurityManager_AddRef(This) (This)->lpVtbl->AddRef(This)
 2497 #define IInternetSecurityManager_Release(This) (This)->lpVtbl->Release(This)
 2498 #define IInternetSecurityManager_SetSecuritySite(This, pSite) (This)->lpVtbl->SetSecuritySite(This, pSite)
 2499 #define IInternetSecurityManager_GetSecuritySite(This, ppSite) (This)->lpVtbl->GetSecuritySite(This, ppSite)
 2500 #define IInternetSecurityManager_MapUrlToZone(This, pwszUrl, pdwZone, dwFlags) (This)->lpVtbl->MapUrlToZone(This, pwszUrl, pdwZone, dwFlags)
 2501 #define IInternetSecurityManager_GetSecurityId(This, pwszUrl, pbSecurityId, pcbSecurityId, dwReserved) (This)->lpVtbl->GetSecurityId(This, pwszUrl, pbSecurityId, pcbSecurityId, dwReserved)
 2502 #define IInternetSecurityManager_ProcessUrlAction(This, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved) (This)->lpVtbl->ProcessUrlAction(This, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved)
 2503 #define IInternetSecurityManager_QueryCustomPolicy(This, pwszUrl, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved) (This)->lpVtbl->QueryCustomPolicy(This, pwszUrl, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved)
 2504 #define IInternetSecurityManager_SetZoneMapping(This, dwZone, lpszPattern, dwFlags) (This)->lpVtbl->SetZoneMapping(This, dwZone, lpszPattern, dwFlags)
 2505 #define IInternetSecurityManager_GetZoneMappings(This, dwZone, ppenumString, dwFlags) (This)->lpVtbl->GetZoneMappings(This, dwZone, ppenumString, dwFlags)
 2506 
 2507 declare function IInternetSecurityManager_SetSecuritySite_Proxy(byval This as IInternetSecurityManager ptr, byval pSite as IInternetSecurityMgrSite ptr) as HRESULT
 2508 declare sub IInternetSecurityManager_SetSecuritySite_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2509 declare function IInternetSecurityManager_GetSecuritySite_Proxy(byval This as IInternetSecurityManager ptr, byval ppSite as IInternetSecurityMgrSite ptr ptr) as HRESULT
 2510 declare sub IInternetSecurityManager_GetSecuritySite_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2511 declare function IInternetSecurityManager_MapUrlToZone_Proxy(byval This as IInternetSecurityManager ptr, byval pwszUrl as LPCWSTR, byval pdwZone as DWORD ptr, byval dwFlags as DWORD) as HRESULT
 2512 declare sub IInternetSecurityManager_MapUrlToZone_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2513 declare function IInternetSecurityManager_GetSecurityId_Proxy(byval This as IInternetSecurityManager ptr, byval pwszUrl as LPCWSTR, byval pbSecurityId as UBYTE ptr, byval pcbSecurityId as DWORD ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2514 declare sub IInternetSecurityManager_GetSecurityId_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2515 declare function IInternetSecurityManager_ProcessUrlAction_Proxy(byval This as IInternetSecurityManager ptr, byval pwszUrl as LPCWSTR, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwFlags as DWORD, byval dwReserved as DWORD) as HRESULT
 2516 declare sub IInternetSecurityManager_ProcessUrlAction_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2517 declare function IInternetSecurityManager_QueryCustomPolicy_Proxy(byval This as IInternetSecurityManager ptr, byval pwszUrl as LPCWSTR, byval guidKey as const GUID const ptr, byval ppPolicy as UBYTE ptr ptr, byval pcbPolicy as DWORD ptr, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwReserved as DWORD) as HRESULT
 2518 declare sub IInternetSecurityManager_QueryCustomPolicy_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2519 declare function IInternetSecurityManager_SetZoneMapping_Proxy(byval This as IInternetSecurityManager ptr, byval dwZone as DWORD, byval lpszPattern as LPCWSTR, byval dwFlags as DWORD) as HRESULT
 2520 declare sub IInternetSecurityManager_SetZoneMapping_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2521 declare function IInternetSecurityManager_GetZoneMappings_Proxy(byval This as IInternetSecurityManager ptr, byval dwZone as DWORD, byval ppenumString as IEnumString ptr ptr, byval dwFlags as DWORD) as HRESULT
 2522 declare sub IInternetSecurityManager_GetZoneMappings_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2523 
 2524 #if _WIN32_WINNT >= &h0600
 2525     #define _LPINTERNETSECURITYMANANGEREX_DEFINED
 2526     #define __IInternetSecurityManagerEx_INTERFACE_DEFINED__
 2527     extern IID_IInternetSecurityManagerEx as const GUID
 2528     extern SID_SInternetSecurityManagerEx alias "IID_IInternetSecurityManagerEx" as const GUID
 2529     type IInternetSecurityManagerEx as IInternetSecurityManagerEx_
 2530 
 2531     type IInternetSecurityManagerExVtbl
 2532         QueryInterface as function(byval This as IInternetSecurityManagerEx ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2533         AddRef as function(byval This as IInternetSecurityManagerEx ptr) as ULONG
 2534         Release as function(byval This as IInternetSecurityManagerEx ptr) as ULONG
 2535         SetSecuritySite as function(byval This as IInternetSecurityManagerEx ptr, byval pSite as IInternetSecurityMgrSite ptr) as HRESULT
 2536         GetSecuritySite as function(byval This as IInternetSecurityManagerEx ptr, byval ppSite as IInternetSecurityMgrSite ptr ptr) as HRESULT
 2537         MapUrlToZone as function(byval This as IInternetSecurityManagerEx ptr, byval pwszUrl as LPCWSTR, byval pdwZone as DWORD ptr, byval dwFlags as DWORD) as HRESULT
 2538         GetSecurityId as function(byval This as IInternetSecurityManagerEx ptr, byval pwszUrl as LPCWSTR, byval pbSecurityId as UBYTE ptr, byval pcbSecurityId as DWORD ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2539         ProcessUrlAction as function(byval This as IInternetSecurityManagerEx ptr, byval pwszUrl as LPCWSTR, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwFlags as DWORD, byval dwReserved as DWORD) as HRESULT
 2540         QueryCustomPolicy as function(byval This as IInternetSecurityManagerEx ptr, byval pwszUrl as LPCWSTR, byval guidKey as const GUID const ptr, byval ppPolicy as UBYTE ptr ptr, byval pcbPolicy as DWORD ptr, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwReserved as DWORD) as HRESULT
 2541         SetZoneMapping as function(byval This as IInternetSecurityManagerEx ptr, byval dwZone as DWORD, byval lpszPattern as LPCWSTR, byval dwFlags as DWORD) as HRESULT
 2542         GetZoneMappings as function(byval This as IInternetSecurityManagerEx ptr, byval dwZone as DWORD, byval ppenumString as IEnumString ptr ptr, byval dwFlags as DWORD) as HRESULT
 2543         ProcessUrlActionEx as function(byval This as IInternetSecurityManagerEx ptr, byval pwszUrl as LPCWSTR, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwFlags as DWORD, byval dwReserved as DWORD, byval pdwOutFlags as DWORD ptr) as HRESULT
 2544     end type
 2545 
 2546     type IInternetSecurityManagerEx_
 2547         lpVtbl as IInternetSecurityManagerExVtbl ptr
 2548     end type
 2549 
 2550     #define IInternetSecurityManagerEx_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2551     #define IInternetSecurityManagerEx_AddRef(This) (This)->lpVtbl->AddRef(This)
 2552     #define IInternetSecurityManagerEx_Release(This) (This)->lpVtbl->Release(This)
 2553     #define IInternetSecurityManagerEx_SetSecuritySite(This, pSite) (This)->lpVtbl->SetSecuritySite(This, pSite)
 2554     #define IInternetSecurityManagerEx_GetSecuritySite(This, ppSite) (This)->lpVtbl->GetSecuritySite(This, ppSite)
 2555     #define IInternetSecurityManagerEx_MapUrlToZone(This, pwszUrl, pdwZone, dwFlags) (This)->lpVtbl->MapUrlToZone(This, pwszUrl, pdwZone, dwFlags)
 2556     #define IInternetSecurityManagerEx_GetSecurityId(This, pwszUrl, pbSecurityId, pcbSecurityId, dwReserved) (This)->lpVtbl->GetSecurityId(This, pwszUrl, pbSecurityId, pcbSecurityId, dwReserved)
 2557     #define IInternetSecurityManagerEx_ProcessUrlAction(This, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved) (This)->lpVtbl->ProcessUrlAction(This, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved)
 2558     #define IInternetSecurityManagerEx_QueryCustomPolicy(This, pwszUrl, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved) (This)->lpVtbl->QueryCustomPolicy(This, pwszUrl, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved)
 2559     #define IInternetSecurityManagerEx_SetZoneMapping(This, dwZone, lpszPattern, dwFlags) (This)->lpVtbl->SetZoneMapping(This, dwZone, lpszPattern, dwFlags)
 2560     #define IInternetSecurityManagerEx_GetZoneMappings(This, dwZone, ppenumString, dwFlags) (This)->lpVtbl->GetZoneMappings(This, dwZone, ppenumString, dwFlags)
 2561     #define IInternetSecurityManagerEx_ProcessUrlActionEx(This, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved, pdwOutFlags) (This)->lpVtbl->ProcessUrlActionEx(This, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved, pdwOutFlags)
 2562     declare function IInternetSecurityManagerEx_ProcessUrlActionEx_Proxy(byval This as IInternetSecurityManagerEx ptr, byval pwszUrl as LPCWSTR, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwFlags as DWORD, byval dwReserved as DWORD, byval pdwOutFlags as DWORD ptr) as HRESULT
 2563     declare sub IInternetSecurityManagerEx_ProcessUrlActionEx_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2564     #define _LPINTERNETSECURITYMANANGEREx2_DEFINED
 2565     #define __IInternetSecurityManagerEx2_INTERFACE_DEFINED__
 2566     extern IID_IInternetSecurityManagerEx2 as const GUID
 2567     extern SID_SInternetSecurityManagerEx2 alias "IID_IInternetSecurityManagerEx2" as const GUID
 2568 
 2569     type IInternetSecurityManagerEx2Vtbl
 2570         QueryInterface as function(byval This as IInternetSecurityManagerEx2 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2571         AddRef as function(byval This as IInternetSecurityManagerEx2 ptr) as ULONG
 2572         Release as function(byval This as IInternetSecurityManagerEx2 ptr) as ULONG
 2573         SetSecuritySite as function(byval This as IInternetSecurityManagerEx2 ptr, byval pSite as IInternetSecurityMgrSite ptr) as HRESULT
 2574         GetSecuritySite as function(byval This as IInternetSecurityManagerEx2 ptr, byval ppSite as IInternetSecurityMgrSite ptr ptr) as HRESULT
 2575         MapUrlToZone as function(byval This as IInternetSecurityManagerEx2 ptr, byval pwszUrl as LPCWSTR, byval pdwZone as DWORD ptr, byval dwFlags as DWORD) as HRESULT
 2576         GetSecurityId as function(byval This as IInternetSecurityManagerEx2 ptr, byval pwszUrl as LPCWSTR, byval pbSecurityId as UBYTE ptr, byval pcbSecurityId as DWORD ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2577         ProcessUrlAction as function(byval This as IInternetSecurityManagerEx2 ptr, byval pwszUrl as LPCWSTR, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwFlags as DWORD, byval dwReserved as DWORD) as HRESULT
 2578         QueryCustomPolicy as function(byval This as IInternetSecurityManagerEx2 ptr, byval pwszUrl as LPCWSTR, byval guidKey as const GUID const ptr, byval ppPolicy as UBYTE ptr ptr, byval pcbPolicy as DWORD ptr, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwReserved as DWORD) as HRESULT
 2579         SetZoneMapping as function(byval This as IInternetSecurityManagerEx2 ptr, byval dwZone as DWORD, byval lpszPattern as LPCWSTR, byval dwFlags as DWORD) as HRESULT
 2580         GetZoneMappings as function(byval This as IInternetSecurityManagerEx2 ptr, byval dwZone as DWORD, byval ppenumString as IEnumString ptr ptr, byval dwFlags as DWORD) as HRESULT
 2581         ProcessUrlActionEx as function(byval This as IInternetSecurityManagerEx2 ptr, byval pwszUrl as LPCWSTR, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwFlags as DWORD, byval dwReserved as DWORD, byval pdwOutFlags as DWORD ptr) as HRESULT
 2582         MapUrlToZoneEx2 as function(byval This as IInternetSecurityManagerEx2 ptr, byval pUri as IUri ptr, byval pdwZone as DWORD ptr, byval dwFlags as DWORD, byval ppwszMappedUrl as LPWSTR ptr, byval pdwOutFlags as DWORD ptr) as HRESULT
 2583         ProcessUrlActionEx2 as function(byval This as IInternetSecurityManagerEx2 ptr, byval pUri as IUri ptr, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwFlags as DWORD, byval dwReserved as DWORD_PTR, byval pdwOutFlags as DWORD ptr) as HRESULT
 2584         GetSecurityIdEx2 as function(byval This as IInternetSecurityManagerEx2 ptr, byval pUri as IUri ptr, byval pbSecurityId as UBYTE ptr, byval pcbSecurityId as DWORD ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2585         QueryCustomPolicyEx2 as function(byval This as IInternetSecurityManagerEx2 ptr, byval pUri as IUri ptr, byval guidKey as const GUID const ptr, byval ppPolicy as UBYTE ptr ptr, byval pcbPolicy as DWORD ptr, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwReserved as DWORD_PTR) as HRESULT
 2586     end type
 2587 
 2588     type IInternetSecurityManagerEx2_
 2589         lpVtbl as IInternetSecurityManagerEx2Vtbl ptr
 2590     end type
 2591 
 2592     #define IInternetSecurityManagerEx2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2593     #define IInternetSecurityManagerEx2_AddRef(This) (This)->lpVtbl->AddRef(This)
 2594     #define IInternetSecurityManagerEx2_Release(This) (This)->lpVtbl->Release(This)
 2595     #define IInternetSecurityManagerEx2_SetSecuritySite(This, pSite) (This)->lpVtbl->SetSecuritySite(This, pSite)
 2596     #define IInternetSecurityManagerEx2_GetSecuritySite(This, ppSite) (This)->lpVtbl->GetSecuritySite(This, ppSite)
 2597     #define IInternetSecurityManagerEx2_MapUrlToZone(This, pwszUrl, pdwZone, dwFlags) (This)->lpVtbl->MapUrlToZone(This, pwszUrl, pdwZone, dwFlags)
 2598     #define IInternetSecurityManagerEx2_GetSecurityId(This, pwszUrl, pbSecurityId, pcbSecurityId, dwReserved) (This)->lpVtbl->GetSecurityId(This, pwszUrl, pbSecurityId, pcbSecurityId, dwReserved)
 2599     #define IInternetSecurityManagerEx2_ProcessUrlAction(This, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved) (This)->lpVtbl->ProcessUrlAction(This, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved)
 2600     #define IInternetSecurityManagerEx2_QueryCustomPolicy(This, pwszUrl, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved) (This)->lpVtbl->QueryCustomPolicy(This, pwszUrl, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved)
 2601     #define IInternetSecurityManagerEx2_SetZoneMapping(This, dwZone, lpszPattern, dwFlags) (This)->lpVtbl->SetZoneMapping(This, dwZone, lpszPattern, dwFlags)
 2602     #define IInternetSecurityManagerEx2_GetZoneMappings(This, dwZone, ppenumString, dwFlags) (This)->lpVtbl->GetZoneMappings(This, dwZone, ppenumString, dwFlags)
 2603     #define IInternetSecurityManagerEx2_ProcessUrlActionEx(This, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved, pdwOutFlags) (This)->lpVtbl->ProcessUrlActionEx(This, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved, pdwOutFlags)
 2604     #define IInternetSecurityManagerEx2_MapUrlToZoneEx2(This, pUri, pdwZone, dwFlags, ppwszMappedUrl, pdwOutFlags) (This)->lpVtbl->MapUrlToZoneEx2(This, pUri, pdwZone, dwFlags, ppwszMappedUrl, pdwOutFlags)
 2605     #define IInternetSecurityManagerEx2_ProcessUrlActionEx2(This, pUri, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved, pdwOutFlags) (This)->lpVtbl->ProcessUrlActionEx2(This, pUri, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved, pdwOutFlags)
 2606     #define IInternetSecurityManagerEx2_GetSecurityIdEx2(This, pUri, pbSecurityId, pcbSecurityId, dwReserved) (This)->lpVtbl->GetSecurityIdEx2(This, pUri, pbSecurityId, pcbSecurityId, dwReserved)
 2607     #define IInternetSecurityManagerEx2_QueryCustomPolicyEx2(This, pUri, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved) (This)->lpVtbl->QueryCustomPolicyEx2(This, pUri, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved)
 2608 
 2609     declare function IInternetSecurityManagerEx2_MapUrlToZoneEx2_Proxy(byval This as IInternetSecurityManagerEx2 ptr, byval pUri as IUri ptr, byval pdwZone as DWORD ptr, byval dwFlags as DWORD, byval ppwszMappedUrl as LPWSTR ptr, byval pdwOutFlags as DWORD ptr) as HRESULT
 2610     declare sub IInternetSecurityManagerEx2_MapUrlToZoneEx2_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2611     declare function IInternetSecurityManagerEx2_ProcessUrlActionEx2_Proxy(byval This as IInternetSecurityManagerEx2 ptr, byval pUri as IUri ptr, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwFlags as DWORD, byval dwReserved as DWORD_PTR, byval pdwOutFlags as DWORD ptr) as HRESULT
 2612     declare sub IInternetSecurityManagerEx2_ProcessUrlActionEx2_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2613     declare function IInternetSecurityManagerEx2_GetSecurityIdEx2_Proxy(byval This as IInternetSecurityManagerEx2 ptr, byval pUri as IUri ptr, byval pbSecurityId as UBYTE ptr, byval pcbSecurityId as DWORD ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2614     declare sub IInternetSecurityManagerEx2_GetSecurityIdEx2_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2615     declare function IInternetSecurityManagerEx2_QueryCustomPolicyEx2_Proxy(byval This as IInternetSecurityManagerEx2 ptr, byval pUri as IUri ptr, byval guidKey as const GUID const ptr, byval ppPolicy as UBYTE ptr ptr, byval pcbPolicy as DWORD ptr, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwReserved as DWORD_PTR) as HRESULT
 2616     declare sub IInternetSecurityManagerEx2_QueryCustomPolicyEx2_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2617     #define __IZoneIdentifier_INTERFACE_DEFINED__
 2618     extern IID_IZoneIdentifier as const GUID
 2619     type IZoneIdentifier as IZoneIdentifier_
 2620 
 2621     type IZoneIdentifierVtbl
 2622         QueryInterface as function(byval This as IZoneIdentifier ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2623         AddRef as function(byval This as IZoneIdentifier ptr) as ULONG
 2624         Release as function(byval This as IZoneIdentifier ptr) as ULONG
 2625         GetId as function(byval This as IZoneIdentifier ptr, byval pdwZone as DWORD ptr) as HRESULT
 2626         SetId as function(byval This as IZoneIdentifier ptr, byval dwZone as DWORD) as HRESULT
 2627         Remove as function(byval This as IZoneIdentifier ptr) as HRESULT
 2628     end type
 2629 
 2630     type IZoneIdentifier_
 2631         lpVtbl as IZoneIdentifierVtbl ptr
 2632     end type
 2633 
 2634     #define IZoneIdentifier_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2635     #define IZoneIdentifier_AddRef(This) (This)->lpVtbl->AddRef(This)
 2636     #define IZoneIdentifier_Release(This) (This)->lpVtbl->Release(This)
 2637     #define IZoneIdentifier_GetId(This, pdwZone) (This)->lpVtbl->GetId(This, pdwZone)
 2638     #define IZoneIdentifier_SetId(This, dwZone) (This)->lpVtbl->SetId(This, dwZone)
 2639     #define IZoneIdentifier_Remove(This) (This)->lpVtbl->Remove(This)
 2640 
 2641     declare function IZoneIdentifier_GetId_Proxy(byval This as IZoneIdentifier ptr, byval pdwZone as DWORD ptr) as HRESULT
 2642     declare sub IZoneIdentifier_GetId_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2643     declare function IZoneIdentifier_SetId_Proxy(byval This as IZoneIdentifier ptr, byval dwZone as DWORD) as HRESULT
 2644     declare sub IZoneIdentifier_SetId_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2645     declare function IZoneIdentifier_Remove_Proxy(byval This as IZoneIdentifier ptr) as HRESULT
 2646     declare sub IZoneIdentifier_Remove_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2647 #endif
 2648 
 2649 #define _LPINTERNETHOSTSECURITYMANANGER_DEFINED
 2650 #define __IInternetHostSecurityManager_INTERFACE_DEFINED__
 2651 extern IID_IInternetHostSecurityManager as const GUID
 2652 extern SID_SInternetHostSecurityManager alias "IID_IInternetHostSecurityManager" as const GUID
 2653 type IInternetHostSecurityManager as IInternetHostSecurityManager_
 2654 
 2655 type IInternetHostSecurityManagerVtbl
 2656     QueryInterface as function(byval This as IInternetHostSecurityManager ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2657     AddRef as function(byval This as IInternetHostSecurityManager ptr) as ULONG
 2658     Release as function(byval This as IInternetHostSecurityManager ptr) as ULONG
 2659     GetSecurityId as function(byval This as IInternetHostSecurityManager ptr, byval pbSecurityId as UBYTE ptr, byval pcbSecurityId as DWORD ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2660     ProcessUrlAction as function(byval This as IInternetHostSecurityManager ptr, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwFlags as DWORD, byval dwReserved as DWORD) as HRESULT
 2661     QueryCustomPolicy as function(byval This as IInternetHostSecurityManager ptr, byval guidKey as const GUID const ptr, byval ppPolicy as UBYTE ptr ptr, byval pcbPolicy as DWORD ptr, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwReserved as DWORD) as HRESULT
 2662 end type
 2663 
 2664 type IInternetHostSecurityManager_
 2665     lpVtbl as IInternetHostSecurityManagerVtbl ptr
 2666 end type
 2667 
 2668 #define IInternetHostSecurityManager_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2669 #define IInternetHostSecurityManager_AddRef(This) (This)->lpVtbl->AddRef(This)
 2670 #define IInternetHostSecurityManager_Release(This) (This)->lpVtbl->Release(This)
 2671 #define IInternetHostSecurityManager_GetSecurityId(This, pbSecurityId, pcbSecurityId, dwReserved) (This)->lpVtbl->GetSecurityId(This, pbSecurityId, pcbSecurityId, dwReserved)
 2672 #define IInternetHostSecurityManager_ProcessUrlAction(This, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved) (This)->lpVtbl->ProcessUrlAction(This, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved)
 2673 #define IInternetHostSecurityManager_QueryCustomPolicy(This, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved) (This)->lpVtbl->QueryCustomPolicy(This, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved)
 2674 
 2675 declare function IInternetHostSecurityManager_GetSecurityId_Proxy(byval This as IInternetHostSecurityManager ptr, byval pbSecurityId as UBYTE ptr, byval pcbSecurityId as DWORD ptr, byval dwReserved as DWORD_PTR) as HRESULT
 2676 declare sub IInternetHostSecurityManager_GetSecurityId_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2677 declare function IInternetHostSecurityManager_ProcessUrlAction_Proxy(byval This as IInternetHostSecurityManager ptr, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwFlags as DWORD, byval dwReserved as DWORD) as HRESULT
 2678 declare sub IInternetHostSecurityManager_ProcessUrlAction_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2679 declare function IInternetHostSecurityManager_QueryCustomPolicy_Proxy(byval This as IInternetHostSecurityManager ptr, byval guidKey as const GUID const ptr, byval ppPolicy as UBYTE ptr ptr, byval pcbPolicy as DWORD ptr, byval pContext as UBYTE ptr, byval cbContext as DWORD, byval dwReserved as DWORD) as HRESULT
 2680 declare sub IInternetHostSecurityManager_QueryCustomPolicy_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2681 
 2682 const URLACTION_MIN = &h1000
 2683 const URLACTION_DOWNLOAD_MIN = &h1000
 2684 const URLACTION_DOWNLOAD_SIGNED_ACTIVEX = &h1001
 2685 const URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX = &h1004
 2686 const URLACTION_DOWNLOAD_CURR_MAX = &h1004
 2687 const URLACTION_DOWNLOAD_MAX = &h11FF
 2688 const URLACTION_ACTIVEX_MIN = &h1200
 2689 const URLACTION_ACTIVEX_RUN = &h1200
 2690 const URLPOLICY_ACTIVEX_CHECK_LIST = &h10000
 2691 const URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY = &h1201
 2692 const URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY = &h1202
 2693 const URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY = &h1203
 2694 const URLACTION_SCRIPT_OVERRIDE_SAFETY = &h1401
 2695 const URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY = &h1204
 2696 const URLACTION_ACTIVEX_TREATASUNTRUSTED = &h1205
 2697 const URLACTION_ACTIVEX_NO_WEBOC_SCRIPT = &h1206
 2698 const URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION = &h1207
 2699 const URLACTION_ACTIVEX_OVERRIDE_OPTIN = &h1208
 2700 const URLACTION_ACTIVEX_SCRIPTLET_RUN = &h1209
 2701 const URLACTION_ACTIVEX_DYNSRC_VIDEO_AND_ANIMATION = &h120A
 2702 const URLACTION_ACTIVEX_OVERRIDE_DOMAINLIST = &h120B
 2703 const URLACTION_ACTIVEX_CURR_MAX = &h120B
 2704 const URLACTION_ACTIVEX_MAX = &h13ff
 2705 const URLACTION_SCRIPT_MIN = &h1400
 2706 const URLACTION_SCRIPT_RUN = &h1400
 2707 const URLACTION_SCRIPT_JAVA_USE = &h1402
 2708 const URLACTION_SCRIPT_SAFE_ACTIVEX = &h1405
 2709 const URLACTION_CROSS_DOMAIN_DATA = &h1406
 2710 const URLACTION_SCRIPT_PASTE = &h1407
 2711 const URLACTION_ALLOW_XDOMAIN_SUBFRAME_RESIZE = &h1408
 2712 const URLACTION_SCRIPT_XSSFILTER = &h1409
 2713 const URLACTION_SCRIPT_NAVIGATE = &h140A
 2714 const URLACTION_PLUGGABLE_PROTOCOL_XHR = &h140B
 2715 const URLACTION_SCRIPT_CURR_MAX = &h140B
 2716 const URLACTION_SCRIPT_MAX = &h15ff
 2717 const URLACTION_HTML_MIN = &h1600
 2718 const URLACTION_HTML_SUBMIT_FORMS = &h1601
 2719 const URLACTION_HTML_SUBMIT_FORMS_FROM = &h1602
 2720 const URLACTION_HTML_SUBMIT_FORMS_TO = &h1603
 2721 const URLACTION_HTML_FONT_DOWNLOAD = &h1604
 2722 const URLACTION_HTML_JAVA_RUN = &h1605
 2723 const URLACTION_HTML_USERDATA_SAVE = &h1606
 2724 const URLACTION_HTML_SUBFRAME_NAVIGATE = &h1607
 2725 const URLACTION_HTML_META_REFRESH = &h1608
 2726 const URLACTION_HTML_MIXED_CONTENT = &h1609
 2727 const URLACTION_HTML_INCLUDE_FILE_PATH = &h160A
 2728 const URLACTION_HTML_ALLOW_INJECTED_DYNAMIC_HTML = &h160B
 2729 const URLACTION_HTML_REQUIRE_UTF8_DOCUMENT_CODEPAGE = &h160C
 2730 const URLACTION_HTML_ALLOW_CROSS_DOMAIN_CANVAS = &h160D
 2731 const URLACTION_HTML_ALLOW_WINDOW_CLOSE = &h160E
 2732 const URLACTION_HTML_ALLOW_CROSS_DOMAIN_WEBWORKER = &h160F
 2733 const URLACTION_HTML_ALLOW_CROSS_DOMAIN_TEXTTRACK = &h1610
 2734 const URLACTION_HTML_ALLOW_INDEXEDDB = &h1611
 2735 const URLACTION_HTML_MAX = &h17ff
 2736 const URLACTION_SHELL_MIN = &h1800
 2737 const URLACTION_SHELL_INSTALL_DTITEMS = &h1800
 2738 const URLACTION_SHELL_MOVE_OR_COPY = &h1802
 2739 const URLACTION_SHELL_FILE_DOWNLOAD = &h1803
 2740 const URLACTION_SHELL_VERB = &h1804
 2741 const URLACTION_SHELL_WEBVIEW_VERB = &h1805
 2742 const URLACTION_SHELL_SHELLEXECUTE = &h1806
 2743 
 2744 #if _WIN32_WINNT >= &h0600
 2745     const URLACTION_SHELL_EXECUTE_HIGHRISK = &h1806
 2746     const URLACTION_SHELL_EXECUTE_MODRISK = &h1807
 2747     const URLACTION_SHELL_EXECUTE_LOWRISK = &h1808
 2748     const URLACTION_SHELL_POPUPMGR = &h1809
 2749     const URLACTION_SHELL_RTF_OBJECTS_LOAD = &h180A
 2750     const URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY = &h180B
 2751     const URLACTION_SHELL_EXTENSIONSECURITY = &h180C
 2752     const URLACTION_SHELL_SECURE_DRAGSOURCE = &h180D
 2753 #endif
 2754 
 2755 #if _WIN32_WINNT >= &h0601
 2756     const URLACTION_SHELL_REMOTEQUERY = &h180E
 2757     const URLACTION_SHELL_PREVIEW = &h180F
 2758     const URLACTION_SHELL_SHARE = &h1810
 2759     const URLACTION_SHELL_ALLOW_CROSS_SITE_SHARE = &h1811
 2760 #endif
 2761 
 2762 const URLACTION_SHELL_CURR_MAX = &h1811
 2763 const URLACTION_SHELL_MAX = &h19ff
 2764 const URLACTION_NETWORK_MIN = &h1A00
 2765 const URLACTION_CREDENTIALS_USE = &h1A00
 2766 const URLPOLICY_CREDENTIALS_SILENT_LOGON_OK = &h0
 2767 const URLPOLICY_CREDENTIALS_MUST_PROMPT_USER = &h10000
 2768 const URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT = &h20000
 2769 const URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY = &h30000
 2770 const URLACTION_AUTHENTICATE_CLIENT = &h1A01
 2771 const URLPOLICY_AUTHENTICATE_CLEARTEXT_OK = &h0
 2772 const URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE = &h10000
 2773 const URLPOLICY_AUTHENTICATE_MUTUAL_ONLY = &h30000
 2774 const URLACTION_COOKIES = &h1A02
 2775 const URLACTION_COOKIES_SESSION = &h1A03
 2776 const URLACTION_CLIENT_CERT_PROMPT = &h1A04
 2777 const URLACTION_COOKIES_THIRD_PARTY = &h1A05
 2778 const URLACTION_COOKIES_SESSION_THIRD_PARTY = &h1A06
 2779 const URLACTION_COOKIES_ENABLED = &h1A10
 2780 const URLACTION_NETWORK_CURR_MAX = &h1A10
 2781 const URLACTION_NETWORK_MAX = &h1Bff
 2782 const URLACTION_JAVA_MIN = &h1C00
 2783 const URLACTION_JAVA_PERMISSIONS = &h1C00
 2784 const URLPOLICY_JAVA_PROHIBIT = &h0
 2785 const URLPOLICY_JAVA_HIGH = &h10000
 2786 const URLPOLICY_JAVA_MEDIUM = &h20000
 2787 const URLPOLICY_JAVA_LOW = &h30000
 2788 const URLPOLICY_JAVA_CUSTOM = &h800000
 2789 const URLACTION_JAVA_CURR_MAX = &h1C00
 2790 const URLACTION_JAVA_MAX = &h1Cff
 2791 const URLACTION_INFODELIVERY_MIN = &h1D00
 2792 const URLACTION_INFODELIVERY_NO_ADDING_CHANNELS = &h1D00
 2793 const URLACTION_INFODELIVERY_NO_EDITING_CHANNELS = &h1D01
 2794 const URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS = &h1D02
 2795 const URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS = &h1D03
 2796 const URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS = &h1D04
 2797 const URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS = &h1D05
 2798 const URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING = &h1D06
 2799 const URLACTION_INFODELIVERY_CURR_MAX = &h1D06
 2800 const URLACTION_INFODELIVERY_MAX = &h1Dff
 2801 const URLACTION_CHANNEL_SOFTDIST_MIN = &h1E00
 2802 const URLACTION_CHANNEL_SOFTDIST_PERMISSIONS = &h1E05
 2803 const URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT = &h10000
 2804 const URLPOLICY_CHANNEL_SOFTDIST_PRECACHE = &h20000
 2805 const URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL = &h30000
 2806 const URLACTION_CHANNEL_SOFTDIST_MAX = &h1Eff
 2807 
 2808 #if _WIN32_WINNT >= &h0601
 2809     const URLACTION_DOTNET_USERCONTROLS = &h2005
 2810 #endif
 2811 
 2812 #if _WIN32_WINNT >= &h0600
 2813     const URLACTION_BEHAVIOR_MIN = &h2000
 2814     const URLACTION_BEHAVIOR_RUN = &h2000
 2815     const URLPOLICY_BEHAVIOR_CHECK_LIST = &h10000
 2816     const URLACTION_FEATURE_MIN = &h2100
 2817     const URLACTION_FEATURE_MIME_SNIFFING = &h2100
 2818     const URLACTION_FEATURE_ZONE_ELEVATION = &h2101
 2819     const URLACTION_FEATURE_WINDOW_RESTRICTIONS = &h2102
 2820     const URLACTION_FEATURE_SCRIPT_STATUS_BAR = &h2103
 2821     const URLACTION_FEATURE_FORCE_ADDR_AND_STATUS = &h2104
 2822     const URLACTION_FEATURE_BLOCK_INPUT_PROMPTS = &h2105
 2823     const URLACTION_FEATURE_DATA_BINDING = &h2106
 2824     const URLACTION_FEATURE_CROSSDOMAIN_FOCUS_CHANGE = &h2107
 2825     const URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN = &h2200
 2826     const URLACTION_AUTOMATIC_DOWNLOAD_UI = &h2200
 2827     const URLACTION_AUTOMATIC_ACTIVEX_UI = &h2201
 2828     const URLACTION_ALLOW_RESTRICTEDPROTOCOLS = &h2300
 2829     const URLACTION_ALLOW_APEVALUATION = &h2301
 2830     const URLACTION_ALLOW_XHR_EVALUATION = &h2302
 2831     const URLACTION_WINDOWS_BROWSER_APPLICATIONS = &h2400
 2832     const URLACTION_XPS_DOCUMENTS = &h2401
 2833     const URLACTION_LOOSE_XAML = &h2402
 2834     const URLACTION_LOWRIGHTS = &h2500
 2835     const URLACTION_WINFX_SETUP = &h2600
 2836     const URLACTION_INPRIVATE_BLOCKING = &h2700
 2837 #endif
 2838 
 2839 const URLACTION_ALLOW_AUDIO_VIDEO = &h2701
 2840 const URLACTION_ALLOW_ACTIVEX_FILTERING = &h2702
 2841 const URLACTION_ALLOW_STRUCTURED_STORAGE_SNIFFING = &h2703
 2842 const URLACTION_ALLOW_AUDIO_VIDEO_PLUGINS = &h2704
 2843 const URLACTION_ALLOW_ZONE_ELEVATION_VIA_OPT_OUT = &h2705
 2844 const URLACTION_ALLOW_ZONE_ELEVATION_OPT_OUT_ADDITION = &h2706
 2845 const URLACTION_ALLOW_CROSSDOMAIN_DROP_WITHIN_WINDOW = &h2708
 2846 const URLACTION_ALLOW_CROSSDOMAIN_DROP_ACROSS_WINDOWS = &h2709
 2847 const URLACTION_ALLOW_CROSSDOMAIN_APPCACHE_MANIFEST = &h270A
 2848 const URLACTION_ALLOW_RENDER_LEGACY_DXTFILTERS = &h270B
 2849 const URLPOLICY_ALLOW = &h0
 2850 const URLPOLICY_QUERY = &h1
 2851 const URLPOLICY_DISALLOW = &h3
 2852 const URLPOLICY_NOTIFY_ON_ALLOW = &h10
 2853 const URLPOLICY_NOTIFY_ON_DISALLOW = &h20
 2854 const URLPOLICY_LOG_ON_ALLOW = &h40
 2855 const URLPOLICY_LOG_ON_DISALLOW = &h80
 2856 const URLPOLICY_MASK_PERMISSIONS = &h0f
 2857 #define GetUrlPolicyPermissions(dw) (dw and URLPOLICY_MASK_PERMISSIONS)
 2858 #define SetUrlPolicyPermissions(dw, dw2) scope : (dw) = ((dw) and (not URLPOLICY_MASK_PERMISSIONS)) or (dw2) : end scope
 2859 const URLPOLICY_DONTCHECKDLGBOX = &h100
 2860 
 2861 #if _WIN32_WINNT >= &h0600
 2862     extern GUID_CUSTOM_LOCALMACHINEZONEUNLOCKED as const GUID
 2863 #endif
 2864 
 2865 #define _LPINTERNETZONEMANAGER_DEFINED
 2866 #define __IInternetZoneManager_INTERFACE_DEFINED__
 2867 type LPURLZONEMANAGER as IInternetZoneManager ptr
 2868 
 2869 type tagURLZONE as long
 2870 enum
 2871     URLZONE_INVALID = -1
 2872     URLZONE_PREDEFINED_MIN = 0
 2873     URLZONE_LOCAL_MACHINE = 0
 2874     URLZONE_INTRANET = 1
 2875     URLZONE_TRUSTED = 2
 2876     URLZONE_INTERNET = 3
 2877     URLZONE_UNTRUSTED = 4
 2878     URLZONE_PREDEFINED_MAX = 999
 2879     URLZONE_USER_MIN = 1000
 2880     URLZONE_USER_MAX = 10000
 2881 end enum
 2882 
 2883 type URLZONE as tagURLZONE
 2884 const URLZONE_ESC_FLAG = &h100
 2885 
 2886 type tagURLTEMPLATE as long
 2887 enum
 2888     URLTEMPLATE_CUSTOM = &h0
 2889     URLTEMPLATE_PREDEFINED_MIN = &h10000
 2890     URLTEMPLATE_LOW = &h10000
 2891     URLTEMPLATE_MEDLOW = &h10500
 2892     URLTEMPLATE_MEDIUM = &h11000
 2893     URLTEMPLATE_MEDHIGH = &h11500
 2894     URLTEMPLATE_HIGH = &h12000
 2895     URLTEMPLATE_PREDEFINED_MAX = &h20000
 2896 end enum
 2897 
 2898 type URLTEMPLATE as tagURLTEMPLATE
 2899 
 2900 enum
 2901     MAX_ZONE_PATH = 260
 2902     MAX_ZONE_DESCRIPTION = 200
 2903 end enum
 2904 
 2905 type __WIDL_urlmon_generated_name_00000011 as long
 2906 enum
 2907     ZAFLAGS_CUSTOM_EDIT = &h1
 2908     ZAFLAGS_ADD_SITES = &h2
 2909     ZAFLAGS_REQUIRE_VERIFICATION = &h4
 2910     ZAFLAGS_INCLUDE_PROXY_OVERRIDE = &h8
 2911     ZAFLAGS_INCLUDE_INTRANET_SITES = &h10
 2912     ZAFLAGS_NO_UI = &h20
 2913     ZAFLAGS_SUPPORTS_VERIFICATION = &h40
 2914     ZAFLAGS_UNC_AS_INTRANET = &h80
 2915     ZAFLAGS_DETECT_INTRANET = &h100
 2916     ZAFLAGS_USE_LOCKED_ZONES = &h10000
 2917     ZAFLAGS_VERIFY_TEMPLATE_SETTINGS = &h20000
 2918     ZAFLAGS_NO_CACHE = &h40000
 2919 end enum
 2920 
 2921 type ZAFLAGS as __WIDL_urlmon_generated_name_00000011
 2922 
 2923 type _ZONEATTRIBUTES
 2924     cbSize as ULONG
 2925     szDisplayName as wstring * 260
 2926     szDescription as wstring * 200
 2927     szIconPath as wstring * 260
 2928     dwTemplateMinLevel as DWORD
 2929     dwTemplateRecommended as DWORD
 2930     dwTemplateCurrentLevel as DWORD
 2931     dwFlags as DWORD
 2932 end type
 2933 
 2934 type ZONEATTRIBUTES as _ZONEATTRIBUTES
 2935 type LPZONEATTRIBUTES as _ZONEATTRIBUTES ptr
 2936 
 2937 type _URLZONEREG as long
 2938 enum
 2939     URLZONEREG_DEFAULT = 0
 2940     URLZONEREG_HKLM = 1
 2941     URLZONEREG_HKCU = 2
 2942 end enum
 2943 
 2944 type URLZONEREG as _URLZONEREG
 2945 extern IID_IInternetZoneManager as const GUID
 2946 
 2947 type IInternetZoneManagerVtbl
 2948     QueryInterface as function(byval This as IInternetZoneManager ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2949     AddRef as function(byval This as IInternetZoneManager ptr) as ULONG
 2950     Release as function(byval This as IInternetZoneManager ptr) as ULONG
 2951     GetZoneAttributes as function(byval This as IInternetZoneManager ptr, byval dwZone as DWORD, byval pZoneAttributes as ZONEATTRIBUTES ptr) as HRESULT
 2952     SetZoneAttributes as function(byval This as IInternetZoneManager ptr, byval dwZone as DWORD, byval pZoneAttributes as ZONEATTRIBUTES ptr) as HRESULT
 2953     GetZoneCustomPolicy as function(byval This as IInternetZoneManager ptr, byval dwZone as DWORD, byval guidKey as const GUID const ptr, byval ppPolicy as UBYTE ptr ptr, byval pcbPolicy as DWORD ptr, byval urlZoneReg as URLZONEREG) as HRESULT
 2954     SetZoneCustomPolicy as function(byval This as IInternetZoneManager ptr, byval dwZone as DWORD, byval guidKey as const GUID const ptr, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG) as HRESULT
 2955     GetZoneActionPolicy as function(byval This as IInternetZoneManager ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG) as HRESULT
 2956     SetZoneActionPolicy as function(byval This as IInternetZoneManager ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG) as HRESULT
 2957     PromptAction as function(byval This as IInternetZoneManager ptr, byval dwAction as DWORD, byval hwndParent as HWND, byval pwszUrl as LPCWSTR, byval pwszText as LPCWSTR, byval dwPromptFlags as DWORD) as HRESULT
 2958     LogAction as function(byval This as IInternetZoneManager ptr, byval dwAction as DWORD, byval pwszUrl as LPCWSTR, byval pwszText as LPCWSTR, byval dwLogFlags as DWORD) as HRESULT
 2959     CreateZoneEnumerator as function(byval This as IInternetZoneManager ptr, byval pdwEnum as DWORD ptr, byval pdwCount as DWORD ptr, byval dwFlags as DWORD) as HRESULT
 2960     GetZoneAt as function(byval This as IInternetZoneManager ptr, byval dwEnum as DWORD, byval dwIndex as DWORD, byval pdwZone as DWORD ptr) as HRESULT
 2961     DestroyZoneEnumerator as function(byval This as IInternetZoneManager ptr, byval dwEnum as DWORD) as HRESULT
 2962     CopyTemplatePoliciesToZone as function(byval This as IInternetZoneManager ptr, byval dwTemplate as DWORD, byval dwZone as DWORD, byval dwReserved as DWORD) as HRESULT
 2963 end type
 2964 
 2965 type IInternetZoneManager_
 2966     lpVtbl as IInternetZoneManagerVtbl ptr
 2967 end type
 2968 
 2969 #define IInternetZoneManager_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2970 #define IInternetZoneManager_AddRef(This) (This)->lpVtbl->AddRef(This)
 2971 #define IInternetZoneManager_Release(This) (This)->lpVtbl->Release(This)
 2972 #define IInternetZoneManager_GetZoneAttributes(This, dwZone, pZoneAttributes) (This)->lpVtbl->GetZoneAttributes(This, dwZone, pZoneAttributes)
 2973 #define IInternetZoneManager_SetZoneAttributes(This, dwZone, pZoneAttributes) (This)->lpVtbl->SetZoneAttributes(This, dwZone, pZoneAttributes)
 2974 #define IInternetZoneManager_GetZoneCustomPolicy(This, dwZone, guidKey, ppPolicy, pcbPolicy, urlZoneReg) (This)->lpVtbl->GetZoneCustomPolicy(This, dwZone, guidKey, ppPolicy, pcbPolicy, urlZoneReg)
 2975 #define IInternetZoneManager_SetZoneCustomPolicy(This, dwZone, guidKey, pPolicy, cbPolicy, urlZoneReg) (This)->lpVtbl->SetZoneCustomPolicy(This, dwZone, guidKey, pPolicy, cbPolicy, urlZoneReg)
 2976 #define IInternetZoneManager_GetZoneActionPolicy(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg) (This)->lpVtbl->GetZoneActionPolicy(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg)
 2977 #define IInternetZoneManager_SetZoneActionPolicy(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg) (This)->lpVtbl->SetZoneActionPolicy(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg)
 2978 #define IInternetZoneManager_PromptAction(This, dwAction, hwndParent, pwszUrl, pwszText, dwPromptFlags) (This)->lpVtbl->PromptAction(This, dwAction, hwndParent, pwszUrl, pwszText, dwPromptFlags)
 2979 #define IInternetZoneManager_LogAction(This, dwAction, pwszUrl, pwszText, dwLogFlags) (This)->lpVtbl->LogAction(This, dwAction, pwszUrl, pwszText, dwLogFlags)
 2980 #define IInternetZoneManager_CreateZoneEnumerator(This, pdwEnum, pdwCount, dwFlags) (This)->lpVtbl->CreateZoneEnumerator(This, pdwEnum, pdwCount, dwFlags)
 2981 #define IInternetZoneManager_GetZoneAt(This, dwEnum, dwIndex, pdwZone) (This)->lpVtbl->GetZoneAt(This, dwEnum, dwIndex, pdwZone)
 2982 #define IInternetZoneManager_DestroyZoneEnumerator(This, dwEnum) (This)->lpVtbl->DestroyZoneEnumerator(This, dwEnum)
 2983 #define IInternetZoneManager_CopyTemplatePoliciesToZone(This, dwTemplate, dwZone, dwReserved) (This)->lpVtbl->CopyTemplatePoliciesToZone(This, dwTemplate, dwZone, dwReserved)
 2984 
 2985 declare function IInternetZoneManager_GetZoneAttributes_Proxy(byval This as IInternetZoneManager ptr, byval dwZone as DWORD, byval pZoneAttributes as ZONEATTRIBUTES ptr) as HRESULT
 2986 declare sub IInternetZoneManager_GetZoneAttributes_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2987 declare function IInternetZoneManager_SetZoneAttributes_Proxy(byval This as IInternetZoneManager ptr, byval dwZone as DWORD, byval pZoneAttributes as ZONEATTRIBUTES ptr) as HRESULT
 2988 declare sub IInternetZoneManager_SetZoneAttributes_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2989 declare function IInternetZoneManager_GetZoneCustomPolicy_Proxy(byval This as IInternetZoneManager ptr, byval dwZone as DWORD, byval guidKey as const GUID const ptr, byval ppPolicy as UBYTE ptr ptr, byval pcbPolicy as DWORD ptr, byval urlZoneReg as URLZONEREG) as HRESULT
 2990 declare sub IInternetZoneManager_GetZoneCustomPolicy_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2991 declare function IInternetZoneManager_SetZoneCustomPolicy_Proxy(byval This as IInternetZoneManager ptr, byval dwZone as DWORD, byval guidKey as const GUID const ptr, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG) as HRESULT
 2992 declare sub IInternetZoneManager_SetZoneCustomPolicy_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2993 declare function IInternetZoneManager_GetZoneActionPolicy_Proxy(byval This as IInternetZoneManager ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG) as HRESULT
 2994 declare sub IInternetZoneManager_GetZoneActionPolicy_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2995 declare function IInternetZoneManager_SetZoneActionPolicy_Proxy(byval This as IInternetZoneManager ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG) as HRESULT
 2996 declare sub IInternetZoneManager_SetZoneActionPolicy_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2997 declare function IInternetZoneManager_PromptAction_Proxy(byval This as IInternetZoneManager ptr, byval dwAction as DWORD, byval hwndParent as HWND, byval pwszUrl as LPCWSTR, byval pwszText as LPCWSTR, byval dwPromptFlags as DWORD) as HRESULT
 2998 declare sub IInternetZoneManager_PromptAction_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2999 declare function IInternetZoneManager_LogAction_Proxy(byval This as IInternetZoneManager ptr, byval dwAction as DWORD, byval pwszUrl as LPCWSTR, byval pwszText as LPCWSTR, byval dwLogFlags as DWORD) as HRESULT
 3000 declare sub IInternetZoneManager_LogAction_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3001 declare function IInternetZoneManager_CreateZoneEnumerator_Proxy(byval This as IInternetZoneManager ptr, byval pdwEnum as DWORD ptr, byval pdwCount as DWORD ptr, byval dwFlags as DWORD) as HRESULT
 3002 declare sub IInternetZoneManager_CreateZoneEnumerator_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3003 declare function IInternetZoneManager_GetZoneAt_Proxy(byval This as IInternetZoneManager ptr, byval dwEnum as DWORD, byval dwIndex as DWORD, byval pdwZone as DWORD ptr) as HRESULT
 3004 declare sub IInternetZoneManager_GetZoneAt_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3005 declare function IInternetZoneManager_DestroyZoneEnumerator_Proxy(byval This as IInternetZoneManager ptr, byval dwEnum as DWORD) as HRESULT
 3006 declare sub IInternetZoneManager_DestroyZoneEnumerator_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3007 declare function IInternetZoneManager_CopyTemplatePoliciesToZone_Proxy(byval This as IInternetZoneManager ptr, byval dwTemplate as DWORD, byval dwZone as DWORD, byval dwReserved as DWORD) as HRESULT
 3008 declare sub IInternetZoneManager_CopyTemplatePoliciesToZone_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3009 
 3010 #if _WIN32_WINNT >= &h0600
 3011     #define _LPINTERNETZONEMANAGEREX_DEFINED
 3012     #define __IInternetZoneManagerEx_INTERFACE_DEFINED__
 3013     extern IID_IInternetZoneManagerEx as const GUID
 3014     type IInternetZoneManagerEx as IInternetZoneManagerEx_
 3015 
 3016     type IInternetZoneManagerExVtbl
 3017         QueryInterface as function(byval This as IInternetZoneManagerEx ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 3018         AddRef as function(byval This as IInternetZoneManagerEx ptr) as ULONG
 3019         Release as function(byval This as IInternetZoneManagerEx ptr) as ULONG
 3020         GetZoneAttributes as function(byval This as IInternetZoneManagerEx ptr, byval dwZone as DWORD, byval pZoneAttributes as ZONEATTRIBUTES ptr) as HRESULT
 3021         SetZoneAttributes as function(byval This as IInternetZoneManagerEx ptr, byval dwZone as DWORD, byval pZoneAttributes as ZONEATTRIBUTES ptr) as HRESULT
 3022         GetZoneCustomPolicy as function(byval This as IInternetZoneManagerEx ptr, byval dwZone as DWORD, byval guidKey as const GUID const ptr, byval ppPolicy as UBYTE ptr ptr, byval pcbPolicy as DWORD ptr, byval urlZoneReg as URLZONEREG) as HRESULT
 3023         SetZoneCustomPolicy as function(byval This as IInternetZoneManagerEx ptr, byval dwZone as DWORD, byval guidKey as const GUID const ptr, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG) as HRESULT
 3024         GetZoneActionPolicy as function(byval This as IInternetZoneManagerEx ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG) as HRESULT
 3025         SetZoneActionPolicy as function(byval This as IInternetZoneManagerEx ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG) as HRESULT
 3026         PromptAction as function(byval This as IInternetZoneManagerEx ptr, byval dwAction as DWORD, byval hwndParent as HWND, byval pwszUrl as LPCWSTR, byval pwszText as LPCWSTR, byval dwPromptFlags as DWORD) as HRESULT
 3027         LogAction as function(byval This as IInternetZoneManagerEx ptr, byval dwAction as DWORD, byval pwszUrl as LPCWSTR, byval pwszText as LPCWSTR, byval dwLogFlags as DWORD) as HRESULT
 3028         CreateZoneEnumerator as function(byval This as IInternetZoneManagerEx ptr, byval pdwEnum as DWORD ptr, byval pdwCount as DWORD ptr, byval dwFlags as DWORD) as HRESULT
 3029         GetZoneAt as function(byval This as IInternetZoneManagerEx ptr, byval dwEnum as DWORD, byval dwIndex as DWORD, byval pdwZone as DWORD ptr) as HRESULT
 3030         DestroyZoneEnumerator as function(byval This as IInternetZoneManagerEx ptr, byval dwEnum as DWORD) as HRESULT
 3031         CopyTemplatePoliciesToZone as function(byval This as IInternetZoneManagerEx ptr, byval dwTemplate as DWORD, byval dwZone as DWORD, byval dwReserved as DWORD) as HRESULT
 3032         GetZoneActionPolicyEx as function(byval This as IInternetZoneManagerEx ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG, byval dwFlags as DWORD) as HRESULT
 3033         SetZoneActionPolicyEx as function(byval This as IInternetZoneManagerEx ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG, byval dwFlags as DWORD) as HRESULT
 3034     end type
 3035 
 3036     type IInternetZoneManagerEx_
 3037         lpVtbl as IInternetZoneManagerExVtbl ptr
 3038     end type
 3039 
 3040     #define IInternetZoneManagerEx_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 3041     #define IInternetZoneManagerEx_AddRef(This) (This)->lpVtbl->AddRef(This)
 3042     #define IInternetZoneManagerEx_Release(This) (This)->lpVtbl->Release(This)
 3043     #define IInternetZoneManagerEx_GetZoneAttributes(This, dwZone, pZoneAttributes) (This)->lpVtbl->GetZoneAttributes(This, dwZone, pZoneAttributes)
 3044     #define IInternetZoneManagerEx_SetZoneAttributes(This, dwZone, pZoneAttributes) (This)->lpVtbl->SetZoneAttributes(This, dwZone, pZoneAttributes)
 3045     #define IInternetZoneManagerEx_GetZoneCustomPolicy(This, dwZone, guidKey, ppPolicy, pcbPolicy, urlZoneReg) (This)->lpVtbl->GetZoneCustomPolicy(This, dwZone, guidKey, ppPolicy, pcbPolicy, urlZoneReg)
 3046     #define IInternetZoneManagerEx_SetZoneCustomPolicy(This, dwZone, guidKey, pPolicy, cbPolicy, urlZoneReg) (This)->lpVtbl->SetZoneCustomPolicy(This, dwZone, guidKey, pPolicy, cbPolicy, urlZoneReg)
 3047     #define IInternetZoneManagerEx_GetZoneActionPolicy(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg) (This)->lpVtbl->GetZoneActionPolicy(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg)
 3048     #define IInternetZoneManagerEx_SetZoneActionPolicy(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg) (This)->lpVtbl->SetZoneActionPolicy(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg)
 3049     #define IInternetZoneManagerEx_PromptAction(This, dwAction, hwndParent, pwszUrl, pwszText, dwPromptFlags) (This)->lpVtbl->PromptAction(This, dwAction, hwndParent, pwszUrl, pwszText, dwPromptFlags)
 3050     #define IInternetZoneManagerEx_LogAction(This, dwAction, pwszUrl, pwszText, dwLogFlags) (This)->lpVtbl->LogAction(This, dwAction, pwszUrl, pwszText, dwLogFlags)
 3051     #define IInternetZoneManagerEx_CreateZoneEnumerator(This, pdwEnum, pdwCount, dwFlags) (This)->lpVtbl->CreateZoneEnumerator(This, pdwEnum, pdwCount, dwFlags)
 3052     #define IInternetZoneManagerEx_GetZoneAt(This, dwEnum, dwIndex, pdwZone) (This)->lpVtbl->GetZoneAt(This, dwEnum, dwIndex, pdwZone)
 3053     #define IInternetZoneManagerEx_DestroyZoneEnumerator(This, dwEnum) (This)->lpVtbl->DestroyZoneEnumerator(This, dwEnum)
 3054     #define IInternetZoneManagerEx_CopyTemplatePoliciesToZone(This, dwTemplate, dwZone, dwReserved) (This)->lpVtbl->CopyTemplatePoliciesToZone(This, dwTemplate, dwZone, dwReserved)
 3055     #define IInternetZoneManagerEx_GetZoneActionPolicyEx(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg, dwFlags) (This)->lpVtbl->GetZoneActionPolicyEx(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg, dwFlags)
 3056     #define IInternetZoneManagerEx_SetZoneActionPolicyEx(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg, dwFlags) (This)->lpVtbl->SetZoneActionPolicyEx(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg, dwFlags)
 3057 
 3058     declare function IInternetZoneManagerEx_GetZoneActionPolicyEx_Proxy(byval This as IInternetZoneManagerEx ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG, byval dwFlags as DWORD) as HRESULT
 3059     declare sub IInternetZoneManagerEx_GetZoneActionPolicyEx_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3060     declare function IInternetZoneManagerEx_SetZoneActionPolicyEx_Proxy(byval This as IInternetZoneManagerEx ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG, byval dwFlags as DWORD) as HRESULT
 3061     declare sub IInternetZoneManagerEx_SetZoneActionPolicyEx_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3062 
 3063     #define _LPINTERNETZONEMANAGEREX2_DEFINED
 3064     const SECURITY_IE_STATE_GREEN = &h0
 3065     const SECURITY_IE_STATE_RED = &h1
 3066     #define __IInternetZoneManagerEx2_INTERFACE_DEFINED__
 3067     extern IID_IInternetZoneManagerEx2 as const GUID
 3068     type IInternetZoneManagerEx2 as IInternetZoneManagerEx2_
 3069 
 3070     type IInternetZoneManagerEx2Vtbl
 3071         QueryInterface as function(byval This as IInternetZoneManagerEx2 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 3072         AddRef as function(byval This as IInternetZoneManagerEx2 ptr) as ULONG
 3073         Release as function(byval This as IInternetZoneManagerEx2 ptr) as ULONG
 3074         GetZoneAttributes as function(byval This as IInternetZoneManagerEx2 ptr, byval dwZone as DWORD, byval pZoneAttributes as ZONEATTRIBUTES ptr) as HRESULT
 3075         SetZoneAttributes as function(byval This as IInternetZoneManagerEx2 ptr, byval dwZone as DWORD, byval pZoneAttributes as ZONEATTRIBUTES ptr) as HRESULT
 3076         GetZoneCustomPolicy as function(byval This as IInternetZoneManagerEx2 ptr, byval dwZone as DWORD, byval guidKey as const GUID const ptr, byval ppPolicy as UBYTE ptr ptr, byval pcbPolicy as DWORD ptr, byval urlZoneReg as URLZONEREG) as HRESULT
 3077         SetZoneCustomPolicy as function(byval This as IInternetZoneManagerEx2 ptr, byval dwZone as DWORD, byval guidKey as const GUID const ptr, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG) as HRESULT
 3078         GetZoneActionPolicy as function(byval This as IInternetZoneManagerEx2 ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG) as HRESULT
 3079         SetZoneActionPolicy as function(byval This as IInternetZoneManagerEx2 ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG) as HRESULT
 3080         PromptAction as function(byval This as IInternetZoneManagerEx2 ptr, byval dwAction as DWORD, byval hwndParent as HWND, byval pwszUrl as LPCWSTR, byval pwszText as LPCWSTR, byval dwPromptFlags as DWORD) as HRESULT
 3081         LogAction as function(byval This as IInternetZoneManagerEx2 ptr, byval dwAction as DWORD, byval pwszUrl as LPCWSTR, byval pwszText as LPCWSTR, byval dwLogFlags as DWORD) as HRESULT
 3082         CreateZoneEnumerator as function(byval This as IInternetZoneManagerEx2 ptr, byval pdwEnum as DWORD ptr, byval pdwCount as DWORD ptr, byval dwFlags as DWORD) as HRESULT
 3083         GetZoneAt as function(byval This as IInternetZoneManagerEx2 ptr, byval dwEnum as DWORD, byval dwIndex as DWORD, byval pdwZone as DWORD ptr) as HRESULT
 3084         DestroyZoneEnumerator as function(byval This as IInternetZoneManagerEx2 ptr, byval dwEnum as DWORD) as HRESULT
 3085         CopyTemplatePoliciesToZone as function(byval This as IInternetZoneManagerEx2 ptr, byval dwTemplate as DWORD, byval dwZone as DWORD, byval dwReserved as DWORD) as HRESULT
 3086         GetZoneActionPolicyEx as function(byval This as IInternetZoneManagerEx2 ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG, byval dwFlags as DWORD) as HRESULT
 3087         SetZoneActionPolicyEx as function(byval This as IInternetZoneManagerEx2 ptr, byval dwZone as DWORD, byval dwAction as DWORD, byval pPolicy as UBYTE ptr, byval cbPolicy as DWORD, byval urlZoneReg as URLZONEREG, byval dwFlags as DWORD) as HRESULT
 3088         GetZoneAttributesEx as function(byval This as IInternetZoneManagerEx2 ptr, byval dwZone as DWORD, byval pZoneAttributes as ZONEATTRIBUTES ptr, byval dwFlags as DWORD) as HRESULT
 3089         GetZoneSecurityState as function(byval This as IInternetZoneManagerEx2 ptr, byval dwZoneIndex as DWORD, byval fRespectPolicy as WINBOOL, byval pdwState as LPDWORD, byval pfPolicyEncountered as WINBOOL ptr) as HRESULT
 3090         GetIESecurityState as function(byval This as IInternetZoneManagerEx2 ptr, byval fRespectPolicy as WINBOOL, byval pdwState as LPDWORD, byval pfPolicyEncountered as WINBOOL ptr, byval fNoCache as WINBOOL) as HRESULT
 3091         FixUnsecureSettings as function(byval This as IInternetZoneManagerEx2 ptr) as HRESULT
 3092     end type
 3093 
 3094     type IInternetZoneManagerEx2_
 3095         lpVtbl as IInternetZoneManagerEx2Vtbl ptr
 3096     end type
 3097 
 3098     #define IInternetZoneManagerEx2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 3099     #define IInternetZoneManagerEx2_AddRef(This) (This)->lpVtbl->AddRef(This)
 3100     #define IInternetZoneManagerEx2_Release(This) (This)->lpVtbl->Release(This)
 3101     #define IInternetZoneManagerEx2_GetZoneAttributes(This, dwZone, pZoneAttributes) (This)->lpVtbl->GetZoneAttributes(This, dwZone, pZoneAttributes)
 3102     #define IInternetZoneManagerEx2_SetZoneAttributes(This, dwZone, pZoneAttributes) (This)->lpVtbl->SetZoneAttributes(This, dwZone, pZoneAttributes)
 3103     #define IInternetZoneManagerEx2_GetZoneCustomPolicy(This, dwZone, guidKey, ppPolicy, pcbPolicy, urlZoneReg) (This)->lpVtbl->GetZoneCustomPolicy(This, dwZone, guidKey, ppPolicy, pcbPolicy, urlZoneReg)
 3104     #define IInternetZoneManagerEx2_SetZoneCustomPolicy(This, dwZone, guidKey, pPolicy, cbPolicy, urlZoneReg) (This)->lpVtbl->SetZoneCustomPolicy(This, dwZone, guidKey, pPolicy, cbPolicy, urlZoneReg)
 3105     #define IInternetZoneManagerEx2_GetZoneActionPolicy(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg) (This)->lpVtbl->GetZoneActionPolicy(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg)
 3106     #define IInternetZoneManagerEx2_SetZoneActionPolicy(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg) (This)->lpVtbl->SetZoneActionPolicy(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg)
 3107     #define IInternetZoneManagerEx2_PromptAction(This, dwAction, hwndParent, pwszUrl, pwszText, dwPromptFlags) (This)->lpVtbl->PromptAction(This, dwAction, hwndParent, pwszUrl, pwszText, dwPromptFlags)
 3108     #define IInternetZoneManagerEx2_LogAction(This, dwAction, pwszUrl, pwszText, dwLogFlags) (This)->lpVtbl->LogAction(This, dwAction, pwszUrl, pwszText, dwLogFlags)
 3109     #define IInternetZoneManagerEx2_CreateZoneEnumerator(This, pdwEnum, pdwCount, dwFlags) (This)->lpVtbl->CreateZoneEnumerator(This, pdwEnum, pdwCount, dwFlags)
 3110     #define IInternetZoneManagerEx2_GetZoneAt(This, dwEnum, dwIndex, pdwZone) (This)->lpVtbl->GetZoneAt(This, dwEnum, dwIndex, pdwZone)
 3111     #define IInternetZoneManagerEx2_DestroyZoneEnumerator(This, dwEnum) (This)->lpVtbl->DestroyZoneEnumerator(This, dwEnum)
 3112     #define IInternetZoneManagerEx2_CopyTemplatePoliciesToZone(This, dwTemplate, dwZone, dwReserved) (This)->lpVtbl->CopyTemplatePoliciesToZone(This, dwTemplate, dwZone, dwReserved)
 3113     #define IInternetZoneManagerEx2_GetZoneActionPolicyEx(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg, dwFlags) (This)->lpVtbl->GetZoneActionPolicyEx(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg, dwFlags)
 3114     #define IInternetZoneManagerEx2_SetZoneActionPolicyEx(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg, dwFlags) (This)->lpVtbl->SetZoneActionPolicyEx(This, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg, dwFlags)
 3115     #define IInternetZoneManagerEx2_GetZoneAttributesEx(This, dwZone, pZoneAttributes, dwFlags) (This)->lpVtbl->GetZoneAttributesEx(This, dwZone, pZoneAttributes, dwFlags)
 3116     #define IInternetZoneManagerEx2_GetZoneSecurityState(This, dwZoneIndex, fRespectPolicy, pdwState, pfPolicyEncountered) (This)->lpVtbl->GetZoneSecurityState(This, dwZoneIndex, fRespectPolicy, pdwState, pfPolicyEncountered)
 3117     #define IInternetZoneManagerEx2_GetIESecurityState(This, fRespectPolicy, pdwState, pfPolicyEncountered, fNoCache) (This)->lpVtbl->GetIESecurityState(This, fRespectPolicy, pdwState, pfPolicyEncountered, fNoCache)
 3118     #define IInternetZoneManagerEx2_FixUnsecureSettings(This) (This)->lpVtbl->FixUnsecureSettings(This)
 3119 
 3120     declare function IInternetZoneManagerEx2_GetZoneAttributesEx_Proxy(byval This as IInternetZoneManagerEx2 ptr, byval dwZone as DWORD, byval pZoneAttributes as ZONEATTRIBUTES ptr, byval dwFlags as DWORD) as HRESULT
 3121     declare sub IInternetZoneManagerEx2_GetZoneAttributesEx_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3122     declare function IInternetZoneManagerEx2_GetZoneSecurityState_Proxy(byval This as IInternetZoneManagerEx2 ptr, byval dwZoneIndex as DWORD, byval fRespectPolicy as WINBOOL, byval pdwState as LPDWORD, byval pfPolicyEncountered as WINBOOL ptr) as HRESULT
 3123     declare sub IInternetZoneManagerEx2_GetZoneSecurityState_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3124     declare function IInternetZoneManagerEx2_GetIESecurityState_Proxy(byval This as IInternetZoneManagerEx2 ptr, byval fRespectPolicy as WINBOOL, byval pdwState as LPDWORD, byval pfPolicyEncountered as WINBOOL ptr, byval fNoCache as WINBOOL) as HRESULT
 3125     declare sub IInternetZoneManagerEx2_GetIESecurityState_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3126     declare function IInternetZoneManagerEx2_FixUnsecureSettings_Proxy(byval This as IInternetZoneManagerEx2 ptr) as HRESULT
 3127     declare sub IInternetZoneManagerEx2_FixUnsecureSettings_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3128 #endif
 3129 
 3130 extern CLSID_SoftDistExt as const IID
 3131 #define _LPSOFTDISTEXT_DEFINED
 3132 const SOFTDIST_FLAG_USAGE_EMAIL = &h1
 3133 const SOFTDIST_FLAG_USAGE_PRECACHE = &h2
 3134 const SOFTDIST_FLAG_USAGE_AUTOINSTALL = &h4
 3135 const SOFTDIST_FLAG_DELETE_SUBSCRIPTION = &h8
 3136 const SOFTDIST_ADSTATE_NONE = &h0
 3137 const SOFTDIST_ADSTATE_AVAILABLE = &h1
 3138 const SOFTDIST_ADSTATE_DOWNLOADED = &h2
 3139 const SOFTDIST_ADSTATE_INSTALLED = &h3
 3140 
 3141 type _tagCODEBASEHOLD
 3142     cbSize as ULONG
 3143     szDistUnit as LPWSTR
 3144     szCodeBase as LPWSTR
 3145     dwVersionMS as DWORD
 3146     dwVersionLS as DWORD
 3147     dwStyle as DWORD
 3148 end type
 3149 
 3150 type CODEBASEHOLD as _tagCODEBASEHOLD
 3151 type LPCODEBASEHOLD as _tagCODEBASEHOLD ptr
 3152 
 3153 type _tagSOFTDISTINFO
 3154     cbSize as ULONG
 3155     dwFlags as DWORD
 3156     dwAdState as DWORD
 3157     szTitle as LPWSTR
 3158     szAbstract as LPWSTR
 3159     szHREF as LPWSTR
 3160     dwInstalledVersionMS as DWORD
 3161     dwInstalledVersionLS as DWORD
 3162     dwUpdateVersionMS as DWORD
 3163     dwUpdateVersionLS as DWORD
 3164     dwAdvertisedVersionMS as DWORD
 3165     dwAdvertisedVersionLS as DWORD
 3166     dwReserved as DWORD
 3167 end type
 3168 
 3169 type SOFTDISTINFO as _tagSOFTDISTINFO
 3170 type LPSOFTDISTINFO as _tagSOFTDISTINFO ptr
 3171 #define __ISoftDistExt_INTERFACE_DEFINED__
 3172 extern IID_ISoftDistExt as const GUID
 3173 type ISoftDistExt as ISoftDistExt_
 3174 
 3175 type ISoftDistExtVtbl
 3176     QueryInterface as function(byval This as ISoftDistExt ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 3177     AddRef as function(byval This as ISoftDistExt ptr) as ULONG
 3178     Release as function(byval This as ISoftDistExt ptr) as ULONG
 3179     ProcessSoftDist as function(byval This as ISoftDistExt ptr, byval szCDFURL as LPCWSTR, byval pSoftDistElement as IXMLElement ptr, byval lpsdi as LPSOFTDISTINFO) as HRESULT
 3180     GetFirstCodeBase as function(byval This as ISoftDistExt ptr, byval szCodeBase as LPWSTR ptr, byval dwMaxSize as LPDWORD) as HRESULT
 3181     GetNextCodeBase as function(byval This as ISoftDistExt ptr, byval szCodeBase as LPWSTR ptr, byval dwMaxSize as LPDWORD) as HRESULT
 3182     AsyncInstallDistributionUnit as function(byval This as ISoftDistExt ptr, byval pbc as IBindCtx ptr, byval pvReserved as LPVOID, byval flags as DWORD, byval lpcbh as LPCODEBASEHOLD) as HRESULT
 3183 end type
 3184 
 3185 type ISoftDistExt_
 3186     lpVtbl as ISoftDistExtVtbl ptr
 3187 end type
 3188 
 3189 #define ISoftDistExt_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 3190 #define ISoftDistExt_AddRef(This) (This)->lpVtbl->AddRef(This)
 3191 #define ISoftDistExt_Release(This) (This)->lpVtbl->Release(This)
 3192 #define ISoftDistExt_ProcessSoftDist(This, szCDFURL, pSoftDistElement, lpsdi) (This)->lpVtbl->ProcessSoftDist(This, szCDFURL, pSoftDistElement, lpsdi)
 3193 #define ISoftDistExt_GetFirstCodeBase(This, szCodeBase, dwMaxSize) (This)->lpVtbl->GetFirstCodeBase(This, szCodeBase, dwMaxSize)
 3194 #define ISoftDistExt_GetNextCodeBase(This, szCodeBase, dwMaxSize) (This)->lpVtbl->GetNextCodeBase(This, szCodeBase, dwMaxSize)
 3195 #define ISoftDistExt_AsyncInstallDistributionUnit(This, pbc, pvReserved, flags, lpcbh) (This)->lpVtbl->AsyncInstallDistributionUnit(This, pbc, pvReserved, flags, lpcbh)
 3196 
 3197 declare function ISoftDistExt_ProcessSoftDist_Proxy(byval This as ISoftDistExt ptr, byval szCDFURL as LPCWSTR, byval pSoftDistElement as IXMLElement ptr, byval lpsdi as LPSOFTDISTINFO) as HRESULT
 3198 declare sub ISoftDistExt_ProcessSoftDist_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3199 declare function ISoftDistExt_GetFirstCodeBase_Proxy(byval This as ISoftDistExt ptr, byval szCodeBase as LPWSTR ptr, byval dwMaxSize as LPDWORD) as HRESULT
 3200 declare sub ISoftDistExt_GetFirstCodeBase_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3201 declare function ISoftDistExt_GetNextCodeBase_Proxy(byval This as ISoftDistExt ptr, byval szCodeBase as LPWSTR ptr, byval dwMaxSize as LPDWORD) as HRESULT
 3202 declare sub ISoftDistExt_GetNextCodeBase_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3203 declare function ISoftDistExt_AsyncInstallDistributionUnit_Proxy(byval This as ISoftDistExt ptr, byval pbc as IBindCtx ptr, byval pvReserved as LPVOID, byval flags as DWORD, byval lpcbh as LPCODEBASEHOLD) as HRESULT
 3204 declare sub ISoftDistExt_AsyncInstallDistributionUnit_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3205 declare function GetSoftwareUpdateInfo(byval szDistUnit as LPCWSTR, byval psdi as LPSOFTDISTINFO) as HRESULT
 3206 declare function SetSoftwareUpdateAdvertisementState(byval szDistUnit as LPCWSTR, byval dwAdState as DWORD, byval dwAdvertisedVersionMS as DWORD, byval dwAdvertisedVersionLS as DWORD) as HRESULT
 3207 #define _LPCATALOGFILEINFO_DEFINED
 3208 #define __ICatalogFileInfo_INTERFACE_DEFINED__
 3209 type ICatalogFileInfo as ICatalogFileInfo_
 3210 type LPCATALOGFILEINFO as ICatalogFileInfo ptr
 3211 extern IID_ICatalogFileInfo as const GUID
 3212 
 3213 type ICatalogFileInfoVtbl
 3214     QueryInterface as function(byval This as ICatalogFileInfo ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 3215     AddRef as function(byval This as ICatalogFileInfo ptr) as ULONG
 3216     Release as function(byval This as ICatalogFileInfo ptr) as ULONG
 3217     GetCatalogFile as function(byval This as ICatalogFileInfo ptr, byval ppszCatalogFile as LPSTR ptr) as HRESULT
 3218     GetJavaTrust as function(byval This as ICatalogFileInfo ptr, byval ppJavaTrust as any ptr ptr) as HRESULT
 3219 end type
 3220 
 3221 type ICatalogFileInfo_
 3222     lpVtbl as ICatalogFileInfoVtbl ptr
 3223 end type
 3224 
 3225 #define ICatalogFileInfo_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 3226 #define ICatalogFileInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
 3227 #define ICatalogFileInfo_Release(This) (This)->lpVtbl->Release(This)
 3228 #define ICatalogFileInfo_GetCatalogFile(This, ppszCatalogFile) (This)->lpVtbl->GetCatalogFile(This, ppszCatalogFile)
 3229 #define ICatalogFileInfo_GetJavaTrust(This, ppJavaTrust) (This)->lpVtbl->GetJavaTrust(This, ppJavaTrust)
 3230 
 3231 declare function ICatalogFileInfo_GetCatalogFile_Proxy(byval This as ICatalogFileInfo ptr, byval ppszCatalogFile as LPSTR ptr) as HRESULT
 3232 declare sub ICatalogFileInfo_GetCatalogFile_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3233 declare function ICatalogFileInfo_GetJavaTrust_Proxy(byval This as ICatalogFileInfo ptr, byval ppJavaTrust as any ptr ptr) as HRESULT
 3234 declare sub ICatalogFileInfo_GetJavaTrust_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3235 #define _LPDATAFILTER_DEFINED
 3236 #define __IDataFilter_INTERFACE_DEFINED__
 3237 type IDataFilter as IDataFilter_
 3238 type LPDATAFILTER as IDataFilter ptr
 3239 extern IID_IDataFilter as const GUID
 3240 
 3241 type IDataFilterVtbl
 3242     QueryInterface as function(byval This as IDataFilter ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 3243     AddRef as function(byval This as IDataFilter ptr) as ULONG
 3244     Release as function(byval This as IDataFilter ptr) as ULONG
 3245     DoEncode as function(byval This as IDataFilter ptr, byval dwFlags as DWORD, byval lInBufferSize as LONG, byval pbInBuffer as UBYTE ptr, byval lOutBufferSize as LONG, byval pbOutBuffer as UBYTE ptr, byval lInBytesAvailable as LONG, byval plInBytesRead as LONG ptr, byval plOutBytesWritten as LONG ptr, byval dwReserved as DWORD) as HRESULT
 3246     DoDecode as function(byval This as IDataFilter ptr, byval dwFlags as DWORD, byval lInBufferSize as LONG, byval pbInBuffer as UBYTE ptr, byval lOutBufferSize as LONG, byval pbOutBuffer as UBYTE ptr, byval lInBytesAvailable as LONG, byval plInBytesRead as LONG ptr, byval plOutBytesWritten as LONG ptr, byval dwReserved as DWORD) as HRESULT
 3247     SetEncodingLevel as function(byval This as IDataFilter ptr, byval dwEncLevel as DWORD) as HRESULT
 3248 end type
 3249 
 3250 type IDataFilter_
 3251     lpVtbl as IDataFilterVtbl ptr
 3252 end type
 3253 
 3254 #define IDataFilter_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 3255 #define IDataFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
 3256 #define IDataFilter_Release(This) (This)->lpVtbl->Release(This)
 3257 #define IDataFilter_DoEncode(This, dwFlags, lInBufferSize, pbInBuffer, lOutBufferSize, pbOutBuffer, lInBytesAvailable, plInBytesRead, plOutBytesWritten, dwReserved) (This)->lpVtbl->DoEncode(This, dwFlags, lInBufferSize, pbInBuffer, lOutBufferSize, pbOutBuffer, lInBytesAvailable, plInBytesRead, plOutBytesWritten, dwReserved)
 3258 #define IDataFilter_DoDecode(This, dwFlags, lInBufferSize, pbInBuffer, lOutBufferSize, pbOutBuffer, lInBytesAvailable, plInBytesRead, plOutBytesWritten, dwReserved) (This)->lpVtbl->DoDecode(This, dwFlags, lInBufferSize, pbInBuffer, lOutBufferSize, pbOutBuffer, lInBytesAvailable, plInBytesRead, plOutBytesWritten, dwReserved)
 3259 #define IDataFilter_SetEncodingLevel(This, dwEncLevel) (This)->lpVtbl->SetEncodingLevel(This, dwEncLevel)
 3260 
 3261 declare function IDataFilter_DoEncode_Proxy(byval This as IDataFilter ptr, byval dwFlags as DWORD, byval lInBufferSize as LONG, byval pbInBuffer as UBYTE ptr, byval lOutBufferSize as LONG, byval pbOutBuffer as UBYTE ptr, byval lInBytesAvailable as LONG, byval plInBytesRead as LONG ptr, byval plOutBytesWritten as LONG ptr, byval dwReserved as DWORD) as HRESULT
 3262 declare sub IDataFilter_DoEncode_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3263 declare function IDataFilter_DoDecode_Proxy(byval This as IDataFilter ptr, byval dwFlags as DWORD, byval lInBufferSize as LONG, byval pbInBuffer as UBYTE ptr, byval lOutBufferSize as LONG, byval pbOutBuffer as UBYTE ptr, byval lInBytesAvailable as LONG, byval plInBytesRead as LONG ptr, byval plOutBytesWritten as LONG ptr, byval dwReserved as DWORD) as HRESULT
 3264 declare sub IDataFilter_DoDecode_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3265 declare function IDataFilter_SetEncodingLevel_Proxy(byval This as IDataFilter ptr, byval dwEncLevel as DWORD) as HRESULT
 3266 declare sub IDataFilter_SetEncodingLevel_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3267 #define _LPENCODINGFILTERFA