リモート ビューアーの作成
適用対象: Outlook 2013 | Outlook 2016
リモート ビューアーは、別のコンピューターに格納されているメッセージへの制御されたアクセスを提供するクライアント アプリケーションのウィンドウです。 この制御されたアクセスは、低速の通信リンクで動作する可能性があります。 ユーザーがフォルダーを開くたびに使用可能なメッセージの完全な選択を取得するのではなく、最初にヘッダーのみが表示されます。 その後、ユーザーはヘッダーから、完全に表示するメッセージを選択します。 リモート ビューアー クライアントでは、ユーザーがダウンロードする前にメッセージを削除できます。
リモートで格納されているメッセージのヘッダーを取得するには
IMAPISession::GetStatusTable を呼び出して、状態テーブルにアクセスします。
IMAPITable::Restrict を呼び出して、状態テーブルを、PR_RESOURCE_TYPE (PidTagResourceType) 列がMAPI_TRANSPORT_PROVIDERに設定されている行のみに制限します。
IMAPITable::SetColumns を呼び出して、状態テーブルに次の列を含めます。
- PR_ENTRYID (PidTagEntryId)
- PR_RESOURCE_METHODS (PidTagResourceMethods)
- PR_RESOURCE_TYPE、 PR_PROVIDER_DISPLAY (PidTagProviderDisplay)
- PR_STATUS_CODE (PidTagStatusCode)。
HrQueryAllRows を呼び出して、状態テーブル内のすべての行を取得します。
IMAPISession::OpenEntry への呼び出しで、テーブル内の各行のエントリ識別子を渡します。 このインターフェイスは MAPI スプーラーのプロセス コンテキストからクライアントのプロセス コンテキストにマーシャリングされるため、通常はアドレス帳またはメッセージ ストア プロバイダーから取得されるインターフェイスとは異なり、マルチスレッドに関する問題の方が重要です。
状態オブジェクトの IUnknown::QueryInterface メソッドを呼び出し、IID_IMAPIFolderをインターフェイス識別子として渡してリモート フォルダーを取得します。 リモート フォルダーは完全なフォルダー実装ではありません。フォルダーのメソッドとプロパティのサブセットのみがサポートされます。 必要なメソッドの 1 つである IMAPIProp::GetProps では、次のプロパティの取得がサポートされています。
プロパティ 値 PR_ACCESS (PidTagAccess) PR_ACCESS_LEVEL (PidTagAccessLevel) PR_CONTENT_COUNT (PidTagContentCount) PR_ASSOC_CONTENT_COUNT (PidTagAssociatedContentCount) PR_FOLDER_TYPE (PidTagFolderType) PR_OBJECT_TYPE (PidTagObjectType) PR_SUBFOLDERS (PidTagSubfolders) PR_CREATION_TIME (PidTagCreationTime) PR_DISPLAY_NAME (PidTagDisplayName) PR_DISPLAY_TYPE (PidTagDisplayType) リモート フォルダーでは、 IMAPIProp::GetPropList、 IMAPIContainer::GetContentsTable、 IMAPIFolder::SetMessageStatus メソッドもサポートする必要があります。 リモート フォルダーのコンテンツ テーブルでは、通常、次の列がサポートされます。
Column 値 PR_DISPLAY_TO (PidTagDisplayTo) PR_ENTRYID PR_HASATTACH (PidTagHasAttachments) PR_IMPORTANCE (PidTagImportance) PR_INSTANCE_KEY (PidTagInstanceKey) PR_MESSAGE_CLASS (PidTagMessageClass) PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime) PR_MESSAGE_FLAGS (PidTagMessageFlags) PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime) PR_MESSAGE_SIZE (PidTagMessageSize) PR_MSG_STATUS (PidTagMessageStatus) PR_OBJECT_TYPE PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject) PR_PRIORITY (PidTagPriority) PR_SENDER_NAME (PidTagSenderName) PR_SENSITIVITY (PidTagSensitivity) PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName) PR_SUBJECT (PidTagSubject) 転送オプションの 1 つが初めて選択された場合は、トランスポート プロバイダーの IMAPIStatus::ValidateState メソッドを呼び出します。 ユーザー インターフェイスを表示できるようにするには、REFRESH_XP_HEADER_CACHEまたはPROCESS_XP_HEADER_CACHEプロセス フラグとSHOW_XP_SSESSION_UI フラグを設定する必要があります。
注:
ダウンロードまたは削除のために特定のメッセージ ヘッダーをマークするために、クライアントは IMAPIFolder::SetMessageStatus を呼び出し、MSGSTATUS_REMOTE_DOWNLOAD または MSGSTATUS_REMOTE_DELETE フラグを設定します。