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 メソッドを使用して、選択したメッセージに対して読み取りフラグを設定します。 |