If you would like to report a bug, please send
us an e-mail.
History and Recent Fixes:
10/01/2011 OutlookSpy version 3.0 build
3.0.0.2457
- Added support for Outlook 2010 64 bit
- More symbolic property tags and MAPI structure parsers.
- Numerous stability improvements.
- Updated Extended MAPI headers
for Delphi and FPC.
11/21/2009 OutlookSpy version 2.15 build 2.15.0.453
- Added support for Outlook 2010 (32 bit only).
- More symbolic property tags
- OutlookSpy now requests PT_UNICODE properties rather than P_STRING8 by
default if the object supports Unicode
- Named MAPI properties with Unicode names (MNID_STRING) were being
displayed as ANSI strings.
- Numerous performance and stability fixes.
06/21/2008 OutlookSpy version 2.14 build 2.14.0.437
08/02/2007 OutlookSpy version 2.12 build 2.12.0.427
- OutlookSpy now installs itself as a pure COM add-in rather than an
Exchange Client Extension (ECE) under Outlook 2007.
- OutlookSpy can now be installed using regsvr32.exe under Windows Vista
even if the current user is not an admin and/or UAC is on.
- More Outlook 2007 and Windows Vista specific tweaks.
03/04/2007 OutlookSpy version 2.11 build 2.11.0.432
- More Outlook 2007 and Windows Vista specific tweaks.
01/02/2007 OutlookSpy version 2.11 build 2.11.0.422
- Added full support for the final version of Outlook 2007
- New hex viewer and editor for the binary (PT_BINARY) MAPI properties.
- New script editor ("Script Editor" window and "Script" tab for the
IDispatch-derived objects).
- Several new symbolic MAPI property tags added.
06/21/2006 OutlookSpy version 2.11 build 2.11.0.408
- Added support for Outlook 2007 Beta 2. OutlookSpy has its own ribbon on
the inspectors. It also supports new Outlook 2007 features documented to
this date (http://blogs.msdn.com/stephen%5Fgriffin/).
- 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.
09/18/2005 OutlookSpy version 2.10 build 2.10.0.352
- All GetProps tabs (IMessage, IMAPIFolder, etc)
display DASL property tag names along with the MAPI names (e.g. "urn:schemas:httpmail:subject"
for the PR_SUBJECT property)
- 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.
- Updated IMAPIOfflineMgr and IConverterSession with the
latest updates to these interfaces (http://msdn.microsoft.com/library/?url=/library/en-us/olintapi/html/WelcomeOlintapi_HV01155855.asp?frame=true)
- 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)
- Bug fix: MSG files created by OutlookSpy (IMessage | Save As MSG File)
sometimes mapped named properties incorrectly resulting in MSG files
unreadable by Outlook.
- 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: IDispatch Unicode properties are correctly displayed.
- Bug fix: sometimes GetProps tab on IMessage, IMAPIFolder, etc windows came
up empty.
- Bug fix: under certain conditions if Outlook is installed on a network
drive, OutlookSpy install complained that it cannot find Outlook.
- Bug fix: manually entering an entry id (pasting) in a dialog box displayed
after clicking "Enter Entry Id" on an OpenEntry tab (IMsgStore,
IMAPIFolder, etc) truncated the entered value at 254 characters (127 bytes).
- Bug fix: OpenEntry tabs previously only accepted binary properties dragged
from GetProps tabs; it now allows to drag binary properties from any other tab
(GetContentsTable, GetMsgStoreTable, etc).
- 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).
- IMAPIStatus window now has 3 extra buttons: FlushQueues, SettingsDialog
and ValidateState.
01/30/2003 - OutlookSpy version 2.7 build 2.7.0.268 is
available.
- Bug fix: crash on startup (floating point division by zero) under certain
conditions (version 2.6 and 2.7)
01/26/2003 - OutlookSpy version 2.7 build 2.7.0.265 is
available.
- Several internal improvements and compatibility fixes.
- You can drag and drop MSG file to the GetContentsTable and Associated
Contents tabs of IMAPIFolder.
- Named (>0x8000) properties are now shown with their ids in the
properties list on the GetProps tab.
- You can now open any PT_BINARY or PT_MV_BINARY property (IMAPISession::OpenEntry)
directly from a popup menu on any GetProps tab.
01/11/2003 - OutlookSpy version 2.6 build 2.6.0.252 is
available.
- Bug fix: Access violation when displaying type libraries with function's
return type erroneously specifying a default value (e.g. HTMLDocument::open)
- Bug fix: errors when displaying IDispatch'able objects with type libraries
listing property-put definitions before property-get definitions.
- More symbolic values for the Extended MAPI properties.
12/31/2002 - OutlookSpy version 2.6 build 2.6.0.239 is
available.
- 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.
- OutlookSpy no longer returns ineligible "Access Violaton" script
errors in case of script runtime and/or compile errors.
- For IDispatch'able objects, OutlookSpy will show functions' invoke kind (INVOKE_FUNC,
INVOKE_PROPERTYPUT, etc)
- Bug fix: OutlookSpy could not display write-only properties on
IDispatch'able interfaces.
- 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
09/30/2002 - OutlookSpy version 2.5 build 2.5.0.226 is
available. Small bug fixes mostly
- bug - OutlookSpy was not showing fnevObjectMoved notifications
- bug - OutlookSpy would produce an access violation when accessing search
criteria on PT_MV_STRING8 properties under Exchange Server
- bug - OutlookSpy toolbar on Word inspectors in Outlook 2002 had no icons
- Several symbolic property tags have been added
07/02/2002 - OutlookSpy version 2.5 build 2.5.0.207 is
available. New features:
- 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.
- IMAPISession window: new tab (EnumAddrTypes)
- IAddrBook window: new buttons - GetDefaultDir and GetPAB
- IMessage window: new buttons - IMAPISession::MessageOptions() and
IAddrBook::RecipOptions (on the GetRecipientTable tab)
- IDispatch window (all Outlook OM and CDO objects): Functions
tab now displays function return result type. Function parameter modifiers
are also displayed (in, out, opt, etc).
- 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).
04/22/2002 - OutlookSpy version 2.4 build 2.4.0.182 is
available. New features:
- 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".
- IMsgServiceAdmin profile interface window has an additional button
- OpenProfileSection (pbGlobalProfileSectionGuid). This interface
contains global (common to all services) profile data.
- 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.
07/07/2001 - OutlookSpy version 2.3 build 2.3.0.406 is
available. New features:
- 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
- Search folders (PR_FOLDER_TYPE == FOLDER_SEARCH) window now has an
additional tab - GetSearchCriteria
05/22/2001 - OutlookSpy 2.1 (build 2.1.0.228) is now available. New
features:
- 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.
- OutlookSpy can now browse IStorage interfaces (e.g. select
PR_ATTACH_DATA_OBJ property on IAttach window, click "Open
Property", select IID_IStorage)
- 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.
- IMAPISession window - new AdminServices button
- IABContainer window -new tab PR_CREATE_TEMPLATES (if available).
- IMailUser window - several new tabs: PR_EMS_AB_IS_MEMBER_OF_DL, PR_EMS_AB_MANAGER,
PR_EMS_AB_PUBLIC_DELEGATES, PR_EMS_AB_PUBLIC_DELEGATES_BL, PR_EMS_AB_REPORTS,
PR_DETAILS_TABLE
- IMsgStore window - GetReceiveFolderTable tab
01/18/2001 - updated version 1.3 (build 1.3.0.235) -
fixed: OutlookSpy toolbar does not fit on the screen and buttons on the far
right side of the toolbar become popup buttons and stop functioning.
01/12/2001 - updated version 1.3 (build 1.3.0.231).
Several UI improvements, nothing major: Extended MAPI property tags are shown as
8 bytes (not 4 bytes as previously), OutlookSpy now remembers the style (text
only, image only, text/image) of its buttons when you customize OutlookSpy
toolbar - useful if OutlookSpy toolbar does not fit on your screen.
01/04/2001 - version 1.3 (build 1.3.0.221) is released.
New features:
-
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:
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.
09/30/2000 - Undocking OutlookSpy toolbar in Outlook
97/98 would render toolbar buttons unusable.
09/28/2000 - Original release, ver. 0.9.