Windows Mobile 6.5
A version of this page is also available for

The Sort method sorts items within an item collection, based on an item property.

   BSTR pwszProperty,
   VARIANT_BOOL fDescending


[in] Reference to the item property to sort on. This is a NULL-terminated Unicode string. For information on the BSTR type, see BSTR.


[in] VARIANT_TRUE to sort in descending order; VARIANT_FALSE to sort in ascending order. For information about the VARIANT_BOOL type, see the union member of the PROPVARIANT structure.

This method returns the standard values E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED, and E_FAIL, as well as the following:


The method completed successfully.

If you want a particular sort order, specify it in IPOutlookItemCollection::Sort; do not rely on the default sort order.

You cannot sort on the following properties: Categories, BodyInk, ReminderTime, and Recipients.

The VARIANT_BOOL data type (also known as VT_BOOL) uses the value -1 to represent TRUE and 0 to represent FALSE. It is defined in the wtypes.h header file in the following manner:

typedef short VARIANT_BOOL;

A common programming error occurs when, for readability purposes, you want to set a VARIANT_BOOL value to TRUE or FALSE. You can achieve the same effect by using the aliases VARIANT_TRUE and VARIANT_FALSE, which are also defined in the wtypes.h header file.

#define VARIANT_TRUE  ((VARIANT_BOOL)0xffff)

The default property used to order an item collection depends on the data type, and on the Windows Mobile platform version.

The following code shows how to sort items in ascending order.

To make the following code example easier to read, security checking and error handling are not included. This code example should not be used in a release configuration unless it has been modified to include them.
void SortItems(IPOutlookApp * polApp)
    IPOutlookItemCollection * pItems;
    IFolder * pFolder;

    // Get the Contacts collection.
    polApp->GetDefaultFolder(olFolderContacts, &pFolder);

    // Sort the Contact items by timezone.
    pItems->Sort(TEXT "[TimezoneIndex]", FALSE);

    // Release objects.

Windows Embedded CEWindows CE 2.0 and later
Windows MobileWindows Mobile Version 5.0 and later

Community Additions