Changes in v3

Upgrade Pricing Offers

Discounted pricing is available to all existing customers.  Please see here (tick the 'Upgrading from SimplyVBA v1 or vbWatchdog v2' box).

Customers that are entitled to a free upgrade to version 3 will be e-mailed by 14th June. You will only be entitled to a free upgrade if one of the following is applicable:

  • You are on an active 12 month premium support contract for vbWatchdog
  • You purchased vbWatchdog v2 on or after May 1st 2013.
  • You purchased SimplyVBA Global Error Handler v1 with the 'lifetime upgrades' option.
  • In all cases, you will be upgraded to the Enterprise Edition of vbWatchdog v3 (which is the matching edition equivalent to your current product).

    If you have changed e-mail addresses, please just contact us with some proof of purchase and we will get you setup on version 3.

Introduction of vbWatchdog Ultimate Edition

vbWatchdog Enterprise Edition is now explicitly restricted for use within Microsoft Office VBA applications only (e.g. MS Access, Excel, Outlook etc). A new ULTIMATE edition is available which is unrestricted, and has been enhanced to support any VBA host, even custom applications that use the VBA SDK.

Additionally, the Ultimate edition has been designed to support classic VB6 projects too, replacing our older product, SimplyVB6 Global Error Handler.

The ‘Standard Edition’ of vbWatchdog has now been removed. Less than 1% of all licences were of the Standard Edition type, and so it was clear the limited feature set it offered was not appealing.

v3 Changes that may require attention when upgrading

  • Properties from v1 that were marked as deprecated in v2 have now been removed. Namely:
    ErrEx.Bookmark, ErrEx.SetBookmarkAsOnErrorGoto, ErrEx.CurrentBookmark, ErrEx.GoToBookmark
  • vbWatchdog no longer checks if the host VBA application is the Microsoft Access Runtime in order to prevent unhandled errors from quitting the application.  Instead developers should check SysCmd(acSysCmdRuntime) at runtime (e.g. inside your global error trap) and use the new ErrEx.State of OnErrorUnwind to emulate the same behaviour (see OnErrorUnwind details below).

Error Dialog new features

  • New gradient options for the dialog backgrounds to offer more professional looking dialogs.
  • Ability to customize the dialog graphic (defaults to the usual exclamation mark).     TIP: Use the Sample.MDB to help here!
  • New ErrEx.DialogOptions.LoadCustomImageFromFile property can be used to set the bitmap from a BMP format file.
  • New ErrEx.DialogOptions.CustomImageData property is used to set the bitmap image to bitmap file data from memory rather than a file.
  • New ErrEx.DialogOptions.CustomImageTransparentColor property for setting the RGB transparency color of your image.
  • New ErrEx.DialogOptions.OnKeyDown event. Particularly useful for providing clipboard Ctrl-C support.
  • New ErrEx.DialogOptions.FlashWindowOnOpen Boolean property (defaults to True). With this option on, if an error occurs in your application and your application doesn’t have the focus, the window will be flashed in the taskbar to alert the user.
  • New ErrEx.DialogOptions.AllowArrowKeys Boolean property (defaults to False).
  • The dialog now supports mousewheel scrolling, auto-repositioning on pressing the More-Info button if required, and has improved rendering accuracy.
  • Improved localization options. Namely:
    <SOURCELINECODE> HTML tag can have a customizable NULL value, e.g.: <SOURCELINECODE NULLVALUE='Unable to locate source code line'>.
    <VARSCOPE> HTML tag can now have customizable text for each VarScope type, e.g.: <VARSCOPE LOCAL='local', PARAM='param', MODULE='mod', STATIC='static'>
  • New HTML tags:
    <VERSION> (see ErrEx.Version)
    <VBEVERSION> (see ErrEx.VBEVersion)
    <SOURCEFILENAME> (see ErrEx.SourceProjectFilename)
    <SOURCEPROJECTCOMPILED> (see ErrEx.SourceProjectIsCompiled)
    <SOURCEPROJECTSAVED> (see ErrEx.SourceProjectIsSaved)
    <SOURCEPROJECTCONDITIONALARGS> (see ErrEx.SourceProjectConditionalCompilationArgs)
    <LOADEDDLLS> (see ErrEx.LoadedDLLs)

Global Error Trap improvements

  • New ErrEx.State values of OnErrorUnwind and OnErrorUnwindNoFinally. OnErrorUnwind is equivalent to OnErrorEnd except global values do not lose there values as the VBA project is not reset. With OnErrorUnwind, the callstack is unwound and any ErrEx.Finally blocks will be run. OnErrorUnwindNoFinally state is the same as OnErrorUnwind except any ErrEx.Finally blocks in the callstack will not be run.
  • New dialog button action types of BUTTONACTION_ONERRORUNWIND and BUTTONACTION_ONERRORUNWINDNOFINALLY corresponding to the new ErrEx.State values.

Try/Catch block improvements

  • A new ErrEx.ReThrow method designed for use inside ErrEx.Catch blocks to pass an error back to a caller.  This method has optional arguments to override the error number and description.

Callstack new features

  • The VariablesInspector and Callstack inspection process is now much more resilient with extreme safety measures being taken in order to ensure vbWatchdog won't crash, even if the stack is corrupt.
  • Improved project identification method, so vbWatchdog can now locate the module source code even in unsaved Excel projects.
  • New ErrEx.SourceVBEProject and ErrEx.Callstack.VBEProject properties which return the VBE Project object associated with the callframe.
  • New ErrEx.SourceProjectFilename and ErrEx.Callstack.ProjectFilename properties to uniquely identify project (instead of ErrEx.SourceProject, which is not guaranteed unique across loaded projects).
    Error Dialog HTML tag: <SOURCEFILENAME NULLVALUE='Unsaved'>
  • New ErrEx.SourceProjectIsCompiled and ErrEx.Callstack.ProjectIsCompiled properties, indicating the compiled state of the project associated with the callframe.
    Error Dialog HTML tag: <SOURCEPROJECTCOMPILED TRUEVALUE='True' FALSEVALUE='False'>
  • New ErrEx.SourceProjectIsSaved and ErrEx.Callstack.ProjectIsSaved properties, indicating the saved/unsaved state of the project associated with the callframe.
    Error Dialog HTML tag: <SOURCEPROJECTSAVED TRUEVALUE='True' FALSEVALUE='False'>
  • New ErrEx.SourceProjectConditionalCompilationArgs and ErrEx.Callstack.ProjectConditionalCompilationArgs properties for logging the VB conditional compilation arguments at runtime.
    Error Dialog HTML tag: <SOURCEPROJECTCONDITIONALARGS>

VariablesInspector new features

  • New ErrEx.TypeInfoInspectorEnabled Boolean property. Defaults to True. When True, the vbWatchdog VariablesInspector further inspects generic Object and Variant data types to determine the real underlying object type (which is then provided in variables dumps and the TypeDesc property of the variables inspector). Also, this option allows vbWatchdog to determine array boundaries and outputs the extra information in the ValueDesc property… e.g. {ARRAY}(1 to 6) rather than just {ARRAY}.

Core engine improvements

  • The core engine of vbWatchdog has been completely redesigned for improved stability, resiliency and efficiency.
  • The VBA host application no longer needs to expose an Application or VBE object.  This allows vbWatchdog v3 to be used in Outlook projects and the like.
  • Much improved Excel support, as vbWatchdog no longer requires the 'Allow programmatic access to Visual Basic project' security option to be set.
  • [ULTIMATE EDITION ONLY] Added an ErrEx.EvalObject property, which can be set to a class object.  The procedure name passed to ErrEx.Enable will then be used to call a method of that name on your EvalObject when an error occurs.  Additionally, the same EvalObject is used for dialog button callbacks.  This is specifically designed for VB6 support, but can also be used by custom VBA hosts if needed.  TIP: don't set a VBA class object onto this property as VBA class objects get abruptly terminated on unhandled errors.

Miscellaneous improvements

  • A new ErrEx.LoadedDLLs string property, providing a dump of the names, paths and version numbers of all DLLs currently loaded by the running application process.
    Error Dialog HTML tag: <LOADEDDLLS SHOWFULLPATHS NOVERSIONINFO>
  • ErrEx.ProjectFilterList property will now accept “*” instead of a filter list, causing only errors that occur inside the main project to be passed to your global error trap.
  • Much more efficient BLOB storage for the vbWatchdog binary code.
  • Added a 'Remove vbWatchdog from this project' menu option in the VB IDE
  • The vbWatchdog binary has been reduced in size by approximately 30%.
  • A new 'slimline' edition for 32-bit only, offering even smaller binary size (typically 40% smaller than the regular edition).
  • Slightly lower memory usage throughout
  • Fixed Office 15 online help support
  • Fixed memory leaks throughout, along with many minor bugs found during extensive testing.
  • A new downloadable PDF manual will be available to registered users of v3. COMING SOON!