Outlook slow opening folders with custom store.

If you are experiencing slow behavior by Outlook, it may be due to crawling.  Crawling in this case refers to when Outlook will go through your folders.  Custom store providers will often run into this issue since they often are providing the ability to store a massive amount of items and crawling kills performance to the point that Outlook almost seems to be hung.


Well to get around this, you should look at disabling crawling. 


1)   You should first read Steve’s article on the subject:


Don't Crawl On Me



2)   Custom store providers must implement functionality for Custom Properties in order for Outlook to work with the no-crawl flags.  Your provider should benefit from the ability to work with custom properties as a side benefit.


Named Properties






To provide any of the store functionality, the store provider must:


·      Implement IMAPIProp

·      Return a valid property tag for any of these properties passed to an IMAPIProp::GetIDsFromNames call.

·      When the property tag for any of these properties is passed to IMAPIProp::GetProps, the store provider must also return the correct property value.

·      Store providers can call HrGetOneProp and HrSetOneProp to get or set these properties.


Supporting Named Properties in Message Stores



Supporting named properties means implementing the IMAPIProp::GetNamesFromIDs and IMAPIProp::GetIDsFromNames methods, and implementing one or more mapping signatures that identify what names go with what property identifiers. For more information, see Defining New MAPI Properties and Supporting Named Properties.


Your message store provider must support named properties if it is to be used as the default message store.


Supporting Named Properties



Named property support is optional for all other service providers. Service providers that do support named properties must implement name-to-identifier mapping in the IMAPIProp::GetNamesFromIDs and IMAPIProp::GetIDsFromNames methods. Clients call GetNamesFromIDs to retrieve the corresponding names for one or more property identifiers in the over 0x8000 range and GetIDsFromNames to either create or retrieve the identifiers for one or more names.


3)   You should look at setting the following flags on your store – be sure to understand what each one is for before setting.  You should be able to see these show-up on the store using a tools such as MFCMAPI.


CrawlSourceSupportMask (to CSM_DO_NOT_CRAWL)
ArchiveSourceSupportMask (to ASM_DO_NOT_ARCHIVE)   
NoFolderScan (to 1)


4)   These crawl flags were added to Outlook at different times.  You should have current service packs installed in order to be sure that they will work.  If you are testing with the minimal patched version of each major version of Outlook, look at Steve’s blog and look at the related links per crawling flag.  If you want to check the version of Outlook you are using against to be sure that it’s at the proper level, be sure to review the link below which tells you how to check your version of Outlook.  One thing that I also do is to check the versions of the DLLs an and other files I have installed against the files listed in the KB related to the hotfix or service pack to be sure that my version of Outlook has the those bits.


How to determine which version of a 2007 Office product is installed




Comments (1)

  1. bienxanh says:

    Hi Dan

    Can you code a webpage , this can show calendar of some exchange account , It’s must work with SSL  

    For example :


    but that web it’s work with ssl

Skip to main content