MORE INFORMATION
The
following file is available for download from the Microsoft Download
Center:
For
additional information about how to download Microsoft Support files, click the
following article number to view the article in the Microsoft Knowledge Base:
119591 How to Obtain Microsoft Support Files from Online Services
Microsoft scanned this file for viruses. Microsoft used the most
current virus-detection software that was available on the date that the file
was posted. The file is stored on security-enhanced servers that help to
prevent any unauthorized changes to the file.
The Mapiasst.exe sample, contains the
following two files:
The header file, Mapiasst.h, was written to assist messaging
developers in writing and debugging their applications.
Mapiasst.h
includes the following three debug macros:
MAPI_ASSERT(HRESULT)
Pass MAPI_ASSERT a HRESULT and MAPI_ASSERT gives you basic error
output and returns you to the debugger at the point where the error occurred.
Sample Output:
**ASSERT! File : C:\Srccode\MsgStores\Main.Cpp
Line : 29
Value : 0x80040111
MAPI_ASSERT_EX(HRESULT)
MAPI_ASSERT_EX works similar to MAPI_ASSERT and gives you the
same information along with the meaning of the HRESULT error code. Again, you
will be returned back to the debugger at the point of error.
Sample
Output:
**ASSERT! File : C:\Srccode\MsgStores\Main.Cpp
Line : 29
Value : 0x80040111
Meaning : MAPI_E_LOGON_FAILED
SHOWTABLE(LPMAPITABLE)
SHOWTABLE uses the Tblvu32.dll function ViewMapiTable() to
display the passed in MAPITable (LPMAPITABLE) in a GUI dialog box. This is a
good tool for debugging your MAPITables.
NOTE: Tblvu32.dll is available from the Microsoft FTP site at
ftp.microsoft.com\Developr\Mapi\Samples\Mfcapps.zip)
Here is a short
sample of how these debugging routines may be used:
/////// MAIN.CPP ////////
void main()
{
HRESULT hr = S_OK;
LPMAPISESSION lpSession = NULL;
LPMAPITABLE lptMsgStores = NULL;
// Init MAPI
hr = MAPIInitialize(0);
MAPI_ASSERT_EX(hr);
// Logon to Extended MAPI session
hr = MAPILogonEx((ULONG)GetActiveWindow(),
//"OFFLINE"
NULL,
NULL,
NULL,
&lpSession);
MAPI_ASSERT_EX(hr);
// Get a table of Message Stores from the Session.
hr = lpSession->GetMsgStoresTable(NULL, &lptMsgStores);
SHOWTABLE(lptMsgStores);
MAPI_ASSERT_EX(hr);
}