Debugging Tips

This article provides tips for handling exceptions and understanding HRESULT error codes generated by pluggable protocols.

Handling Exceptions

Prior to Windows Internet Explorer 7, Urlmon.dll would quietly handle exceptions raised by all pluggable protocols. Developers trying to debug a custom handler in this configuration should use a debugging tool that can trap the exceptions before they are passed to Urlmon.dll.

The version of Urlmon.dll that shipped with Internet Explorer 7 no longer handles exceptions. Developers must implement a global exception handler within the pluggable protocol itself.

Error Codes

Some functions and methods return a non-standard HRESULT value, such as IInternetSecurityManager::SetZoneMapping. Many of these return values are generated by a macro that sets the low word to a valid Microsoft Win32 error code and the high word to 8007.