次の方法で共有


リモート ビューアーの作成

適用対象: Outlook 2013 | Outlook 2016

リモート ビューアーは、別のコンピューターに格納されているメッセージへの制御されたアクセスを提供するクライアント アプリケーションのウィンドウです。 この制御されたアクセスは、低速の通信リンクで動作する可能性があります。 ユーザーがフォルダーを開くたびに使用可能なメッセージの完全な選択を取得するのではなく、最初にヘッダーのみが表示されます。 その後、ユーザーはヘッダーから、完全に表示するメッセージを選択します。 リモート ビューアー クライアントでは、ユーザーがダウンロードする前にメッセージを削除できます。

リモートで格納されているメッセージのヘッダーを取得するには

  1. IMAPISession::GetStatusTable を呼び出して、状態テーブルにアクセスします。

  2. IMAPITable::Restrict を呼び出して、状態テーブルを、PR_RESOURCE_TYPE (PidTagResourceType) 列がMAPI_TRANSPORT_PROVIDERに設定されている行のみに制限します。

  3. IMAPITable::SetColumns を呼び出して、状態テーブルに次の列を含めます。

  4. HrQueryAllRows を呼び出して、状態テーブル内のすべての行を取得します。

  5. IMAPISession::OpenEntry への呼び出しで、テーブル内の各行のエントリ識別子を渡します。 このインターフェイスは MAPI スプーラーのプロセス コンテキストからクライアントのプロセス コンテキストにマーシャリングされるため、通常はアドレス帳またはメッセージ ストア プロバイダーから取得されるインターフェイスとは異なり、マルチスレッドに関する問題の方が重要です。

  6. 状態オブジェクトの 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::GetPropListIMAPIContainer::GetContentsTableIMAPIFolder::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)
  7. 転送オプションの 1 つが初めて選択された場合は、トランスポート プロバイダーの IMAPIStatus::ValidateState メソッドを呼び出します。 ユーザー インターフェイスを表示できるようにするには、REFRESH_XP_HEADER_CACHEまたはPROCESS_XP_HEADER_CACHEプロセス フラグとSHOW_XP_SSESSION_UI フラグを設定する必要があります。

    注:

    ダウンロードまたは削除のために特定のメッセージ ヘッダーをマークするために、クライアントは IMAPIFolder::SetMessageStatus を呼び出し、MSGSTATUS_REMOTE_DOWNLOAD または MSGSTATUS_REMOTE_DELETE フラグを設定します。