Your existing OutlookSpy license key will work in all
versions of OutlookSpy.

History and Recent Fixes:

November 16, 2018 OutlookSpy 4.0 version 4.0.0.3805

On some systems, multiple prompts for credentials could
be displayeds when retrieving autodiscover XML.

EWS functions could display an error (no credentials
found) if Outlook was running under a local account of the domain user who
owns the Exchange mailbox.

November 12, 2018 OutlookSpy 4.0 version 4.0.0.3797

OutlookSpy now supports Exchange Web Services.
All EWS operations
are supported through the "EWS Request Pad", and most popular EWS
operations are exposed explicitly:GetItem, GetFolder, GetAttachment,
ConvertId, ExportItems, FindItem, FindFolder, UploadItems, GetMailTips, ResolveName,
etc.
As usual, all objects are delivered in context, and there are no credentials prompts.

Updated the symbolic parser for the Exchange versions of the message, folder and store entry ids:

Added VerbStream property parser.

February 8, 2018 OutlookSpy 3.15 version 3.15.0.3673

Added IConverterSession::SetCharset support (not that it seems to do
much).

December 8, 2017 OutlookSpy 3.14 version 3.14.0.3609

On multi-monitor systems, if Outlook was shown on a secondary monitor,
OutlookSpy windows would sometimes be shown off-screen with no way to see or
move them.

Normally, an OutlookSpy license can be reused on a new computer -
OutlookSpy would warn that the license is being used on too many computers,
but it can still be re-entered: OutlookSpy would unregister the oldest
computer that uses the license and register the current computer. This did
not work with the old (2+ years) licenses - the license could be entered
without a prompt, but OutlookSpy would still display the error message
later.

November 5, 2017 OutlookSpy 3.14 version 3.14.0.3597

Open and Save dialogs throughout OutlookSpy (IMessage | Save As MSG
file, IComverterSession | MIMEToMAPI, etc.) were not parented
correctly sometimes resulting in being obscured by other windows or
applications when switching away from Outlook.

Text files created by clicking "Save to File" button on the
GetProps tab of the various Extended MAPI objects did not handle
Unicode characters correctly. Also added an option to save either as comma-separated or as
tab-separated text files.

Added High DPI monitor support. You no longer have to squint at your
brand new 4K monitor.

OutlookSpy parses and displays the structure of the
PR_CONVERSATION_INDEX, PR_CHANGE_KEY, and PR_PREDECESSOR_CHANGE_LIST
properties.

IMsgStore and IAddrBook windows now have an extra button/dropdown for quick
navigation through the child folders/containers

February 20, 2017 OutlookSpy 3.11 version
3.11.0.3467

Added Save and Copy as Text / Copy
as Hex toolbar items to the IStream editor and "Edit Binary Property"
dialog. The hex editor now also allows to copy from and to the Visual Studio
binary editor (it utilizes BinaryData clipboard format in addition
to the regular text format).

Added IMAPITable.SortTable popup menu item to all IMAPITable tabs

OutlookSpy now parses PR_ROAMING_BINARYSTREAM property on the hidden messages
storing the auto-complete stream.

Bug fix: when adding a new PT_SYSTIME property ("Add Property" button
on a GetProps tab), if a PT_SYSTIME property was specified (e.g.
PR_MESSAGE_DELIVERY_TIME), OutlookSpy did not immediately switch to the
date/time editor, resulting in the new value being replaced with the current
date/time value.

OutlookSpy installer displayed "The operating system is not
presently configured to run this application." message box when
installing or uninstalling under Outlook 2016. The message box was displayed by the MAPI
system when loading olmapi32.dll.

IMAPISession::OpenEntry popup menu item in the IOlkAccount
window did nothing.

Bug fix: Clicking Help button on the IDispatch windows produced a message box
with a single letter "C".

Added IMAPISession::OpenProfileSection popup menu for all GetProps tabs
(available for the PT_BINARY properties)

Optimized handling of the IDispatch objects. Much faster now and no
crashes for the COM objects that depend on a particular order of the
property retrieval / release (such as the Explorer object in the Outlook
Object Model).

December 1, 2013 OutlookSpy 3.5 version
3.5.0.2607

Bug fix: OutlookSpy under Outlook 2013 sometimes did not display any values in
the IMessage window when browsing the IMessage object from an instance of a
recurring appointment.

Bug fix: OpenIMsgOnIStg did not work with MSG files with Unicode names.

OutlookSpy can now retrieve properties not exposed by the IMAPIProp::GetPropList()
method. Normally, OutlookSpy only displays properties returned by IMAPIProp::GetPropList(), but some providers (PST and Exchange included), do
not expose all of the available properties.
OutlookSpy can probe (by brute force) all properties one property at a time by calling IMAPIProp::GetProps() for each
property in the range 0x00000000 to 0xFFFF0000.
Right click on the GetProps tab of any IMAPIProp-derived object (IMessage, IMAPIFolder, IMsgStore, etc.) and select "Probe
unlisted properties..." menu item.

OutlookSpy did not subscribe to and did not display the
fnevSearchComplete MAPI notifications.

02/19/2012 OutlookSpy version 3.1 build
3.1.0.2475

Hex editor sometimes produced access violation in the 64 bit version.

The script editor in the previous version would not allow to assign
values to the predefined constants, such as PR_SUBJECT.The latest version
allows to do that and override the default value (e.g.
"http://schemas.microsoft.com/mapi/proptag/0x0037001F" for PR_SUBJECT) with
a custom value (e.g. &H00371E).

Added symbolic parser for the
PR_CONTROL_STRUCTURE blobs.

Editing a PT_STRING8 property (double click on a property on the GetProps
tab) or adding a new PT_STRING8 property only copied the very first
character of the specified string. PT_UNICODE properties were fine. This
problem is version 3.0 specific.

On multi-monitor systems, if Outlook was displayed on a secondary
monitor, some OutlookSpy windows would be displayed on the primary monitor.

Bug fix: GetNamesFromIds window only showed the first
letter/digit of the property tag/GUID/id. As an extra bonus, besides
the fix, this window now also shows the OOM names of the named properties
known to OutlookSpy.

You can use symbolic property names (such as PR_SUBJECT) in the script
window. E.g. PR_SUBJECT will evaluate to
"http://schemas.microsoft.com/mapi/proptag/0x0037001F".

Added support for the recently documented IMessageRaw interface (http://blogs.msdn.com/stephen_griffin/archive/2005/10/31/487416.aspx).
Since clicking IMessage button opens the message as IMessage and causes the
message to be downloaded, you can use this interface from the IMAPIFolder |
GetContentsTable tab: select the message in that tab, locate the PR_ENTRYID
property, right click, select IMAPISession::OpenEntry, select IMessageRaw
from the combobox.

Added support for the symbolic values of the named properties
corresponding to the properties in the Outlook Object Model. E.g.
olResponseNone/olResponseOrganized/etc are displayed for the named property
({00062002-0000-0000-C000-000000000046}, 0x8218, PT_LONG), which corresponds
to the AppointmentItem.ResponseStatus property in the Outlook Object Model.

Added Misc | OpenIMsgOnIStg button that allows to directly open
IMessage object from an MSG file.

Added Unicode MSG file support (IMessage | Save As MSG File)

01/20/2005 OutlookSpy version 2.9 build 2.9.0.321

Added support for the recently documented IOlkAccountManager,
IMAPIOfflineMgr, IConverterSession and related interfaces (use the Misc
dropdown on the OutlookSpy toolbar). See
Outlook 2003 Integration API Reference for a complete reference.

Added a utility window ("Misc | OutlookSpy Utilities" button on the
OutlookSpy toolbar) that allows to display symbolic property tag name given
its numeric value or its GUID/id (for a named property) as well as a symbolic
value of any Windows or MAPI error code.

09/19/2004 OutlookSpy version 2.8 build 2.8.0.314

Small bug fixes.

Extra context popup menu in the GetProps tab:
IMAPIProp::GetProps. Allows to request extra properties that might not be
returned by IMAPIProp::GetPropList (that's what OutlookSpy uses to retrieve
the list of properties).

IMAPISession::OpenProfileSection and IMsgServiceAdmin::OpenProfileSection
display a dialog with a list of ProfSect GUIDs for the profile. Note that this
list is not available from MAPI, OutlookSpy simply reads it from the registry.

IMAPISession::OpenEntry context menu in the GetProps tab and
OpenEntry tab display a dialog box with a choice of flags to use when
calling OpenEntry, including the new Outlook 2003 flags MDB_ONLINE and
MAPI_NO_CACHE flags (see
Q834496 on MSDN)

More known tags and their symbolic values (such as Exchange 2000
fsdrightXXX access rights in the security descriptors, etc)

GetAttachmentTable tab now allows to delete an attachment (Delete button)

11/23/2003 OutlookSpy version 2.8 build 2.8.0.304

bug fix: just an eye candy - several OutlookSpy controls were misaligned
for screen resolutions other than the default 96 DPI.

bug fix: OutlookSpy was not showing named prop lIDs when "RMB|Show Numeric
Tags" in IMessage window was checked.

11/17/2003 OutlookSpy version 2.8 build 2.8.0.301

OutlookSpy displays the Outlook Object Model property names next to the
named properties' ids in the IMessage window. Most of these names can be
easily deduced from OOM - dispids of the IDispatch properties that match one to one to
the Extended MAPI named properties are the same as the named property ids (MAPINAMEID.lID).
Obviously not all properties are listed (almost 200 currently), if you find a
property that is not yet listed, please do email
it to me.

By popular demand: you can now manage the names of both regular and named
properties - simply right-click on a property and select Property Name |
Name This Property.... Again, if you find a property tag that OutlookSpy
does not handle and you know how the property is called, I would appreciate if
you'd let me know.

OutlookSpy is now completely Windows XP/2003 theme-enabled when running under
Outlook 2003.

IMAPIFolder|GetHierarchyTable - SHOW_SOFT_DELETES tab (Exchange
only) has an extra button - Restore to allow restoring of deleted folders. The
ability to restore deleted messages was added to the previous (2.7) version of
OutlookSpy.

Bug fix: when used with Outlook 2000 or below, opening a message (new
inspector in Outlook) would corrupt the Clipboard text - OutlookSpy did not
restore Unicode text in the Clipboard properly when copying/pasting bitmaps
for its buttons.

Bug fix: access violations when browsing Extended MAPI objects under
Outlook 2002 used with MUI and language other than US-English.

06/23/2003 - OutlookSpy version 2.7 build 2.7.0.274 is
available.

Bug fix: Tools|Options|OutlookSpy tab was not visible in the post beta 2
builds of Outlook 2003

IMAPIFolder | GetContentsTable - SHOW_SOFT_DELETES tab has an
additional button: Restore. I could never comprehend why
"Deleted Items Recovery" by default only works in the "Deleted
Items" folder - now you can use OutlookSpy as its replacement.

OutlookSpy can show numeric properties' tags along with their symbolic
values (right click on the properties list on any GetProps tab)

03/11/2003 - OutlookSpy version 2.7 build 2.7.0.272 is
available.

Bug fix: Outlook 2003 beta 2 hangs when any message in a Calendar folder
is selected. This is an Outlook 2003 bug and it is fixed in post beta 2
builds of Outlook 2003 (> 5003).

All IMAPITable frames (IMessage::GetRecipientTable,
IMAPIFolder::GetContentsTable, etc) have an additional button - SetColumns().
This allows to either set only the columns you are interested in or add
columns not available by default (such as PR_EMS_AB_MDB_STORAGE_QUOTA on the
mailbox table of IExchangeManageStore object)

Finally: you can use named constants defined in the Outlook and CDO
type libraries instead of their numeric values in the OutlookSpy scripts
(e.g. olFolderContacts, olEditorHTML, etc, etc, etc)

OutlookSpy can use MAPI_UNICODE flag in calls to
IMAPIProp::GetPropList(). You can either set this option in Tools|Options|OutlookSpy|More
Options or hold the Shift key while opening an object. E.g. if you hold
the Shift key while clicking IMessage button, OutlookSpy will try to use
MAPI_UNICODE when retrieving a list of available properties. If MAPI_E_BAD_CHARWIDTH
is returned, OutlookSpy will revert to the ANSI version.

If OutlookSpy becomes disabled by Outlook 2002 (e.g. when you terminate
Outlook when OutlookSpy is doing something), OutlookSpy install will
re-enable it. If you want to re-enable OutlookSpy without running the
install, make sure OutlookSpy is not listed in Help|About|Disabled Items
in Outlook. Seems like by far the most common OutlookSpy question.

OutlookSpy can now work around a problem in the Exchange provider in
Outlook XP which cannot returns all named properties through a single call
to IMAPIProp::GetNamesFromIDs(NULL, ...). When clicking GetNamesFromIDs
button, OutlookSpy will prompt whether you want to use a single call to
IMAPIProp::GetNamesFromIDs(NULL, ...) or to loop through all suspected named
properties (this can take much longer).

You can write event handlers in OutlookSpy Script tabs of the
IDispatch'able objects. E.g. if you open Application window (Application will be
one of the global variables in the Script tab:
sub Application_Reminder(Item)
Debug.Print Item.Subject
end sub

Almost 1,200 new symbolic property tags had been added, most of
them Exchange Server specific. Thanks to ptag.exe
(see your Exchange Server CD) utility - has anybody heard before about this
little gem? Special thanks to Alex Mazel for discovering ptag.exe and
extracting the prop tags from it.

OutlookSpy no longer uses the clipboard to set its buttons pictures in
Outlook 2002 and up. Outlook 2000 and below still uses the clipboard; even
through the clipboard is saved and restored (this does not work however if
the clipboard contains OLE objects).

New button - IMAPIFormMgr. OutlookSpy can now browse IMAPIFormMgr,
IMAPIFormContainer and IMAPIFormInfo interfaces.

OutlookSpy can display symbolic values of the PT_ACTIONS
properties, such as PR_RULE_ACTIONS property on the IMAPIFolder | PR_RULES_DATA
tab.

IDispatch windows displaying Explorer and Inspector Outlook Object Model
interfaces have an additional tab - CommandBars. This tab displays
the treeview of all CommandBars and their controls along with the full
path for each control which you can copy and paste into your VB code.

Context menu on the IMAPIFolder|GetSearchCriteria tab (available on
search folders) allows to create a folder with the same restriction in the
IPM root folder - can be handy if you want to persist the result of advanced
find in Outlook as a separate folder: go to "Advanced Find"
in Outlook, create any search criteria, click "Find". Without
closing the window navigate to the temporary search folder using OutlookSpy
(e.g. IMsgStore\Search Root\Folder1), go to the GetSearchCriteria tab, right
click, select "Create Same Search Folder in IPM Tree".

Unicode Extended MAPI properties are fully supported.
PT_UNICODE and PT_MV_UNICODE properties are displayed, you can also add and
edit PT_UNICODE properties (good luck finding a MAPI provider which supports
them!). Unicode properties are only displayed as such on OSes which natively
support Unicode (Windows NT/2000/XP).

All script tabs have an additional pane - Debug.Print which
displays output of the Debug.Print statements. Sure beats MsgBox() if you
need to dump properties of a thousand messages :-)

Special keys (e.g. Ctrl or Alt combinations, Tab, etc) finally work
in all OutlookSpy windows

When you click Add Property on the IMAPIProp derived objects, you
can specify the property as its symbolic value (e.g. PR_SUBJECT) rather than
a numeric
value (e.g. 0x0037001E); approximately 1,200 symbolic property tags are
supported You can still enter a numeric value of course.

IMAPIFolder GetSearchCriteria tab (visible only on the search
folders, such as Reminders) shows a list of the containers included in the search along with
the search restriction.

You can add and edit PT_SYSTIME properties

On the OpenEntry tab (IMAPISession, IMsgStore, etc) you can manually enter or paste
an Entry ID (click Enter Entry ID Manually... button). Useful if you get the
value of an entry id (e.g. from an IMsgStore Advise tab) and you want to
find out what that object is.

MAPI containers which support PR_SEARCH property (e.g. Exchange
Address Book provider) display PR_SEARCH button to allow browsing of that
property.

If you click Help button on one of the IDispatch windows
(e.g. one of the Outlook Object Model interfaces) and Outlook VBA help files
are not installed, you will be automatically prompted to install them from
your Office CD.

IMessage window has a new tab - Compare. Drag any PR_ENTRYID
property there and OutlookSpy will compare that object with the current one.
OutlookSpy shows which properties are missing, extra, different or the same
on either object.

IMAPIFolder window has 2 new tabs "GetHierarchyTable -
SHOW_SOFT_DELETES" and "GetContentsTable -
SHOW_SOFT_DELETES" (messages and folders deleted, but still
retained on an Exchange Server for each particular folder). These tabs are
only present on Exchange Server folders.

OutlookSpy can parse and show properties of type PT_SRESTRICTION
(such as PR_RULE_CONDITION in the Rules table). Can be handy if you need to
create a restriction (any restriction), but don't remember the names of all
the constants - just create a new rule (Tools | Rules Wizard), look at it
with OutlookSpy and copy the definition of the restriction.

06/07/2001 Version 2.2 build 2.2.0.271 is available. New
features:

IMessage window now has IMessage::SubmitMessage and IMsgStore::AbortSubmit
buttons

IMAPISession, IMsgStore, IMAPIFolder, IAddrBook
and IDistList windows now have an additional "OpenEntry"
tab. Just drag any PT_BINARY or PT_MV_BINARY property on that tab and
OutlookSpy will try to use it as an EntryID. Can be useful if you suspect
that some binary property is really an EntryID of some object - for example
drag (0x36D0, PT_BINARY) property from the Inbox window to the IMAPISession
| Open Entry tab: "Calendar" folder will be shown.

Clicking OpenProfileSection on the IMsgServiceAdmin and IProviderAdmin
windows normally returns MAPI_E_NO_ACCESS error (you need to be a service
provider to successfully call these function), OutlookSpy however gives you
a choice to open profile sections using a hack (see Profman sample on MSDN).
Can be useful if you need to build a profile dynamically and need to know
which properties must be set.

You can now delete folders and messages from the IMAPIFolder window
- can be handy if you want to cleanup some misbehaving views or other hidden
messages.

When viewing an IMAPITable (contents, hierarchy, etc) OutlookSpy
now buffers the display - looking at the contents table of an IMAPIFolder
with 10,000 messages over a dial-up connection finally takes less than a
day. <g>.

04/18/2001 Version 2.0 build 2.0.0.162 is now available. New features:

OutlookSpy toolbar is now also present on all Outlook inspectors - this
way you can look at the item being edited without saving it first. Available
buttons: Script Editor, Application, Inspector, HTMLEditor,
WordEditor, CurrentItem, IMessage. HTMLEditor and
WordEditor buttons are only enabled if the inspector is using the
corresponding editor.

Everything works fine under Outlook 2002, no known issues.

For all IMAPIProp derived interfaces (IMessage, IMAPIFolder, etc) there is
a new "Add Property" button (I know, I know, I should've done this a
long time ago). You can add both regular (with a known property tag) and
named properties.

The list of available events on the Events tab of all IDispatch
derived interfaces now has checkboxes (checked by default) - uncheck a box
and that particular event will not be displayed in the Events Log when it
occurs. Can be handy if you do not want to see some frequently occurring
events, such as onmousemove event when working with an HTMLEditor
object.

IMessage window now has a Watch tab - it lets you specify
properties that you want to track and automatically output their values
every time there is a change in the value of the property. Can be handy if
you need to crack some nasty binary properties.

For all Extended MAPI interfaces the list of the properties can be sorted
by the property tag, type or value - just click on the listview header.

Hex viewer and IMessage | Watch tab now have a button that launches a calculator.
Evaluate any C or Pascal style expressions.

Hex Viewer
window - shows currently selected byte as BYTE, WORD, DWORD or FILETIME
on the bottom of the window

Numerous improvement in the OutlookSpy inner workngs, much better
handling of the edge cases

Fixed a problem with OutlookSpy not installing under some localized versions of Outlook.

02/15/2001 - version 1.4 is available (build 1.4.0.150). New
features:

Security Patch dialogs are not shown when clicking "Item" or
"CDO | Item" buttons, only when accessing (clicking) properties
blocked by the Security Patch.

All IMAPIProp derived Extended MAPI interfaces (IMessage, IMAPIFolder,
IMsgStore, etc) now have an additional button - GetNamesFromIDs() to
show the list of all named properties.

Improved browsing of IDispatch'able (Outlook Object Model and CDO)
interfaces. Property values are now shown in a multiline edit.

OutlookSpy now supports IExchangeManageStore interface. To
access it, open IMsgStore window and click on an IExchangeManageStore
button. Note that this interface is only supported on Exchange Server Message
Store providers and you must have sufficient privileges to call methods on that
interface - logging in as an Exchange Administrator would do it.

Support for Access Control Lists (ACL) (that's what you see
when you right click a folder and select Properties | Permissions). OutlookSpy
now supports PR_ACL_TABLE property on Exchange folders. To access it, open
IMAPIFolder window and select PR_ACL_TABLE tab. This tab is only visible
if the folder supports PR_ACL_TABLE property.

Support for rules. OutlookSpy now supports PR_RULES_TABLE
property on folders. To access it, open IMAPIFolder window and select PR_RULES_TABLE
tab. This tab is only visible if the folder supports PR_RULES_TABLE
property.

11/12/2000 - version 1.2 (build 1.2.0.183) is released.
New features

Added more than 250 new symbolic (PR_xx) tags. Since many of
these tags never made it into the Platform SDK header files (but strangely some
of them are mentioned on MSDN), OutlookSpy shows tag's numeric value even for
the PR_xx tags so you can define it in your code if it is missing from the MAPI
header files. OutlookSpy now supports twice as many tags as MdbView!

OutlookSpy now supports MAPI profile interfaces: IProfAdmin,
IMsgServiceAdmin, IProviderAdmin, IProfSect. You can access these interfaces
from either "IProfAdmin" button on the toolbar or from an "OpenProfileSection"
button on an IMAPISession window.

10/24/2000 - version 1.1 (build 1.1.0.169) is released, many
new features added. Fixed bugs:

Outlook might freeze after sending a message from Windows
Explorer or from a mailto: URL.

10/12/2000 - beta of version 1.1 is available

10/07/2000 - Version 1.0 is now available

10/03/2000 - Some people observed Outlook lock-ups and
access violations on startup. Hopefully it is fixed for good. If you still see
some weirdness or outright bugs please let me know ASAP.

10/02/2000 - IMessage window attachments and recipients
selections were incorrect: e.g. if message has 2 attachments and 2 recipients
and first attachment and second recipient are selected, opening first attachment
would actually open a second attachment, opening second recipient would open
first recipient. Duh!

When no message was selected in Outlook (e.g. click on a folder
in the treeview), clicking Item or IMessage buttons would open two
windows for that folder instead. Now Item and IMessage buttons are
correctly grayed out if no message is selected.

Tools | Options dialog in Outlook has two OutlookSpy tabs.
Accessing one of the tabs causes access violation.