Microsoft KB Archive/177622

From BetaArchive Wiki

Article ID: 177622

Article Last Modified on 3/21/2005



APPLIES TO

  • Microsoft Exchange Development Kit 5.5



This article was previously published under Q177622

SUMMARY

Restrictions are used by Exchange to limit the rows returned in a table. Restrictions are used throughout the product for determining the conditions for rules, searching for messages, and for creating views of messages. This article describes how to create a restriction and provides a code example. The code provided is not complete. It assumes that you already have a handle to a MAPI session, a pointer to the message store, a pointer to the folder the rule is to be applied to, and that you will release the appropriate structures before exiting the function.

MORE INFORMATION

Steps for Creating a Restriction

  1. Create a string that contains the property and the value you want to look for.
  2. Call HrStringToRestriction() with the restriction string, NULL, and a pointer to a restriction. NULL for the second parameter lets HrStringToRestriction() create the restriction and allocate memory for the restriction.

          LPSRestriction   lpRes =         NULL;
          hr = CreateRestriction(lpRes);
    
          HRESULT CreateRestriction(LPSRestriction lpRes)
          {
             HRESULT hr = NULL;
    
             //  hr = HrStringToRestriction("PR_SENDER_NAME } \"Bugs Bunny\"",
             //                             NULL ,
             //                             &lpRes);
             hr = HrStringToRestriction("PR_SUBJECT } \"Test\"",
                             NULL , &lpRes);
    
             if (FAILED(hr))
             {
                MessageBox(NULL,"Restriction Failed",NULL,MB_OK);
                return hr;
             }
    
             if (lpRes->rt = RES_CONTENT)
             {
               lpRes->res.resContent.ulFuzzyLevel =   FL_SUBSTRING   |
                                     FL_IGNORECASE  |
                                     FL_LOOSE;
             }
             return hr;
          }
    
                            


    Note: To use this code, the following libraries and headers are required:

    • Mapi32.lib
    • Uuid.lib
    • Version.lib
    • Edkmapi.lib
    • Edkutils.lib
    • Addrlkup.lib
    • Edkguid.lib
    • Rulecls.lib
    • Edkdebug.lib
    • Edk.h


REFERENCES

For more information, please see the following topics in the Microsoft Developer Network Library (MSDN). These topics can be found in the Win32 Messaging (MAPI) section of the Platform SDK:

  • Starting a MAPI Session
  • Opening a Message Store
  • Opening the Default Message Store
  • Opening a Folder



Additional query words: Restriction Restrictions HrStringToRestriction

Keywords: kbhowto kbapi kbmsg kbcode KB177622