IMsgServiceAdmin::GetProviderTable

The IMsgServiceAdmin::GetProviderTable method provides access to the provider table, a listing of the service providers in the profile.

Quick Info

See IMsgServiceAdmin : IUnknownAV9KUM.

HRESULT GetProviderTable(

    ULONG ulFlags,

 

    LPMAPITABLE FAR * lppTable

 

   )

 

 

Parameters

ulFlags

[in] Bitmask of flags that controls the type of the string columns returned in the table. The following flag can be set:

MAPI_UNICODE

The string columns are in Unicode format. If the MAPI_UNICODE flag is not set, the string columns are in ANSI format.

lppTable

[out] Pointer to a pointer to the provider table.

 

Return Value

S_OK

The provider table was successfully returned.

 

Remarks

The IMsgServiceAdmin::GetProviderTable method provides access to MAPI s provider table, a table that lists all of the address book, message store, transport, and message hook providers currently installed in the profile.

Unlike the provider table returned through IProviderAdmin::GetProviderTable1.GPUEB, the provider table returned through IMsgServiceAdmin::GetProviderTable cannot include additional rows that represent information associated with one or more service providers in the profile.

Providers that have been deleted, or are in use but have been marked for deletion, are not included in the provider table. Provider tables are static, meaning that subsequent additions to or deletions from the profile are not reflected in the table.

If the profile has no providers, GetProviderTable returns a table with zero rows and the S_OK return value.

Setting the MAPI_UNICODE flag in the ulFlags parameter affects the format of the columns returned from the following IMAPITable methods:

    IMAPITable::QueryColumns2CQT2TO

    IMAPITable::QueryRowsKPHHB

 

This flag also controls the property types in the sort order returned by the IMAPITable::QuerySortOrderEWDPDZ method.

For a complete list of the columns in the provider table, see Provider Table3MD25WE.

Notes to Callers

{bmc bm4.MRB}        To retrieve the rows of a provider table in transport order

  1.  Call IMAPITable::Restrict to impose a property restriction that matches the PR_RESOURCE_TYPE property with MAPI_TRANSPORT_PROVIDER.

  2.  Call IMAPITable::SortTable to sort the table by the PR_PROVIDER_ORDINAL0FB.LM column.

  3.  Call IMAPITable::QueryRows to get the rows of the table.

 

An alternative to these calls is to make a single call to the HrQueryAllRowsDD_DWA function with all of the appropriate data structures passed in.

If you retrieve the PR_SERVICE_UID columns in each of the rows, you can use this array of MAPIUID structures to set the transport order in a call to IMsgServiceAdmin::MsgServiceTransportOrderE2O2GF.

Setting the MAPI_UNICODE flag in the ulFlags parameter does the following:

    Sets the string type to Unicode for data returned for the initial active columns of the provider table by the IMAPITable::QueryColumns2CQT2TO method. The initial active columns for a provider table are those columns the QueryColumns method returns before the provider that contains the table calls the IMAPITable::SetColumns3Y7Z_GF method.

    Sets the string type to Unicode for data returned for the initial active rows of the provider table by QueryRows. The initial active rows for a provider table are those rows QueryRows returns before the provider that contains the table calls SetColumns.

    Controls the property types of the sort order returned by the IMAPITable::QuerySortOrderEWDPDZ method before the client that contains the provider table calls the IMAPITable::SortTableT4L8IE method.

 

See Also

IMsgServiceAdmin::GetMsgServiceTable, IMsgServiceAdmin::MsgServiceTransportOrder, IProviderAdmin::GetProviderTable