IMessage::SetReadFlag

適用対象: Outlook 2013 | Outlook 2016

メッセージのPR_MESSAGE_FLAGS (PidTagMessageFlags) プロパティのMSGFLAG_READ フラグを設定またはクリアし、読み取りレポートの送信を管理します。

HRESULT SetReadFlag(
  ULONG ulFlags
);

パラメーター

ulFlags

[in]メッセージの読み取りフラグの設定を制御するフラグのビットマスク。つまり、PR_MESSAGE_FLAGS プロパティのメッセージの MSGFLAG_READ フラグ、および読み取りレポートの処理。 次のフラグを設定できます。

  • CLEAR_READ_FLAG: MSGFLAG_READ フラグは PR_MESSAGE_FLAGS でクリアし、読み取りレポートを送信しないでください。

  • CLEAR_NRN_PENDING: PR_MESSAGE_FLAGSでMSGFLAG_NRN_PENDING フラグをクリアし、読み取り以外のレポートを送信しないでください。

  • CLEAR_RN_PENDING: PR_MESSAGE_FLAGSでMSGFLAG_RN_PENDING フラグをクリアし、読み取りレポートを送信しないでください。

  • GENERATE_RECEIPT_ONLY: 保留中の場合は読み取りレポートを送信する必要がありますが、MSGFLAG_READ フラグの状態は変更しないでください。

  • MAPI_DEFERRED_ERRORS: 操作が完了する前に 、SetReadFlag が正常に返されるようにします。

  • SUPPRESS_RECEIPT: 読み取りレポートが要求され、この呼び出しによってメッセージの状態が未読から読み取りに変更された場合、保留中の読み取りレポートを取り消す必要があります。 この呼び出しによってメッセージの状態が変更されない場合、メッセージ ストア プロバイダーはこのフラグを無視できます。

戻り値

S_OK

メッセージの読み取りフラグが正常に設定またはクリアされました。

MAPI_E_NO_SUPPRESS

メッセージ ストア プロバイダーは、読み取りレポートの抑制をサポートしていません。

MAPI_E_INVALID_PARAMETER

ulFlags パラメーターには、次のいずれかのフラグの組み合わせが設定されています。

  • SUPPRESS_RECEIPT |CLEAR_READ_FLAG

  • SUPPRESS_RECEIPT |CLEAR_READ_FLAG |GENERATE_RECEIPT_ONLY

  • CLEAR_READ_FLAG |GENERATE_RECEIPT_ONLY

注釈

IMessage::SetReadFlag メソッドは、PR_MESSAGE_FLAGS プロパティでメッセージのMSGFLAG_READ フラグを設定またはクリアし、IMAPIProp::SaveChanges を呼び出してメッセージを保存します。 MSGFLAG_READ フラグを設定すると、メッセージが読み取られたとマークされます。これは、必ずしも目的の受信者がメッセージを実際に読み取ったことを示すものではありません。

SetReadFlags は、 読み取りレポートの送信も管理します。 読み取りレポートは、送信者が要求した場合にのみ送信されます。

読み取りフラグは、次の場合に変更できません。

  • 存在しないメッセージ。

  • 他の場所に移動されたメッセージ。

  • 読み取り/書き込みアクセス許可で開いているメッセージ。

  • 現在送信されているメッセージ。

呼び出し側への注意

ulFlags パラメーターにフラグが設定されていない場合は、次の規則が適用されます。

  • MSGFLAG_READが既に設定されている場合は、何も行わないでください。

  • MSGFLAG_READが設定されていない場合は、それを設定し、 PR_READ_RECEIPT_REQUESTED (PidTagReadReceiptRequested) プロパティが設定されている場合は、保留中の読み取りレポートを送信します。

SUPPRESS_RECEIPTフラグとGENERATE_RECEIPT_ONLYフラグの両方が設定されている場合は、PR_READ_RECEIPT_REQUESTED ビット (設定されている場合) をクリアし、読み取りレポートを送信しないでください。

SUPPRESS_RECEIPT フラグが設定されている場合:

  • MSGFLAG_READが既に設定されている場合は、何も行わないでください。

  • MSGFLAG_READが設定されていない場合は、設定し、保留中の読み取りレポートを取り消します。

CLEAR_READ_FLAG フラグが設定されている場合は、各メッセージの PR_MESSAGE_FLAGS プロパティで MSGFLAG_READ フラグをクリアし、読み取りレポートを送信しません。

GENERATE_RECEIPT_ONLY フラグが設定されたら、保留中の読み取りレポートを送信します。 MSGFLAG_READを設定またはクリアしないでください。

SUPPRESS_RECEIPTフラグとGENERATE_RECEIPT_ONLYフラグの両方が設定されている場合は、PR_READ_RECEIPT_REQUESTED プロパティが設定されていて、読み取りレポートを送信しない場合は FALSE に設定します。

特定の条件下で読み取りレポートの生成を抑制することで、レポートの動作を最適化できます。 ただし、レポートの抑制をサポートせず、クライアントが SUPPRESS_RECEIPT フラグ を設定して SetReadFlag を呼び出す場合は、MAPI_E_NO_SUPPRESSを返します。

MFCMAPI リファレンス

MFCMAPI のサンプル コードについては、次の表を参照してください。

ファイル 関数 コメント
FolderDlg.cpp
CFolderDlg::OnSetReadFlag
MFCMAPI では 、IMessage::SetReadFlag メソッドを使用して、選択したメッセージに対して読み取りフラグを設定します。

関連項目