ステータス ・ テーブルStatus Tables

適用されます: OutlookApplies to: Outlook

ステータス テーブルには、現在のセッションの状態に関連する情報が含まれています。The status table contains information relating to the state of the current session. MAPI とサービス ・ プロバイダーによって提供される情報が含まれるすべての MAPI セッションの状態の 1 つのテーブルがあります。There is one status table for every MAPI session that includes information provided by MAPI and by service providers. MAPI では、3 つの行のデータが用意されています: MAPI のサブシステムに対応する行、行、MAPI スプーラーを無効、および統合アドレス帳の行です。MAPI provides data for three rows: a row for the MAPI subsystem, a row for the MAPI spooler, and a row for the integrated address book. トランスポート プロバイダーは、状態テーブルに状態情報を提供する必要が、ため、すべてのアクティブなトランスポート プロバイダーの 1 つの行があります。Because transport providers are required to supply status information to the status table, there is one row for every active transport provider. アドレス帳、メッセージ ストア プロバイダーは、状態テーブルをサポートするかどうかを選択できます。Address book and message store providers can choose whether to support the status table.

それぞれの行は、別のリソースによって提供されるがため、列のセットは行ごとにそれぞれ異なります。Because each row is provided by a different resource, the set of columns can vary from row to row. ステータスのすべてのオブジェクトが指定する必要がある列のセット、MAPI が提供する列のセットがありません。There is a set of columns that every status object is required to supply and a set of columns that MAPI supplies. サービス プロバイダーは、プロバイダー固有のプロパティを公開するためのこれらのセットに追加できます。A service provider can add to these sets to expose provider-specific properties. たとえば、メッセージ ストア プロバイダーは、 PR_STORE_RECORD_KEY (PidTagStoreRecordKey) が、メッセージ ・ ストアの id をクライアントに提供するのにを追加できます。For example, message store providers might add PR_STORE_RECORD_KEY (PidTagStoreRecordKey) to supply clients with the identifier of their message store. クライアントが使用できる余分な情報の有無の事前知識が必要です。Clients must have advance knowledge of the existence of this extra information to be able to use it.

状態テーブルのすべての行にする必要があるプロパティを次の表に一覧します。The following table lists the properties that must be in every status table row. ステータス オブジェクトの実装は、いくつかのプロパティの他のユーザーは、MAPI によって計算されます。The implementer of the status object provides some of the properties; others are computed by MAPI.

ステータス オブジェクトによって提供されるプロパティProperties provided by status object MAPI によって提供されるプロパティProperties provided by MAPI
PR_DISPLAY_NAME(PidTagDisplayName)PR_DISPLAY_NAME (PidTagDisplayName)
PR_PROVIDER_DLL_NAME(PidTagProviderDllName)PR_PROVIDER_DLL_NAME (PidTagProviderDllName)
PR_STATUS_CODE(PidTagStatusCode)PR_STATUS_CODE (PidTagStatusCode)
PR_RESOURCE_FLAGS(PidTagResourceFlags)PR_RESOURCE_FLAGS (PidTagResourceFlags)
PR_RESOURCE_METHODS(PidTagResourceMethods)PR_RESOURCE_METHODS (PidTagResourceMethods)
PR_RESOURCE_TYPE(PidTagResourceType)PR_RESOURCE_TYPE (PidTagResourceType)

PR_IDENTITY_DISPLAY (PidTagIdentityDisplay)、 PR_IDENTITY_ENTRYID (PidTagIdentityEntryId) とPR_IDENTITY_SEARCH_KEY (に設定する必要があります状態オブジェクトは、id を提供する場合PidTagIdentitySearchKey)、これらのプロパティをテーブルに含めるとします。If the status object provides an identity, it should set PR_IDENTITY_DISPLAY (PidTagIdentityDisplay), PR_IDENTITY_ENTRYID (PidTagIdentityEntryId), and PR_IDENTITY_SEARCH_KEY (PidTagIdentitySearchKey), and include these properties in the table.

4 つのプロパティは、MAPI によってステータス テーブルの行ごとに計算されます。Four properties are computed by MAPI for each status table row:

PR_ENTRYID(PidTagEntryId)PR_ENTRYID (PidTagEntryId)
PR_INSTANCE_KEY(PidTagInstanceKey)PR_INSTANCE_KEY (PidTagInstanceKey)
PR_OBJECT_TYPE(PidTagObjectType)PR_OBJECT_TYPE (PidTagObjectType)
PR_ROWID(PidTagRowid)PR_ROWID (PidTagRowid)

MAPI は、クライアントを開くには、対応する状態オブジェクトを有効にするのには [状態] 行に、エントリ id を割り当てます。MAPI assigns an entry identifier to the status row to enable clients to open the corresponding status object. 行識別子は、状態オブジェクト内のデータを識別するのには、インスタンスのキーが格納されるテーブルの行を識別するのにも割り当てられます。A row identifier is also assigned to identify the row in the table as is an instance key to identify the data in the status object. MAPI_STATUS にPR_OBJECT_TYPEプロパティが設定されています。The PR_OBJECT_TYPE property is set to MAPI_STATUS.

ステータス テーブルにアクセスするには、クライアントは、 IMAPISession::GetStatusTableメソッドを呼び出します。To access the status table, clients call the IMAPISession::GetStatusTable method. この呼び出しは、起動時にすぐにない実行する必要があります。This call should not be made immediately upon startup. GetStatusTableには、トランスポート プロバイダーを初期化するために MAPI スプーラーが、クライアントが、ログオンを完了した後まで延期されている操作を待機するためです。This is because GetStatusTable has to wait for the MAPI spooler to initialize the transport providers, an operation that is postponed until after the client has finished its logon. GetStatusTableは、MAPI スプーラーが起動処理を完了した後、比較的高速な呼び出しです。GetStatusTable is a relatively fast call after the MAPI spooler has completed its startup processing.

テーブルのステータス情報は、状態オブジェクトは、クライアントが接続されているまたはオフライン モードで実行されているかどうかを判断し、プロバイダーの状態を監視するためにアクセスするなど、さまざまな方法で使用できます。Status table information can be used in a variety of ways, such as to access a status object, to determine whether a client is running in a connected or offline mode, and to monitor a provider's state. などのクライアントは、 PR_ENTRYIDプロパティの値をIMAPISession::OpenEntryメソッドに渡すことによって、特定のサービス プロバイダーの状態のオブジェクトを開くことができます。For example, clients can open a specific service provider's status object by passing the value of the PR_ENTRYID property to the IMAPISession::OpenEntry method. 状態オブジェクトには、 IMAPIStatusインターフェイス、サービス プロバイダーのパスワードを変更する、メッセージ キューのフラッシュ、[設定] プロパティ シートを表示またはプロバイダーの状態を直接確認するメソッドを持つインターフェイスがサポートされています。The status object supports the IMAPIStatus interface, an interface that contains methods to change a service provider password, flush the message queue, display a configuration property sheet, or confirm status with a provider directly. テーブルのステータス情報は、時間のかかる操作中に進行状況をクライアントに通知するダイアログ ボックスをビルドするのにも使用できます。Status table information can also be used to build a dialog box to inform clients of progress during a lengthy operation.

状態テーブルをサポートしているサービス プロバイダーを作成し、その行を更新するIMAPISupport::ModifyStatusRowメソッドを使用します。Service providers who do support the status table use the IMAPISupport::ModifyStatusRow method to create and update their row. その行に変更が発生すると、状態テーブルの通知を受信する登録されているシンク オブジェクトに通知する必要がありますすべてを案内します。Whenever a change occurs to their row, all advise sink objects registered to receive status table notifications must be notified. MAPI 通知ユーティリティを使用している各アドバイズ シンクのIMAPIAdviseSink::OnNotifyメソッドを直接呼び出す場合、サービス プロバイダーは、 IMAPISupport::Notifyメソッドを呼び出すことができます。Service providers can call the IMAPISupport::Notify method if they are using the MAPI notification utility or call each advise sink's IMAPIAdviseSink::OnNotify method directly.

関連項目See also

MAPI テーブルMAPI Tables