Welcome to MSDN Blogs Sign in | Join | Help

March 2009 - Posts

EnumProtocols and Win7

Revisiting the EnumProtocols bug (where EnumProtocols always returns –1 and GetLastError returns ERROR_INVALID_DATATYPE (0x0000070C == 1804)): I had a chance to test this out on Win 7 beta recently. I’m happy to report this issue appears to be fixed.
Posted by Stephen Griffin | 0 Comments
Filed under: ,

The Microsoft Office Outlook Connector Kills Winsock

It’s true. Kills it. Kills it dead. Ok – maybe that’s a bit strong. Here’s the issue. If you installed the Microsoft Office Outlook Connector , then ran an application (other than Outlook) which uses both MAPI and Winsock, the Winsock portion of your

Outlook Security Labels

We don’t get many calls here in Developer Support asking for help writing Security Labels for Outlook, but those calls we do get have always been difficult to work. The primary reason for this difficulty is the only documentation we had for creating a

CDO and the Euro

We had a customer who used CDO to create appointments and send meeting requests. Since they were operating in Europe, it wasn’t unusual for these items to have the E uro symbol (€) in the body of a meeting. When they would send the appointment, if the

Try Not To Query All Rows

I wanted to take a look at HrQueryAllRows today. This is a popular function, especially among novice MAPI programmers. It seems ideal – you can pass your tag array, restriction, sort order all to one function and get all the rows back in one call. However,

UST and Long File Names

I think this will be the last article to come from James’ post on debugging MAPI (previous posts here , here , and here ). This last one bit me when I was trying to gather a UST trace from a customer. Here’s the deal: The image file name associated with

March 2009 Release of MFCMAPI

The March 2009 Release (build 6.0.0.1012) is live: http://mfcmapi.codeplex.com . Note the new URL – the old one still works. At the urging of Jason , I’ve added parsing of entry IDs per the protocol docs . Here's a change list - see the Issue Tracker
Posted by Stephen Griffin | 3 Comments
Filed under: , ,

UST and 64 Bit Machines

Digging more into lessons learned from James’ blog on analyzing memory usage (my first two articles are here and here ). Today we take a side trip into 64 vs. 32 bit. While we were working on this issue, I decided to get some UST enabled dumps of MFCMAPI

Recognizing MAPI Allocated Memory

Continuing our look at lessons learned from James’ article on the MAPI memory leak , we look at the memory that James recognized as MAPI properties. How did he figure this out? As a refresher, here’s what the memory looked like: 0:000> !heap -p -a
Posted by Stephen Griffin | 3 Comments
Filed under: , ,

Google Analytics

With AdCenter Analytics closing up shop , I've been forced to switch over to Google Analytics to track my blog. For now, I've opted out of sharing any of my information. This is my first experience with Google's program. I'm hoping you won't see any changes
Posted by Stephen Griffin | 1 Comments
Filed under: ,

MAPI and User Mode Stack Tracing

James wrote up a good article on analyzing a MAPI memory leak using user mode stack tracing . I wanted to highlight some points he made. Let’s look at some !heap output from one of my recent cases (using only public symbols here): 0:000> !heap -p -a
Posted by Stephen Griffin | 4 Comments
Filed under: , ,

Fast Shutdown and the Wrapped PST

The PST provider in Outlook 2007 supports Fast Shutdown . The Wrapped PST sample is built by wrapping objects from the PST provider. Ergo, if a provider built on the Wrapped PST model does not intercept queries for IID_IMAPIClientShutdown, it supports

Crash Running MFCMAPI Overnight

So – one of my teammates tells me that if he leaves MFCMAPI running overnight, it has usually crashed by the time he comes in the next morning. We got a few dumps, but they were inconclusive since the stacks were completely different every time. Since
Posted by Stephen Griffin | 5 Comments
Filed under: , ,

MrXP Rules (At Least When You Tell It To)

I’m repeating myself – I did use a variation on this title before. In this case, suppose you’re using a custom transport provider, like MrXP , and you’re delivering to a regular (not wrapped) PST. In Outlook 2003, this worked great. If you had rules set

Kernel Debugging MFCMAPI

I noticed recently that one on of my machines, whenever I ran MFCMAPI and displayed one of my CEditor dialogs, the whole machine froze for 1 to several minutes. I figured this would be a fun opportunity to practice my kernel debugging skills and share

Unaligned Data and the PST Provider

I just wanted to let you know about a problem we’ve found with the February update for Outlook 2007 . If you’ve got code that calls ConfigureMsgService for the PST provider, and you’re passing PR_PST_PW_SZ_OLD (or PR_PST_PW_SZ_NEW) you might run into

Reading an RTF Stream

Suppose you’ve gotten a stream from WrapCompressedRTFStream and want to read what’s in it. Your code might look something like this: #define MAXBYTES 256 void ProcessStream(LPSTREAM lpStream) { HRESULT hRes = S_OK; BYTE bBuf[MAXBYTES]; ULONG ulNumBytes

Fastest Shutdown In The West

I previously wrote about some changes the development team had in mind for Outlook 2007 SP2 in the area of shutdown. The change discussed there, known as Shutdown With External References, allows Outlook to shut down completely even if there are outstanding
 
Page view tracker