Click to Rate and Give Feedback
MSDN
MSDN Library
Office Development
Outlook 2007
Concepts
Tables
 Provider Tables

  Switch on low bandwidth view
Community Content
In this section
Statistics Annotations (0)
Provider Tables

A provider table contains information about service providers. There are two different provider tables, both implemented by MAPI and used by clients. The first table, accessed by calling the IMsgServiceAdmin::GetProviderTable method, holds information about all of the providers for the current profile. The second table, accessed through IProviderAdmin::GetProviderTable, creates a table that stores information about all of the service providers for a message service.

These two tables have another difference. The provider table available through IMsgServiceAdmin::GetProviderTable contains only rows that represent service providers while the table available through IProviderAdmin::GetProviderTable may include rows that represent additional information associated with a service provider. This extra information is added to the profile with the "Sections" keyword of MAPISVC.INF. When a provider has extra profile sections, it stores the MAPIUID values for these sections in the PR_SERVICE_EXTRA_UIDS (PidTagServiceExtraUids) property. PR_SERVICE_EXTRA_UIDS is saved in the message service profile section.

The following properties make up the required column set in both types of provider tables:

PR_INSTANCE_KEY (PidTagInstanceKey)

PR_DISPLAY_NAME (PidTagDisplayName)

PR_PROVIDER_DISPLAY (PidTagProviderDisplay)

PR_PROVIDER_DLL_NAME (PidTagProviderDllName)

PR_PROVIDER_ORDINAL (PidTagProviderOrdinal)

PR_PROVIDER_UID (PidTagProviderUid)

PR_RESOURCE_FLAGS (PidTagResourceFlags)

PR_RESOURCE_TYPE (PidTagResourceType)

PR_SERVICE_NAME (PidTagServiceName)

PR_SERVICE_UID (PidTagServiceUid)

The provider table can be used to display the current transport order or to change it. To display the current order, build a restriction to retrieve only those rows with the PR_RESOURCE_TYPE property set to MAPI_TRANSPORT_PROVIDER. Then use PR_PROVIDER_ORDINAL as a sort key to sort the table and retrieve all the rows with either the IMAPITable::QueryRows method or the HrQueryAllRows function.

To change the transport order, apply the same restriction and retrieve the rows. Then create an array of values from the PR_PROVIDER_UID property that represents the unique identifiers for the transport providers. When the identifiers are in the desired order, pass them to the IMsgServiceAdmin::MsgServiceTransportOrder method.

After a provider table has been made available, it will not reflect subsequent changes, such as the addition or deletion of a provider.

See Also

Concepts

MAPI Tables

Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker