Short test harness to leak MAPI
Calls MAPIInitialize and exits without calling MAPIUninitialize. Useful for demonstrating the dangers of leaking MAPI.
C:\src\LeakMAPI\Debug>leakmapi ?
LeakMAPI - MAPI leak tester
Test various ways of leaking MAPI.
Usage: LeakMAPI [fastshutdown] [loop] [uninit]
Options:
fastshutdown Run DoFastShutdown.
loop Run MAPIInitialize in a loop
unint Run MAPIUninitialize.
C:\src\LeakMAPI\Debug>leakmapi
Initializing MAPI
Exiting
Use (https://msdn.microsoft.com/en-us/library/office/dd941319.aspx)[DoFastShutdown]. According to (https://msdn.microsoft.com/en-us/library/office/dd941346.aspx)[Best Practices], we should not call MAPIUninitialize.
C:\src\LeakMAPI\Debug>leakmapi fastshutdown
Will run DoFastShutdown.
Initializing MAPI
Setting up for DoFastShutdown
MAPILogonEx returned 0x00000000
QueryInterface(IID_IMAPIClientShutdown) returned 0x00000000
QueryFastShutdown returned 0x00000000
DoFastShutdown returned 0x00000000
Exiting
No leak here.
C:\src\LeakMAPI\Debug>leakmapi uninit
Will run MAPIUninitialize.
Initializing MAPI
Uninitializing MAPI
Exiting
Might crash on Windows 7
C:\src\LeakMAPI\Debug>LeakMAPI.exe loop
Will run MAPIInitialize in a loop.
Step 1
Initializing MAPI
Uninitializing MAPI
Step 2
Initializing MAPI
Uninitializing MAPI
etc...