When MrMapi is run with -ChildFolders (or any other command that requires a -Folder parameter) and an invalid folder name, it hangs in the final MapiUninitialize().
The cause is in function HrMAPIOpenStoreAndFolder(...), file MMStore.cpp line 161, where the negative hRes value returned by the open folder attempt causes release or return of both the folder and MDB handles to be skipped. The leaked MDB handle then causes the final MapiUninitialize() to hang.
The easiest fix is to simply remove the "if (SUCCEEDED(hr))" check at line 161. The remaining NULL checking is sufficient to prevent any attempt to free an uninitialized MDB and/or folder handle.
The cause is in function HrMAPIOpenStoreAndFolder(...), file MMStore.cpp line 161, where the negative hRes value returned by the open folder attempt causes release or return of both the folder and MDB handles to be skipped. The leaked MDB handle then causes the final MapiUninitialize() to hang.
The easiest fix is to simply remove the "if (SUCCEEDED(hr))" check at line 161. The remaining NULL checking is sufficient to prevent any attempt to free an uninitialized MDB and/or folder handle.