用户登录  |  用户注册
首 页源码下载网络学院最新源码源码排行屏蔽广告
当前位置:新兴网络 > 源码下载 > VB源码 > 控件组件 > VB vbMHWB v1.2.1.6浏览器控件源码_VB WebBrowser加强版控件 > Module1.bas
loading...复制代码
Attribute VB_Name = "Module1"
Option Explicit

'       To store and later used in frmWinHooks->vbWB1_OnWMMessage.
'       Windows message ids passed from SetupWindowsHook method to calling
'       client for each hook notifications are registered using
Public m_MOUSE As Long
Public m_KEYBOARD As Long
Public m_MOUSE_LL As Long
Public m_KEYBOARD_LL As Long
Public m_CBT As Long
Public m_MSGFILTER As Long
Public m_SYSMSGFILTER As Long

Public Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)

Public Type POINTAPI
    x As Long
    y As Long
End Type

Public Type MSG
    hWnd As Long
    message As Long
    wParam As Long
    lParam As Long
    time As Long
    pt As POINTAPI
End Type

Public Const HC_ACTION As Long = 0
Public Const HC_GETNEXT As Long = 1
Public Const HC_NOREM As Long = 3
Public Const HC_NOREMOVE As Long = 3
Public Const HC_SKIP As Long = 2
Public Const HC_SYSMODALOFF As Long = 5

Public Const HCBT_ACTIVATE As Long = 5
Public Const HCBT_CLICKSKIPPED As Long = 6
Public Const HCBT_CREATEWND As Long = 3
Public Const HCBT_DESTROYWND As Long = 4
Public Const HCBT_KEYSKIPPED As Long = 7
Public Const HCBT_MINMAX As Long = 1
Public Const HCBT_MOVESIZE As Long = 0
Public Const HCBT_QS As Long = 2
Public Const HCBT_SETFOCUS As Long = 9
Public Const HCBT_SYSCOMMAND As Long = 8

Public Const MSGF_DDEMGR As Long = &H8001
Public Const MSGF_DIALOGBOX As Long = 0
Public Const MSGF_MAX As Long = 8
Public Const MSGF_MENU As Long = 2
Public Const MSGF_MESSAGEBOX As Long = 1
Public Const MSGF_SCROLLBAR As Long = 5
Public Const MSGF_MOVE As Long = 3
Public Const MSGF_NEXTWINDOW As Long = 6
Public Const MSGF_SIZE As Long = 4
Public Const MSGF_USER As Long = 4096
Public Const MSG_UNLOCKED As Long = &H0
Public Const MSGF_COMMCTRL_BEGINDRAG As Long = &H4200
Public Const MSGF_COMMCTRL_DRAGSELECT As Long = &H4202
Public Const MSGF_COMMCTRL_SIZEHEADER As Long = &H4201
Public Const MSGF_COMMCTRL_TOOLBARCUST As Long = &H4203

Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_SYSKEYDOWN = &H104
Public Const WM_SYSKEYUP = &H105

Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_MOUSEFIRST = &H200
Public Const WM_MOUSELAST = &H209
Public Const WM_MOUSELEAVE = &H2A3
Public Const WM_MOUSEACTIVATE = &H21
Public Const WM_MOUSEWHEEL = &H20A
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const WM_NCLBUTTONUP = &HA2
Public Const WM_NCMOUSELEAVE = &H2A2
Public Const WM_NCRBUTTONDOWN = &HA4
Public Const WM_NCRBUTTONUP = &HA5


'''''''''''''''''''''''
'WM_SYSCOMMAND identifiers

Public Const SC_CLOSE As Long = &HF060&
Public Const SC_CONTEXTHELP As Long = &HF180&
Public Const SC_HOTKEY As Long = &HF150&
Public Const SC_HSCROLL As Long = &HF080&
Public Const SC_KEYMENU As Long = &HF100&
Public Const SC_MAXIMIZE As Long = &HF030&
Public Const SC_MINIMIZE As Long = &HF020&
Public Const SC_MONITORPOWER As Long = &HF170&
Public Const SC_MOUSEMENU As Long = &HF090&
Public Const SC_MOVE As Long = &HF010&
Public Const SC_NEXTWINDOW As Long = &HF040&
Public Const SC_PREVWINDOW As Long = &HF050&
Public Const SC_RESTORE As Long = &HF120&
Public Const SC_SCREENSAVE As Long = &HF140&
Public Const SC_SIZE As Long = &HF000&
Public Const SC_TASKLIST As Long = &HF130&
Public Const SC_VSCROLL As Long = &HF070&

''''''''''''''''''''''''
Public Const URLPOLICY_ALLOW = &H0
Public Const URLPOLICY_ACTIVEX_CHECK_LIST = &H10000
Public Const URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE = &H10000
Public Const URLPOLICY_AUTHENTICATE_CLEARTEXT_OK = &H0
Public Const URLPOLICY_AUTHENTICATE_MUTUAL_ONLY = &H30000
Public Const URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL = &H30000
Public Const URLPOLICY_CHANNEL_SOFTDIST_PRECACHE = &H20000
Public Const URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT = &H10000
Public Const URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY = &H30000
Public Const URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT = &H20000
Public Const URLPOLICY_CREDENTIALS_MUST_PROMPT_USER = &H10000
Public Const URLPOLICY_CREDENTIALS_SILENT_LOGON_OK = &H0
Public Const URLPOLICY_DISALLOW = &H3
Public Const URLPOLICY_DONTCHECKDLGBOX = &H100
Public Const URLPOLICY_JAVA_CUSTOM = &H800000
Public Const URLPOLICY_JAVA_HIGH = &H10000
Public Const URLPOLICY_JAVA_LOW = &H30000
Public Const URLPOLICY_JAVA_MEDIUM = &H20000
Public Const URLPOLICY_JAVA_PROHIBIT = &H0
Public Const URLPOLICY_LOG_ON_ALLOW = &H40
Public Const URLPOLICY_LOG_ON_DISALLOW = &H80
Public Const URLPOLICY_MASK_PERMISSIONS = &HF
Public Const URLPOLICY_NOTIFY_ON_ALLOW = &H10
Public Const URLPOLICY_NOTIFY_ON_DISALLOW = &H20
Public Const URLPOLICY_QUERY = &H1

Public Enum DROPEFFECT
    DROPEFFECT_NONE = 0
    DROPEFFECT_COPY = 1
    DROPEFFECT_MOVE = 2
    DROPEFFECT_LINK = 4
    DROPEFFECT_SCROLL = &H80000000  '-2147483648#
End Enum

Public Enum INTERNET_SCHEMES
  INTERNET_SCHEME_PARTIAL = -2
  INTERNET_SCHEME_UNKNOWN = -1
  INTERNET_SCHEME_DEFAULT = 0
  INTERNET_SCHEME_FTP
  INTERNET_SCHEME_GOPHER
  INTERNET_SCHEME_HTTP
  INTERNET_SCHEME_HTTPS
  INTERNET_SCHEME_FILE
  INTERNET_SCHEME_NEWS
  INTERNET_SCHEME_MAILTO
  INTERNET_SCHEME_SOCKS
  INTERNET_SCHEME_JAVASCRIPT
  INTERNET_SCHEME_VBSCRIPT
  INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP
  INTERNET_SCHEME_LAST = INTERNET_SCHEME_VBSCRIPT
End Enum

Public Enum enumInetNav
    HTTP_STATUS_CONTINUE = 100 'The request can be continued.
    HTTP_STATUS_SWITCH_PROTOCOLS = 101 'The server has switched protocols in an upgrade header.
    HTTP_STATUS_OK = 200 'The request completed successfully.
    HTTP_STATUS_CREATED = 201 'The request has been fulfilled and resulted in the creation of a new resource.
    HTTP_STATUS_ACCEPTED = 202 'The request has been accepted for processing, but the processing has not been completed.
    HTTP_STATUS_PARTIAL = 203  'The returned meta information in the entity-header is not the definitive set available from the origin server.
    HTTP_STATUS_NO_CONTENT = 204  'The server has fulfilled the request, but there is no new information to send back.
    HTTP_STATUS_RESET_CONTENT = 205  'The request has been completed, and the client program should reset the document view that caused the request to be sent to allow the user to easily initiate another input action.
    HTTP_STATUS_PARTIAL_CONTENT = 206  'The server has fulfilled the partial GET request for the resource.
    HTTP_STATUS_AMBIGUOUS = 300  'The server couldn't decide what to return.
    HTTP_STATUS_MOVED = 301  'The requested resource has been assigned to a new permanent URI (Uniform Resource Identifier), and any future references to this resource should be done using one of the returned URIs.
    HTTP_STATUS_REDIRECT = 302  'The requested resource resides temporarily under a different URI (Uniform Resource Identifier).
    HTTP_STATUS_REDIRECT_METHOD = 303 'The response to the request can be found under a different URI (Uniform Resource Identifier) and should be retrieved using a GET HTTP verb on that resource.
    HTTP_STATUS_NOT_MODIFIED = 304  'The requested resource has not been modified.
    HTTP_STATUS_USE_PROXY = 305  'The requested resource must be accessed through the proxy given by the location field.
    HTTP_STATUS_REDIRECT_KEEP_VERB = 307  'The redirected request keeps the same HTTP verb. HTTP/1.1 behavior.
    
    HTTP_STATUS_BAD_REQUEST = 400 'Invalid syntax.
    HTTP_STATUS_DENIED = 401 'Access denied.
    HTTP_STATUS_PAYMENT_REQ = 402 'Payment required.
    HTTP_STATUS_FORBIDDEN = 403 'Request forbidden.
    HTTP_STATUS_NOT_FOUND = 404 'Object not found.
    HTTP_STATUS_BAD_METHOD = 405 'Method is not allowed.
    HTTP_STATUS_NONE_ACCEPTABLE = 406 'No response acceptable to client found.
    HTTP_STATUS_PROXY_AUTH_REQ = 407 'Proxy authentication required.
    HTTP_STATUS_REQUEST_TIMEOUT = 408 'Server timed out waiting for request.
    HTTP_STATUS_CONFLICT = 409 'User should resubmit with more info.
    HTTP_STATUS_GONE = 410 'Resource is no longer available.
    HTTP_STATUS_LENGTH_REQUIRED = 411 'Server refused to accept request without a length.
    HTTP_STATUS_PRECOND_FAILED = 412 'Precondition given in request failed.
    HTTP_STATUS_REQUEST_TOO_LARGE = 413 'Request entity was too large.
    HTTP_STATUS_URI_TOO_LONG = 414 'Request Uniform Resource Identifier (URI) too long.
    HTTP_STATUS_UNSUPPORTED_MEDIA = 415 'Unsupported media type.
    HTTP_STATUS_RETRY_WITH = 449 'Retry after doing the appropriate action.
    HTTP_STATUS_SERVER_ERROR = 500 'Internal server error.
    HTTP_STATUS_NOT_SUPPORTED = 501 'Server does not support the functionality required to fulfill the request.
    HTTP_STATUS_BAD_GATEWAY = 502 'Error response received from gateway.
    HTTP_STATUS_SERVICE_UNAVAIL = 503 'Temporarily overloaded.
    HTTP_STATUS_GATEWAY_TIMEOUT = 504 'Timed out waiting for gateway.
    HTTP_STATUS_VERSION_NOT_SUP = 505 'HTTP version not supported.
    
    INET_E_INVALID_URL = -2146697214 'URL string is not valid.
    INET_E_NO_SESSION = -2146697213 'No session found.
    INET_E_CANNOT_CONNECT = -2146697212 'Unable to connect to server.
    INET_E_RESOURCE_NOT_FOUND = -2146697211 'Requested resource is not found.
    INET_E_OBJECT_NOT_FOUND = -2146697210 'Requested object is not found.
    INET_E_DATA_NOT_AVAILABLE = -2146697209 'Requested data is not available.
    INET_E_DOWNLOAD_FAILURE = -2146697208 'Failure occurred during download.
    INET_E_AUTHENTICATION_REQUIRED = -2146697207 'Requested navigation requires authentication.
    INET_E_NO_VALID_MEDIA = -2146697206 'Required media not available or valid.
    INET_E_CONNECTION_TIMEOUT = -2146697205 'Connection timed out.
    INET_E_INVALID_REQUEST = -2146697204 'Request is invalid.
    INET_E_UNKNOWN_PROTOCOL = -2146697203 'Protocol is not recognized.
    INET_E_SECURITY_PROBLEM = -2146697202 'Navigation request has encountered a security issue.
    INET_E_CANNOT_LOAD_DATA = -2146697201 'Unable to load data from the server.
    INET_E_CANNOT_INSTANTIATE_OBJECT = -2146697200 'Unable to create an instance of the object.
    INET_E_REDIRECT_FAILED = -2146697196 'Attempt to redirect the navigation failed.
    INET_E_REDIRECT_TO_DIR = -2146697195 'Navigation redirected to a directory.
    INET_E_CANNOT_LOCK_REQUEST = -2146697194 'Unable to lock request with the server.
    INET_E_USE_EXTEND_BINDING = -2146697193 'Reissue request with extended binding.
    INET_E_TERMINATED_BIND = -2146697192 'Binding is terminated.
    INET_E_CODE_DOWNLOAD_DECLINED = -2146697960 'Permission to download is declined.
    INET_E_RESULT_DISPATCHED = -2146696704 'Result is dispatched.
    INET_E_CANNOT_REPLACE_SFP_FILE = -2146696448  'Cannot replace a protected System File Protection (SFP) file.
    
    ERROR_FTP_DROPPED = 12111 'The FTP operation was not completed because the session was aborted.
    ERROR_FTP_NO_PASSIVE_MODE = 12112 'Passive mode is not available on the server.
    ERROR_FTP_TRANSFER_IN_PROGRESS = 12110 'The requested operation cannot be made on the FTP session handle because an operation is already in progress.
    ERROR_GOPHER_ATTRIBUTE_NOT_FOUND = 12137 'The requested attribute could not be located.
    ERROR_GOPHER_DATA_ERROR = 12132    'An error was detected while receiving data from the Gopher server.
    ERROR_GOPHER_END_OF_DATA = 12133    'The end of the data has been reached.
    ERROR_GOPHER_INCORRECT_LOCATOR_TYPE = 12135    'The type of the locator is not correct for this operation.
    ERROR_GOPHER_INVALID_LOCATOR = 12134    'The supplied locator is not valid.
    ERROR_GOPHER_NOT_FILE = 12131    'The request must be made for a file locator.
    ERROR_GOPHER_NOT_GOPHER_PLUS = 12136    'The requested operation can be made only against a Gopher+ server, or with a locator that specifies a Gopher+ operation.
    ERROR_GOPHER_PROTOCOL_ERROR = 12130    'An error was detected while parsing data returned from the Gopher server.
    ERROR_GOPHER_UNKNOWN_LOCATOR = 12138    'The locator type is unknown.
    
    ERROR_HTTP_COOKIE_DECLINED = 12162    'The HTTP cookie was declined by the server.
    ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION = 12161    'The HTTP cookie requires confirmation.
    ERROR_HTTP_DOWNLEVEL_SERVER = 12151    'The server did not return any headers.
    ERROR_HTTP_HEADER_ALREADY_EXISTS = 12155    'The header could not be added because it already exists.
    ERROR_HTTP_HEADER_NOT_FOUND = 12150    'The requested header could not be located.
    ERROR_HTTP_INVALID_HEADER = 12153    'The supplied header is invalid.
    ERROR_HTTP_INVALID_QUERY_REQUEST = 12154    'The request made to HttpQueryInfo is invalid.
    ERROR_HTTP_INVALID_SERVER_RESPONSE = 12152    'The server response could not be parsed.
    ERROR_HTTP_NOT_REDIRECTED = 12160    'The HTTP request was not redirected.
    ERROR_HTTP_REDIRECT_FAILED = 12156    'The redirection failed because either the scheme changed (for example, HTTP to FTP) or all attempts made to redirect failed (default is five attempts).
    ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION = 12168    'The redirection requires user confirmation.
    
    ERROR_INTERNET_ASYNC_THREAD_FAILED = 12047    'The application could not start an asynchronous thread.
    ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT = 12166    'There was an error in the automatic proxy configuration script.
    ERROR_INTERNET_BAD_OPTION_LENGTH = 12010    'The length of an option supplied to InternetQueryOption or InternetSetOption is incorrect for the type of option specified.
    ERROR_INTERNET_BAD_REGISTRY_PARAMETER = 12022    'A required registry value was located but is an incorrect type or has an invalid value.
    ERROR_INTERNET_CANNOT_CONNECT = 12029    'The attempt to connect to the server failed.
    ERROR_INTERNET_CHG_POST_IS_NON_SECURE = 12042    'The application is posting and attempting to change multiple lines of text on a server that is not secure.
    ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED = 12044    'The server is requesting client authentication.
    ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP = 12046    'Client authorization is not set up on this computer.
    ERROR_INTERNET_CONNECTION_ABORTED = 12030    'The connection with the server has been terminated.
    ERROR_INTERNET_CONNECTION_RESET = 12031    'The connection with the server has been reset.
    ERROR_INTERNET_DIALOG_PENDING = 12049    'Another thread has a password dialog box in progress.
    ERROR_INTERNET_DISCONNECTED = 12163    'The Internet connection has been lost.
    ERROR_INTERNET_EXTENDED_ERROR = 12003    'An extended error was returned from the server. This is typically a string or buffer containing a verbose error message. Call InternetGetLastResponseInfo to retrieve the error text.
    ERROR_INTERNET_FAILED_DUETOSECURITYCHECK = 12171    'The function failed due to a security check.
    ERROR_INTERNET_FORCE_RETRY = 12032    'The function needs to redo the request.
    ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED = 12054    'The requested resource requires Fortezza authentication.
    ERROR_INTERNET_HANDLE_EXISTS = 12036    'The request failed because the handle already exists.
    ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR = 12039    'The application is moving from a non-SSL to an SSL connection because of a redirect.
    ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR = 12052    'The data being submitted to an SSL connection is being redirected to a non-SSL connection.
    ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR = 12040    'The application is moving from an SSL to an non-SSL connection because of a redirect.
    ERROR_INTERNET_INCORRECT_FORMAT = 12027    'The format of the request is invalid.
    ERROR_INTERNET_INCORRECT_HANDLE_STATE = 12019    'The requested operation cannot be carried out because the handle supplied is not in the correct state.
    ERROR_INTERNET_INCORRECT_HANDLE_TYPE = 12018    'The type of handle supplied is incorrect for this operation.
    ERROR_INTERNET_INCORRECT_PASSWORD = 12014    'The request to connect and log on to an FTP server could not be completed because the supplied password is incorrect.
    ERROR_INTERNET_INCORRECT_USER_NAME = 12013    'The request to connect and log on to an FTP server could not be completed because the supplied user name is incorrect.
    ERROR_INTERNET_INSERT_CDROM = 12053    'The request requires a CD-ROM to be inserted in the CD-ROM drive to locate the resource requested.
    ERROR_INTERNET_INTERNAL_ERROR = 12004    'An internal error has occurred.
    ERROR_INTERNET_INVALID_CA = 12045    'The function is unfamiliar with the Certificate Authority that generated the server's certificate.
    ERROR_INTERNET_INVALID_OPERATION = 12016    'The requested operation is invalid.
    ERROR_INTERNET_INVALID_OPTION = 12009    'A request to InternetQueryOption or InternetSetOption specified an invalid option value.
    ERROR_INTERNET_INVALID_PROXY_REQUEST = 12033    'The request to the proxy was invalid.
    ERROR_INTERNET_INVALID_URL = 12005    'The URL is invalid.
    ERROR_INTERNET_ITEM_NOT_FOUND = 12028    'The requested item could not be located.
    ERROR_INTERNET_LOGIN_FAILURE = 12015    'The request to connect and log on to an FTP server failed.
    ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = 12174    'The MS-Logoff digest header has been returned from the Web site. This header specifically instructs the digest package to purge credentials for the associated realm. This error will only be returned if INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY has been set.
    ERROR_INTERNET_MIXED_SECURITY = 12041    'The content is not entirely secure. Some of the content being viewed may have come from unsecured servers.
    ERROR_INTERNET_NAME_NOT_RESOLVED = 12007    'The server name could not be resolved.
    ERROR_INTERNET_NEED_MSN_SSPI_PKG = 12173    'Not currently implemented.
    ERROR_INTERNET_NEED_UI = 12034    'A user interface or other blocking operation has been requested.
    ERROR_INTERNET_NO_CALLBACK = 12025    'An asynchronous request could not be made because a callback function has not been set.
    ERROR_INTERNET_NO_CONTEXT = 12024    'An asynchronous request could not be made because a zero context value was supplied.
    ERROR_INTERNET_NO_DIRECT_ACCESS = 12023    'Direct network access cannot be made at this time.
    ERROR_INTERNET_NOT_INITIALIZED = 12172    'Initialization of the WinINet API has not occurred. Indicates that a higher-level function, such as InternetOpen, has not been called yet.
    ERROR_INTERNET_NOT_PROXY_REQUEST = 12020    'The request cannot be made via a proxy.
    ERROR_INTERNET_OPERATION_CANCELLED = 12017    'The operation was canceled, usually because the handle on which the request was operating was closed before the operation completed.
    ERROR_INTERNET_OPTION_NOT_SETTABLE = 12011    'The requested option cannot be set, only queried.
    ERROR_INTERNET_OUT_OF_HANDLES = 12001    'No more handles could be generated at this time.
    ERROR_INTERNET_POST_IS_NON_SECURE = 12043    'The application is posting data to a server that is not secure.
    ERROR_INTERNET_PROTOCOL_NOT_FOUND = 12008    'The requested protocol could not be located.
    ERROR_INTERNET_PROXY_SERVER_UNREACHABLE = 12165    'The designated proxy server cannot be reached.
    ERROR_INTERNET_REDIRECT_SCHEME_CHANGE = 12048    'The function could not handle the redirection, because the scheme changed (for example, HTTP to FTP).
    ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND = 12021    'A required registry value could not be located.
    ERROR_INTERNET_REQUEST_PENDING = 12026    'The required operation could not be completed because one or more requests are pending.
    ERROR_INTERNET_RETRY_DIALOG = 12050    'The dialog box should be retried.
    ERROR_INTERNET_SEC_CERT_CN_INVALID = 12038    'SSL certificate common name (host name field) is incorrect梖or example, if you entered www.server.com and the common name on the certificate says www.different.com.
    ERROR_INTERNET_SEC_CERT_DATE_INVALID = 12037    'SSL certificate date that was received from the server is bad. The certificate is expired.
    ERROR_INTERNET_SEC_CERT_ERRORS = 12055    'The SSL certificate contains errors.
    ERROR_INTERNET_SEC_CERT_NO_REV = 12056
    ERROR_INTERNET_SEC_CERT_REV_FAILED = 12057
    ERROR_INTERNET_SEC_CERT_REVOKED = 12170    'SSL certificate was revoked.
    ERROR_INTERNET_SEC_INVALID_CERT = 12169    'SSL certificate is invalid.
    ERROR_INTERNET_SECURITY_CHANNEL_ERROR = 12157    'The application experienced an internal error loading the SSL libraries.
    ERROR_INTERNET_SERVER_UNREACHABLE = 12164    'The Web site or server indicated is unreachable.
    ERROR_INTERNET_SHUTDOWN = 12012    'WinINet support is being shut down or unloaded.
    ERROR_INTERNET_TCPIP_NOT_INSTALLED = 12159    'The required protocol stack is not loaded and the application cannot start WinSock.
    ERROR_INTERNET_TIMEOUT = 12002 'The request has timed out.
    ERROR_INTERNET_UNABLE_TO_CACHE_FILE = 12158 'The function was unable to cache the file.
    ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT = 12167 'The automatic proxy configuration script could not be downloaded. The INTERNET_FLAG_MUST_CACHE_REQUEST flag was set.
End Enum



Public Enum enumURLACTION
    URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY = &H1204
    URLACTION_ACTIVEX_CURR_MAX = &H1205
    URLACTION_ACTIVEX_MAX = &H13FF
    URLACTION_ACTIVEX_MIN = &H1200
    URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY = &H1202
    URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY = &H1201
    URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY = &H1203
    URLACTION_ACTIVEX_RUN = &H1200
    URLACTION_ACTIVEX_TREATASUNTRUSTED = &H1205
    URLACTION_AUTHENTICATE_CLIENT = &H1A01
    URLACTION_CHANNEL_SOFTDIST_MAX = &H1EFF
    URLACTION_CHANNEL_SOFTDIST_MIN = &H1E00
    URLACTION_CHANNEL_SOFTDIST_PERMISSIONS = &H1E05
'Determines whether HTTP persistent cookies are allowed.
    URLACTION_COOKIES = &H1A02
'Determines whether HTTP session cookies are allowed.
    URLACTION_COOKIES_SESSION = &H1A03
'Determines whether HTTP cookies can be set and retrieved.
    URLACTION_COOKIES_ENABLED = &H1A10
'Determines whether third party HTTP session cookies are allowed.
    URLACTION_COOKIES_SESSION_THIRD_PARTY = &H1A06
'Determines whether third party HTTP cookies are allowed.
    URLACTION_COOKIES_THIRD_PARTY = &H1A05
    URLACTION_CREDENTIALS_USE = &H1A00
    URLACTION_CROSS_DOMAIN_DATA = &H1406
    URLACTION_DOWNLOAD_CURR_MAX = &H1004
    URLACTION_DOWNLOAD_MAX = &H11FF
    URLACTION_DOWNLOAD_MIN = &H1000
    URLACTION_DOWNLOAD_SIGNED_ACTIVEX = &H1001
    URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX = &H1004
    URLACTION_HTML_CURR_MAX = &H1607
    URLACTION_HTML_FONT_DOWNLOAD = &H1604
    URLACTION_HTML_JAVA_RUN = &H1605
    URLACTION_HTML_MAX = &H17FF
    URLACTION_HTML_MIN = &H1600
    URLACTION_HTML_SUBFRAME_NAVIGATE = &H1607
    URLACTION_HTML_SUBMIT_FORMS = &H1601
    URLACTION_HTML_SUBMIT_FORMS_FROM = &H1602
    URLACTION_HTML_SUBMIT_FORMS_TO = &H1603
    URLACTION_HTML_USERDATA_SAVE = &H1606
    URLACTION_INFODELIVERY_CURR_MAX = &H1D06
    URLACTION_INFODELIVERY_MAX = &H1DFF
    URLACTION_INFODELIVERY_MIN = &H1D00
    URLACTION_INFODELIVERY_NO_ADDING_CHANNELS = &H1D00
    URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS = &H1D03
    URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING = &H1D06
    URLACTION_INFODELIVERY_NO_EDITING_CHANNELS = &H1D01
    URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS = &H1D04
    URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS = &H1D02
    URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS = &H1D05
    URLACTION_JAVA_CURR_MAX = &H1C00
    URLACTION_JAVA_MAX = &H1CFF
    URLACTION_JAVA_MIN = &H1C00
    URLACTION_JAVA_PERMISSIONS = &H1C00
    URLACTION_MIN = &H1000
    URLACTION_NETWORK_CURR_MAX = &H1A03
    URLACTION_NETWORK_MAX = &H1BFF
    URLACTION_NETWORK_MIN = &H1A00
    URLACTION_SCRIPT_CURR_MAX = &H1407
    URLACTION_SCRIPT_JAVA_USE = &H1402
    URLACTION_SCRIPT_MAX = &H15FF
    URLACTION_SCRIPT_MIN = &H1400
    URLACTION_SCRIPT_OVERRIDE_SAFETY = &H1401
    URLACTION_SCRIPT_PASTE = &H1407
    URLACTION_SCRIPT_RUN = &H1400
    URLACTION_SCRIPT_SAFE_ACTIVEX = &H1405
    URLACTION_SHELL_CURR_MAX = &H1805
    URLACTION_SHELL_FILE_DOWNLOAD = &H1803
    URLACTION_SHELL_INSTALL_DTITEMS = &H1800
    URLACTION_SHELL_MAX = &H19FF
    URLACTION_SHELL_MIN = &H1800
    URLACTION_SHELL_MOVE_OR_COPY = &H1802
    URLACTION_SHELL_VERB = &H1804
    URLACTION_SHELL_WEBVIEW_VERB = &H1805
End Enum

Public Enum POSTSTATUSCODE
    POSTSTATUSCODE_FINDINGRESOURCE = 1
    POSTSTATUSCODE_CONNECTING = POSTSTATUSCODE_FINDINGRESOURCE + 1
    POSTSTATUSCODE_REDIRECTING = POSTSTATUSCODE_CONNECTING + 1
    POSTSTATUSCODE_BEGINDOWNLOADDATA = POSTSTATUSCODE_REDIRECTING + 1
    POSTSTATUSCODE_DOWNLOADINGDATA = POSTSTATUSCODE_BEGINDOWNLOADDATA + 1
    POSTSTATUSCODE_ENDDOWNLOADDATA = POSTSTATUSCODE_DOWNLOADINGDATA + 1
    POSTSTATUSCODE_BEGINDOWNLOADCOMPONENTS = POSTSTATUSCODE_ENDDOWNLOADDATA + 1
    POSTSTATUSCODE_INSTALLINGCOMPONENTS = POSTSTATUSCODE_BEGINDOWNLOADCOMPONENTS + 1
    POSTSTATUSCODE_ENDDOWNLOADCOMPONENTS = POSTSTATUSCODE_INSTALLINGCOMPONENTS + 1
    POSTSTATUSCODE_USINGCACHEDCOPY = POSTSTATUSCODE_ENDDOWNLOADCOMPONENTS + 1
    POSTSTATUSCODE_SENDINGREQUEST = POSTSTATUSCODE_USINGCACHEDCOPY + 1
    POSTSTATUSCODE_CLASSIDAVAILABLE = POSTSTATUSCODE_SENDINGREQUEST + 1
    POSTSTATUSCODE_MIMETYPEAVAILABLE = POSTSTATUSCODE_CLASSIDAVAILABLE + 1
    POSTSTATUSCODE_CACHEFILENAMEAVAILABLE = POSTSTATUSCODE_MIMETYPEAVAILABLE + 1
    POSTSTATUSCODE_BEGINSYNCOPERATION = POSTSTATUSCODE_CACHEFILENAMEAVAILABLE + 1
    POSTSTATUSCODE_ENDSYNCOPERATION = POSTSTATUSCODE_BEGINSYNCOPERATION + 1
    POSTSTATUSCODE_BEGINUPLOADDATA = POSTSTATUSCODE_ENDSYNCOPERATION + 1
    POSTSTATUSCODE_UPLOADINGDATA = POSTSTATUSCODE_BEGINUPLOADDATA + 1
    POSTSTATUSCODE_ENDUPLOADDATA = POSTSTATUSCODE_UPLOADINGDATA + 1
    POSTSTATUSCODE_PROTOCOLCLASSID = POSTSTATUSCODE_ENDUPLOADDATA + 1
    POSTSTATUSCODE_ENCODING = POSTSTATUSCODE_PROTOCOLCLASSID + 1
    POSTSTATUSCODE_VERIFIEDMIMETYPEAVAILABLE = POSTSTATUSCODE_ENCODING + 1
    POSTSTATUSCODE_CLASSINSTALLLOCATION = POSTSTATUSCODE_VERIFIEDMIMETYPEAVAILABLE + 1
    POSTSTATUSCODE_DECODING = POSTSTATUSCODE_CLASSINSTALLLOCATION + 1
    POSTSTATUSCODE_LOADINGMIMEHANDLER = POSTSTATUSCODE_DECODING + 1
    POSTSTATUSCODE_CONTENTDISPOSITIONATTACH = POSTSTATUSCODE_LOADINGMIMEHANDLER + 1
    POSTSTATUSCODE_FILTERREPORTMIMETYPE = POSTSTATUSCODE_CONTENTDISPOSITIONATTACH + 1
    POSTSTATUSCODE_CLSIDCANINSTANTIATE = POSTSTATUSCODE_FILTERREPORTMIMETYPE + 1
    POSTSTATUSCODE_IUNKNOWNAVAILABLE = POSTSTATUSCODE_CLSIDCANINSTANTIATE + 1
    POSTSTATUSCODE_DIRECTBIND = POSTSTATUSCODE_IUNKNOWNAVAILABLE + 1
    POSTSTATUSCODE_RAWMIMETYPE = POSTSTATUSCODE_DIRECTBIND + 1
    POSTSTATUSCODE_PROXYDETECTING = POSTSTATUSCODE_RAWMIMETYPE + 1
    POSTSTATUSCODE_ACCEPTRANGES = POSTSTATUSCODE_PROXYDETECTING + 1
    POSTSTATUSCODE_COOKIE_SENT = POSTSTATUSCODE_ACCEPTRANGES + 1
    POSTSTATUSCODE_COMPACT_POLICY_RECEIVED = POSTSTATUSCODE_COOKIE_SENT + 1
    POSTSTATUSCODE_COOKIE_SUPPRESSED = POSTSTATUSCODE_COMPACT_POLICY_RECEIVED + 1
    POSTSTATUSCODE_COOKIE_STATE_UNKNOWN = POSTSTATUSCODE_COOKIE_SUPPRESSED + 1
    POSTSTATUSCODE_COOKIE_STATE_ACCEPT = POSTSTATUSCODE_COOKIE_STATE_UNKNOWN + 1
    POSTSTATUSCODE_COOKIE_STATE_REJECT = POSTSTATUSCODE_COOKIE_STATE_ACCEPT + 1
    POSTSTATUSCODE_COOKIE_STATE_PROMPT = POSTSTATUSCODE_COOKIE_STATE_REJECT + 1
    POSTSTATUSCODE_COOKIE_STATE_LEASH = POSTSTATUSCODE_COOKIE_STATE_PROMPT + 1
    POSTSTATUSCODE_COOKIE_STATE_DOWNGRADE = POSTSTATUSCODE_COOKIE_STATE_LEASH + 1
    POSTSTATUSCODE_POLICY_HREF = POSTSTATUSCODE_COOKIE_STATE_DOWNGRADE + 1
    POSTSTATUSCODE_P3P_HEADER = POSTSTATUSCODE_POLICY_HREF + 1
    POSTSTATUSCODE_SESSION_COOKIE_RECEIVED = POSTSTATUSCODE_P3P_HEADER + 1
    POSTSTATUSCODE_PERSISTENT_COOKIE_RECEIVED = POSTSTATUSCODE_SESSION_COOKIE_RECEIVED + 1
    POSTSTATUSCODE_SESSION_COOKIES_ALLOWED = POSTSTATUSCODE_PERSISTENT_COOKIE_RECEIVED + 1
    POSTSTATUSCODE_CACHECONTROL = POSTSTATUSCODE_SESSION_COOKIES_ALLOWED + 1
End Enum

Public Function TranslateMouseMsg(lMouseMsg As Long)

    Dim strMsg As String
    strMsg = ""
    Select Case lMouseMsg
        Case WM_LBUTTONDOWN
            strMsg = "WM_LBUTTONDOWN"
        Case WM_LBUTTONUP
            strMsg = "WM_LBUTTONUP"
        Case WM_RBUTTONDOWN
            strMsg = "WM_RBUTTONDOWN"
        Case WM_RBUTTONUP
            strMsg = "WM_RBUTTONUP"
        Case WM_MOUSEFIRST
            strMsg = "WM_MOUSEFIRST"
        Case WM_MOUSELAST
            strMsg = "WM_MOUSELAST"
        Case WM_MOUSELEAVE
            strMsg = "WM_MOUSELEAVE"
        Case WM_MOUSEACTIVATE
            strMsg = "WM_MOUSEACTIVATE"
        Case WM_MOUSEWHEEL
            strMsg = "WM_MOUSEWHEEL"
        Case WM_NCLBUTTONDOWN
            strMsg = "WM_NCLBUTTONDOWN"
        Case WM_NCLBUTTONUP
            strMsg = "WM_NCLBUTTONUP"
        Case WM_NCMOUSELEAVE
            strMsg = "WM_NCMOUSELEAVE"
        Case WM_NCRBUTTONDOWN
            strMsg = "WM_NCRBUTTONDOWN"
        Case WM_NCRBUTTONUP
            strMsg = "WM_NCRBUTTONUP"
    End Select
    TranslateMouseMsg = strMsg
End Function

Public Function TranslatePostStatusCode(lStatusCode As Long) As String
    
    Select Case lStatusCode
        Case POSTSTATUSCODE_FINDINGRESOURCE
            TranslatePostStatusCode = "FINDINGRESOURCE"
        Case POSTSTATUSCODE_CONNECTING
            TranslatePostStatusCode = "CONNECTING"
        Case POSTSTATUSCODE_REDIRECTING
            TranslatePostStatusCode = "REDIRECTING"
        Case POSTSTATUSCODE_BEGINDOWNLOADDATA
            TranslatePostStatusCode = "BEGINDOWNLOADDATA"
        Case POSTSTATUSCODE_DOWNLOADINGDATA
            TranslatePostStatusCode = "DOWNLOADINGDATA"
        Case POSTSTATUSCODE_ENDDOWNLOADDATA
            TranslatePostStatusCode = "ENDDOWNLOADDATA"
        Case POSTSTATUSCODE_BEGINDOWNLOADCOMPONENTS
            TranslatePostStatusCode = "BEGINDOWNLOADCOMPONENTS"
        Case POSTSTATUSCODE_INSTALLINGCOMPONENTS
            TranslatePostStatusCode = "INSTALLINGCOMPONENTS"
        Case POSTSTATUSCODE_ENDDOWNLOADCOMPONENTS
            TranslatePostStatusCode = "ENDDOWNLOADCOMPONENTS"
        Case POSTSTATUSCODE_USINGCACHEDCOPY
            TranslatePostStatusCode = "USINGCACHEDCOPY"
        Case POSTSTATUSCODE_SENDINGREQUEST
            TranslatePostStatusCode = "SENDINGREQUEST"
        Case POSTSTATUSCODE_CLASSIDAVAILABLE
            TranslatePostStatusCode = "CLASSIDAVAILABLE"
        Case POSTSTATUSCODE_MIMETYPEAVAILABLE
            TranslatePostStatusCode = "MIMETYPEAVAILABLE"
        Case POSTSTATUSCODE_CACHEFILENAMEAVAILABLE
            TranslatePostStatusCode = "CACHEFILENAMEAVAILABLE"
        Case POSTSTATUSCODE_BEGINSYNCOPERATION
            TranslatePostStatusCode = "BEGINSYNCOPERATION"
        Case POSTSTATUSCODE_ENDSYNCOPERATION
            TranslatePostStatusCode = "ENDSYNCOPERATION"
        Case POSTSTATUSCODE_BEGINUPLOADDATA
            TranslatePostStatusCode = "BEGINUPLOADDATA"
        Case POSTSTATUSCODE_UPLOADINGDATA
            TranslatePostStatusCode = "UPLOADINGDATA"
        Case POSTSTATUSCODE_ENDUPLOADDATA
            TranslatePostStatusCode = "ENDUPLOADDATA"
        Case POSTSTATUSCODE_PROTOCOLCLASSID
            TranslatePostStatusCode = "PROTOCOLCLASSID"
        Case POSTSTATUSCODE_ENCODING
            TranslatePostStatusCode = "ENCODING"
        Case POSTSTATUSCODE_VERIFIEDMIMETYPEAVAILABLE
            TranslatePostStatusCode = "VERIFIEDMIMETYPEAVAILABLE"
        Case POSTSTATUSCODE_CLASSINSTALLLOCATION
            TranslatePostStatusCode = "CLASSINSTALLLOCATION"
        Case POSTSTATUSCODE_DECODING
            TranslatePostStatusCode = "DECODING"
        Case POSTSTATUSCODE_LOADINGMIMEHANDLER
            TranslatePostStatusCode = "LOADINGMIMEHANDLER"
        Case POSTSTATUSCODE_CONTENTDISPOSITIONATTACH
            TranslatePostStatusCode = "CONTENTDISPOSITIONATTACH"
        Case POSTSTATUSCODE_FILTERREPORTMIMETYPE
            TranslatePostStatusCode = "FILTERREPORTMIMETYPE"
        Case POSTSTATUSCODE_CLSIDCANINSTANTIATE
            TranslatePostStatusCode = "CLSIDCANINSTANTIATE"
        Case POSTSTATUSCODE_IUNKNOWNAVAILABLE
            TranslatePostStatusCode = "IUNKNOWNAVAILABLE"
        Case POSTSTATUSCODE_DIRECTBIND
            TranslatePostStatusCode = "DIRECTBIND"
        Case POSTSTATUSCODE_RAWMIMETYPE
            TranslatePostStatusCode = "RAWMIMETYPE"
        Case POSTSTATUSCODE_PROXYDETECTING
            TranslatePostStatusCode = "PROXYDETECTING"
        Case POSTSTATUSCODE_ACCEPTRANGES
            TranslatePostStatusCode = "ACCEPTRANGES"
        Case POSTSTATUSCODE_COOKIE_SENT
            TranslatePostStatusCode = "COOKIE_SENT"
        Case POSTSTATUSCODE_COMPACT_POLICY_RECEIVED
            TranslatePostStatusCode = "COMPACT_POLICY_RECEIVED"
        Case POSTSTATUSCODE_COOKIE_SUPPRESSED
            TranslatePostStatusCode = "COOKIE_SUPPRESSED"
        Case POSTSTATUSCODE_COOKIE_STATE_UNKNOWN
            TranslatePostStatusCode = "COOKIE_STATE_UNKNOWN"
        Case POSTSTATUSCODE_COOKIE_STATE_ACCEPT
            TranslatePostStatusCode = "COOKIE_STATE_ACCEPT"
        Case POSTSTATUSCODE_COOKIE_STATE_REJECT
            TranslatePostStatusCode = "COOKIE_STATE_REJECT"
        Case POSTSTATUSCODE_COOKIE_STATE_PROMPT
            TranslatePostStatusCode = "COOKIE_STATE_PROMPT"
        Case POSTSTATUSCODE_COOKIE_STATE_LEASH
            TranslatePostStatusCode = "COOKIE_STATE_LEASH"
        Case POSTSTATUSCODE_COOKIE_STATE_DOWNGRADE
            TranslatePostStatusCode = "COOKIE_STATE_DOWNGRADE"
        Case POSTSTATUSCODE_POLICY_HREF
            TranslatePostStatusCode = "POLICY_HREF"
        Case POSTSTATUSCODE_P3P_HEADER
            TranslatePostStatusCode = "P3P_HEADER"
        Case POSTSTATUSCODE_SESSION_COOKIE_RECEIVED
            TranslatePostStatusCode = "SESSION_COOKIE_RECEIVED"
        Case POSTSTATUSCODE_PERSISTENT_COOKIE_RECEIVED
            TranslatePostStatusCode = "PERSISTENT_COOKIE_RECEIVED"
        Case POSTSTATUSCODE_SESSION_COOKIES_ALLOWED
            TranslatePostStatusCode = "SESSION_COOKIES_ALLOWED"
        Case POSTSTATUSCODE_CACHECONTROL
            TranslatePostStatusCode = "CACHECONTROL"
    End Select
        
End Function

Public Function TranslateStatusCode(lStatusCode As Long) As String
    Select Case lStatusCode
        Case enumInetNav.HTTP_STATUS_CONTINUE
            TranslateStatusCode = "The request can be continued."
        Case enumInetNav.HTTP_STATUS_SWITCH_PROTOCOLS
            TranslateStatusCode = "The server has switched protocols in an upgrade header."
        Case enumInetNav.HTTP_STATUS_OK
            TranslateStatusCode = "The request completed successfully."
        Case enumInetNav.HTTP_STATUS_CREATED
            TranslateStatusCode = "The request has been fulfilled and resulted in the creation of a new resource."
        Case enumInetNav.HTTP_STATUS_ACCEPTED
            TranslateStatusCode = "The request has been accepted for processing, but the processing has not been completed."
        Case enumInetNav.HTTP_STATUS_PARTIAL
            TranslateStatusCode = "The returned meta information in the entity-header is not the definitive set available from the origin server."
        Case enumInetNav.HTTP_STATUS_NO_CONTENT
            TranslateStatusCode = "The server has fulfilled the request, but there is no new information to send back. "
        Case enumInetNav.HTTP_STATUS_RESET_CONTENT
            TranslateStatusCode = "The request has been completed, and the client program should reset the document view that caused the request to be sent to allow the user to easily initiate another input action. "
        Case enumInetNav.HTTP_STATUS_PARTIAL_CONTENT
            TranslateStatusCode = "The server has fulfilled the partial GET request for the resource."
        Case enumInetNav.HTTP_STATUS_AMBIGUOUS
            TranslateStatusCode = "The server couldn't decide what to return."
        Case enumInetNav.HTTP_STATUS_MOVED
            TranslateStatusCode = "The requested resource has been assigned to a new permanent URI (Uniform Resource Identifier), and any future references to this resource should be done using one of the returned URIs."
        Case enumInetNav.HTTP_STATUS_REDIRECT
            TranslateStatusCode = "The requested resource resides temporarily under a different URI (Uniform Resource Identifier)."
        Case enumInetNav.HTTP_STATUS_REDIRECT_METHOD
            TranslateStatusCode = "The response to the request can be found under a different URI (Uniform Resource Identifier) and should be retrieved using a GET HTTP verb on that resource."
        Case enumInetNav.HTTP_STATUS_NOT_MODIFIED
            TranslateStatusCode = "The requested resource has not been modified."
        Case enumInetNav.HTTP_STATUS_USE_PROXY
            TranslateStatusCode = "The requested resource must be accessed through the proxy given by the location field."
        Case enumInetNav.HTTP_STATUS_REDIRECT_KEEP_VERB
            TranslateStatusCode = "The redirected request keeps the same HTTP verb. HTTP/1.1 behavior. "
        Case enumInetNav.HTTP_STATUS_BAD_REQUEST
            TranslateStatusCode = "Invalid syntax"
        Case enumInetNav.HTTP_STATUS_DENIED
            TranslateStatusCode = "Access denied."
        Case enumInetNav.HTTP_STATUS_PAYMENT_REQ
            TranslateStatusCode = "Payment required."
        Case enumInetNav.HTTP_STATUS_FORBIDDEN
            TranslateStatusCode = "Request forbidden."
        Case enumInetNav.HTTP_STATUS_NOT_FOUND
            TranslateStatusCode = "Object not found."
        Case enumInetNav.HTTP_STATUS_BAD_METHOD
            TranslateStatusCode = "Method is not allowed."
        Case enumInetNav.HTTP_STATUS_NONE_ACCEPTABLE
            TranslateStatusCode = "No response acceptable to client found."
        Case enumInetNav.HTTP_STATUS_PROXY_AUTH_REQ
            TranslateStatusCode = "Proxy authentication required."
        Case enumInetNav.HTTP_STATUS_REQUEST_TIMEOUT
            TranslateStatusCode = "Server timed out waiting for request."
        Case enumInetNav.HTTP_STATUS_CONFLICT
            TranslateStatusCode = "User should resubmit with more info."
        Case enumInetNav.HTTP_STATUS_GONE
            TranslateStatusCode = "Resource is no longer available."
        Case enumInetNav.HTTP_STATUS_LENGTH_REQUIRED
            TranslateStatusCode = "Server refused to accept request without a length."
        Case enumInetNav.HTTP_STATUS_PRECOND_FAILED
            TranslateStatusCode = "Precondition given in request failed."
        Case enumInetNav.HTTP_STATUS_REQUEST_TOO_LARGE
            TranslateStatusCode = "Request entity was too large."
        Case enumInetNav.HTTP_STATUS_URI_TOO_LONG
            TranslateStatusCode = "Request Uniform Resource Identifier (URI) too long."
        Case enumInetNav.HTTP_STATUS_UNSUPPORTED_MEDIA
            TranslateStatusCode = "Unsupported media type."
        Case enumInetNav.HTTP_STATUS_RETRY_WITH
            TranslateStatusCode = "Retry after doing the appropriate action."
        Case enumInetNav.HTTP_STATUS_SERVER_ERROR
            TranslateStatusCode = "Internal server error."
        Case enumInetNav.HTTP_STATUS_NOT_SUPPORTED
            TranslateStatusCode = "Server does not support the functionality required to fulfill the request."
        Case enumInetNav.HTTP_STATUS_BAD_GATEWAY
            TranslateStatusCode = "Error response received from gateway."
        Case enumInetNav.HTTP_STATUS_SERVICE_UNAVAIL
            TranslateStatusCode = "Temporarily overloaded."
        Case enumInetNav.HTTP_STATUS_GATEWAY_TIMEOUT
            TranslateStatusCode = "Timed out waiting for gateway."
        Case enumInetNav.HTTP_STATUS_VERSION_NOT_SUP
            TranslateStatusCode = "HTTP version not supported."
        Case enumInetNav.INET_E_INVALID_URL
            TranslateStatusCode = "URL string is not valid."
        Case enumInetNav.INET_E_NO_SESSION
            TranslateStatusCode = "No session found."
        Case enumInetNav.INET_E_CANNOT_CONNECT
            TranslateStatusCode = "Unable to connect to server."
        Case enumInetNav.INET_E_RESOURCE_NOT_FOUND
            TranslateStatusCode = "Requested resource is not found."
        Case enumInetNav.INET_E_OBJECT_NOT_FOUND
            TranslateStatusCode = "Requested object is not found."
        Case enumInetNav.INET_E_DATA_NOT_AVAILABLE
            TranslateStatusCode = "Requested data is not available."
        Case enumInetNav.INET_E_DOWNLOAD_FAILURE
            TranslateStatusCode = "Failure occurred during download."
        Case enumInetNav.INET_E_AUTHENTICATION_REQUIRED
            TranslateStatusCode = "Requested navigation requires authentication."
        Case enumInetNav.INET_E_NO_VALID_MEDIA
            TranslateStatusCode = "Required media not available or valid."
        Case enumInetNav.INET_E_CONNECTION_TIMEOUT
            TranslateStatusCode = "Connection timed out."
        Case enumInetNav.INET_E_INVALID_REQUEST
            TranslateStatusCode = "Request is invalid."
        Case enumInetNav.INET_E_UNKNOWN_PROTOCOL
            TranslateStatusCode = "Protocol is not recognized."
        Case enumInetNav.INET_E_SECURITY_PROBLEM
            TranslateStatusCode = "Navigation request has encountered a security issue."
        Case enumInetNav.INET_E_CANNOT_LOAD_DATA
            TranslateStatusCode = "Unable to load data from the server."
        Case enumInetNav.INET_E_CANNOT_INSTANTIATE_OBJECT
            TranslateStatusCode = "Unable to create an instance of the object."
        Case enumInetNav.INET_E_REDIRECT_FAILED
            TranslateStatusCode = "Attempt to redirect the navigation failed."
        Case enumInetNav.INET_E_REDIRECT_TO_DIR
            TranslateStatusCode = "Navigation redirected to a directory."
        Case enumInetNav.INET_E_CANNOT_LOCK_REQUEST
            TranslateStatusCode = "Unable to lock request with the server."
        Case enumInetNav.INET_E_USE_EXTEND_BINDING
            TranslateStatusCode = "Reissue request with extended binding."
        Case enumInetNav.INET_E_TERMINATED_BIND
            TranslateStatusCode = "Binding is terminated."
        Case enumInetNav.INET_E_CODE_DOWNLOAD_DECLINED
            TranslateStatusCode = "Permission to download is declined."
        Case enumInetNav.INET_E_RESULT_DISPATCHED
            TranslateStatusCode = "Result is dispatched."
        Case enumInetNav.INET_E_CANNOT_REPLACE_SFP_FILE
            TranslateStatusCode = "Cannot replace a protected System File Protection (SFP) file."
        Case enumInetNav.ERROR_FTP_DROPPED
            TranslateStatusCode = "The FTP operation was not completed because the session was aborted."
        Case enumInetNav.ERROR_FTP_NO_PASSIVE_MODE
            TranslateStatusCode = "Passive mode is not available on the server."
        Case enumInetNav.ERROR_FTP_TRANSFER_IN_PROGRESS
            TranslateStatusCode = "The requested operation cannot be made on the FTP session handle because an operation is already in progress."
        Case enumInetNav.ERROR_GOPHER_ATTRIBUTE_NOT_FOUND
            TranslateStatusCode = "The requested attribute could not be located."
        Case enumInetNav.ERROR_GOPHER_DATA_ERROR
            TranslateStatusCode = "An error was detected while receiving data from the Gopher server."
        Case enumInetNav.ERROR_GOPHER_END_OF_DATA
            TranslateStatusCode = "The end of the data has been reached."
        Case enumInetNav.ERROR_GOPHER_INCORRECT_LOCATOR_TYPE
            TranslateStatusCode = "The type of the locator is not correct for this operation."
        Case enumInetNav.ERROR_GOPHER_INVALID_LOCATOR
            TranslateStatusCode = "The supplied locator is not valid."
        Case enumInetNav.ERROR_GOPHER_NOT_FILE
            TranslateStatusCode = "The request must be made for a file locator."
        Case enumInetNav.ERROR_GOPHER_NOT_GOPHER_PLUS
            TranslateStatusCode = "The requested operation can be made only against a Gopher+ server, or with a locator that specifies a Gopher+ operation."
        Case enumInetNav.ERROR_GOPHER_PROTOCOL_ERROR
            TranslateStatusCode = "An error was detected while parsing data returned from the Gopher server."
        Case enumInetNav.ERROR_GOPHER_UNKNOWN_LOCATOR
            TranslateStatusCode = "The locator type is unknown."
        Case enumInetNav.ERROR_HTTP_COOKIE_DECLINED
            TranslateStatusCode = "The HTTP cookie was declined by the server."
        Case enumInetNav.ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION
            TranslateStatusCode = "The HTTP cookie requires confirmation."
        Case enumInetNav.ERROR_HTTP_DOWNLEVEL_SERVER
            TranslateStatusCode = "The server did not return any headers."
        Case enumInetNav.ERROR_HTTP_HEADER_ALREADY_EXISTS
            TranslateStatusCode = "The header could not be added because it already exists."
        Case enumInetNav.ERROR_HTTP_HEADER_NOT_FOUND
            TranslateStatusCode = "The requested header could not be located."
        Case enumInetNav.ERROR_HTTP_INVALID_HEADER
            TranslateStatusCode = "The supplied header is invalid."
        Case enumInetNav.ERROR_HTTP_INVALID_QUERY_REQUEST
            TranslateStatusCode = "The request made to HttpQueryInfo is invalid."
        Case enumInetNav.ERROR_HTTP_INVALID_SERVER_RESPONSE
            TranslateStatusCode = "The server response could not be parsed."
        Case enumInetNav.ERROR_HTTP_NOT_REDIRECTED
            TranslateStatusCode = "The HTTP request was not redirected."
        Case enumInetNav.ERROR_HTTP_REDIRECT_FAILED
            TranslateStatusCode = "The redirection failed because either the scheme changed (for example, HTTP to FTP) or all attempts made to redirect failed (default is five attempts)."
        Case enumInetNav.ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION
            TranslateStatusCode = "The redirection requires user confirmation."
        Case enumInetNav.ERROR_INTERNET_ASYNC_THREAD_FAILED
            TranslateStatusCode = "The application could not start an asynchronous thread."
        Case enumInetNav.ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT
            TranslateStatusCode = "There was an error in the automatic proxy configuration script."
        Case enumInetNav.ERROR_INTERNET_BAD_OPTION_LENGTH
            TranslateStatusCode = "The length of an option supplied to InternetQueryOption or InternetSetOption is incorrect for the type of option specified."
        Case enumInetNav.ERROR_INTERNET_BAD_REGISTRY_PARAMETER
            TranslateStatusCode = "A required registry value was located but is an incorrect type or has an invalid value."
        Case enumInetNav.ERROR_INTERNET_CANNOT_CONNECT
            TranslateStatusCode = "The attempt to connect to the server failed."
        Case enumInetNav.ERROR_INTERNET_CHG_POST_IS_NON_SECURE
            TranslateStatusCode = "The application is posting and attempting to change multiple lines of text on a server that is not secure."
        Case enumInetNav.ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED
            TranslateStatusCode = "The server is requesting client authentication."
        Case enumInetNav.ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP
            TranslateStatusCode = "Client authorization is not set up on this computer."
        Case enumInetNav.ERROR_INTERNET_CONNECTION_ABORTED
            TranslateStatusCode = "The connection with the server has been terminated."
        Case enumInetNav.ERROR_INTERNET_CONNECTION_RESET
            TranslateStatusCode = "The connection with the server has been reset."
        Case enumInetNav.ERROR_INTERNET_DIALOG_PENDING
            TranslateStatusCode = "Another thread has a password dialog box in progress."
        Case enumInetNav.ERROR_INTERNET_DISCONNECTED
            TranslateStatusCode = "The Internet connection has been lost."
        Case enumInetNav.ERROR_INTERNET_EXTENDED_ERROR
            TranslateStatusCode = "An extended error was returned from the server. This is typically a string or buffer containing a verbose error message. Call InternetGetLastResponseInfo to retrieve the error text."
        Case enumInetNav.ERROR_INTERNET_FAILED_DUETOSECURITYCHECK
            TranslateStatusCode = "The function failed due to a security check."
        Case enumInetNav.ERROR_INTERNET_FORCE_RETRY
            TranslateStatusCode = "The function needs to redo the request."
        Case enumInetNav.ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED
            TranslateStatusCode = "The requested resource requires Fortezza authentication."
        Case enumInetNav.ERROR_INTERNET_HANDLE_EXISTS
            TranslateStatusCode = "The request failed because the handle already exists."
        Case enumInetNav.ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR
            TranslateStatusCode = "The application is moving from a non-SSL to an SSL connection because of a redirect."
        Case enumInetNav.ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR
            TranslateStatusCode = "The data being submitted to an SSL connection is being redirected to a non-SSL connection."
        Case enumInetNav.ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR
            TranslateStatusCode = "The application is moving from an SSL to an non-SSL connection because of a redirect."
        Case enumInetNav.ERROR_INTERNET_INCORRECT_FORMAT
            TranslateStatusCode = "The format of the request is invalid."
        Case enumInetNav.ERROR_INTERNET_INCORRECT_HANDLE_STATE
            TranslateStatusCode = "The requested operation cannot be carried out because the handle supplied is not in the correct state."
        Case enumInetNav.ERROR_INTERNET_INCORRECT_HANDLE_TYPE
            TranslateStatusCode = "The type of handle supplied is incorrect for this operation."
        Case enumInetNav.ERROR_INTERNET_INCORRECT_PASSWORD
            TranslateStatusCode = "The request to connect and log on to an FTP server could not be completed because the supplied password is incorrect."
        Case enumInetNav.ERROR_INTERNET_INCORRECT_USER_NAME
            TranslateStatusCode = "The request to connect and log on to an FTP server could not be completed because the supplied user name is incorrect."
        Case enumInetNav.ERROR_INTERNET_INSERT_CDROM
            TranslateStatusCode = "The request requires a CD-ROM to be inserted in the CD-ROM drive to locate the resource requested."
        Case enumInetNav.ERROR_INTERNET_INTERNAL_ERROR
            TranslateStatusCode = "An internal error has occurred."
        Case enumInetNav.ERROR_INTERNET_INVALID_CA
            TranslateStatusCode = "The function is unfamiliar with the Certificate Authority that generated the server's certificate."
        Case enumInetNav.ERROR_INTERNET_INVALID_OPERATION
            TranslateStatusCode = "The requested operation is invalid."
        Case enumInetNav.ERROR_INTERNET_INVALID_OPTION
            TranslateStatusCode = "A request to InternetQueryOption or InternetSetOption specified an invalid option value."
        Case enumInetNav.ERROR_INTERNET_INVALID_PROXY_REQUEST
            TranslateStatusCode = "The request to the proxy was invalid."
        Case enumInetNav.ERROR_INTERNET_INVALID_URL
            TranslateStatusCode = "The URL is invalid."
        Case enumInetNav.ERROR_INTERNET_ITEM_NOT_FOUND
            TranslateStatusCode = "The requested item could not be located."
        Case enumInetNav.ERROR_INTERNET_LOGIN_FAILURE
            TranslateStatusCode = "The request to connect and log on to an FTP server failed."
        Case enumInetNav.ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY
            TranslateStatusCode = "The MS-Logoff digest header has been returned from the Web site. This header specifically instructs the digest package to purge credentials for the associated realm. This error will only be returned if INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY has been set."
        Case enumInetNav.ERROR_INTERNET_MIXED_SECURITY
            TranslateStatusCode = "The content is not entirely secure. Some of the content being viewed may have come from unsecured servers."
        Case enumInetNav.ERROR_INTERNET_NAME_NOT_RESOLVED
            TranslateStatusCode = "The server name could not be resolved."
        Case enumInetNav.ERROR_INTERNET_NEED_MSN_SSPI_PKG
            TranslateStatusCode = "Not currently implemented."
        Case enumInetNav.ERROR_INTERNET_NEED_UI
            TranslateStatusCode = "A user interface or other blocking operation has been requested."
        Case enumInetNav.ERROR_INTERNET_NO_CALLBACK
            TranslateStatusCode = "An asynchronous request could not be made because a callback function has not been set."
        Case enumInetNav.ERROR_INTERNET_NO_CONTEXT
            TranslateStatusCode = "An asynchronous request could not be made because a zero context value was supplied."
        Case enumInetNav.ERROR_INTERNET_NO_DIRECT_ACCESS
            TranslateStatusCode = "Direct network access cannot be made at this time."
        Case enumInetNav.ERROR_INTERNET_NOT_INITIALIZED
            TranslateStatusCode = "Initialization of the WinINet API has not occurred. Indicates that a higher-level function, such as InternetOpen, has not been called yet."
        Case enumInetNav.ERROR_INTERNET_NOT_PROXY_REQUEST
            TranslateStatusCode = "The request cannot be made via a proxy."
        Case enumInetNav.ERROR_INTERNET_OPERATION_CANCELLED
            TranslateStatusCode = "The operation was canceled, usually because the handle on which the request was operating was closed before the operation completed."
        Case enumInetNav.ERROR_INTERNET_OPTION_NOT_SETTABLE
            TranslateStatusCode = "The requested option cannot be set, only queried."
        Case enumInetNav.ERROR_INTERNET_OUT_OF_HANDLES
            TranslateStatusCode = "No more handles could be generated at this time."
        Case enumInetNav.ERROR_INTERNET_POST_IS_NON_SECURE
            TranslateStatusCode = "The application is posting data to a server that is not secure."
        Case enumInetNav.ERROR_INTERNET_PROTOCOL_NOT_FOUND
            TranslateStatusCode = "The requested protocol could not be located."
        Case enumInetNav.ERROR_INTERNET_PROXY_SERVER_UNREACHABLE
            TranslateStatusCode = "The designated proxy server cannot be reached."
        Case enumInetNav.ERROR_INTERNET_REDIRECT_SCHEME_CHANGE
            TranslateStatusCode = "The function could not handle the redirection, because the scheme changed (for example, HTTP to FTP)."
        Case enumInetNav.ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND
            TranslateStatusCode = "A required registry value could not be located."
        Case enumInetNav.ERROR_INTERNET_REQUEST_PENDING
            TranslateStatusCode = "The required operation could not be completed because one or more requests are pending."
        Case enumInetNav.ERROR_INTERNET_RETRY_DIALOG
            TranslateStatusCode = "The dialog box should be retried."
        Case enumInetNav.ERROR_INTERNET_SEC_CERT_CN_INVALID
            TranslateStatusCode = "SSL certificate common name (host name field) is incorrect梖or example, if you entered www.server.com and the common name on the certificate says www.different.com."
        Case enumInetNav.ERROR_INTERNET_SEC_CERT_DATE_INVALID
            TranslateStatusCode = "SSL certificate date that was received from the server is bad. The certificate is expired."
        Case enumInetNav.ERROR_INTERNET_SEC_CERT_ERRORS
            TranslateStatusCode = "The SSL certificate contains errors."
        Case enumInetNav.ERROR_INTERNET_SEC_CERT_NO_REV
            TranslateStatusCode = "The SSL certificate contains errors."
        Case enumInetNav.ERROR_INTERNET_SEC_CERT_REV_FAILED
            TranslateStatusCode = "The SSL certificate contains errors."
        Case enumInetNav.ERROR_INTERNET_SEC_CERT_REVOKED
            TranslateStatusCode = "SSL certificate was revoked."
        Case enumInetNav.ERROR_INTERNET_SEC_INVALID_CERT
            TranslateStatusCode = "SSL certificate is invalid."
        Case enumInetNav.ERROR_INTERNET_SECURITY_CHANNEL_ERROR
            TranslateStatusCode = "The application experienced an internal error loading the SSL libraries."
        Case enumInetNav.ERROR_INTERNET_SERVER_UNREACHABLE
            TranslateStatusCode = "The Web site or server indicated is unreachable."
        Case enumInetNav.ERROR_INTERNET_SHUTDOWN
            TranslateStatusCode = "WinINet support is being shut down or unloaded."
        Case enumInetNav.ERROR_INTERNET_TCPIP_NOT_INSTALLED
            TranslateStatusCode = "The required protocol stack is not loaded and the application cannot start WinSock."
        Case enumInetNav.ERROR_INTERNET_TIMEOUT
            TranslateStatusCode = "The request has timed out."
        Case enumInetNav.ERROR_INTERNET_UNABLE_TO_CACHE_FILE
            TranslateStatusCode = "The function was unable to cache the file."
        Case enumInetNav.ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT
            TranslateStatusCode = "The automatic proxy configuration script could not be downloaded. The INTERNET_FLAG_MUST_CACHE_REQUEST flag was set."
        Case Else
            TranslateStatusCode = "Unknown status code"
    End Select
End Function

'Example for google.com
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_OVERRIDE_SAFETY=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/ =Action=URLACTION_SCRIPT_RUN=
'url=http://www.google.ca/search=Action=URLACTION_HTML_SUBMIT_FORMS_TO=
'url=http://www.google.ca/=Action=URLACTION_HTML_SUBMIT_FORMS_FROM=

Public Function UrlActionToString(lUrlAction As Long) As String
    Select Case lUrlAction
        Case enumURLACTION.URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY
            UrlActionToString = "URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY"
        Case enumURLACTION.URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY
            UrlActionToString = "URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY"
        Case enumURLACTION.URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY
            UrlActionToString = "URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY"
        Case enumURLACTION.URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY
            UrlActionToString = "URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY"
        Case enumURLACTION.URLACTION_ACTIVEX_RUN
            UrlActionToString = "URLACTION_ACTIVEX_RUN"
        Case enumURLACTION.URLACTION_ACTIVEX_TREATASUNTRUSTED
            UrlActionToString = "URLACTION_ACTIVEX_TREATASUNTRUSTED"
        Case enumURLACTION.URLACTION_AUTHENTICATE_CLIENT
            UrlActionToString = "URLACTION_AUTHENTICATE_CLIENT"
        Case enumURLACTION.URLACTION_COOKIES
            UrlActionToString = "URLACTION_COOKIES"
        Case enumURLACTION.URLACTION_COOKIES_SESSION
            UrlActionToString = "URLACTION_COOKIES_SESSION"
        Case enumURLACTION.URLACTION_COOKIES_ENABLED
            UrlActionToString = "URLACTION_COOKIES_ENABLED"
        Case enumURLACTION.URLACTION_COOKIES_SESSION_THIRD_PARTY
            UrlActionToString = "URLACTION_COOKIES_SESSION_THIRD_PARTY"
        Case enumURLACTION.URLACTION_COOKIES_THIRD_PARTY
            UrlActionToString = "URLACTION_COOKIES_THIRD_PARTY"
        Case enumURLACTION.URLACTION_CREDENTIALS_USE
            UrlActionToString = "URLACTION_CREDENTIALS_USE"
        Case enumURLACTION.URLACTION_CROSS_DOMAIN_DATA
            UrlActionToString = "URLACTION_CROSS_DOMAIN_DATA"
        Case enumURLACTION.URLACTION_DOWNLOAD_SIGNED_ACTIVEX
            UrlActionToString = "URLACTION_DOWNLOAD_SIGNED_ACTIVEX"
        Case enumURLACTION.URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX
            UrlActionToString = "URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX"
        Case enumURLACTION.URLACTION_HTML_FONT_DOWNLOAD
            UrlActionToString = "URLACTION_HTML_FONT_DOWNLOAD"
        Case enumURLACTION.URLACTION_HTML_JAVA_RUN
            UrlActionToString = "URLACTION_HTML_JAVA_RUN"
        Case enumURLACTION.URLACTION_HTML_SUBFRAME_NAVIGATE
            UrlActionToString = "URLACTION_HTML_SUBFRAME_NAVIGATE"
        Case enumURLACTION.URLACTION_HTML_SUBMIT_FORMS
            UrlActionToString = "URLACTION_HTML_SUBMIT_FORMS"
        Case enumURLACTION.URLACTION_HTML_SUBMIT_FORMS_FROM
            UrlActionToString = "URLACTION_HTML_SUBMIT_FORMS_FROM"
        Case enumURLACTION.URLACTION_HTML_SUBMIT_FORMS_TO
            UrlActionToString = "URLACTION_HTML_SUBMIT_FORMS_TO"
        Case enumURLACTION.URLACTION_HTML_USERDATA_SAVE
            UrlActionToString = "URLACTION_HTML_USERDATA_SAVE"
        Case enumURLACTION.URLACTION_INFODELIVERY_NO_ADDING_CHANNELS
            UrlActionToString = "URLACTION_INFODELIVERY_NO_ADDING_CHANNELS"
        Case enumURLACTION.URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS
            UrlActionToString = "URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS"
        Case enumURLACTION.URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING
            UrlActionToString = "URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING"
        Case enumURLACTION.URLACTION_INFODELIVERY_NO_EDITING_CHANNELS
            UrlActionToString = "URLACTION_INFODELIVERY_NO_EDITING_CHANNELS"
        Case enumURLACTION.URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS
            UrlActionToString = "URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS"
        Case enumURLACTION.URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS
            UrlActionToString = "URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS"
        Case enumURLACTION.URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS
            UrlActionToString = "URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS"
        Case enumURLACTION.URLACTION_JAVA_PERMISSIONS
            UrlActionToString = "URLACTION_JAVA_PERMISSIONS"
        Case enumURLACTION.URLACTION_SCRIPT_OVERRIDE_SAFETY
            UrlActionToString = "URLACTION_SCRIPT_OVERRIDE_SAFETY"
        Case enumURLACTION.URLACTION_SCRIPT_PASTE
            UrlActionToString = "URLACTION_SCRIPT_PASTE"
        Case enumURLACTION.URLACTION_SCRIPT_RUN
            UrlActionToString = "URLACTION_SCRIPT_RUN"
        Case enumURLACTION.URLACTION_SCRIPT_SAFE_ACTIVEX
            UrlActionToString = "URLACTION_SCRIPT_SAFE_ACTIVEX"
        Case enumURLACTION.URLACTION_SHELL_FILE_DOWNLOAD
            UrlActionToString = "URLACTION_SHELL_FILE_DOWNLOAD"
        Case enumURLACTION.URLACTION_SHELL_INSTALL_DTITEMS
            UrlActionToString = "URLACTION_SHELL_INSTALL_DTITEMS"
        Case enumURLACTION.URLACTION_SHELL_MOVE_OR_COPY
            UrlActionToString = "URLACTION_SHELL_MOVE_OR_COPY"
        Case enumURLACTION.URLACTION_SHELL_VERB
            UrlActionToString = "URLACTION_SHELL_VERB"
        Case enumURLACTION.URLACTION_SHELL_WEBVIEW_VERB
            UrlActionToString = "URLACTION_SHELL_WEBVIEW_VERB"
    End Select
End Function