Tag Archives: encoding

Outlook Dev: Algorithms to calculate the Store Hash Number and encode EntryID, AttachmentId


In MSDN, I came across the following two posts as part of Store API which talks about two algorithms that Microsoft Office Outlook uses,

Algorithm to Calculate the Store Hash Number to calculate a store hash number based on the store mapping signature or entry ID and the store file name…
Algorithm to Encode Entry IDs and Attachment IDs to Encode Entry IDs and Attachment IDs

Gotcha – PermanentURL & WebDAV Series # 2 – How to access flat URLs using CDO/MAPI


With continuation to previous blog post, this article describes how to access items in a WebDAV application that are identified by using MAPI. The WebDAV application uses flat URLs to access items or folders.

How to use flat URLs to access items by using MAPI ?

  1. Read property tag 0x670E001E by using MAPI on the folder or item to access.

  2. Save the returned value in a variable. The value will resemble the following:

    /-FlatUrlSpace-/ca09cf9efaad754e8a85909b04bb255c-12ee443

  3. Construct a URL that is used to access the folder or item that is using the flat URL. The URL will resemble the following:

    http://server/exchange/mailbox/-FlatUrlSpace-/ca09cf9efaad754e8a85909b04bb255c-12ee443

  4. Use the URL in a WebDAV call to access an item.

Best use of Flat URL usage in the Programming

Flat URLs do not have encoding and escaping rules and will work for folders and items in most DAV operations, with the following exceptions:

  • As destinations of MOVE or COPY operation
  • As a source for a DELETE
  • For Outlook Web Access URL commands; for example, ?cmd=[myCommand].

Use this property when you are stepping out of CDO 1.2.1 or MAPI code into WebDAV. The HREF in WebDAV is usually created from the subject that was typed in Microsoft Outlook. The subject in Outlook can contain characters that are encoded for use with DAV. This encoding resembles URL encoding. Instead of reverse engineering the encoding, use the flat URL to get the item.

Hope this helps.