This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/urlmon.h

3063 lines
136 KiB
C
Raw Permalink Normal View History

/*
* urlmon.h URL moniker interfaces and functions
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#include <rpc.h>
#include <rpcndr.h>
#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif
#ifndef __urlmon_h__
#define __urlmon_h__
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#include <oleidl.h>
#include <servprov.h>
#include <msxml.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
typedef interface IBindStatusCallback IBindStatusCallback;
typedef interface IBinding IBinding;
typedef interface IInternetProtocol IInternetProtocol;
typedef interface IInternetProtocolSink IInternetProtocolSink;
/* URL moniker object parameters */
#define SZ_URLCONTEXT OLESTR( "URL Context" )
#define SZ_ASYNC_CALLEE OLESTR( "AsyncCallee" )
/* URL system moniker type */
#define MKSYS_URLMONIKER 6L
/* CreateURLMonikerEx() flags */
#define URL_MK_LEGACY 0L
#define URL_MK_UNIFORM 1L
#define URL_MK_NO_CANONICALIZE 2L
/* FaultInIEFeature() flags */
#define FIEF_FLAG_FORCE_JITUI 0x00000001L
#define FIEF_FLAG_PEEK 0x00000002L
#define FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK 0x00000004L
/* FindMimeFromData() flags */
#define FMFD_DEFAULT 0x00000000L
#define FMFD_URLASFILENAME 0x00000001L
#if (_WIN32_IE >= 0x0602)
#define FMFD_ENABLEMIMESNIFFING 0x00000002L
#define FMFD_IGNOREMIMETEXTPLAIN 0x00000004L
#endif
#define FMFD_SERVERMIME 0x00000008L
/* ObtainUserAgentString() options */
#define UAS_EXACTLEGACY 0x00001000L
/* UrlMkSetSessionOption() options */
#define URLMON_OPTION_USERAGENT 0x10000001L
#define URLMON_OPTION_USERAGENT_REFRESH 0x10000002L
#define URLMON_OPTION_URL_ENCODING 0x10000004L
#if (_WIN32_IE >= 0x0602)
#define URLMON_OPTION_USE_BINDSTRINGCREDS 0x10000008L
#endif
#if (_WIN32_IE >= 0x0700)
#define URLMON_OPTION_USE_BROWSERAPPSDOCUMENTS 0x10000010L
#endif
/* Clipboard format special value */
#define CF_NULL 0
/* MIME types */
#define CFSTR_MIME_NULL NULL
#define CFSTR_MIME_TEXT TEXT( "text/plain" )
#define CFSTR_MIME_RICHTEXT TEXT( "text/richtext" )
#define CFSTR_MIME_X_BITMAP TEXT( "image/x-xbitmap" )
#define CFSTR_MIME_POSTSCRIPT TEXT( "application/postscript" )
#define CFSTR_MIME_AIFF TEXT( "audio/aiff" )
#define CFSTR_MIME_BASICAUDIO TEXT( "audio/basic" )
#define CFSTR_MIME_WAV TEXT( "audio/wav" )
#define CFSTR_MIME_W_WAV TEXT(" audio/x-wav" )
#define CFSTR_MIME_GIF TEXT( "image/gif" )
#define CFSTR_MIME_PJPEG TEXT( "image/pjpeg" )
#define CFSTR_MIME_JPEG TEXT( "image/jpeg" )
#define CFSTR_MIME_TIFF TEXT( "image/tiff" )
#define CFSTR_MIME_X_PNG TEXT( "image/x-png" )
#define CFSTR_MIME_BMP TEXT( "image/bmp" )
#define CFSTR_MIME_X_ART TEXT( "image/x-jg" )
#define CFSTR_MIME_X_EMF TEXT( "image/x-emf" )
#define CFSTR_MIME_X_WMF TEXT( "image/x-wmf" )
#define CFSTR_MIME_AVI TEXT( "video/avi" )
#define CFSTR_MIME_MPEG TEXT( "video/mpeg" )
#define CFSTR_MIME_FRACTALS TEXT( "application/fractals" )
#define CFSTR_MIME_RAWDATA TEXT( "application/octet-stream" )
#define CFSTR_MIME_RAWDATASTRM TEXT( "application/octet-stream" )
#define CFSTR_MIME_PDF TEXT( "application/pdf" )
#define CFSTR_MIME_HTA TEXT( "application/hta" )
#define CFSTR_MIME_X_AIFF TEXT( "audio/x-aiff" )
#define CFSTR_MIME_X_REALAUDIO TEXT( "audio/x-pn-realaudio" )
#define CFSTR_MIME_XBM TEXT( "image/xbm" )
#define CFSTR_MIME_QUICKTIME TEXT( "video/quicktime" )
#define CFSTR_MIME_X_MSVIDEO TEXT( "video/x-msvideo" )
#define CFSTR_MIME_X_SGI_MOVIE TEXT( "video/x-sgi-movie" )
#define CFSTR_MIME_HTML TEXT( "text/html" )
#define CFSTR_MIME_XML TEXT( "text/xml" )
/* Moniker error codes */
#define MK_S_ASYNCHRONOUS 0x000401E8L
#define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS
/* Internet error codes */
#define INET_E_ERROR_FIRST 0x800C0002L
#define INET_E_INVALID_URL 0x800C0002L
#define INET_E_NO_SESSION 0x800C0003L
#define INET_E_CANNOT_CONNECT 0x800C0004L
#define INET_E_RESOURCE_NOT_FOUND 0x800C0005L
#define INET_E_OBJECT_NOT_FOUND 0x800C0006L
#define INET_E_DATA_NOT_AVAILABLE 0x800C0007L
#define INET_E_DOWNLOAD_FAILURE 0x800C0008L
#define INET_E_AUTHENTICATION_REQUIRED 0x800C0009L
#define INET_E_NO_VALID_MEDIA 0x800C000AL
#define INET_E_CONNECTION_TIMEOUT 0x800C000BL
#define INET_E_INVALID_REQUEST 0x800C000CL
#define INET_E_UNKNOWN_PROTOCOL 0x800C000DL
#define INET_E_SECURITY_PROBLEM 0x800C000EL
#define INET_E_CANNOT_LOAD_DATA 0x800C000FL
#define INET_E_CANNOT_INSTANTIATE_OBJECT 0x800C0010L
#define INET_E_USE_DEFAULT_PROTOCOLHANDLER 0x800C0011L
#define INET_E_USE_DEFAULT_SETTING 0x800C0012L
#define INET_E_QUERYOPTION_UNKNOWN 0x800C0013L
#define INET_E_REDIRECTING 0x800C0014L
#define INET_E_REDIRECT_FAILED 0x800C0014L
#define INET_E_REDIRECT_TO_DIR 0x800C0015L
#define INET_E_CANNOT_LOCK_REQUEST 0x800C0016L
#define INET_E_USE_EXTEND_BINDING 0x800C0017L
#define INET_E_TERMINATE_BIND 0x800C0018L
#define INET_E_INVALID_CERTIFICATE 0x800C0019L
#define INET_E_BLOCK_REDIRECT_XSECURITYID 0x800C001BL
#define INET_E_CODE_DOWNLOAD_DECLINED 0x800C0100L
#define INET_E_RESULT_DISPATCHED 0x800C0200L
#define INET_E_CANNOT_REPLACE_SFP_FILE 0x800C0300L
#if (_WIN32_IE >= 0x0602)
#define INET_E_CODE_INSTALL_SUPPRESSED 0x800C0400L
#endif
#define INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY 0x800C0500L
#define INET_E_DOWNLOAD_BLOCKED_BY_INPRIVATE 0x800C0501L
#define INET_E_ERROR_LAST INET_E_DOWNLOAD_BLOCKED_BY_INPRIVATE
#define INET_E_DEFAULT_ACTION INET_E_USE_DEFAULT_PROTOCOLHANDLER
/* URI creation flags */
#if (_WIN32_IE >= 0x0700)
#define Uri_CREATE_ALLOW_RELATIVE 0x00000001L
#define Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME 0x00000002L
#define Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME 0x00000004L
#define Uri_CREATE_NOFRAG 0x00000008L
#define Uri_CREATE_NO_CANONICALIZE 0x00000010L
#define Uri_CREATE_CANONICALIZE 0x00000100L
#define Uri_CREATE_FILE_USE_DOS_PATH 0x00000020L
#define Uri_CREATE_DECODE_EXTRA_INFO 0x00000040L
#define Uri_CREATE_NO_DECODE_EXTRA_INFO 0x00000080L
#define Uri_CREATE_CRACK_UNKNOWN_SCHEMES 0x00000200L
#define Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES 0x00000400L
#define Uri_CREATE_PRE_PROCESS_HTML_URI 0x00000800L
#define Uri_CREATE_NO_PRE_PROCESS_HTML_URI 0x00001000L
#define Uri_CREATE_IE_SETTINGS 0x00002000L
#define Uri_CREATE_NO_IE_SETTINGS 0x00004000L
#define Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS 0x00008000L
#endif
/* URI display flags */
#if (_WIN32_IE >= 0x0700)
#define Uri_DISPLAY_NO_FRAGMENT 0x00000001L
#define Uri_PUNYCODE_IDN_HOST 0x00000002L
#define Uri_DISPLAY_IDN_HOST 0x00000004L
#endif
/* URI encoding flags */
#if (_WIN32_IE >= 0x0700)
#define Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 0x00000001L
#define Uri_ENCODING_USER_INFO_AND_PATH_IS_CP 0x00000002L
#define Uri_ENCODING_HOST_IS_IDN 0x00000004L
#define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 0x00000008L
#define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP 0x00000010L
#define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8 0x00000020L
#define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP 0x00000040L
#define Uri_ENCODING_RFC \
(Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 | \
Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 | \
Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8)
#endif
/* URI builder flags */
#if (_WIN32_IE >= 0x0700)
#define UriBuilder_USE_ORIGINAL_FLAGS 0x00000001L
#endif
/* UrlDownloadToCacheFile() flags */
#define URLOSTRM_USECACHEDCOPY_ONLY 0x00000001L
#define URLOSTRM_USECACHEDCOPY 0x00000002L
#define URLOSTRM_GETNEWESTVERSION 0x00000003L
/* IWinInetInfo::QueryOption() options */
#define WININETINFO_OPTION_LOCK_HANDLE 65534L
/* CoInternetSetFeatureEnabled() flags */
#if (_WIN32_IE >= 0x0602)
#define SET_FEATURE_ON_THREAD 0x00000001L
#define SET_FEATURE_ON_PROCESS 0x00000002L
#define SET_FEATURE_IN_REGISTRY 0x00000004L
#define SET_FEATURE_ON_THREAD_LOCALMACHINE 0x00000008L
#define SET_FEATURE_ON_THREAD_INTRANET 0x00000010L
#define SET_FEATURE_ON_THREAD_TRUSTED 0x00000020L
#define SET_FEATURE_ON_THREAD_INTERNET 0x00000040L
#define SET_FEATURE_ON_THREAD_RESTRICTED 0x00000080L
#endif
/* CoInternetIsFeatureEnabled() flags */
#if (_WIN32_IE >= 0x0602)
#define GET_FEATURE_FROM_THREAD 0x00000001L
#define GET_FEATURE_FROM_PROCESS 0x00000002L
#define GET_FEATURE_FROM_REGISTRY 0x00000004L
#define GET_FEATURE_FROM_THREAD_LOCALMACHINE 0x00000008L
#define GET_FEATURE_FROM_THREAD_INTRANET 0x00000010L
#define GET_FEATURE_FROM_THREAD_TRUSTED 0x00000020L
#define GET_FEATURE_FROM_TRREAD_INTERNET 0x00000040L
#define GET_FEATURE_FROM_THREAD_RESTRICTED 0x00000080L
#endif
/* Protocol flags */
#define PROTOCOLFLAG_NO_PICS_CHECK 0x00000001L
/* IInternetSecurityManager::MapUrlToZone() flags */
#define MUTZ_NOSAVEDFILECHECK 0x00000001L
#define MUTZ_ISFILE 0x00000002L
#define MUTZ_ACCEPT_WILDCARD_SCHEME 0x00000080L
#define MUTZ_ENFORCERESTRICTED 0x00000100L
#define MUTZ_RESERVED 0x00000200L
#define MUTZ_REQUIRESAVEDFILECHECK 0x00000400L
#define MUTZ_DONT_UNESCAPE 0x00000800L
#define MUTZ_DONT_USE_CACHE 0x00001000L
#define MUTZ_FORCE_INTRANET_FLAGS 0x00002000L
#define MUTZ_IGNORE_ZONE_MAPPINGS 0x00004000L
/* Maximum security identifier size */
#define MAX_SIZE_SECURITY_ID 512
/* URL actions */
#define URLACTION_MIN 0x00001000L
#define URLACTION_DOWNLOAD_MIN 0x00001000L
#define URLACTION_DOWNLOAD_SIGNED_ACTIVEX 0x00001001L
#define URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX 0x00001004L
#define URLACTION_DOWNLOAD_CURR_MAX 0x00001004L
#define URLACTION_DOWNLOAD_MAX 0x000011FFL
#define URLACTION_ACTIVEX_MIN 0x00001200L
#define URLACTION_ACTIVEX_RUN 0x00001200L
#define URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY 0x00001201L
#define URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY 0x00001202L
#define URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY 0x00001203L
#define URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY 0x00001204L
#define URLACTION_ACTIVEX_TREATASUNTRUSTED 0x00001205L
#define URLACTION_ACTIVEX_NO_WEBOC_SCRIPT 0x00001206L
#define URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION 0x00001207L
#define URLACTION_ACTIVEX_OVERRIDE_OPTIN 0x00001208L
#define URLACTION_ACTIVEX_SCRIPTLET_RUN 0x00001209L
#define URLACTION_ACTIVEX_DYNSRC_VIDEO_AND_ANIMATION 0x0000120AL
#define URLACTION_ACTIVEX_OVERRIDE_DOMAINLIST 0x0000120BL
#define URLACTION_ACTIVEX_CURR_MAX 0x0000120BL
#define URLACTION_ACTIVEX_MAX 0x000013FFL
#define URLACTION_SCRIPT_MIN 0x00001400L
#define URLACTION_SCRIPT_RUN 0x00001400L
#define URLACTION_SCRIPT_OVERRIDE_SAFETY 0x00001401L
#define URLACTION_SCRIPT_JAVA_USE 0x00001402L
#define URLACTION_SCRIPT_SAFE_ACTIVEX 0x00001405L
#define URLACTION_CROSS_DOMAIN_DATA 0x00001406L
#define URLACTION_SCRIPT_PASTE 0x00001407L
#define URLACTION_ALLOW_XDOMAIN_SUBFRAME_RESIZE 0x00001408L
#define URLACTION_SCRIPT_XSSFILTER 0x00001409L
#define URLACTION_SCRIPT_CURR_MAX 0x00001409L
#define URLACTION_SCRIPT_MAX 0x000015FFL
#define URLACTION_HTML_MIN 0x00001600L
#define URLACTION_HTML_SUBMIT_FORMS 0x00001601L
#define URLACTION_HTML_SUBMIT_FORMS_FROM 0x00001602L
#define URLACTION_HTML_SUBMIT_FORMS_TO 0x00001603L
#define URLACTION_HTML_FONT_DOWNLOAD 0x00001604L
#define URLACTION_HTML_JAVA_RUN 0x00001605L
#define URLACTION_HTML_USERDATA_SAVE 0x00001606L
#define URLACTION_HTML_SUBFRAME_NAVIGATE 0x00001607L
#define URLACTION_HTML_META_REFRESH 0x00001608L
#define URLACTION_HTML_MIXED_CONTENT 0x00001609L
#define URLACTION_HTML_INCLUDE_FILE_PATH 0x0000160AL
#define URLACTION_HTML_MAX 0x000017FFL
#define URLACTION_SHELL_MIN 0x00001800L
#define URLACTION_SHELL_INSTALL_DTITEMS 0x00001800L
#define URLACTION_SHELL_MOVE_OR_COPY 0x00001802L
#define URLACTION_SHELL_FILE_DOWNLOAD 0x00001803L
#define URLACTION_SHELL_VERB 0x00001804L
#define URLACTION_SHELL_WEBVIEW_VERB 0x00001805L
#define URLACTION_SHELL_SHELLEXECUTE 0x00001806L
#if (_WIN32_IE >= 0x0602)
#define URLACTION_SHELL_EXECUTE_HIGHRISK 0x00001806L
#define URLACTION_SHELL_EXECUTE_MODRISK 0x00001807L
#define URLACTION_SHELL_EXECUTE_LOWRISK 0x00001808L
#define URLACTION_SHELL_POPUPMGR 0x00001809L
#define URLACTION_SHELL_RTF_OBJECTS_LOAD 0x0000180AL
#define URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY 0x0000180BL
#define URLACTION_SHELL_EXTENSIONSECURITY 0x0000180CL
#define URLACTION_SHELL_SECURE_DRAGSOURCE 0x0000180DL
#endif
#if (_WIN32_IE >= 0x0800)
#define URLACTION_SHELL_REMOTEQUERY 0x0000180EL
#define URLACTION_SHELL_PREVIEW 0x0000180FL
#endif
#define URLACTION_SHELL_CURR_MAX 0x0000180FL
#define URLACTION_SHELL_MAX 0x000019FFL
#define URLACTION_NETWORK_MIN 0x00001A00L
#define URLACTION_CREDENTIALS_USE 0x00001A00L
#define URLACTION_AUTHENTICATE_CLIENT 0x00001A01L
#define URLACTION_COOKIES 0x00001A02L
#define URLACTION_COOKIES_SESSION 0x00001A03L
#define URLACTION_CLIENT_CERT_PROMPT 0x00001A04L
#define URLACTION_COOKIES_THIRD_PARTY 0x00001A05L
#define URLACTION_COOKIES_SESSION_THIRD_PARTY 0x00001A06L
#define URLACTION_COOKIES_ENABLED 0x00001A10L
#define URLACTION_NETWORK_CURR_MAX 0x00001A10L
#define URLACTION_NETWORK_MAX 0x00001BFFL
#define URLACTION_JAVA_MIN 0x00001C00L
#define URLACTION_JAVA_PERMISSIONS 0x00001C00L
#define URLACTION_JAVA_CURR_MAX 0x00001C00L
#define URLACTION_JAVA_MAX 0x00001CFFL
#define URLACTION_INFODELIVERY_MIN 0x00001D00L
#define URLACTION_INFODELIVERY_NO_ADDING_CHANNELS 0x00001D00L
#define URLACTION_INFODELIVERY_NO_EDITING_CHANNELS 0x00001D01L
#define URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS 0x00001D02L
#define URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS 0x00001D03L
#define URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS 0x00001D04L
#define URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS 0x00001D05L
#define URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING 0x00001D06L
#define URLACTION_INFODELIVERY_CURR_MAX 0x00001D06L
#define URLACTION_INFODELIVERY_MAX 0x00001DFFL
#define URLACTION_CHANNEL_SOFTDIST_MIN 0x00001E00L
#define URLACTION_CHANNEL_SOFTDIST_PERMISSIONS 0x00001E05L
#define URLACTION_CHANNEL_SOFTDIST_MAX 0x00001EFFL
#if (_WIN32_IE >= 0x0800)
#define URLACTION_DOTNER_USERCONTROLS 0x00002005L
#endif
#if (_WIN32_IE >= 0x0602)
#define URLACTION_BEHAVIOR_MIN 0x00002000L
#define URLACTION_BEHAVIOR_RUN 0x00002000L
#define URLACTION_FEATURE_MIN 0x00002100L
#define URLACTION_FEATURE_MIME_SNIFFING 0x00002100L
#define URLACTION_FEATURE_ZONE_ELEVATION 0x00002101L
#define URLACTION_FEATURE_WINDOW_RESTRICTIONS 0x00002102L
#define URLACTION_FEATURE_SCRIPT_STATUS_BAR 0x00002103L
#define URLACTION_FEATURE_FORCE_ADDR_AND_STATUS 0x00002104L
#define URLACTION_FEATURE_BLOCK_INPUT_PROMPTS 0x00002105L
#define URLACTION_FEATURE_DATA_BINDING 0x00002106L
#define URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN 0x00002200L
#define URLACTION_AUTOMATIC_DOWNLOAD_UI 0x00002200L
#define URLACTION_AUTOMATIC_ACTIVEX_UI 0x00002201L
#define URLACTION_ALLOW_RESTRICTEDPROTOCOLS 0x00002300L
#endif
#if (_WIN32_IE >= 0x0700)
#define URLACTION_ALLOW_APEVALUATION 0x00002301L
#define URLACTION_WINDOWS_BROWSER_APPLICATIONS 0x00002400L
#define URLACTION_XPS_DOCUMENTS 0x00002401L
#define URLACTION_LOOSE_XAML 0x00002402L
#define URLACTION_LOWRIGHTS 0x00002500L
#define URLACTION_WINFX_SETUP 0x00002600L
#define URLACTION_INPRIVATE_BLOCKING 0x00002700L
#endif
/* URL policy ActiveX options */
#define URLPOLICY_ACTIVEX_CHECK_LIST 0x00010000L
/* URL policy credential options */
#define URLPOLICY_CREDENTIALS_SILENT_LOGON_OK 0x00000000L
#define URLPOLICY_CREDENTIALS_MUST_PROMPT_USER 0x00010000L
#define URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT 0x00020000L
#define URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY 0x00030000L
/* URL policy authentication options */
#define URLPOLICY_AUTHENTICATE_CLEARTEXT_OK 0x00000000L
#define URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE 0x00010000L
#define URLPOLICY_AUTHENTICATE_MUTUAL_ONLY 0x00030000L
/* URL policy Java options */
#define URLPOLICY_JAVA_PROHIBIT 0x00000000L
#define URLPOLICY_JAVA_HIGH 0x00010000L
#define URLPOLICY_JAVA_MEDIUM 0x00020000L
#define URLPOLICY_JAVA_LOW 0x00030000L
#define URLPOLICY_JAVA_CUSTOM 0x00800000L
/* URL policy channel software distribution options */
#define URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT 0x00010000L
#define URLPOLICY_CHANNEL_SOFTDIST_PRECACHE 0x00020000L
#define URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL 0x00030000L
/* URL policy behavior options */
#if (_WIN32_IE >= 0x0602)
#define URLPOLICY_BEHAVIOR_CHECK_LIST 0x00010000L
#endif
/* General URL policy options */
#define URLPOLICY_ALLOW 0x00000000L
#define URLPOLICY_QUERY 0x00000001L
#define URLPOLICY_DISALLOW 0x00000003L
#define URLPOLICY_NOTIFY_ON_ALLOW 0x00000010L
#define URLPOLICY_NOTIFY_ON_DISALLOW 0x00000020L
#define URLPOLICY_LOG_ON_ALLOW 0x00000040L
#define URLPOLICY_LOG_ON_DISALLOW 0x00000080L
#define URLPOLICY_MASK_PERMISSIONS 0x0000000FL
#define URLPOLICY_DONTCHECKDLGBOX 0x00000100L
/* Macros to manipulate URL policy options */
#define GetUrlPolicyPermissions( x ) (x & URLPOLICY_MASK_PERMISSIONS)
#define SetUrlPolicyPermissions( x, p ) ((x) = ((x) & ~URLPOLICY_MASK_PERMISSIONS) | (p))
/* IInternetSecurityManager::SetZoneMapping() flags */
#define URLZONE_ESC_FLAG 0x00000100L
/* Security states */
#if (_WIN32_IE >= 0x0700)
#define SECURITY_IE_STATE_GREEN 0x00000000L
#define SECURITY_IE_STATE_RED 0x00000001L
#endif
/* Software distribution flags */
#define SOFTDIST_FLAG_USAGE_EMAIL 0x00000001L
#define SOFTDIST_FLAG_USAGE_PRECACHE 0x00000002L
#define SOFTDIST_FLAG_USAGE_AUTOINSTALL 0x00000004L
#define SOFTDIST_FLAG_DELETE_SUBSCRIPTION 0x00000008L
/* Software distribution advertised states */
#define SOFTDIST_ADSTATE_NONE 0x00000000L
#define SOFTDIST_ADSTATE_AVAILABLE 0x00000001L
#define SOFTDIST_ADSTATE_DOWNLOADED 0x00000002L
#define SOFTDIST_ADSTATE_INSTALLED 0x00000003L
/* Confirm safety actions */
#define CONFIRMSAFETYACTION_LOADOBJECT 0x00000001L
/* Moniker properties */
typedef enum {
MIMETYPEPROP = 0x00000000,
USE_SRC_URL = 0x00000001,
CLASSIDPROP = 0x00000002,
TRUSTEDDOWNLOADPROP = 0x00000003,
POPUPLEVELPROP = 0x00000004
} MONIKERPROPERTY;
/* Bind verbs */
typedef enum {
BINDVERB_GET = 0x00000000,
BINDVERB_POST = 0x00000001,
BINDVERB_PUT = 0x00000002,
BINDVERB_CUSTOM = 0x00000003
} BINDVERB;
/* Bind information flags */
typedef enum {
BINDINFOF_URLENCODESTGMEDDATA = 0x00000001,
BINDINFOF_URLENCODEDEXTRAINFO = 0x00000002
} BINDINFOF;
/* Bind flags */
typedef enum {
BINDF_ASYNCHRONOUS = 0x00000001,
BINDF_ASYNCSTORAGE = 0x00000002,
BINDF_NOPROGRESSIVERENDERING = 0x00000004,
BINDF_OFFLINEOPERATION = 0x00000008,
BINDF_GETNEWESTVERSION = 0x00000010,
BINDF_NOWRITECACHE = 0x00000020,
BINDF_NEEDFILE = 0x00000040,
BINDF_PULLDATA = 0x00000080,
BINDF_IGNORESECURITYPROBLEM = 0x00000100,
BINDF_RESYNCHRONIZE = 0x00000200,
BINDF_HYPERLINK = 0x00000400,
BINDF_NO_UI = 0x00000800,
BINDF_SILENTOPERATION = 0x00001000,
BINDF_PRAGMA_NO_CACHE = 0x00002000,
BINDF_GETCLASSOBJECT = 0x00004000,
BINDF_FREE_THREADED = 0x00010000,
BINDF_DIRECT_READ = 0x00020000,
BINDF_FORMS_SUBMIT = 0x00040000,
BINDF_GETFROMCACHE_IF_NET_FAIL = 0x00080000,
BINDF_FROMURLMON = 0x00100000,
BINDF_FWD_BACK = 0x00200000,
BINDF_PREFERDEFAULTHANDLER = 0x00400000,
BINDF_ENFORCERESTRICTED = 0x00800000
} BINDF;
/* URL encodings */
typedef enum {
URL_ENCODING_NONE = 0x00000000,
URL_ENCODING_ENABLE_UTF8 = 0x10000000,
URL_ENCODING_DISABLE_UTF8 = 0x20000000
} URL_ENCODING;
/* Bind information */
typedef struct _tagBINDINFO {
ULONG cbSize;
LPWSTR szExtraInfo;
STGMEDIUM stgmedData;
DWORD grfBindInfoF;
DWORD dwBindVerb;
LPWSTR szCustomVerb;
DWORD cbstgmedData;
DWORD dwOptions;
DWORD dwOptionsFlags;
DWORD dwCodePage;
SECURITY_ATTRIBUTES securityAttributes;
IID iid;
IUnknown *pUnk;
DWORD dwReserved;
} BINDINFO;
/* Bind information options */
typedef enum {
BINDINFO_OPTIONS_WININETFLAG = 0x00010000,
BINDINFO_OPTIONS_ENABLE_UTF8 = 0x00020000,
BINDINFO_OPTIONS_DISABLE_UTF8 = 0x00040000,
BINDINFO_OPTIONS_USE_IE_ENCODING = 0x00080000,
BINDINFO_OPTIONS_BINDTOOBJECT = 0x00100000,
BINDINFO_OPTIONS_SECURITYOPTOUT = 0x00200000,
BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN = 0x00400000,
BINDINFO_OPTIONS_USEBINDSTRINGCREDS = 0x00800000,
BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS = 0x01000000,
BINDINFO_OPTIONS_IGNORE_SSLERRORS_ONCE = 0x02000000,
BINDINFO_WPC_DOWNLOADBLOCKED = 0x08000000,
BINDINFO_WPC_LOGGING_ENABLED = 0x10000000,
BINDINFO_OPTIONS_ALLOWCONNECTDATA = 0x20000000,
BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS = 0x40000000,
BINDINFO_OPTIONS_SHDOCVW_NAVIGATE = 0x80000000
} BINDINFO_OPTIONS;
/* Bind status callback flags */
typedef enum {
BSCF_FIRSTDATANOTIFICATION = 0x00000001,
BSCF_INTERMEDIATEDATANOTIFICATION = 0x00000002,
BSCF_LASTDATANOTIFICATION = 0x00000004,
BSCF_DATAFULLYAVAILABLE = 0x00000008,
BSCF_AVAILABLEDATASIZEUNKNOWN = 0x00000010,
BSCF_SKIPDRAINDATAFORFILEURLS = 0x00000020,
BSCF_64BITLENGTHDOWNLOAD = 0x00000040
} BSCF;
/* Bind status values */
typedef enum {
BINDSTATUS_FINDINGRESOURCE = 1,
BINDSTATUS_CONNECTING = 2,
BINDSTATUS_REDIRECTING = 3,
BINDSTATUS_BEGINDOWNLOADDATA = 4,
BINDSTATUS_DOWNLOADINGDATA = 5,
BINDSTATUS_ENDDOWNLOADDATA = 6,
BINDSTATUS_BEGINDOWNLOADCOMPONENTS = 7,
BINDSTATUS_INSTALLINGCOMPONENTS = 8,
BINDSTATUS_ENDDOWNLOADCOMPONENTS = 9,
BINDSTATUS_USINGCACHEDCOPY = 10,
BINDSTATUS_SENDINGREQUEST = 11,
BINDSTATUS_CLASSIDAVAILABLE = 12,
BINDSTATUS_MIMETYPEAVAILABLE = 13,
BINDSTATUS_CACHEFILENAMEAVAILABLE = 14,
BINDSTATUS_BEGINSYNCOPERATION = 15,
BINDSTATUS_ENDSYNCOPERATION = 16,
BINDSTATUS_BEGINUPLOADDATA = 17,
BINDSTATUS_UPLOADINGDATA = 18,
BINDSTATUS_ENDUPLOADDATA = 19,
BINDSTATUS_PROTOCOLCLASSID = 20,
BINDSTATUS_ENCODING = 21,
BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE = 22,
BINDSTATUS_CLASSINSTALLLOCATION = 23,
BINDSTATUS_DECODING = 24,
BINDSTATUS_LOADINGMIMEHANDLER = 25,
BINDSTATUS_CONTENTDISPOSITIONATTACH = 26,
BINDSTATUS_FILTERREPORTMIMETYPE = 27,
BINDSTATUS_CLSIDCANINSTANTIATE = 28,
BINDSTATUS_IUNKNOWNAVAILABLE = 29,
BINDSTATUS_DIRECTBIND = 30,
BINDSTATUS_RAWMIMETYPE = 31,
BINDSTATUS_PROXYDETECTING = 32,
BINDSTATUS_ACCEPTRANGES = 33,
BINDSTATUS_COOKIE_SENT = 34,
BINDSTATUS_COMPACT_POLICY_RECEIVED = 35,
BINDSTATUS_COOKIE_SUPPRESSED = 36,
BINDSTATUS_COOKIE_STATE_UNKNOWN = 37,
BINDSTATUS_COOKIE_STATE_ACCEPT = 38,
BINDSTATUS_COOKIE_STATE_REJECT = 39,
BINDSTATUS_COOKIE_STATE_PROMPT = 40,
BINDSTATUS_COOKIE_STATE_LEASH = 41,
BINDSTATUS_COOKIE_STATE_DOWNGRADE = 42,
BINDSTATUS_POLICY_HREF = 43,
BINDSTATUS_P3P_HEADER = 44,
BINDSTATUS_SESSION_COOKIE_RECEIVED = 45,
BINDSTATUS_PERSISTENT_COOKIE_RECEIVED = 46,
BINDSTATUS_SESSION_COOKIE_ALLOWED = 47,
BINDSTATUS_CACHECONTROL = 48,
BINDSTATUS_CONTENTDISPOSITIONFILENAME = 49,
BINDSTATUS_MIMETEXTPLAINMISMATCH = 50,
BINDSTATUS_PUBLISHERAVAILABLE = 51,
BINDSTATUS_DISPLAYNAMEAVAILABLE = 52,
BINDSTATUS_SSLUX_NAVBLOCKED = 53,
BINDSTATUS_SERVER_MIMETYPEAVAILABLE = 54,
BINDSTATUS_SNIFFED_CLASSIDAVAILABLE = 55,
BINDSTATUS_64BIT_PROGRESS = 56
} BINDSTATUS;
/* Bind flags (level 2) */
typedef enum {
BINDF2_DISABLEBASICOVERHTTP = 0x00000001,
BINDF2_DISABLEAUTOCOOKIEHANDLING = 0x00000002,
BINDF2_READ_DATA_GREATER_THAN_4GB = 0x00000004,
BINDF2_DISABLE_HTTP_REDIRECT_XSECURITYID = 0x00000008
} BINDF2;
/* Authenticate flags */
typedef enum {
AUTHENTICATEF_PROXY = 0x00000001,
AUTHENTICATEF_BASIC = 0x00000002,
AUTHENTICATEF_HTTP = 0x00000004
} AUTHENTICATEF;
/* Authenticate information */
typedef struct _tagAUTHENTICATEINFO {
DWORD dwFlags;
DWORD dwReserved;
} AUTHENTICATEINFO;
/* Code install problems */
typedef enum {
CIP_DISK_FULL = 0,
CIP_ACCESS_DENIED = 1,
CIP_NEWER_VERSION_EXISTS = 2,
CIP_OLDER_VERSION_EXISTS = 3,
CIP_NAME_CONFLICT = 4,
CIP_TRUST_VERIFICATION_COMPONENT_MISSING = 5,
CIP_EXE_SELF_REGISTERATION_TIMEOUT = 6,
CIP_UNSAFE_TO_ABORT = 7,
CIP_NEED_REBOOT = 8,
CIP_NEED_REBOOT_UI_PERMISSION = 9,
} CIP_STATUS;
/* URI properties */
#if (_WIN32_IE >= 0x0700)
typedef enum {
Uri_PROPERTY_ABSOLUTE_URI = 0,
Uri_PROPERTY_STRING_START = Uri_PROPERTY_ABSOLUTE_URI,
Uri_PROPERTY_AUTHORITY = 1,
Uri_PROPERTY_DISPLAY_URI = 2,
Uri_PROPERTY_DOMAIN = 3,
Uri_PROPERTY_EXTENSION = 4,
Uri_PROPERTY_FRAGMENT = 5,
Uri_PROPERTY_HOST = 6,
Uri_PROPERTY_PASSWORD = 7,
Uri_PROPERTY_PATH = 8,
Uri_PROPERTY_PATH_AND_QUERY = 9,
Uri_PROPERTY_QUERY = 10,
Uri_PROPERTY_RAW_URI = 11,
Uri_PROPERTY_SCHEME_NAME = 12,
Uri_PROPERTY_USER_INFO = 13,
Uri_PROPERTY_USER_NAME = 14,
Uri_PROPERTY_STRING_LAST = Uri_PROPERTY_USER_NAME,
Uri_PROPERTY_HOST_TYPE = 15,
Uri_PROPERTY_DWORD_START = Uri_PROPERTY_HOST_TYPE,
Uri_PROPERTY_PORT = 16,
Uri_PROPERTY_SCHEME = 17,
Uri_PROPERTY_ZONE = 18,
Uri_PROPERTY_DWORD_LAST = Uri_PROPERTY_ZONE
} Uri_PROPERTY;
#endif
/* URI host types */
#if (_WIN32_IE >= 0x0700)
typedef enum {
Uri_HOST_UNKNOWN = 0,
Uri_HOST_DNS = 1,
Uri_HOST_IPV4 = 2,
Uri_HOST_IPV6 = 3,
Uri_HOST_IDN = 4
} Uri_HOST_TYPE;
#endif
/* IUri::GetProperties() flags */
#if (_WIN32_IE >= 0x0700)
#define Uri_HAS_ABSOLUTE_URI (1 << Uri_PROPERTY_ABSOLUTE_URI)
#define Uri_HAS_AUTHORITY (1 << Uri_PROPERTY_AUTHORITY)
#define Uri_HAS_DISPLAY_URI (1 << Uri_PROPERTY_DISPLAY_URI)
#define Uri_HAS_DOMAIN (1 << Uri_PROPERTY_DOMAIN)
#define Uri_HAS_EXTENSION (1 << Uri_PROPERTY_EXTENSION)
#define Uri_HAS_FRAGMENT (1 << Uri_PROPERTY_FRAGMENT)
#define Uri_HAS_HOST (1 << Uri_PROPERTY_HOST)
#define Uri_HAS_PASSWORD (1 << Uri_PROPERTY_PASSWORD)
#define Uri_HAS_PATH (1 << Uri_PROPERTY_PATH)
#define Uri_HAS_QUERY (1 << Uri_PROPERTY_QUERY)
#define Uri_HAS_RAW_URI (1 << Uri_PROPERTY_RAW_URI)
#define Uri_HAS_SCHEME_NAME (1 << Uri_PROPERTY_SCHEME_NAME)
#define Uri_HAS_USER_NAME (1 << Uri_PROPERTY_USER_NAME)
#define Uri_HAS_PATH_AND_QUERY (1 << Uri_PROPERTY_PATH_AND_QUERY)
#define Uri_HAS_USER_INFO (1 << Uri_PROPERTY_USER_INFO)
#define Uri_HAS_HOST_TYPE (1 << Uri_PROPERTY_HOST_TYPE)
#define Uri_HAS_PORT (1 << Uri_PROPERTY_PORT)
#define Uri_HAS_SCHEME (1 << Uri_PROPERTY_SCHEME)
#define Uri_HAS_ZONE (1 << Uri_PROPERTY_ZONE)
#endif
/* URLOpenStream() callback function */
typedef HRESULT (STDAPICALLTYPE *LPFNOSCALLBACK)( IBindStatusCallback * );
/* Bind strings */
typedef enum tagBINDSTRING {
BINDSTRING_HEADERS = 1,
BINDSTRING_ACCEPT_MIMES = 2,
BINDSTRING_EXTRA_URL = 3,
BINDSTRING_LANGUAGE = 4,
BINDSTRING_USERNAME = 5,
BINDSTRING_PASSWORD = 6,
BINDSTRING_UA_PIXELS = 7,
BINDSTRING_UA_COLOR = 8,
BINDSTRING_OS = 9,
BINDSTRING_USER_AGENT = 10,
BINDSTRING_ACCEPT_ENCODINGS = 11,
BINDSTRING_POST_COOKIE = 12,
BINDSTRING_POST_DATA_MIME = 13,
BINDSTRING_URL = 14,
BINDSTRING_IID = 15,
BINDSTRING_FLAG_BIND_TO_OBJECT = 16,
BINDSTRING_PTR_BIND_CONTEXT = 17,
BINDSTRING_XDR_ORIGIN = 18
} BINDSTRING;
/* Asynchronous protocol handler flags */
typedef enum _tagPI_FLAGS {
PI_PARSE_URL = 0x00000001,
PI_FILTER_MODE = 0x00000002,
PI_FORCE_ASYNC = 0x00000004,
PI_USE_WORKERTHREAD = 0x00000008,
PI_MIMEVERIFICATION = 0x00000010,
PI_CLSIDLOOKUP = 0x00000020,
PI_DATAPROGRESS = 0x00000040,
PI_SYNCHRONOUS = 0x00000080,
PI_APARTMENTTHREADED = 0x00000100,
PI_CLASSINSTALL = 0x00000200,
PI_PASSONBINDCTX = 0x00002000,
PI_NOMIMEHANDLER = 0x00008000,
PI_LOADAPPDIRECT = 0x00004000,
PI_FORCE_SWITCH = 0x00010000,
PI_PREFERDEFAULTHANDLER = 0x00020000
} PI_FLAGS;
/* Protocol data */
typedef struct _tagPROTOCOLDATA {
DWORD grfFlags;
DWORD dwState;
LPVOID pData;
ULONG cbData;
} PROTOCOLDATA;
/* Start parameter */
typedef struct _tagStartParam {
IID iid;
IBindCtx *pIBindCtx;
IUnknown *pItf;
} StartParam;
/* Obsolete flags for compatibility */
typedef enum _tagOIBDG_FLAGS {
OIBDG_APARTMENTTHREADED = 0x00000100,
OIBDG_DATAONLY = 0x00001000
} OIBDG_FLAGS;
/* Parse actions */
typedef enum _tagPARSEACTION {
PARSE_CANONICALIZE = 1,
PARSE_FRIENDLY = 2,
PARSE_SECURITY_URL = 3,
PARSE_ROOTDOCUMENT = 4,
PARSE_DOCUMENT = 5,
PARSE_ANCHOR = 6,
PARSE_ENCODE_IS_UNESCAPE = 7,
PARSE_DECODE_IS_ESCAPE = 8,
PARSE_PATH_FROM_URL = 9,
PARSE_URL_FROM_PATH = 10,
PARSE_MIME = 11,
PARSE_SERVER = 12,
PARSE_SCHEMA = 13,
PARSE_SITE = 14,
PARSE_DOMAIN = 15,
PARSE_LOCATION = 16,
PARSE_SECURITY_DOMAIN = 17,
PARSE_ESCAPE = 18,
PARSE_UNESCAPE = 19
} PARSEACTION;
/* Old names for compatibility */
#ifndef URLMON_STRICT
#define PARSE_ENCODE PARSE_ENCODE_IS_UNESCAPE
#define PARSE_DECODE PARSE_DECODE_IS_ESCAPE
#endif
/* CoInternetGetSecurityURL() actions */
typedef enum _tagPSUACTION {
PSU_DEFAULT = 1,
PSU_SECURITY_URL_ONLY = 2
} PSUACTION;
/* Query options */
typedef enum _tagQUERYOPTION {
QUERY_EXPIRATION_DATE = 1,
QUERY_TIME_OF_LAST_CHANGE = 2,
QUERY_CONTENT_ENCODING = 3,
QUERY_CONTENT_TYPE = 4,
QUERY_REFRESH = 5,
QUERY_RECOMBINE = 6,
QUERY_CAN_NAVIGATE = 7,
QUERY_USES_NETWORK = 8,
QUERY_IS_CACHED = 9,
QUERY_IS_INSTALLEDENTRY = 10,
QUERY_IS_CACHED_OR_MAPPED = 11,
QUERY_USES_CACHE = 12,
QUERY_IS_SECURE = 13,
QUERY_IS_SAFE = 14,
QUERY_USES_HISTORYFOLDER = 15
} QUERYOPTION;
/* Internet feature options */
#if (_WIN32_IE >= 0x0602)
typedef enum _tagINTERNETFEATURELIST {
FEATURE_OBJECT_CACHING = 0,
FEATURE_ZONE_ELEVATION = 1,
FEATURE_MIME_HANDLING = 2,
FEATURE_MIME_SNIFFING = 3,
FEATURE_WINDOW_RESTRICTIONS = 4,
FEATURE_WEBOC_POPUPMANAGEMENT = 5,
FEATURE_BEHAVIORS = 6,
FEATURE_DISABLE_MK_PROTOCOL = 7,
FEATURE_LOCALMACHINE_LOCKDOWN = 8,
FEATURE_SECURITYBAND = 9,
FEATURE_RESTRICT_ACTIVEXINSTALL = 10,
FEATURE_VALIDATE_NAVIGATE_URL = 11,
FEATURE_RESTRICT_FILEDOWNLOAD = 12,
FEATURE_ADDON_MANAGEMENT = 13,
FEATURE_PROTOCOL_LOCKDOWN = 14,
FEATURE_HTTP_USERNAME_PASSWORD_DISABLE = 15,
FEATURE_SAFE_BINDTOOBJECT = 16,
FEATURE_UNC_SAVEDFILECHECK = 17,
FEATURE_GET_URL_DOM_FILEPATH_UNENCODED = 18,
FEATURE_TABBED_BROWSING = 19,
FEATURE_SSLUX = 20,
FEATURE_DISABLE_NAVIGATION_SOUNDS = 21,
FEATURE_DISABLE_LEGACY_COMPRESSION = 22,
FEATURE_FORCE_ADDR_AND_STATUS = 23,
FEATURE_XMLHTTP = 24,
FEATURE_DISABLE_TELNET_PROTOCOL = 25,
FEATURE_FEEDS = 26,
FEATURE_BLOCK_INPUT_PROMPTS = 27,
FEATURE_ENTRY_COUNT = 28
} INTERNETFEATURELIST;
#endif
/* IInternetSecurityManager::ProcessUrlAction() flags */
typedef enum {
PUAF_DEFAULT = 0x00000000,
PUAF_NOUI = 0x00000001,
PUAF_ISFILE = 0x00000002,
PUAF_WARN_IF_DENIED = 0x00000004,
PUAF_FORCEUI_FOREGROUND = 0x00000008,
PUAF_CHECK_TIFS = 0x00000010,
PUAF_DONTCHECKBOXINDIALOG = 0x00000020,
PUAF_TRUSTED = 0x00000040,
PUAF_ACCEPT_WILDCARD_SCHEME = 0x00000080,
PUAF_ENFORCERESTRICTED = 0x00000100,
PUAF_NOSAVEDFILECHECK = 0x00000200,
PUAF_REQUIRESAVEDFILECHECK = 0x00000400,
PUAF_DONT_USE_CACHE = 0x00001000,
PUAF_LMZ_UNLOCKED = 0x00010000,
PUAF_LMZ_LOCKED = 0x00020000,
PUAF_DEFAULTZONEPOL = 0x00040000,
PUAF_NPL_USE_LOCKED_IF_RESTRICTED = 0x00080000,
PUAF_NOUIIFLOCKED = 0x00100000,
PUAF_DRAGPROTOCOLCHECK = 0x00200000
} PUAF;
/* IInternetSecurityManager::ProcessUrlAction() output flags */
typedef enum {
PUAOUT_DEFUALT = 0x00000000,
PUAOUT_ISZONELOCKPOLICY = 0x00000001
} PUAOUT;
/* IInternetSecurityManager::SetZoneMapping() flags */
typedef enum {
SZM_CREATE = 0x00000000,
SZM_DELETE = 0x00000001
} SZM_FLAGS;
/* URL zones */
typedef enum {
URLZONE_INVALID = -1,
URLZONE_PREDEFINED_MIN = 0,
URLZONE_LOCAL_MACHINE = 0,
URLZONE_INTRANET = 1,
URLZONE_TRUSTED = 2,
URLZONE_INTERNET = 3,
URLZONE_UNTRUSTED = 4,
URLZONE_PREDEFINED_MAX = 999,
URLZONE_USER_MIN = 1000,
URLZONE_USER_MAX = 10000
} URLZONE;
/* URL templates */
typedef enum tagURLTEMPLATE {
URLTEMPLATE_CUSTOM = 0x00000000,
URLTEMPLATE_PREDEFINED_MIN = 0x00010000,
URLTEMPLATE_LOW = 0x00010000,
URLTEMPLATE_MEDLOW = 0x00010500,
URLTEMPLATE_MEDIUM = 0x00011000,
URLTEMPLATE_MEDHIGH = 0x00011500,
URLTEMPLATE_HIGH = 0x00012000,
URLTEMPLATE_PREDEFINED_MAX = 0x00020000
} URLTEMPLATE;
/* Zone maximum string lengths */
enum {
MAX_ZONE_PATH = 260,
MAX_ZONE_DESCRIPTION = 200
};
/* Zone attribute flags */
typedef enum {
ZAFLAGS_CUSTOM_EDIT = 0x00000001,
ZAFLAGS_ADD_SITES = 0x00000002,
ZAFLAGS_REQUIRE_VERIFICATION = 0x00000004,
ZAFLAGS_INCLUDE_PROXY_OVERRIDE = 0x00000008,
ZAFLAGS_INCLUDE_INTRANET_SITES = 0x00000010,
ZAFLAGS_NO_UI = 0x00000020,
ZAFLAGS_SUPPORTS_VERIFICATION = 0x00000040,
ZAFLAGS_UNC_AS_INTERNET = 0x00000080,
ZAFLAGS_DETECT_INTRANET = 0x00000100,
ZAFLAGS_USE_LOCKED_ZONES = 0x00010000,
ZAFLAGS_VERIFY_TEMPLATE_SETTINGS = 0x00020000,
ZAFLAGS_NO_CACHE = 0x00040000
} ZAFLAGS;
/* Zone attributes */
typedef struct _ZONEATTRIBUTES {
ULONG cbSize;
WCHAR szDisplayName[MAX_ZONE_PATH];
WCHAR szDescription[MAX_ZONE_DESCRIPTION];
WCHAR szIconPath[MAX_ZONE_PATH];
DWORD dwTemplateMinLevel;
DWORD dwTemplateRecommended;
DWORD dwTemplateCurrentLevel;
DWORD dwFlags;
} ZONEATTRIBUTES;
typedef ZONEATTRIBUTES *LPZONEATTRIBUTES;
/* URL zone registration flags */
typedef enum _URLZONEREG {
URLZONEREG_DEFAULT = 0,
URLZONEREG_HKLM = 1,
URLZONEREG_HKCU = 2
} URLZONEREG;
/* Code base hold */
typedef struct _tagCODEBASEHOLD {
ULONG cbSize;
LPWSTR szDistUnit;
LPWSTR szCodeBase;
DWORD dwVersionMS;
DWORD dwVersionLS;
DWORD dwStyle;
} CODEBASEHOLD;
typedef CODEBASEHOLD *LPCODEBASEHOLD;
/* Software distribution information */
typedef struct _tagSOFTDISTINFO {
ULONG cbSize;
DWORD dwFlags;
DWORD dwAdState;
LPWSTR szTitle;
LPWSTR szAbstract;
LPWSTR szHREF;
DWORD dwInstalledVersionMS;
DWORD dwInstalledVersionLS;
DWORD dwUpdateVersionMS;
DWORD dwUpdateVersionLS;
DWORD dwAdvertisedVersionMS;
DWORD dwAdvertisedVersionLS;
DWORD dwReserved;
} SOFTDISTINFO;
typedef SOFTDISTINFO *LPSOFTDISTINFO;
/* Protocol filter data */
typedef struct _tagPROTOCOLFILTERDATA {
DWORD cbSize;
IInternetProtocolSink *pProtocolSink;
IInternetProtocol *pProtocol;
IUnknown *pUnk;
DWORD dwFilterFlags;
} PROTOCOLFILTERDATA;
/* Data information */
typedef struct _tagDATAINFO {
ULONG ulTotalSize;
ULONG ulavrPacketSize;
ULONG ulConnectSpeed;
ULONG ulProcessorSpeed;
} DATAINFO;
/* Hit logging information */
typedef struct _tagHIT_LOGGING_INFO {
DWORD dwStructSize;
LPSTR lpszLoggedUrlName;
SYSTEMTIME StartTime;
SYSTEMTIME EndTime;
LPSTR lpszExtendedInfo;
} HIT_LOGGING_INFO;
typedef HIT_LOGGING_INFO *LPHIT_LOGGING_INFO;
/* Confirm safety information */
struct CONFIRMSAFETY {
CLSID clsid;
IUnknown *pUnk;
DWORD dwFlags;
};
/* GUIDs */
EXTERN_C const IID IID_IPersistMoniker;
EXTERN_C const IID IID_IMonikerProp;
EXTERN_C const IID IID_IBindProtocol;
EXTERN_C const IID IID_IBinding;
EXTERN_C const IID IID_IBindStatusCallback;
EXTERN_C const IID IID_IBindStatusCallbackEx;
EXTERN_C const IID IID_IAuthenticate;
EXTERN_C const IID IID_IAuthenticateEx;
EXTERN_C const IID IID_IHttpNegotiate;
EXTERN_C const IID IID_IHttpNegotiate2;
EXTERN_C const IID IID_IHttpNegotiate3;
EXTERN_C const IID IID_IWinInetFileStream;
EXTERN_C const IID IID_IWindowForBindingUI;
EXTERN_C const IID IID_ICodeInstall;
#if (_WIN32_IE >= 0x0700)
EXTERN_C const IID IID_IUri;
EXTERN_C const IID IID_IUriContainer;
EXTERN_C const IID IID_IUriBuilder;
EXTERN_C const IID IID_IUriBuilderFactory;
#endif
EXTERN_C const IID IID_IWinInetInfo;
EXTERN_C const IID IID_IHttpSecurity;
EXTERN_C const IID IID_IWinInetHttpInfo;
#if (_WIN32_IE >= 0x0602)
EXTERN_C const IID IID_IWinInetCacheHints;
#endif
#if (_WIN32_IE >= 0x0700)
EXTERN_C const IID IID_IWinInetCacheHints2;
#endif
EXTERN_C const IID IID_IBindHost;
EXTERN_C const IID IID_IInternet;
EXTERN_C const IID IID_IInternetBindInfo;
EXTERN_C const IID IID_IInternetBindInfoEx;
EXTERN_C const IID IID_IInternetProtocolRoot;
EXTERN_C const IID IID_IInternetProtocol;
#if (_WIN32_IE >= 0x0700)
EXTERN_C const IID IID_IInternetProtocolEx;
#endif
EXTERN_C const IID IID_IInternetProtocolSink;
EXTERN_C const IID IID_IInternetProtocolSinkStackable;
EXTERN_C const IID IID_IInternetSession;
EXTERN_C const IID IID_IInternetThreadSwitch;
EXTERN_C const IID IID_IInternetPriority;
EXTERN_C const IID IID_IInternetProtocolInfo;
EXTERN_C const IID IID_IInternetSecurityMgrSite;
EXTERN_C const IID IID_IInternetSecurityManager;
#if (_WIN32_IE >= 0x0602)
EXTERN_C const IID IID_IInternetSecurityManagerEx;
#endif
#if (_WIN32_IE >= 0x0700)
EXTERN_C const IID IID_IInternetSecurityManagerEx2;
#endif
#if (_WIN32_IE >= 0x0602)
EXTERN_C const IID IID_IZoneIdentifier;
#endif
EXTERN_C const IID IID_IInternetHostSecurityManager;
EXTERN_C const IID IID_IInternetZoneManager;
#if (_WIN32_IE >= 0x0602)
EXTERN_C const IID IID_IInternetZoneManagerEx;
#endif
#if (_WIN32_IE >= 0x0700)
EXTERN_C const IID IID_IInternetZoneManagerEx2;
#endif
EXTERN_C const IID IID_ISoftDistExt;
EXTERN_C const IID IID_ICatalogFileInfo;
EXTERN_C const IID IID_IDataFilter;
EXTERN_C const IID IID_IEncodingFilterFactory;
EXTERN_C const IID IID_IWrappedProtocol;
/* Service identifiers */
#define SID_IBindHost IID_IBindHost
#define SID_SBindHost IID_IBindHost
#define SID_SInternetSecurityManager IID_IInternetSecurityManager
#if (_WIN32_IE >= 0x0602)
#define SID_SInternetSecurityManagerEx IID_IInternetSecurityManagerEx
#endif
#if (_WIN32_IE >= 0x0700)
#define SID_SInternetSecurityManagerEx2 IID_IInternetSecurityManagerEx2
#endif
#define SID_SInternetHostSecurityManager IID_IInternetHostSecurityManager
/* IPersistMoniker interface */
#undef INTERFACE
#define INTERFACE IPersistMoniker
DECLARE_INTERFACE_( IPersistMoniker, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IPersistMoniker interface */
STDMETHOD( GetClassID )( THIS_ CLSID * ) PURE;
STDMETHOD( IsDirty )( THIS ) PURE;
STDMETHOD( Load )( THIS_ BOOL, IMoniker *, LPBC, DWORD ) PURE;
STDMETHOD( Save )( THIS_ IMoniker *, LPBC, BOOL ) PURE;
STDMETHOD( SaveCompleted )( THIS_ IMoniker *, LPBC ) PURE;
STDMETHOD( GetCurMoniker )( THIS_ IMoniker ** ) PURE;
};
typedef IPersistMoniker *LPPERSISTMONIKER;
/* IMonikerProp interface */
#undef INTERFACE
#define INTERFACE IMonikerProp
DECLARE_INTERFACE_( IMonikerProp, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMonikerProp methods */
STDMETHOD( PutProperty )( THIS_ MONIKERPROPERTY, LPCWSTR ) PURE;
};
typedef IMonikerProp *LPMONIKERPROP;
/* IBindProtocol interface */
#undef INTERFACE
#define INTERFACE IBindProtocol
DECLARE_INTERFACE_( IBindProtocol, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IBindProtocol methods */
STDMETHOD( CreateBinding )( THIS_ LPCWSTR, IBindCtx *, IBinding ** ) PURE;
};
typedef IBindProtocol *LPBINDPROTOCOL;
/* IBinding interface */
#undef INTERFACE
#define INTERFACE IBinding
DECLARE_INTERFACE_( IBinding, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IBinding methods */
STDMETHOD( Abort )( THIS ) PURE;
STDMETHOD( Suspend )( THIS ) PURE;
STDMETHOD( Resume )( THIS ) PURE;
STDMETHOD( SetPriority )( THIS_ LONG ) PURE;
STDMETHOD( GetPriority )( THIS_ LONG * ) PURE;
STDMETHOD( GetBindResult )( THIS_ CLSID *, DWORD *, LPOLESTR *, DWORD * ) PURE;
};
typedef IBinding *LPBINDING;
/* IBindStatusCallback interface */
#undef INTERFACE
#define INTERFACE IBindStatusCallback
DECLARE_INTERFACE_( IBindStatusCallback, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IBindStatusCallback methods */
STDMETHOD( OnStartBinding )( THIS_ DWORD, IBinding * ) PURE;
STDMETHOD( GetPriority )( THIS_ LONG * ) PURE;
STDMETHOD( OnLowResource )( THIS_ DWORD ) PURE;
STDMETHOD( OnProgress )( THIS_ ULONG, ULONG, ULONG, LPCWSTR ) PURE;
STDMETHOD( OnStopBinding )( THIS_ HRESULT, LPCWSTR ) PURE;
STDMETHOD( GetBindInfo )( THIS_ DWORD *, BINDINFO * ) PURE;
STDMETHOD( OnDataAvailable )( THIS_ DWORD, DWORD, FORMATETC *, STGMEDIUM * ) PURE;
STDMETHOD( OnObjectAvailable )( THIS_ REFIID, IUnknown * ) PURE;
};
typedef IBindStatusCallback *LPBINDSTATUSCALLBACK;
/* IBindStatusCallbackEx interface */
#undef INTERFACE
#define INTERFACE IBindStatusCallbackEx
DECLARE_INTERFACE_( IBindStatusCallbackEx, IBindStatusCallback ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IBindStatusCallback methods */
STDMETHOD( OnStartBinding )( THIS_ DWORD, IBinding * ) PURE;
STDMETHOD( GetPriority )( THIS_ LONG * ) PURE;
STDMETHOD( OnLowResource )( THIS_ DWORD ) PURE;
STDMETHOD( OnProgress )( THIS_ ULONG, ULONG, ULONG, LPCWSTR ) PURE;
STDMETHOD( OnStopBinding )( THIS_ HRESULT, LPCWSTR ) PURE;
STDMETHOD( GetBindInfo )( THIS_ DWORD *, BINDINFO * ) PURE;
STDMETHOD( OnDataAvailable )( THIS_ DWORD, DWORD, FORMATETC *, STGMEDIUM * ) PURE;
STDMETHOD( OnObjectAvailable )( THIS_ REFIID, IUnknown * ) PURE;
/* IBindStatusCallbackEx methods */
STDMETHOD( GetBindInfoEx )( THIS_ DWORD *, BINDINFO *, DWORD *, DWORD * ) PURE;
};
typedef IBindStatusCallbackEx *LPBINDSTATUSCALLBACKEX;
/* IAuthenticate interface */
#undef INTERFACE
#define INTERFACE IAuthenticate
DECLARE_INTERFACE_( IAuthenticate, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAuthenticate methods */
STDMETHOD( Authenticate )( THIS_ HWND *, LPWSTR *, LPWSTR * ) PURE;
};
typedef IAuthenticate *LPAUTHENTICATION;
/* IAuthenticateEx interface */
#undef INTERFACE
#define INTERFACE IAuthenticateEx
DECLARE_INTERFACE_( IAuthenticateEx, IAuthenticate ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAuthenticate methods */
STDMETHOD( Authenticate )( THIS_ HWND *, LPWSTR *, LPWSTR * ) PURE;
/* IAuthenticateEx methods */
STDMETHOD( AuthenticateEx )( THIS_ HWND *, LPWSTR *, LPWSTR *, AUTHENTICATEINFO * ) PURE;
};
typedef IAuthenticateEx *LPAUTHENTICATIONEX;
/* IHttpNegotiate interface */
#undef INTERFACE
#define INTERFACE IHttpNegotiate
DECLARE_INTERFACE_( IHttpNegotiate, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IHttpNegotiate methods */
STDMETHOD( BeginningTransaction )( THIS_ LPCWSTR, LPCWSTR, DWORD, LPWSTR * ) PURE;
STDMETHOD( OnResponse )( THIS_ DWORD, LPCWSTR, LPCWSTR, LPWSTR * ) PURE;
};
typedef IHttpNegotiate *LPHTTPNEGOTIATE;
/* IHttpNegotiate2 interface */
#undef INTERFACE
#define INTERFACE IHttpNegotiate2
DECLARE_INTERFACE_( IHttpNegotiate2, IHttpNegotiate ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IHttpNegotiate methods */
STDMETHOD( BeginningTransaction )( THIS_ LPCWSTR, LPCWSTR, DWORD, LPWSTR * ) PURE;
STDMETHOD( OnResponse )( THIS_ DWORD, LPCWSTR, LPCWSTR, LPWSTR * ) PURE;
/* IHttpNegotiate2 methods */
STDMETHOD( GetRootSecurityId )( THIS_ BYTE *, DWORD *, DWORD_PTR ) PURE;
};
typedef IHttpNegotiate2 *LPHTTPNEGOTIATE2;
/* IHttpNegotiate3 interface */
#undef INTERFACE
#define INTERFACE IHttpNegotiate3
DECLARE_INTERFACE_( IHttpNegotiate3, IHttpNegotiate2 ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IHttpNegotiate methods */
STDMETHOD( BeginningTransaction )( THIS_ LPCWSTR, LPCWSTR, DWORD, LPWSTR * ) PURE;
STDMETHOD( OnResponse )( THIS_ DWORD, LPCWSTR, LPCWSTR, LPWSTR * ) PURE;
/* IHttpNegotiate2 methods */
STDMETHOD( GetRootSecurityId )( THIS_ BYTE *, DWORD *, DWORD_PTR ) PURE;
/* IHttpNegotiate3 methods */
STDMETHOD( GetSerializedClientCertContext )( THIS_ BYTE **, DWORD * ) PURE;
};
typedef IHttpNegotiate3 *LPHTTPNEGOTIATE3;
/* IWinInetFileStream interface */
#undef INTERFACE
#define INTERFACE IWinInetFileStream
DECLARE_INTERFACE_( IWinInetFileStream, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IWinInetFileStream methods */
STDMETHOD( SetHandleForUnlock )( THIS_ DWORD_PTR, DWORD_PTR ) PURE;
STDMETHOD( SetDeleteFile )( THIS_ DWORD_PTR ) PURE;
};
typedef IWinInetFileStream *LPWININETFILESTREAM;
/* IWindowForBindingUI interface */
#undef INTERFACE
#define INTERFACE IWindowForBindingUI
DECLARE_INTERFACE_( IWindowForBindingUI, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IWindowForBindingUI methods */
STDMETHOD( GetWindow )( THIS_ REFGUID, HWND * ) PURE;
};
typedef IWindowForBindingUI *LPWINDOWFORBINDINGUI;
/* ICodeInstall interface */
#undef INTERFACE
#define INTERFACE ICodeInstall
DECLARE_INTERFACE_( ICodeInstall, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IWindowForBindingUI methods */
STDMETHOD( GetWindow )( THIS_ REFGUID, HWND * ) PURE;
/* ICodeInstall methods */
STDMETHOD( OnCodeInstallProblem )( THIS_ ULONG, LPCWSTR, LPCWSTR, DWORD ) PURE;
};
typedef ICodeInstall *LPCODEINSTALL;
/* IUri interface */
#if (_WIN32_IE >= 0x0700)
#undef INTERFACE
#define INTERFACE IUri
DECLARE_INTERFACE_( IUri, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IUri methods */
STDMETHOD( GetPropertyBSTR )( THIS_ Uri_PROPERTY, BSTR *, DWORD ) PURE;
STDMETHOD( GetPropertyLength )( THIS_ Uri_PROPERTY, DWORD *, DWORD ) PURE;
STDMETHOD( GetPropertyDWORD )( THIS_ Uri_PROPERTY, DWORD *, DWORD ) PURE;
STDMETHOD( HasProperty )( THIS_ Uri_PROPERTY, BOOL * ) PURE;
STDMETHOD( GetAbsoluteUri )( THIS_ BSTR * ) PURE;
STDMETHOD( GetAuthority )( THIS_ BSTR * ) PURE;
STDMETHOD( GetDisplayUri )( THIS_ BSTR * ) PURE;
STDMETHOD( GetDomain )( THIS_ BSTR * ) PURE;
STDMETHOD( GetExtension )( THIS_ BSTR * ) PURE;
STDMETHOD( GetFragment )( THIS_ BSTR * ) PURE;
STDMETHOD( GetHost )( THIS_ BSTR * ) PURE;
STDMETHOD( GetPassword )( THIS_ BSTR * ) PURE;
STDMETHOD( GetPath )( THIS_ BSTR * ) PURE;
STDMETHOD( GetPathAndQuery )( THIS_ BSTR * ) PURE;
STDMETHOD( GetQuery )( THIS_ BSTR * ) PURE;
STDMETHOD( GetRawUri )( THIS_ BSTR * ) PURE;
STDMETHOD( GetSchemeName )( THIS_ BSTR * ) PURE;
STDMETHOD( GetUserInfo )( THIS_ BSTR * ) PURE;
STDMETHOD( GetUserName )( THIS_ BSTR * ) PURE;
STDMETHOD( GetHostType )( THIS_ DWORD * ) PURE;
STDMETHOD( GetPort )( THIS_ DWORD * ) PURE;
STDMETHOD( GetScheme )( THIS_ DWORD * ) PURE;
STDMETHOD( GetZone )( THIS_ DWORD * ) PURE;
STDMETHOD( GetProperties )( THIS_ LPDWORD ) PURE;
STDMETHOD( IsEqual )( THIS_ IUri *, BOOL * ) PURE;
};
#endif
/* IUriContainer interface */
#if (_WIN32_IE >= 0x0700)
#undef INTERFACE
#define INTERFACE IUriContainer
DECLARE_INTERFACE_( IUriContainer, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IUriContainer methods */
STDMETHOD( GetIUri )( THIS_ IUri ** ) PURE;
};
#endif
/* IUriBuilder interface */
#if (_WIN32_IE >= 0x0700)
#undef INTERFACE
#define INTERFACE IUriBuilder
DECLARE_INTERFACE_( IUriBuilder, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IUriBuilder methods */
STDMETHOD( CreateUriSimple )( THIS_ DWORD, DWORD_PTR, IUri ** ) PURE;
STDMETHOD( CreateUri )( THIS_ DWORD, DWORD, DWORD_PTR, IUri ** ) PURE;
STDMETHOD( CreateUriWithFlags )( THIS_ DWORD, DWORD, DWORD, DWORD_PTR, IUri ** ) PURE;
STDMETHOD( GetIUri )( THIS_ IUri ** ) PURE;
STDMETHOD( SetIUri )( THIS_ IUri * ) PURE;
STDMETHOD( GetFragment )( THIS_ DWORD *, LPCWSTR * ) PURE;
STDMETHOD( GetHost )( THIS_ DWORD *, LPCWSTR * ) PURE;
STDMETHOD( GetPassword )( THIS_ DWORD *, LPCWSTR * ) PURE;
STDMETHOD( GetPath )( THIS_ DWORD *, LPCWSTR * ) PURE;
STDMETHOD( GetPort )( THIS_ BOOL *, DWORD * ) PURE;
STDMETHOD( GetQuery )( THIS_ DWORD *, LPCWSTR * ) PURE;
STDMETHOD( GetSchemeName )( THIS_ DWORD *, LPCWSTR * ) PURE;
STDMETHOD( GetUserName )( THIS_ DWORD *, LPCWSTR * ) PURE;
STDMETHOD( SetFragment )( THIS_ LPCWSTR ) PURE;
STDMETHOD( SetHost )( THIS_ LPCWSTR ) PURE;
STDMETHOD( SetPassword )( THIS_ LPCWSTR ) PURE;
STDMETHOD( SetPath )( THIS_ LPCWSTR ) PURE;
STDMETHOD( SetPort )( THIS_ BOOL, DWORD ) PURE;
STDMETHOD( SetQuery )( THIS_ LPCWSTR ) PURE;
STDMETHOD( SetSchemeName )( THIS_ LPCWSTR ) PURE;
STDMETHOD( SetUserName )( THIS_ LPCWSTR ) PURE;
STDMETHOD( RemoveProperties )( THIS_ DWORD ) PURE;
STDMETHOD( HasBeenModified )( THIS_ BOOL * ) PURE;
};
#endif
/* IUriBuilderFactory interface */
#if (_WIN32_IE >= 0x0700)
#undef INTERFACE
#define INTERFACE IUriBuilderFactory
DECLARE_INTERFACE_( IUriBuilderFactory, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IUriBuilderFactory methods */
STDMETHOD( CreateIUriBuilder )( THIS_ DWORD, DWORD_PTR, IUriBuilder ** ) PURE;
STDMETHOD( CreateInitializedIUriBuilder )( THIS_ DWORD, DWORD_PTR, IUriBuilder ** ) PURE;
};
#endif
/* IWinInetInfo interface */
#undef INTERFACE
#define INTERFACE IWinInetInfo
DECLARE_INTERFACE_( IWinInetInfo, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IWinInetInfo methods */
STDMETHOD( QueryOption )( THIS_ DWORD, LPVOID, DWORD * ) PURE;
};
typedef IWinInetInfo *LPWININETINFO;
/* IHttpSecurity interface */
#undef INTERFACE
#define INTERFACE IHttpSecurity
DECLARE_INTERFACE_( IHttpSecurity, IWindowForBindingUI ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IWindowForBindingUI methods */
STDMETHOD( GetWindow )( THIS_ REFGUID, HWND * ) PURE;
/* IHttpSecurity methods */
STDMETHOD( OnSecurityProblem )( THIS_ DWORD ) PURE;
};
typedef IHttpSecurity *LPHTTPSECURITY;
/* IWinInetHttpInfo interface */
#undef INTERFACE
#define INTERFACE IWinInetHttpInfo
DECLARE_INTERFACE_( IWinInetHttpInfo, IWinInetInfo ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IWinInetInfo methods */
STDMETHOD( QueryOption )( THIS_ DWORD, LPVOID, DWORD * ) PURE;
/* IWinInetHttpInfo methods */
STDMETHOD( QueryInfo )( THIS_ DWORD, LPVOID, DWORD *, DWORD *, DWORD * ) PURE;
};
typedef IWinInetHttpInfo *LPWININETHTTPINFO;
/* IWinInetCacheHints interface */
#if (_WIN32_IE >= 0x0602)
#undef INTERFACE
#define INTERFACE IWinInetCacheHints
DECLARE_INTERFACE_( IWinInetCacheHints, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IWinInetCacheHints methods */
STDMETHOD( SetCacheExtension )( THIS_ LPCWSTR, LPVOID, DWORD *, DWORD *, DWORD * ) PURE;
};
typedef IWinInetCacheHints *LPWININETCACHEHINTS;
#endif
/* IWinInetCacheHints2 interface */
#if (_WIN32_IE >= 0x0700)
#undef INTERFACE
#define INTERFACE IWinInetCacheHints2
DECLARE_INTERFACE_( IWinInetCacheHints2, IWinInetCacheHints ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IWinInetCacheHints methods */
STDMETHOD( SetCacheExtension )( THIS_ LPCWSTR, LPVOID, DWORD *, DWORD *, DWORD * ) PURE;
/* IWinInetCacheHints2 methods */
STDMETHOD( SetCacheExtension2 )( THIS_ LPCWSTR, WCHAR *, DWORD *, DWORD *, DWORD * ) PURE;
};
typedef IWinInetCacheHints2 *LPWININETCACHEHINTS2;
#endif
/* IBindHost interface */
#undef INTERFACE
#define INTERFACE IBindHost
DECLARE_INTERFACE_( IBindHost, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IBindHost methods */
STDMETHOD( CreateMoniker )( THIS_ LPOLESTR, IBindCtx *, IMoniker **, DWORD ) PURE;
STDMETHOD( MonikerBindToStorage )( THIS_ IMoniker *, IBindCtx *, IBindStatusCallback *, REFIID, void ** ) PURE;
STDMETHOD( MonikerBindToObject )( THIS_ IMoniker *, IBindCtx *, IBindStatusCallback *, REFIID, void ** ) PURE;
};
typedef IBindHost *LPBINDHOST;
/* IInternet interface */
#undef INTERFACE
#define INTERFACE IInternet
DECLARE_INTERFACE_( IInternet, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
};
typedef IInternet *LPIINTERNET;
/* IInternetBindInfo interface */
#undef INTERFACE
#define INTERFACE IInternetBindInfo
DECLARE_INTERFACE_( IInternetBindInfo, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetBindInfo methods */
STDMETHOD( GetBindInfo )( THIS_ DWORD *, BINDINFO * ) PURE;
STDMETHOD( GetBindString )( THIS_ ULONG, LPOLESTR *, ULONG, ULONG * ) PURE;
};
typedef IInternetBindInfo *LPIINTERNETBINDINFO;
/* IInternetBindInfoEx interface */
#undef INTERFACE
#define INTERFACE IInternetBindInfoEx
DECLARE_INTERFACE_( IInternetBindInfoEx, IInternetBindInfo ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetBindInfo methods */
STDMETHOD( GetBindInfo )( THIS_ DWORD *, BINDINFO * ) PURE;
STDMETHOD( GetBindString )( THIS_ ULONG, LPOLESTR *, ULONG, ULONG * ) PURE;
/* IInternetBindInfoEx methods */
STDMETHOD( GetBindInfoEx )( THIS_ DWORD *, BINDINFO *, DWORD *, DWORD * ) PURE;
};
/* IInternetProtocolRoot interface */
#undef INTERFACE
#define INTERFACE IInternetProtocolRoot
DECLARE_INTERFACE_( IInternetProtocolRoot, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetProtocolRoot methods */
STDMETHOD( Start )( THIS_ LPCWSTR, IInternetProtocolSink *, IInternetBindInfo *, DWORD, HANDLE_PTR ) PURE;
STDMETHOD( Continue )( THIS_ PROTOCOLDATA * ) PURE;
STDMETHOD( Abort )( THIS_ HRESULT, DWORD ) PURE;
STDMETHOD( Terminate )( THIS_ DWORD ) PURE;
STDMETHOD( Suspend )( THIS ) PURE;
STDMETHOD( Resume )( THIS ) PURE;
};
typedef IInternetProtocolRoot *LPIINTERNETPROTOCOLROOT;
/* IInternetProtocol interface */
#undef INTERFACE
#define INTERFACE IInternetProtocol
DECLARE_INTERFACE_( IInternetProtocol, IInternetProtocolRoot ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetProtocolRoot methods */
STDMETHOD( Start )( THIS_ LPCWSTR, IInternetProtocolSink *, IInternetBindInfo *, DWORD, HANDLE_PTR ) PURE;
STDMETHOD( Continue )( THIS_ PROTOCOLDATA * ) PURE;
STDMETHOD( Abort )( THIS_ HRESULT, DWORD ) PURE;
STDMETHOD( Terminate )( THIS_ DWORD ) PURE;
STDMETHOD( Suspend )( THIS ) PURE;
STDMETHOD( Resume )( THIS ) PURE;
/* IInternetProtocol methods */
STDMETHOD( Read )( THIS_ void *, ULONG, ULONG * ) PURE;
STDMETHOD( Seek )( THIS_ LARGE_INTEGER, DWORD, ULARGE_INTEGER * ) PURE;
STDMETHOD( LockRequest )( THIS_ DWORD ) PURE;
STDMETHOD( UnlockRequest )( THIS ) PURE;
};
typedef IInternetProtocol *LPIINTERNETPROTOCOL;
/* IInternetProtocolEx interface */
#if (_WIN32_IE >= 0x0700)
#undef INTERFACE
#define INTERFACE IInternetProtocolEx
DECLARE_INTERFACE_( IInternetProtocolEx, IInternetProtocol ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetProtocolRoot methods */
STDMETHOD( Start )( THIS_ LPCWSTR, IInternetProtocolSink *, IInternetBindInfo *, DWORD, HANDLE_PTR ) PURE;
STDMETHOD( Continue )( THIS_ PROTOCOLDATA * ) PURE;
STDMETHOD( Abort )( THIS_ HRESULT, DWORD ) PURE;
STDMETHOD( Terminate )( THIS_ DWORD ) PURE;
STDMETHOD( Suspend )( THIS ) PURE;
STDMETHOD( Resume )( THIS ) PURE;
/* IInternetProtocol methods */
STDMETHOD( Read )( THIS_ void *, ULONG, ULONG * ) PURE;
STDMETHOD( Seek )( THIS_ LARGE_INTEGER, DWORD, ULARGE_INTEGER * ) PURE;
STDMETHOD( LockRequest )( THIS_ DWORD ) PURE;
STDMETHOD( UnlockRequest )( THIS ) PURE;
/* IInternetProtocolEx methods */
STDMETHOD( StartEx )( THIS_ IUri *, IInternetProtocolSink *, IInternetBindInfo *, DWORD, HANDLE_PTR ) PURE;
};
#endif
/* IInternetProtocolSink interface */
#undef INTERFACE
#define INTERFACE IInternetProtocolSink
DECLARE_INTERFACE_( IInternetProtocolSink, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetProtocolSink methods */
STDMETHOD( Switch )( THIS_ PROTOCOLDATA * ) PURE;
STDMETHOD( ReportProgress )( THIS_ ULONG, LPCWSTR ) PURE;
STDMETHOD( ReportData )( THIS_ DWORD, ULONG, ULONG ) PURE;
STDMETHOD( ReportResult )( THIS_ HRESULT, DWORD, LPCWSTR ) PURE;
};
typedef IInternetProtocolSink *LPIINTERNETPROTOCOLSINK;
/* IInternetProtocolSinkStackable interface */
#undef INTERFACE
#define INTERFACE IInternetProtocolSinkStackable
DECLARE_INTERFACE_( IInternetProtocolSinkStackable, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetProtocolSinkStackable methods */
STDMETHOD( SwitchSink )( THIS_ IInternetProtocolSink * ) PURE;
STDMETHOD( CommitSwitch )( THIS ) PURE;
STDMETHOD( RollbackSwitch )( THIS ) PURE;
};
typedef IInternetProtocolSinkStackable *LPIINTERNETPROTOCOLSINKSTACKABLE;
/* IInternetSession interface */
#undef INTERFACE
#define INTERFACE IInternetSession
DECLARE_INTERFACE_( IInternetSession, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetSession methods */
STDMETHOD( RegisterNameSpace )( THIS_ IClassFactory *, REFCLSID, LPCWSTR, ULONG, const LPCWSTR *, DWORD ) PURE;
STDMETHOD( UnregisterNameSpace )( THIS_ IClassFactory *, LPCWSTR ) PURE;
STDMETHOD( RegisterMimeFilter )( THIS_ IClassFactory *, REFCLSID, LPCWSTR ) PURE;
STDMETHOD( UnregisterMimeFilter )( THIS_ IClassFactory *, LPCWSTR ) PURE;
STDMETHOD( CreateBinding )( THIS_ LPBC, LPCWSTR, IUnknown *, IUnknown **, IInternetProtocol **, DWORD ) PURE;
STDMETHOD( SetSessionOption )( THIS_ DWORD, LPVOID, DWORD, DWORD ) PURE;
STDMETHOD( GetSessionOption )( THIS_ DWORD, LPVOID, DWORD *, DWORD ) PURE;
};
typedef IInternetSession *LPIINTERNETSESSION;
/* IInternetThreadSwitch interface */
#undef INTERFACE
#define INTERFACE IInternetThreadSwitch
DECLARE_INTERFACE_( IInternetThreadSwitch, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetThreadSwitch methods */
STDMETHOD( Prepare )( THIS ) PURE;
STDMETHOD( Continue )( THIS ) PURE;
};
typedef IInternetThreadSwitch *LPIINTERNETTHREADSWITCH;
/* IInternetPriority interface */
#undef INTERFACE
#define INTERFACE IInternetPriority
DECLARE_INTERFACE_( IInternetPriority, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetPriority methods */
STDMETHOD( SetPriority )( THIS_ LONG ) PURE;
STDMETHOD( GetPriority )( THIS_ LONG * ) PURE;
};
/* IInternetProtocolInfo interface */
#undef INTERFACE
#define INTERFACE IInternetProtocolInfo
DECLARE_INTERFACE_( IInternetProtocolInfo, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetProtocolInfo methods */
STDMETHOD( ParseUrl )( THIS_ LPCWSTR, PARSEACTION, DWORD, LPWSTR, DWORD, DWORD *, DWORD ) PURE;
STDMETHOD( CombineUrl )( THIS_ LPCWSTR, LPCWSTR, DWORD, LPWSTR, DWORD, DWORD *, DWORD ) PURE;
STDMETHOD( CompareUrl )( THIS_ LPCWSTR, LPCWSTR, DWORD ) PURE;
STDMETHOD( QueryInfo )( THIS_ LPCWSTR, QUERYOPTION, DWORD, LPVOID, DWORD, DWORD *, DWORD ) PURE;
};
typedef IInternetProtocolInfo *LPIINTERNETPROTOCOLINFO;
/* IInternetSecurityMgrSite interface */
#undef INTERFACE
#define INTERFACE IInternetSecurityMgrSite
DECLARE_INTERFACE_( IInternetSecurityMgrSite, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetSecurityMgrSite methods */
STDMETHOD( GetWindow )( THIS_ HWND * ) PURE;
STDMETHOD( EnableModeless )( THIS_ BOOL ) PURE;
};
/* IInternetSecurityManager interface */
#undef INTERFACE
#define INTERFACE IInternetSecurityManager
DECLARE_INTERFACE_( IInternetSecurityManager, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetSecurityManager methods */
STDMETHOD( SetSecuritySite )( THIS_ IInternetSecurityMgrSite * ) PURE;
STDMETHOD( GetSecuritySite )( THIS_ IInternetSecurityMgrSite ** ) PURE;
STDMETHOD( MapUrlToZone )( THIS_ LPCWSTR, DWORD *, DWORD ) PURE;
STDMETHOD( GetSecurityId )( THIS_ LPCWSTR, BYTE *, DWORD *, DWORD_PTR ) PURE;
STDMETHOD( ProcessUrlAction )( THIS_ LPCWSTR, DWORD, BYTE *, DWORD, BYTE *, DWORD, DWORD, DWORD ) PURE;
STDMETHOD( QueryCustomPolicy )( THIS_ LPCWSTR, REFGUID, BYTE **, DWORD *, BYTE *, DWORD, DWORD ) PURE;
STDMETHOD( SetZoneMapping )( THIS_ DWORD, LPCWSTR, DWORD ) PURE;
STDMETHOD( GetZoneMappings )( THIS_ DWORD, IEnumString **, DWORD ) PURE;
};
/* IInternetSecurityManagerEx interface */
#if (_WIN32_IE >= 0x0602)
#undef INTERFACE
#define INTERFACE IInternetSecurityManagerEx
DECLARE_INTERFACE_( IInternetSecurityManagerEx, IInternetSecurityManager ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetSecurityManager methods */
STDMETHOD( SetSecuritySite )( THIS_ IInternetSecurityMgrSite * ) PURE;
STDMETHOD( GetSecuritySite )( THIS_ IInternetSecurityMgrSite ** ) PURE;
STDMETHOD( MapUrlToZone )( THIS_ LPCWSTR, DWORD *, DWORD ) PURE;
STDMETHOD( GetSecurityId )( THIS_ LPCWSTR, BYTE *, DWORD *, DWORD_PTR ) PURE;
STDMETHOD( ProcessUrlAction )( THIS_ LPCWSTR, DWORD, BYTE *, DWORD, BYTE *, DWORD, DWORD, DWORD ) PURE;
STDMETHOD( QueryCustomPolicy )( THIS_ LPCWSTR, REFGUID, BYTE **, DWORD *, BYTE *, DWORD, DWORD ) PURE;
STDMETHOD( SetZoneMapping )( THIS_ DWORD, LPCWSTR, DWORD ) PURE;
STDMETHOD( GetZoneMappings )( THIS_ DWORD, IEnumString **, DWORD ) PURE;
/* IInternetSecurityManagerEx methods */
STDMETHOD( ProcessUrlActionEx )( THIS_ LPCWSTR, DWORD, BYTE *, DWORD, BYTE *, DWORD, DWORD, DWORD, DWORD * ) PURE;
};
#endif
/* IInternetSecurityManagerEx2 interface */
#if (_WIN32_IE >= 0x0700)
#undef INTERFACE
#define INTERFACE IInternetSecurityManagerEx2
DECLARE_INTERFACE_( IInternetSecurityManagerEx2, IInternetSecurityManager ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetSecurityManager methods */
STDMETHOD( SetSecuritySite )( THIS_ IInternetSecurityMgrSite * ) PURE;
STDMETHOD( GetSecuritySite )( THIS_ IInternetSecurityMgrSite ** ) PURE;
STDMETHOD( MapUrlToZone )( THIS_ LPCWSTR, DWORD *, DWORD ) PURE;
STDMETHOD( GetSecurityId )( THIS_ LPCWSTR, BYTE *, DWORD *, DWORD_PTR ) PURE;
STDMETHOD( ProcessUrlAction )( THIS_ LPCWSTR, DWORD, BYTE *, DWORD, BYTE *, DWORD, DWORD, DWORD ) PURE;
STDMETHOD( QueryCustomPolicy )( THIS_ LPCWSTR, REFGUID, BYTE **, DWORD *, BYTE *, DWORD, DWORD ) PURE;
STDMETHOD( SetZoneMapping )( THIS_ DWORD, LPCWSTR, DWORD ) PURE;
STDMETHOD( GetZoneMappings )( THIS_ DWORD, IEnumString **, DWORD ) PURE;
/* IInternetSecurityManagerEx methods */
STDMETHOD( ProcessUrlActionEx )( THIS_ LPCWSTR, DWORD, BYTE *, DWORD, BYTE *, DWORD, DWORD, DWORD, DWORD * ) PURE;
/* IInternetSecurityManagerEx2 methods */
STDMETHOD( MapUrlToZoneEx2 )( THIS_ IUri *, DWORD *, DWORD, LPWSTR *, DWORD * ) PURE;
STDMETHOD( ProcessUrlActionEx2 )( THIS_ IUri *, DWORD, BYTE *, DWORD, BYTE *, DWORD, DWORD, DWORD_PTR, DWORD * ) PURE;
STDMETHOD( GetSecurityIdEx2 )( THIS_ IUri *, BYTE *, DWORD *, DWORD_PTR ) PURE;
STDMETHOD( QueryCustomPolicyEx2 )( THIS_ IUri *, REFGUID, BYTE **, DWORD *, BYTE *, DWORD, DWORD_PTR ) PURE;
};
#endif
/* IZoneIdentifier interface */
#if (_WIN32_IE >= 0x0602)
#undef INTERFACE
#define INTERFACE IZoneIdentifier
DECLARE_INTERFACE_( IZoneIdentifier, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IZoneIdentifier methods */
STDMETHOD( GetId )( THIS_ DWORD * ) PURE;
STDMETHOD( SetId )( THIS_ DWORD ) PURE;
STDMETHOD( Remove )( THIS ) PURE;
};
#endif
/* IInternetHostSecurityManager interface */
#undef INTERFACE
#define INTERFACE IInternetHostSecurityManager
DECLARE_INTERFACE_( IInternetHostSecurityManager, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetHostSecurityManager methods */
STDMETHOD( GetSecurityId )( THIS_ BYTE *, DWORD *, DWORD_PTR ) PURE;
STDMETHOD( ProcessUrlAction )( THIS_ DWORD, BYTE *, DWORD, BYTE *, DWORD, DWORD, DWORD ) PURE;
STDMETHOD( QueryCustomPolicy )( THIS_ REFGUID, BYTE **, DWORD *, BYTE *, DWORD, DWORD ) PURE;
};
/* IInternetZoneManager interface */
#undef INTERFACE
#define INTERFACE IInternetZoneManager
DECLARE_INTERFACE_( IInternetZoneManager, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetZoneManager methods */
STDMETHOD( GetZoneAttributes )( THIS_ DWORD, ZONEATTRIBUTES * ) PURE;
STDMETHOD( SetZoneAttributes )( THIS_ DWORD, ZONEATTRIBUTES * ) PURE;
STDMETHOD( GetZoneCustomPolicy )( THIS_ DWORD, REFGUID, BYTE **, DWORD *, URLZONEREG ) PURE;
STDMETHOD( SetZoneCustomPolicy )( THIS_ DWORD, REFGUID, BYTE *, DWORD, URLZONEREG ) PURE;
STDMETHOD( GetZoneActionPolicy )( THIS_ DWORD, DWORD, BYTE *, DWORD, URLZONEREG ) PURE;
STDMETHOD( SetZoneActionPolicy )( THIS_ DWORD, DWORD, BYTE *, DWORD, URLZONEREG ) PURE;
STDMETHOD( PromptAction )( THIS_ DWORD, HWND, LPCWSTR, LPCWSTR, DWORD ) PURE;
STDMETHOD( LogAction )( THIS_ DWORD, LPCWSTR, LPCWSTR, DWORD ) PURE;
STDMETHOD( CreateZoneEnumerator )( THIS_ DWORD *, DWORD *, DWORD ) PURE;
STDMETHOD( GetZoneAt )( THIS_ DWORD, DWORD, DWORD * ) PURE;
STDMETHOD( DestroyZoneEnumerator )( THIS_ DWORD ) PURE;
STDMETHOD( CopyTemplatePoliciesToZone )( THIS_ DWORD, DWORD, DWORD ) PURE;
};
typedef IInternetZoneManager *LPURLZONEMANAGER;
/* IInternetZoneManagerEx interface */
#if (_WIN32_IE >= 0x0602)
#undef INTERFACE
#define INTERFACE IInternetZoneManagerEx
DECLARE_INTERFACE_( IInternetZoneManagerEx, IInternetZoneManager ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetZoneManager methods */
STDMETHOD( GetZoneAttributes )( THIS_ DWORD, ZONEATTRIBUTES * ) PURE;
STDMETHOD( SetZoneAttributes )( THIS_ DWORD, ZONEATTRIBUTES * ) PURE;
STDMETHOD( GetZoneCustomPolicy )( THIS_ DWORD, REFGUID, BYTE **, DWORD *, URLZONEREG ) PURE;
STDMETHOD( SetZoneCustomPolicy )( THIS_ DWORD, REFGUID, BYTE *, DWORD, URLZONEREG ) PURE;
STDMETHOD( GetZoneActionPolicy )( THIS_ DWORD, DWORD, BYTE *, DWORD, URLZONEREG ) PURE;
STDMETHOD( SetZoneActionPolicy )( THIS_ DWORD, DWORD, BYTE *, DWORD, URLZONEREG ) PURE;
STDMETHOD( PromptAction )( THIS_ DWORD, HWND, LPCWSTR, LPCWSTR, DWORD ) PURE;
STDMETHOD( LogAction )( THIS_ DWORD, LPCWSTR, LPCWSTR, DWORD ) PURE;
STDMETHOD( CreateZoneEnumerator )( THIS_ DWORD *, DWORD *, DWORD ) PURE;
STDMETHOD( GetZoneAt )( THIS_ DWORD, DWORD, DWORD * ) PURE;
STDMETHOD( DestroyZoneEnumerator )( THIS_ DWORD ) PURE;
STDMETHOD( CopyTemplatePoliciesToZone )( THIS_ DWORD, DWORD, DWORD ) PURE;
/* IInternetZoneManagerEx methods */
STDMETHOD( GetZoneActionPolicyEx )( THIS_ DWORD, DWORD, BYTE *, DWORD, URLZONEREG, DWORD ) PURE;
STDMETHOD( SetZoneActionPolicyEx )( THIS_ DWORD, DWORD, BYTE *, DWORD, URLZONEREG, DWORD ) PURE;
};
#endif
/* IInternetZoneManagerEx2 interface */
#if (_WIN32_IE >= 0x0700)
#undef INTERFACE
#define INTERFACE IInternetZoneManagerEx2
DECLARE_INTERFACE_( IInternetZoneManagerEx2, IInternetZoneManagerEx ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IInternetZoneManager methods */
STDMETHOD( GetZoneAttributes )( THIS_ DWORD, ZONEATTRIBUTES * ) PURE;
STDMETHOD( SetZoneAttributes )( THIS_ DWORD, ZONEATTRIBUTES * ) PURE;
STDMETHOD( GetZoneCustomPolicy )( THIS_ DWORD, REFGUID, BYTE **, DWORD *, URLZONEREG ) PURE;
STDMETHOD( SetZoneCustomPolicy )( THIS_ DWORD, REFGUID, BYTE *, DWORD, URLZONEREG ) PURE;
STDMETHOD( GetZoneActionPolicy )( THIS_ DWORD, DWORD, BYTE *, DWORD, URLZONEREG ) PURE;
STDMETHOD( SetZoneActionPolicy )( THIS_ DWORD, DWORD, BYTE *, DWORD, URLZONEREG ) PURE;
STDMETHOD( PromptAction )( THIS_ DWORD, HWND, LPCWSTR, LPCWSTR, DWORD ) PURE;
STDMETHOD( LogAction )( THIS_ DWORD, LPCWSTR, LPCWSTR, DWORD ) PURE;
STDMETHOD( CreateZoneEnumerator )( THIS_ DWORD *, DWORD *, DWORD ) PURE;
STDMETHOD( GetZoneAt )( THIS_ DWORD, DWORD, DWORD * ) PURE;
STDMETHOD( DestroyZoneEnumerator )( THIS_ DWORD ) PURE;
STDMETHOD( CopyTemplatePoliciesToZone )( THIS_ DWORD, DWORD, DWORD ) PURE;
/* IInternetZoneManagerEx methods */
STDMETHOD( GetZoneActionPolicyEx )( THIS_ DWORD, DWORD, BYTE *, DWORD, URLZONEREG, DWORD ) PURE;
STDMETHOD( SetZoneActionPolicyEx )( THIS_ DWORD, DWORD, BYTE *, DWORD, URLZONEREG, DWORD ) PURE;
/* IInternetZoneManagerEx2 methods */
STDMETHOD( GetZoneAttributesEx )( THIS_ DWORD, ZONEATTRIBUTES *, DWORD ) PURE;
STDMETHOD( GetZoneSecurityState )( THIS_ DWORD, BOOL, LPDWORD, BOOL * ) PURE;
STDMETHOD( GetIESecurityState )( THIS_ BOOL, LPDWORD, BOOL *, BOOL ) PURE;
STDMETHOD( FixUnsecureSettings )( THIS ) PURE;
};
#endif
/* ISoftDistExt interface */
#undef INTERFACE
#define INTERFACE ISoftDistExt
DECLARE_INTERFACE_( ISoftDistExt, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* ISoftDistExt methods */
STDMETHOD( ProcessSoftDist )( THIS_ LPCWSTR, IXMLElement *, LPSOFTDISTINFO ) PURE;
STDMETHOD( GetFirstCodeBase )( THIS_ LPWSTR *, LPDWORD ) PURE;
STDMETHOD( GetNextCodeBase )( THIS_ LPWSTR *, LPDWORD ) PURE;
STDMETHOD( AsyncInstallDistributionUnit )( THIS_ IBindCtx *, LPVOID, DWORD, LPCODEBASEHOLD ) PURE;
};
/* ICatalogFileInfo interface */
#undef INTERFACE
#define INTERFACE ICatalogFileInfo
DECLARE_INTERFACE_( ICatalogFileInfo, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* ICatalogFileInfo methods */
STDMETHOD( GetCatalogFile )( THIS_ LPSTR * ) PURE;
STDMETHOD( GetJavaTrust )( THIS_ void ** ) PURE;
};
typedef ICatalogFileInfo *LPCATALOGFILEINFO;
/* IDataFilter interface */
#undef INTERFACE
#define INTERFACE IDataFilter
DECLARE_INTERFACE_( IDataFilter, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDataFilter methods */
STDMETHOD( DoEncode )( THIS_ DWORD, LONG, BYTE *, LONG, BYTE *, LONG, LONG *, LONG *, DWORD ) PURE;
STDMETHOD( DoDecode )( THIS_ DWORD, LONG, BYTE *, LONG, BYTE *, LONG, LONG *, LONG *, DWORD ) PURE;
STDMETHOD( SetEncodingLevel )( THIS_ DWORD ) PURE;
};
typedef IDataFilter *LPDATAFILTER;
/* IEncodingFilterFactory interface */
#undef INTERFACE
#define INTERFACE IEncodingFilterFactory
DECLARE_INTERFACE_( IEncodingFilterFactory, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IEncodingFilterFactory methods */
STDMETHOD( FindBestFilter )( THIS_ LPCWSTR, LPCWSTR, DATAINFO, IDataFilter ** ) PURE;
STDMETHOD( GetDefaultFilter )( THIS_ LPCWSTR, LPCWSTR, IDataFilter ** ) PURE;
};
typedef IEncodingFilterFactory *LPENCODINGFILTERFACTORY;
/* IWrappedProtocol interface */
#undef INTERFACE
#define INTERFACE IWrappedProtocol
DECLARE_INTERFACE_( IWrappedProtocol, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IWrappedProtocol methods */
STDMETHOD( GetWrappedCode )( THIS_ LONG *, DWORD_PTR ) PURE;
};
typedef IWrappedProtocol *LPWRAPPEDPROTOCOL;
/* C object macros */
#if (!defined( __cplusplus ) || defined( CINTERFACE )) && defined( COBJMACROS )
#define IPersistMoniker_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IPersistMoniker_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IPersistMoniker_Release( x ) \
(x)->lpVtbl->Release( x )
#define IPersistMoniker_GetClassID( x, p ) \
(x)->lpVtbl->GetClassID( x, p )
#define IPersistMoniker_IsDirty( x ) \
(x)->lpVtbl->IsDirty( x )
#define IPersistMoniker_Load( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->Load( x, p1, p2, p3, p4 )
#define IPersistMoniker_Save( x, p1, p2, p3 ) \
(x)->lpVtbl->Save( x, p1, p2, p3 )
#define IPersistMoniker_SaveCompleted( x, p1, p2 ) \
(x)->lpVtbl->SaveCompleted( x, p1, p2 )
#define IPersistMoniker_GetCurMoniker( x, p ) \
(x)->lpVtbl->GetCurMoniker( x, p )
#define IMonikerProp_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMonikerProp_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMonikerProp_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMonikerProp_PutProperty( x, p1, p2 ) \
(x)->lpVtbl->PutProperty( x, p1, p2 )
#define IBindProtocol_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IBindProtocol_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IBindProtocol_Release( x ) \
(x)->lpVtbl->Release( x )
#define IBindProtocol_CreateBinding( x, p1, p2, p3 ) \
(x)->lpVtbl->CreateBinding( x, p1, p2, p3 )
#define IBinding_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IBinding_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IBinding_Release( x ) \
(x)->lpVtbl->Release( x )
#define IBinding_Abort( x ) \
(x)->lpVtbl->Abort( x )
#define IBinding_Suspend( x ) \
(x)->lpVtbl->Suspend( x )
#define IBinding_Resume( x ) \
(x)->lpVtbl->Resume( x )
#define IBinding_SetPriority( x, p ) \
(x)->lpVtbl->SetPriority( x, p )
#define IBinding_GetPriority( x, p ) \
(x)->lpVtbl->GetPriority( x, p )
#define IBinding_GetBindResult( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetBindResult( x, p1, p2, p3, p4 )
#define IBindStatusCallback_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IBindStatusCallback_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IBindStatusCallback_Release( x ) \
(x)->lpVtbl->Release( x )
#define IBindStatusCallback_OnStartBinding( x, p1, p2 ) \
(x)->lpVtbl->OnStartBinding( x, p1, p2 )
#define IBindStatusCallback_GetPriority( x, p ) \
(x)->lpVtbl->GetPriority( x, p )
#define IBindStatusCallback_OnLowResource( x, p ) \
(x)->lpVtbl->OnLowResource( x, p )
#define IBindStatusCallback_OnProgress( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->OnProgress( x, p1, p2, p3, p4 )
#define IBindStatusCallback_OnStopBinding( x, p1, p2 ) \
(x)->lpVtbl->OnStopBinding( x, p1, p2 )
#define IBindStatusCallback_GetBindInfo( x, p1, p2 ) \
(x)->lpVtbl->GetBindInfo( x, p1, p2 )
#define IBindStatusCallback_OnDataAvailable( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->OnDataAvailable( x, p1, p2, p3, p4 )
#define IBindStatusCallback_OnObjectAvailable( x, p1, p2 ) \
(x)->lpVtbl->OnObjectAvailable( x, p1, p2 )
#define IBindStatusCallbackEx_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IBindStatusCallbackEx_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IBindStatusCallbackEx_Release( x ) \
(x)->lpVtbl->Release( x )
#define IBindStatusCallbackEx_OnStartBinding( x, p1, p2 ) \
(x)->lpVtbl->OnStartBinding( x, p1, p2 )
#define IBindStatusCallbackEx_GetPriority( x, p ) \
(x)->lpVtbl->GetPriority( x, p )
#define IBindStatusCallbackEx_OnLowResource( x, p ) \
(x)->lpVtbl->OnLowResource( x, p )
#define IBindStatusCallbackEx_OnProgress( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->OnProgress( x, p1, p2, p3, p4 )
#define IBindStatusCallbackEx_OnStopBinding( x, p1, p2 ) \
(x)->lpVtbl->OnStopBinding( x, p1, p2 )
#define IBindStatusCallbackEx_GetBindInfo( x, p1, p2 ) \
(x)->lpVtbl->GetBindInfo( x, p1, p2 )
#define IBindStatusCallbackEx_OnDataAvailable( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->OnDataAvailable( x, p1, p2, p3, p4 )
#define IBindStatusCallbackEx_OnObjectAvailable( x, p1, p2 ) \
(x)->lpVtbl->OnObjectAvailable( x, p1, p2 )
#define IBindStatusCallbackEx_GetBindInfoEx( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetBindInfoEx( x, p1, p2, p3, p4 )
#define IAuthenticate_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAuthenticate_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAuthenticate_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAuthenticate_Authenticate( x, p1, p2, p3 ) \
(x)->lpVtbl->Authenticate( x, p1, p2, p3 )
#define IAuthenticateEx_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAuthenticateEx_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAuthenticateEx_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAuthenticateEx_Authenticate( x, p1, p2, p3 ) \
(x)->lpVtbl->Authenticate( x, p1, p2, p3 )
#define IAuthenticateEx_AuthenticateEx( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->AuthenticateEx( x, p1, p2, p3, p4 )
#define IHttpNegotiate_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IHttpNegotiate_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IHttpNegotiate_Release( x ) \
(x)->lpVtbl->Release( x )
#define IHttpNegotiate_BeginningTransaction( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->BeginningTransaction( x, p1, p2, p3, p4 )
#define IHttpNegotiate_OnResponse( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->OnResponse( x, p1, p2, p3, p4 )
#define IHttpNegotiate2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IHttpNegotiate2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IHttpNegotiate2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IHttpNegotiate2_BeginningTransaction( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->BeginningTransaction( x, p1, p2, p3, p4 )
#define IHttpNegotiate2_OnResponse( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->OnResponse( x, p1, p2, p3, p4 )
#define IHttpNegotiate2_GetRootSecurityId( x, p1, p2, p3 ) \
(x)->lpVtbl->GetRootSecurityId( x, p1, p2, p3 )
#define IHttpNegotiate3_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IHttpNegotiate3_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IHttpNegotiate3_Release( x ) \
(x)->lpVtbl->Release( x )
#define IHttpNegotiate3_BeginningTransaction( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->BeginningTransaction( x, p1, p2, p3, p4 )
#define IHttpNegotiate3_OnResponse( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->OnResponse( x, p1, p2, p3, p4 )
#define IHttpNegotiate3_GetRootSecurityId( x, p1, p2, p3 ) \
(x)->lpVtbl->GetRootSecurityId( x, p1, p2, p3 )
#define IHttpNegotiate3_GetSerializedClientCertContext( x, p1, p2 ) \
(x)->lpVtbl->GetSerializedClientCertContext( x, p1, p2 )
#define IWinInetFileStream_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IWinInetFileStream_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IWinInetFileStream_Release( x ) \
(x)->lpVtbl->Release( x )
#define IWinInetFileStream_SetHandleForUnlock( x, p1, p2 ) \
(x)->lpVtbl->SetHandleForUnlock( x, p1, p2 )
#define IWinInetFileStream_SetDeleteFile( x, p ) \
(x)->lpVtbl->SetDeleteFile( x, p )
#define IWindowForBindingUI_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IWindowForBindingUI_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IWindowForBindingUI_Release( x ) \
(x)->lpVtbl->Release( x )
#define IWindowForBindingUI_GetWindow( x, p1, p2 ) \
(x)->lpVtbl->GetWindow( x, p1, p2 )
#if (_WIN32_IE >= 0x0700)
#define IUri_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IUri_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IUri_Release( x ) \
(x)->lpVtbl->Release( x )
#define IUri_GetPropertyBSTR( x, p1, p2, p3 ) \
(x)->lpVtbl->GetPropertyBSTR( x, p1, p2, p3 )
#define IUri_GetPropertyLength( x, p1, p2, p3 ) \
(x)->lpVtbl->GetPropertyLength( x, p1, p2, p3 )
#define IUri_GetPropertyDWORD( x, p1, p2, p3 ) \
(x)->lpVtbl->GetPropertyDWORD( x, p1, p2, p3 )
#define IUri_HasProperty( x, p1, p2 ) \
(x)->lpVtbl->HasProperty( x, p1, p2 )
#define IUri_GetAbsoluteUri( x, p ) \
(x)->lpVtbl->GetAbsoluteUri( x, p )
#define IUri_GetAuthority( x, p ) \
(x)->lpVtbl->GetAuthority( x, p )
#define IUri_GetDisplayUri( x, p ) \
(x)->lpVtbl->GetDisplayUri( x, p )
#define IUri_GetDomain( x, p ) \
(x)->lpVtbl->GetDomain( x, p )
#define IUri_GetExtension( x, p ) \
(x)->lpVtbl->GetExtension( x, p )
#define IUri_GetFragment( x, p ) \
(x)->lpVtbl->GetFragment( x, p )
#define IUri_GetHost( x, p ) \
(x)->lpVtbl->GetHost( x, p )
#define IUri_GetPassword( x, p ) \
(x)->lpVtbl->GetPassword( x, p )
#define IUri_GetPath( x, p ) \
(x)->lpVtbl->GetPath( x, p )
#define IUri_GetPathAndQuery( x, p ) \
(x)->lpVtbl->GetPathAndQuery( x, p )
#define IUri_GetQuery( x, p ) \
(x)->lpVtbl->GetQuery( x, p )
#define IUri_GetRawUri( x, p ) \
(x)->lpVtbl->GetRawUri( x, p )
#define IUri_GetSchemeName( x, p ) \
(x)->lpVtbl->GetSchemeName( x, p )
#define IUri_GetUserInfo( x, p ) \
(x)->lpVtbl->GetUserInfo( x, p )
#define IUri_GetUserName( x, p ) \
(x)->lpVtbl->GetUserName( x, p )
#define IUri_GetHostType( x, p ) \
(x)->lpVtbl->GetHostType( x, p )
#define IUri_GetPort( x, p ) \
(x)->lpVtbl->GetPort( x, p )
#define IUri_GetScheme( x, p ) \
(x)->lpVtbl->GetScheme( x, p )
#define IUri_GetZone( x, p ) \
(x)->lpVtbl->GetZone( x, p )
#define IUri_GetProperties( x, p ) \
(x)->lpVtbl->GetProperties( x, p )
#define IUri_IsEqual( x, p1, p2 ) \
(x)->lpVtbl->IsEqual( x, p1, p2 )
#define IUriContainer_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IUriContainer_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IUriContainer_Release( x ) \
(x)->lpVtbl->Release( x )
#define IUriContainer_GetIUri( x, p ) \
(x)->lpVtbl->GetIUri( x, p )
#define IUriBuilder_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IUriBuilder_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IUriBuilder_Release( x ) \
(x)->lpVtbl->Release( x )
#define IUriBuilder_CreateUriSimple( x, p1, p2, p3 ) \
(x)->lpVtbl->CreateUriSimple( x, p1, p2, p3 )
#define IUriBuilder_CreateUri( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->CreateUri( x, p1, p2, p3, p4 )
#define IUriBuilder_CreateUriWithFlags( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->CreateUriWithFlags( x, p1, p2, p3, p4, p5 )
#define IUriBuilder_GetIUri( x, p ) \
(x)->lpVtbl->GetIUri( x, p )
#define IUriBuilder_SetIUri( x, p ) \
(x)->lpVtbl->SetIUri( x, p )
#define IUriBuilder_GetFragment( x, p1, p2 ) \
(x)->lpVtbl->GetFragment( x, p1, p2 )
#define IUriBuilder_GetHost( x, p1, p2 ) \
(x)->lpVtbl->GetHost( x, p1, p2 )
#define IUriBuilder_GetPassword( x, p1, p2 ) \
(x)->lpVtbl->GetPassword( x, p1, p2 )
#define IUriBuilder_GetPath( x, p1, p2 ) \
(x)->lpVtbl->GetPath( x, p1, p2 )
#define IUriBuilder_GetPort( x, p1, p2 ) \
(x)->lpVtbl->GetPort( x, p1, p2 )
#define IUriBuilder_GetQuery( x, p1, p2 ) \
(x)->lpVtbl->GetQuery( x, p1, p2 )
#define IUriBuilder_GetSchemeName( x, p1, p2 ) \
(x)->lpVtbl->GetSchemeName( x, p1, p2 )
#define IUriBuilder_GetUserName( x, p1, p2 ) \
(x)->lpVtbl->GetUserName( x, p1, p2 )
#define IUriBuilder_SetFragment( x, p ) \
(x)->lpVtbl->SetFragment( x, p )
#define IUriBuilder_SetHost( x, p ) \
(x)->lpVtbl->SetHost( x, p )
#define IUriBuilder_SetPassword( x, p ) \
(x)->lpVtbl->SetPassword( x, p )
#define IUriBuilder_SetPath( x, p ) \
(x)->lpVtbl->SetPath( x, p )
#define IUriBuilder_SetPort( x, p1, p2 ) \
(x)->lpVtbl->SetPort( x, p1, p2 )
#define IUriBuilder_SetQuery( x, p ) \
(x)->lpVtbl->SetQuery( x, p )
#define IUriBuilder_SetSchemeName( x, p ) \
(x)->lpVtbl->SetSchemeName( x, p )
#define IUriBuilder_SetUserName( x, p ) \
(x)->lpVtbl->SetUserName( x, p )
#define IUriBuilder_RemoveProperties( x, p ) \
(x)->lpVtbl->RemoveProperties( x, p )
#define IUriBuilder_HasBeenModified( x, p ) \
(x)->lpVtbl->HasBeenModified( x, p )
#define IUriBuilderFactory_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IUriBuilderFactory_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IUriBuilderFactory_Release( x ) \
(x)->lpVtbl->Release( x )
#define IUriBuilderFactory_CreateIUriBuilder( x, p1, p2, p3 ) \
(x)->lpVtbl->CreateIUriBuilder( x, p1, p2, p3 )
#define IUriBuilderFactory_CreateInitializedIUriBuilder( x, p1, p2, p3 ) \
(x)->lpVtbl->CreateInitializedIUriBuilder( x, p1, p2, p3 )
#endif
#define IWinInetInfo_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IWinInetInfo_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IWinInetInfo_Release( x ) \
(x)->lpVtbl->Release( x )
#define IWinInetInfo_QueryOption( x, p1, p2, p3 ) \
(x)->lpVtbl->QueryOption( x, p1, p2, p3 )
#define IHttpSecurity_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IHttpSecurity_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IHttpSecurity_Release( x ) \
(x)->lpVtbl->Release( x )
#define IHttpSecurity_GetWindow( x, p1, p2 ) \
(x)->lpVtbl->GetWindow( x, p1, p2 )
#define IHttpSecurity_OnSecurityProblem( x, p ) \
(x)->lpVtbl->OnSecurityProblem( x, p )
#define IWinInetHttpInfo_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IWinInetHttpInfo_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IWinInetHttpInfo_Release( x ) \
(x)->lpVtbl->Release( x )
#define IWinInetHttpInfo_QueryOption( x, p1, p2, p3 ) \
(x)->lpVtbl->QueryOption( x, p1, p2, p3 )
#define IWinInetHttpInfo_QueryInfo( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->QueryInfo( x, p1, p2, p3, p4, p5 )
#if (_WIN32_IE >= 0x0602)
#define IWinInetCacheHints_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IWinInetCacheHints_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IWinInetCacheHints_Release( x ) \
(x)->lpVtbl->Release( x )
#define IWinInetCacheHints_SetCacheExtension( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetCacheExtension( x, p1, p2, p3, p4, p5 )
#endif
#if (_WIN32_IE >= 0x0700)
#define IWinInetCacheHints2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IWinInetCacheHints2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IWinInetCacheHints2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IWinInetCacheHints2_SetCacheExtension( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetCacheExtension( x, p1, p2, p3, p4, p5 )
#define IWinInetCacheHints2_SetCacheExtension2( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetCacheExtension2( x, p1, p2, p3, p4, p5 )
#endif
#define IBindHost_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IBindHost_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IBindHost_Release( x ) \
(x)->lpVtbl->Release( x )
#define IBindHost_CreateMoniker( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->CreateMoniker( x, p1, p2, p3, p4 )
#define IBindHost_MonikerBindToStorage( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->MonikerBindToStorage( x, p1, p2, p3, p4, p5 )
#define IBindHost_MonikerBindToObject( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->MonikerBindToObject( x, p1, p2, p3, p4, p5 )
#define IInternet_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternet_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternet_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetBindInfo_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetBindInfo_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetBindInfo_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetBindInfo_GetBindInfo( x, p1, p2 ) \
(x)->lpVtbl->GetBindInfo( x, p1, p2 )
#define IInternetBindInfo_GetBindString( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetBindString( x, p1, p2, p3, p4 )
#define IInternetBindInfoEx_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetBindInfoEx_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetBindInfoEx_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetBindInfoEx_GetBindInfo( x, p1, p2 ) \
(x)->lpVtbl->GetBindInfo( x, p1, p2 )
#define IInternetBindInfoEx_GetBindString( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetBindString( x, p1, p2, p3, p4 )
#define IInternetBindInfoEx_GetBindInfoEx( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetBindInfoEx( x, p1, p2, p3, p4 )
#define IInternetProtocolRoot_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetProtocolRoot_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetProtocolRoot_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetProtocolRoot_Start( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->Start( x, p1, p2, p3, p4, p5 )
#define IInternetProtocolRoot_Continue( x, p ) \
(x)->lpVtbl->Continue( x, p )
#define IInternetProtocolRoot_Abort( x, p1, p2 ) \
(x)->lpVtbl->Abort( x, p1, p2 )
#define IInternetProtocolRoot_Terminate( x, p ) \
(x)->lpVtbl->Terminate( x, p )
#define IInternetProtocolRoot_Suspend( x ) \
(x)->lpVtbl->Suspend( x )
#define IInternetProtocolRoot_Resume( x ) \
(x)->lpVtbl->Resume( x )
#define IInternetProtocol_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetProtocol_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetProtocol_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetProtocol_Start( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->Start( x, p1, p2, p3, p4, p5 )
#define IInternetProtocol_Continue( x, p ) \
(x)->lpVtbl->Continue( x, p )
#define IInternetProtocol_Abort( x, p1, p2 ) \
(x)->lpVtbl->Abort( x, p1, p2 )
#define IInternetProtocol_Terminate( x, p ) \
(x)->lpVtbl->Terminate( x, p )
#define IInternetProtocol_Suspend( x ) \
(x)->lpVtbl->Suspend( x )
#define IInternetProtocol_Resume( x ) \
(x)->lpVtbl->Resume( x )
#define IInternetProtocol_Read( x, p1, p2, p3 ) \
(x)->lpVtbl->Read( x, p1, p2, p3 )
#define IInternetProtocol_Seek( x, p1, p2, p3 ) \
(x)->lpVtbl->Seek( x, p1, p2, p3 )
#define IInternetProtocol_LockRequest( x, p ) \
(x)->lpVtbl->LockRequest( x, p )
#define IInternetProtocol_UnlockRequest( x ) \
(x)->lpVtbl->UnlockRequest( x )
#if (_WIN32_IE >= 0x0700)
#define IInternetProtocolEx_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetProtocolEx_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetProtocolEx_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetProtocolEx_Start( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->Start( x, p1, p2, p3, p4, p5 )
#define IInternetProtocolEx_Continue( x, p ) \
(x)->lpVtbl->Continue( x, p )
#define IInternetProtocolEx_Abort( x, p1, p2 ) \
(x)->lpVtbl->Abort( x, p1, p2 )
#define IInternetProtocolEx_Terminate( x, p ) \
(x)->lpVtbl->Terminate( x, p )
#define IInternetProtocolEx_Suspend( x ) \
(x)->lpVtbl->Suspend( x )
#define IInternetProtocolEx_Resume( x ) \
(x)->lpVtbl->Resume( x )
#define IInternetProtocolEx_Read( x, p1, p2, p3 ) \
(x)->lpVtbl->Read( x, p1, p2, p3 )
#define IInternetProtocolEx_Seek( x, p1, p2, p3 ) \
(x)->lpVtbl->Seek( x, p1, p2, p3 )
#define IInternetProtocolEx_LockRequest( x, p ) \
(x)->lpVtbl->LockRequest( x, p )
#define IInternetProtocolEx_UnlockRequest( x ) \
(x)->lpVtbl->UnlockRequest( x )
#define IInternetProtocolEx_StartEx( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->StartEx( x, p1, p2, p3, p4, p5 )
#endif
#define IInternetProtocolSink_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetProtocolSink_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetProtocolSink_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetProtocolSink_Switch( x, p ) \
(x)->lpVtbl->Switch( x, p )
#define IInternetProtocolSink_ReportProgress( x, p1, p2 ) \
(x)->lpVtbl->ReportProgress( x, p1, p2 )
#define IInternetProtocolSink_ReportData( x, p1, p2, p3 ) \
(x)->lpVtbl->ReportData( x, p1, p2, p3 )
#define IInternetProtocolSink_ReportResult( x, p1, p2, p3 ) \
(x)->lpVtbl->ReportResult( x, p1, p2, p3 )
#define IInternetProtocolSinkStackable_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetProtocolSinkStackable_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetProtocolSinkStackable_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetProtocolSinkStackable_SwitchSink( x, p ) \
(x)->lpVtbl->SwitchSink( x, p )
#define IInternetProtocolSinkStackable_CommitSwitch( x ) \
(x)->lpVtbl->CommitSwitch( x )
#define IInternetProtocolSinkStackable_RollbackSwitch( x ) \
(x)->lpVtbl->RollbackSwitch( x )
#define IInternetSession_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetSession_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetSession_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetSession_RegisterNameSpace( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->RegisterNameSpace( x, p1, p2, p3, p4, p5, p6 )
#define IInternetSession_UnregisterNameSpace( x, p1, p2 ) \
(x)->lpVtbl->UnregisterNameSpace( x, p1, p2 )
#define IInternetSession_RegisterMimeFilter( x, p1, p2, p3 ) \
(x)->lpVtbl->RegisterMimeFilter( x, p1, p2, p3 )
#define IInternetSession_UnregisterMimeFilter( x, p1, p2 ) \
(x)->lpVtbl->UnregisterMimeFilter( x, p1, p2 )
#define IInternetSession_CreateBinding( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->CreateBinding( x, p1, p2, p3, p4, p5, p6 )
#define IInternetSession_SetSessionOption( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->SetSessionOption( x, p1, p2, p3, p4 )
#define IInternetSession_GetSessionOption( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetSessionOption( x, p1, p2, p3, p4 )
#define IInternetThreadSwitch_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetThreadSwitch_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetThreadSwitch_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetThreadSwitch_Prepare( x ) \
(x)->lpVtbl->Prepare( x )
#define IInternetThreadSwitch_Continue( x ) \
(x)->lpVtbl->Continue( x )
#define IInternetPriority_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetPriority_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetPriority_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetPriority_SetPriority( x, p ) \
(x)->lpVtbl->SetPriority( x, p )
#define IInternetPriority_GetPriority( x, p ) \
(x)->lpVtbl->GetPriority( x, p )
#define IInternetProtocolInfo_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetProtocolInfo_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetProtocolInfo_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetProtocolInfo_ParseUrl( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->ParseUrl( x, p1, p2, p3, p4, p5, p6, p7 )
#define IInternetProtocolInfo_CombineUrl( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->CombineUrl( x, p1, p2, p3, p4, p5, p6, p7 )
#define IInternetProtocolInfo_CompareUrl( x, p1, p2, p3 ) \
(x)->lpVtbl->CompareUrl( x, p1, p2, p3 )
#define IInternetProtocolInfo_QueryInfo( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->QueryInfo( x, p1, p2, p3, p4, p5, p6, p7 )
#define IInternetSecurityMgrSite_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetSecurityMgrSite_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetSecurityMgrSite_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetSecurityMgrSite_GetWindow( x, p ) \
(x)->lpVtbl->GetWindow( x, p )
#define IInternetSecurityMgrSite_EnableModeless( x, p ) \
(x)->lpVtbl->EnableModeless( x, p )
#define IInternetSecurityManager_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetSecurityManager_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetSecurityManager_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetSecurityManager_SetSecuritySite( x, p ) \
(x)->lpVtbl->SetSecuritySite( x, p )
#define IInternetSecurityManager_GetSecuritySite( x, p ) \
(x)->lpVtbl->GetSecuritySite( x, p )
#define IInternetSecurityManager_MapUrlToZone( x, p1, p2, p3 ) \
(x)->lpVtbl->MapUrlToZone( x, p1, p2, p3 )
#define IInternetSecurityManager_GetSecurityId( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetSecurityId( x, p1, p2, p3, p4 )
#define IInternetSecurityManager_ProcessUrlAction( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->ProcessUrlAction( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IInternetSecurityManager_QueryCustomPolicy( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->QueryCustomPolicy( x, p1, p2, p3, p4, p5, p6, p7 )
#define IInternetSecurityManager_SetZoneMapping( x, p1, p2, p3 ) \
(x)->lpVtbl->SetZoneMapping( x, p1, p2, p3 )
#define IInternetSecurityManager_GetZoneMappings( x, p1, p2, p3 ) \
(x)->lpVtbl->GetZoneMappings( x, p1, p2, p3 )
#if (_WIN32_IE >= 0x0602)
#define IInternetSecurityManagerEx_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetSecurityManagerEx_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetSecurityManagerEx_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetSecurityManagerEx_SetSecuritySite( x, p ) \
(x)->lpVtbl->SetSecuritySite( x, p )
#define IInternetSecurityManagerEx_GetSecuritySite( x, p ) \
(x)->lpVtbl->GetSecuritySite( x, p )
#define IInternetSecurityManagerEx_MapUrlToZone( x, p1, p2, p3 ) \
(x)->lpVtbl->MapUrlToZone( x, p1, p2, p3 )
#define IInternetSecurityManagerEx_GetSecurityId( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetSecurityId( x, p1, p2, p3, p4 )
#define IInternetSecurityManagerEx_ProcessUrlAction( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->ProcessUrlAction( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IInternetSecurityManagerEx_QueryCustomPolicy( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->QueryCustomPolicy( x, p1, p2, p3, p4, p5, p6, p7 )
#define IInternetSecurityManagerEx_SetZoneMapping( x, p1, p2, p3 ) \
(x)->lpVtbl->SetZoneMapping( x, p1, p2, p3 )
#define IInternetSecurityManagerEx_GetZoneMappings( x, p1, p2, p3 ) \
(x)->lpVtbl->GetZoneMappings( x, p1, p2, p3 )
#define IInternetSecurityManagerEx_ProcessUrlActionEx( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) \
(x)->lpVtbl->ProcessUrlActionEx( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 )
#endif
#if (_WIN32_IE >= 0x0700)
#define IInternetSecurityManagerEx2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetSecurityManagerEx2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetSecurityManagerEx2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetSecurityManagerEx2_SetSecuritySite( x, p ) \
(x)->lpVtbl->SetSecuritySite( x, p )
#define IInternetSecurityManagerEx2_GetSecuritySite( x, p ) \
(x)->lpVtbl->GetSecuritySite( x, p )
#define IInternetSecurityManagerEx2_MapUrlToZone( x, p1, p2, p3 ) \
(x)->lpVtbl->MapUrlToZone( x, p1, p2, p3 )
#define IInternetSecurityManagerEx2_GetSecurityId( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetSecurityId( x, p1, p2, p3, p4 )
#define IInternetSecurityManagerEx2_ProcessUrlAction( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->ProcessUrlAction( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IInternetSecurityManagerEx2_QueryCustomPolicy( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->QueryCustomPolicy( x, p1, p2, p3, p4, p5, p6, p7 )
#define IInternetSecurityManagerEx2_SetZoneMapping( x, p1, p2, p3 ) \
(x)->lpVtbl->SetZoneMapping( x, p1, p2, p3 )
#define IInternetSecurityManagerEx2_GetZoneMappings( x, p1, p2, p3 ) \
(x)->lpVtbl->GetZoneMappings( x, p1, p2, p3 )
#define IInternetSecurityManagerEx2_ProcessUrlActionEx( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) \
(x)->lpVtbl->ProcessUrlActionEx( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 )
#define IInternetSecurityManagerEx2_MapUrlToZoneEx2( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->MapUrlToZoneEx2( x, p1, p2, p3, p4, p5 )
#define IInternetSecurityManagerEx2_ProcessUrlActionEx2( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) \
(x)->lpVtbl->ProcessUrlActionEx2( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 )
#define IInternetSecurityManagerEx2_GetSecurityIdEx2( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetSecurityIdEx2( x, p1, p2, p3, p4 )
#define IInternetSecurityManagerEx2_QueryCustomPolicyEx2( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->QueryCustomPolicyEx2( x, p1, p2, p3, p4, p5, p6, p7 )
#endif
#if (_WIN32_IE >= 0x0602)
#define IZoneIdentifier_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IZoneIdentifier_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IZoneIdentifier_Release( x ) \
(x)->lpVtbl->Release( x )
#define IZoneIdentifier_GetId( x, p ) \
(x)->lpVtbl->GetId( x, p )
#define IZoneIdentifier_SetId( x, p ) \
(x)->lpVtbl->SetId( x, p )
#define IZoneIdentifier_Remove( x ) \
(x)->lpVtbl->Remove( x )
#endif
#define IInternetHostSecurityManager_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetHostSecurityManager_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetHostSecurityManager_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetHostSecurityManager_GetSecurityId( x, p1, p2, p3 ) \
(x)->lpVtbl->GetSecurityId( x, p1, p2, p3 )
#define IInternetHostSecurityManager_ProcessUrlAction( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->ProcessUrlAction( x, p1, p2, p3, p4, p5, p6, p7 )
#define IInternetHostSecurityManager_QueryCustomPolicy( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->QueryCustomPolicy( x, p1, p2, p3, p4, p5, p6 )
#define IInternetZoneManager_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetZoneManager_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetZoneManager_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetZoneManager_GetZoneAttributes( x, p1, p2 ) \
(x)->lpVtbl->GetZoneAttributes( x, p1, p2 )
#define IInternetZoneManager_SetZoneAttributes( x, p1, p2 ) \
(x)->lpVtbl->SetZoneAttributes( x, p1, p2 )
#define IInternetZoneManager_GetZoneCustomPolicy( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetZoneCustomPolicy( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManager_SetZoneCustomPolicy( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetZoneCustomPolicy( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManager_GetZoneActionPolicy( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetZoneActionPolicy( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManager_SetZoneActionPolicy( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetZoneActionPolicy( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManager_PromptAction( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->PromptAction( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManager_LogAction( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->LogAction( x, p1, p2, p3, p4 )
#define IInternetZoneManager_CreateZoneEnumerator( x, p1, p2, p3 ) \
(x)->lpVtbl->CreateZoneEnumerator( x, p1, p2, p3 )
#define IInternetZoneManager_GetZoneAt( x, p1, p2, p3 ) \
(x)->lpVtbl->GetZoneAt( x, p1, p2, p3 )
#define IInternetZoneManager_DestroyZoneEnumerator( x, p ) \
(x)->lpVtbl->DestroyZoneEnumerator( x, p )
#define IInternetZoneManager_CopyTemplatePoliciesToZone( x, p1, p2, p3 ) \
(x)->lpVtbl->CopyTemplatePoliciesToZone( x, p1, p2, p3 )
#if (_WIN32_IE >= 0x0602)
#define IInternetZoneManagerEx_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetZoneManagerEx_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetZoneManagerEx_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetZoneManagerEx_GetZoneAttributes( x, p1, p2 ) \
(x)->lpVtbl->GetZoneAttributes( x, p1, p2 )
#define IInternetZoneManagerEx_SetZoneAttributes( x, p1, p2 ) \
(x)->lpVtbl->SetZoneAttributes( x, p1, p2 )
#define IInternetZoneManagerEx_GetZoneCustomPolicy( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetZoneCustomPolicy( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManagerEx_SetZoneCustomPolicy( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetZoneCustomPolicy( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManagerEx_GetZoneActionPolicy( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetZoneActionPolicy( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManagerEx_SetZoneActionPolicy( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetZoneActionPolicy( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManagerEx_PromptAction( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->PromptAction( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManagerEx_LogAction( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->LogAction( x, p1, p2, p3, p4 )
#define IInternetZoneManagerEx_CreateZoneEnumerator( x, p1, p2, p3 ) \
(x)->lpVtbl->CreateZoneEnumerator( x, p1, p2, p3 )
#define IInternetZoneManagerEx_GetZoneAt( x, p1, p2, p3 ) \
(x)->lpVtbl->GetZoneAt( x, p1, p2, p3 )
#define IInternetZoneManagerEx_DestroyZoneEnumerator( x, p ) \
(x)->lpVtbl->DestroyZoneEnumerator( x, p )
#define IInternetZoneManagerEx_CopyTemplatePoliciesToZone( x, p1, p2, p3 ) \
(x)->lpVtbl->CopyTemplatePoliciesToZone( x, p1, p2, p3 )
#define IInternetZoneManagerEx_GetZoneActionPolicyEx( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->GetZoneActionPolicyEx( x, p1, p2, p3, p4, p5, p6 )
#define IInternetZoneManagerEx_SetZoneActionPolicyEx( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->SetZoneActionPolicyEx( x, p1, p2, p3, p4, p5, p6 )
#endif
#if (_WIN32_IE >= 0x0700)
#define IInternetZoneManagerEx2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IInternetZoneManagerEx2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IInternetZoneManagerEx2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IInternetZoneManagerEx2_GetZoneAttributes( x, p1, p2 ) \
(x)->lpVtbl->GetZoneAttributes( x, p1, p2 )
#define IInternetZoneManagerEx2_SetZoneAttributes( x, p1, p2 ) \
(x)->lpVtbl->SetZoneAttributes( x, p1, p2 )
#define IInternetZoneManagerEx2_GetZoneCustomPolicy( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetZoneCustomPolicy( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManagerEx2_SetZoneCustomPolicy( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetZoneCustomPolicy( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManagerEx2_GetZoneActionPolicy( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetZoneActionPolicy( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManagerEx2_SetZoneActionPolicy( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetZoneActionPolicy( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManagerEx2_PromptAction( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->PromptAction( x, p1, p2, p3, p4, p5 )
#define IInternetZoneManagerEx2_LogAction( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->LogAction( x, p1, p2, p3, p4 )
#define IInternetZoneManagerEx2_CreateZoneEnumerator( x, p1, p2, p3 ) \
(x)->lpVtbl->CreateZoneEnumerator( x, p1, p2, p3 )
#define IInternetZoneManagerEx2_GetZoneAt( x, p1, p2, p3 ) \
(x)->lpVtbl->GetZoneAt( x, p1, p2, p3 )
#define IInternetZoneManagerEx2_DestroyZoneEnumerator( x, p ) \
(x)->lpVtbl->DestroyZoneEnumerator( x, p )
#define IInternetZoneManagerEx2_CopyTemplatePoliciesToZone( x, p1, p2, p3 ) \
(x)->lpVtbl->CopyTemplatePoliciesToZone( x, p1, p2, p3 )
#define IInternetZoneManagerEx2_GetZoneActionPolicyEx( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->GetZoneActionPolicyEx( x, p1, p2, p3, p4, p5, p6 )
#define IInternetZoneManagerEx2_SetZoneActionPolicyEx( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->SetZoneActionPolicyEx( x, p1, p2, p3, p4, p5, p6 )
#define IInternetZoneManagerEx2_GetZoneAttributesEx( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetZoneAttributesEx( x, p1, p2, p3, p4 )
#define IInternetZoneManagerEx2_GetZoneSecurityState( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetZoneSecurityState( x, p1, p2, p3, p4 )
#define IInternetZoneManagerEx2_GetIESecurityState( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetIESecurityState( x, p1, p2, p3, p4 )
#define IInternetZoneManagerEx2_FixUnsecureSettings( x ) \
(x)->lpVtbl->FixUnsecureSettings( x )
#endif
#define ISoftDistExt_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define ISoftDistExt_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define ISoftDistExt_Release( x ) \
(x)->lpVtbl->Release( x )
#define ISoftDistExt_ProcessSoftDist( x, p1, p2, p3 ) \
(x)->lpVtbl->ProcessSoftDist( x, p1, p2, p3 )
#define ISoftDistExt_GetFirstCodeBase( x, p1, p2 ) \
(x)->lpVtbl->GetFirstCodeBase( x, p1, p2 )
#define ISoftDistExt_GetNextCodeBase( x, p1, p2 ) \
(x)->lpVtbl->GetNextCodeBase( x, p1, p2 )
#define ISoftDistExt_AsyncInstallDistributionUnit( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->AsyncInstallDistributionUnit( x, p1, p2, p3, p4 )
#define ICatalogFileInfo_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define ICatalogFileInfo_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define ICatalogFileInfo_Release( x ) \
(x)->lpVtbl->Release( x )
#define ICatalogFileInfo_GetCatalogFile( x, p ) \
(x)->lpVtbl->GetCatalogFile( x, p )
#define ICatalogFileInfo_GetJavaTrust( x, p ) \
(x)->lpVtbl->GetJavaTrust( x, p )
#define IDataFilter_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDataFilter_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDataFilter_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDataFilter_DoEncode( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) \
(x)->lpVtbl->DoEncode( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 )
#define IDataFilter_DoDecode( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) \
(x)->lpVtbl->DoDecode( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 )
#define IDataFilter_SetEncodingLevel( x, p ) \
(x)->lpVtbl->SetEncodingLevel( x, p )
#define IEncodingFilterFactory_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IEncodingFilterFactory_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IEncodingFilterFactory_Release( x ) \
(x)->lpVtbl->Release( x )
#define IEncodingFilterFactory_FindBestFilter( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->FindBestFilter( x, p1, p2, p3, p4 )
#define IEncodingFilterFactory_GetDefaultFilter( x, p1, p2, p3 ) \
(x)->lpVtbl->GetDefaultFilter( x, p1, p2, p3 )
#endif
/* Old names of interfaces for compatibility */
#define IOInet IInternet
#define IOInetBindInfo IInternetBindInfo
#define IOInetBindInfoEx IInternetBindInfoEx
#define IOInetProtocolRoot IInternetProtocolRoot
#define IOInetProtocol IInternetProtocol
#if (_WIN32_IE >= 0x0700)
#define IOInetProtocolEx IInternetProtocolEx
#endif
#define IOInetProtocolSink IInternetProtocolSink
#define IOInetProtocolInfo IInternetProtocolInfo
#define IOInetSession IInternetSession
#define IOInetPriority IInternetPriority
#define IOInetThreadSwitch IInternetThreadSwitch
#define IOInetProtocolSinkStackable IInternetProtocolSinkStackable
/* Old names of pointers to interfaces for compatibility */
#define LPOINET LPIINTERNET
#define LPOINETBINDINFO LPIINTERNETBINDINFO
#define LPOINETPROTOCOLROOT LPIINTERNETPROTOCOLROOT
#define LPOINETPROTOCOL LPIINTERNETPROTOCOL
#if (_WIN32_IE >= 0x0700)
#define LPOINETPROTOCOLEX LPIINTERNETPROTOCOLEX
#endif
#define LPOINETPROTOCOLSINK LPIINTERNETPROTOCOLSINK
#define LPOINETPROTOCOLINFO LPIINTERNETPROTOCOLINFO
#define LPOINETSESSION LPIINTERNETSESSION
#define LPOINETPRIORITY LPIINTERNETPRIORITY
#define LPOINETTHREADSWITCH LPIINTERNETTHREADSWITCH
#define LPOINETPROTOCOLSINKSTACKABLE LPIINTERNETPROTOCOLSINKSTACKABLE
/* Old names of GUIDs for compatibility */
#define IID_IOInet IID_IInternet
#define IID_IOInetBindInfo IID_IInternetBindInfo
#define IID_IOInetBindInfoEx IID_IInternetBindInfoEx
#define IID_IOInetProtocolRoot IID_IInternetProtocolRoot
#define IID_IOInetProtocol IID_IInternetProtocol
#if (_WIN32_IE >= 0x0700)
#define IID_IOInetProtocolEx IID_IInternetProtocolEx
#endif
#define IID_IOInetProtocolSink IID_IInternetProtocolSink
#define IID_IOInetProtocolInfo IID_IInternetProtocolInfo
#define IID_IOInetSession IID_IInternetSession
#define IID_IOInetPriority IID_IInternetPriority
#define IID_IOInetThreadSwitch IID_IInternetThreadSwitch
#define IID_IOInetProtocolSinkStackable IID_IInternetProtocolSinkStackable
/* Functions in URLMON.DLL */
/* NOTE: Microsoft declares the function CoInternetIsFeatureEnabledForIUri() when
* _WIN32_IE >= 0x0602. However, it depends on the IUri interface, which only exists
* when _WIN32_IE >= 0x0700. This is a bug that will cause a compiler error when
* _WIN32_IE is defined as 0x0602. Therefore, the function is declared here only if
* _WIN32_IE >= 0x0700. */
STDAPI AsyncInstallDistributionUnit( LPCWSTR, LPCWSTR, LPCWSTR, DWORD, DWORD, LPCWSTR, IBindCtx *, LPVOID, DWORD );
STDAPI CoGetClassObjectFromURL( REFCLSID, LPCWSTR, DWORD, DWORD, LPCWSTR, LPBINDCTX, DWORD, LPVOID, REFIID, LPVOID * );
STDAPI CoInternetCombineUrl( LPCWSTR, LPCWSTR, DWORD, LPWSTR, DWORD, DWORD *, DWORD );
STDAPI CoInternetCompareUrl( LPCWSTR, LPCWSTR, DWORD );
STDAPI CoInternetCreateSecurityManager( IServiceProvider *, IInternetSecurityManager **, DWORD );
STDAPI CoInternetCreateZoneManager( IServiceProvider *, IInternetZoneManager **, DWORD );
STDAPI CoInternetGetProtocolFlags( LPCWSTR, DWORD *, DWORD );
STDAPI CoInternetGetSecurityUrl( LPCWSTR, LPWSTR *, PSUACTION, DWORD );
STDAPI CoInternetGetSession( DWORD, IInternetSession **, DWORD );
STDAPI CoInternetParseUrl( LPCWSTR, PARSEACTION, DWORD, LPWSTR, DWORD, DWORD *, DWORD );
STDAPI CoInternetQueryInfo( LPCWSTR, QUERYOPTION, DWORD, LPVOID, DWORD, DWORD *, DWORD );
STDAPI CompareSecurityIds( BYTE *, DWORD, BYTE *, DWORD, DWORD );
STDAPI CompatFlagsFromClsid( CLSID *, LPDWORD, LPDWORD );
STDAPI CopyBindInfo( const BINDINFO *, BINDINFO * );
STDAPI CopyStgMedium( const STGMEDIUM *, STGMEDIUM * );
STDAPI CreateAsyncBindCtx( DWORD, IBindStatusCallback *, IEnumFORMATETC *, IBindCtx ** );
STDAPI CreateAsyncBindCtxEx( IBindCtx *, DWORD, IBindStatusCallback *, IEnumFORMATETC *, IBindCtx **, DWORD );
STDAPI CreateFormatEnumerator( UINT, FORMATETC *, IEnumFORMATETC ** );
STDAPI CreateURLBinding( LPCWSTR, IBindCtx *, IBinding ** );
STDAPI CreateURLMoniker( LPMONIKER, LPCWSTR, LPMONIKER * );
STDAPI CreateURLMonikerEx( LPMONIKER, LPCWSTR, LPMONIKER *, DWORD );
STDAPI FaultInIEFeature( HWND, uCLSSPEC *, QUERYCONTEXT *, DWORD );
STDAPI FindMediaType( LPCSTR, CLIPFORMAT * );
STDAPI FindMediaTypeClass( LPBC, LPCSTR, CLSID *, DWORD );
STDAPI FindMimeFromData( LPBC, LPCWSTR, LPVOID, DWORD, LPCWSTR, DWORD, LPWSTR *, DWORD );
STDAPI GetClassFileOrMime( LPBC, LPCWSTR, LPVOID, DWORD, LPCWSTR, DWORD, CLSID * );
STDAPI GetClassURL( LPCWSTR, CLSID * );
STDAPI GetComponentIDFromCLSSPEC( uCLSSPEC *, LPSTR * );
STDAPI GetSoftwareUpdateInfo( LPCWSTR, LPSOFTDISTINFO );
STDAPI HlinkGoBack( IUnknown * );
STDAPI HlinkGoForward( IUnknown * );
STDAPI HlinkNavigateMoniker( IUnknown *, IMoniker * );
STDAPI HlinkNavigateString( IUnknown *, LPCWSTR );
STDAPI HlinkSimpleNavigateToMoniker( IMoniker *, LPCWSTR, LPCWSTR, IUnknown *, IBindCtx *, IBindStatusCallback *, DWORD, DWORD );
STDAPI HlinkSimpleNavigateToString( LPCWSTR, LPCWSTR, LPCWSTR, IUnknown *, IBindCtx *, IBindStatusCallback *, DWORD, DWORD );
STDAPI IEInstallScope( LPDWORD );
STDAPI IsAsyncMoniker( IMoniker * );
STDAPI IsValidURL( LPBC, LPCWSTR, DWORD );
STDAPI MkParseDisplayNameEx( IBindCtx *, LPCWSTR, ULONG *, LPMONIKER * );
STDAPI ObtainUserAgentString( DWORD, LPSTR, DWORD * );
STDAPI RegisterBindStatusCallback( LPBC, IBindStatusCallback *, IBindStatusCallback **, DWORD );
STDAPI RegisterFormatEnumerator( LPBC, IEnumFORMATETC *, DWORD );
STDAPI RegisterMediaTypeClass( LPBC, UINT, const LPCSTR *, CLSID *, DWORD );
STDAPI RegisterMediaTypes( UINT, const LPCSTR *, CLIPFORMAT * );
STDAPI_( void ) ReleaseBindInfo( BINDINFO * );
STDAPI RevokeBindStatusCallback( LPBC, IBindStatusCallback * );
STDAPI RevokeFormatEnumerator( LPBC, IEnumFORMATETC * );
STDAPI SetSoftwareUpdateAdvertisementState( LPCWSTR, DWORD, DWORD, DWORD );
STDAPI URLDownloadToCacheFileA( LPUNKNOWN, LPCSTR, LPSTR, DWORD, DWORD, LPBINDSTATUSCALLBACK );
STDAPI URLDownloadToCacheFileW( LPUNKNOWN, LPCWSTR, LPWSTR, DWORD, DWORD, LPBINDSTATUSCALLBACK );
STDAPI URLDownloadToFileA( LPUNKNOWN, LPCSTR, LPCSTR, DWORD, LPBINDSTATUSCALLBACK );
STDAPI URLDownloadToFileW( LPUNKNOWN, LPCWSTR, LPCWSTR, DWORD, LPBINDSTATUSCALLBACK );
STDAPI URLOpenBlockingStreamA( LPUNKNOWN, LPCSTR, LPSTREAM *, DWORD, LPBINDSTATUSCALLBACK );
STDAPI URLOpenBlockingStreamW( LPUNKNOWN, LPCWSTR, LPSTREAM *, DWORD, LPBINDSTATUSCALLBACK );
STDAPI URLOpenPullStreamA( LPUNKNOWN, LPCSTR, DWORD, LPBINDSTATUSCALLBACK );
STDAPI URLOpenPullStreamW( LPUNKNOWN, LPCWSTR, DWORD, LPBINDSTATUSCALLBACK );
STDAPI URLOpenStreamA( LPUNKNOWN, LPCSTR, DWORD, LPBINDSTATUSCALLBACK );
STDAPI URLOpenStreamW( LPUNKNOWN, LPCWSTR, DWORD, LPBINDSTATUSCALLBACK );
STDAPI UrlMkGetSessionOption( DWORD, LPVOID, DWORD, DWORD *, DWORD );
STDAPI UrlMkSetSessionOption( DWORD, LPVOID, DWORD, DWORD );
#if (_WIN32_IE >= 0x0602)
STDAPI CoInternetIsFeatureEnabled( INTERNETFEATURELIST, DWORD );
STDAPI CoInternetIsFeatureEnabledForUrl( INTERNETFEATURELIST, DWORD, LPCWSTR, IInternetSecurityManager * );
STDAPI CoInternetIsFeatureZoneElevationEnabled( LPCWSTR, LPCWSTR, IInternetSecurityManager *, DWORD );
STDAPI CoInternetSetFeatureEnabled( INTERNETFEATURELIST, DWORD, BOOL );
#endif
#if (_WIN32_IE >= 0x0700)
STDAPI CoInternetCombineIUri( IUri *, IUri *, DWORD, IUri **, DWORD_PTR );
STDAPI CoInternetCombineUrlEx( IUri *, LPCWSTR, DWORD, IUri **, DWORD_PTR );
STDAPI CoInternetGetSecurityUrlEx( IUri *, IUri **, PSUACTION, DWORD_PTR );
STDAPI CoInternetIsFeatureEnabledForIUri( INTERNETFEATURELIST, DWORD, IUri *, IInternetSecurityManagerEx2 * );
STDAPI CoInternetParseIUri( IUri *, PARSEACTION, DWORD, LPWSTR, DWORD, DWORD *, DWORD_PTR );
STDAPI CreateIUriBuilder( IUri *, DWORD, DWORD_PTR *, IUriBuilder ** );
STDAPI CreateURLMonikerEx2( LPMONIKER, IUri *, LPMONIKER, DWORD );
STDAPI CreateUri( LPCWSTR, DWORD, DWORD_PTR, IUri ** );
STDAPI CreateUriFromMultiByteString( LPCSTR, DWORD, DWORD, DWORD, DWORD_PTR, IUri ** );
STDAPI CreateUriWithFragment( LPCWSTR, LPCWSTR, DWORD, DWORD_PTR, IUri ** );
#endif
/* Functions in URLMON.DLL for hit logging */
BOOL WINAPI IsLoggingEnabledA( LPCSTR );
BOOL WINAPI IsLoggingEnabledW( LPCWSTR );
BOOL WINAPI WriteHitLogging( LPHIT_LOGGING_INFO );
/* Map generic function names to the appropriate ANSI or Unicode version. */
#ifdef UNICODE
#define IsLoggingEnabled IsLoggingEnabledW
#define URLDownloadToCacheFile URLDownloadToCacheFileW
#define URLDownloadToFile URLDownloadToFileW
#define URLOpenBlockingStream URLOpenBlockingStreamW
#define URLOpenPullStream URLOpenPullStreamW
#define URLOpenStream URLOpenStreamW
#else
#define IsLoggingEnabled IsLoggingEnabledA
#define URLDownloadToCacheFile URLDownloadToCacheFileA
#define URLDownloadToFile URLDownloadToFileA
#define URLOpenBlockingStream URLOpenBlockingStreamA
#define URLOpenPullStream URLOpenPullStreamA
#define URLOpenStream URLOpenStreamA
#endif
/* Old names of functions for compatibility */
#define OInetCombineUrl CoInternetCombineUrl
#define OInetCompareUrl CoInternetCompareUrl
#define OInetGetSession CoInternetGetSession
#define OInetParseUrl CoInternetParseUrl
#define OInetQueryInfo CoInternetQueryInfo
#if (_WIN32_IE >= 0x0700)
#define OInetCombineIUri CoInternetCombineIUri
#define OInetCombineUrlEx CoInternetCombineUrlEx
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __urlmon_h__ */