IMAPIMessageSite::DeleteMessage

适用于:Outlook 2013 | Outlook 2016

删除当前消息。

HRESULT DeleteMessage(
  LPMAPIVIEWCONTEXT pViewContext,
  LPCRECT prcPosRect
);

参数

pViewContext

[in]指向视图上下文对象的指针。

prcPosRect

[in]指向包含当前窗体窗口大小和位置的 RECT 结构的指针。 显示的下一个窗体也使用此窗口矩形。

返回值

S_OK

调用成功,并返回了预期的值。

MAPI_E_NO_SUPPORT

此消息站点不支持此操作。

备注

窗体对象调用 IMAPIMessageSite::D eleteMessage 方法来删除窗体当前显示的消息。

给调用方的说明

返回 DeleteMessage 后,表单对象必须为新邮件检查,如果不存在,则自行关闭。 若要确定 DeleteMessage 所处理的邮件是否已被删除或移动到 “已删除邮件” 文件夹,表单对象可以调用 IMAPIMessageSite::GetSiteStatus 方法来确定是否返回了DELETE_IS_MOVE标志。

针对实现者的说明

如果表单查看器的 DeleteMessage 方法的实现在删除邮件后移动到下一条消息,则实现应调用 IMAPIViewContext::ActivateNext 方法,并在执行实际删除之前传递VCDIR_DELETE标志。 例如,如果表单查看器的 DeleteMessage 实现将已删除邮件 (移动到 “已删除邮件” 文件夹) ,则如果邮件已修改,该实现必须保存对邮件所做的更改。

DeleteMessage 的典型实现执行以下任务:

  1. 如果实现移动消息,它将调用 IPersistMessage::Save 方法,在 pMessage 参数中传递 null,在 fSameAsLoad 参数中传递 true

  2. 它调用 IMAPIViewContext::ActivateNext 方法,在 ulDir 参数中传递 VCDIR_DELETE 标志。

  3. 如果 ActivateNext 调用失败,则返回 。 如果 ActivateNext 返回S_FALSE,它将调用 IPersistMessage::HandsOffMessage 方法。

  4. 它会删除或移动消息。

若要获取窗体窗口使用的 RECT 结构,请调用 Windows GetWindowRect 函数。

有关与表单服务器相关的接口的列表,请参阅 MAPI 表单接口

MFCMAPI 引用

有关 MFCMAPI 示例代码,请参阅下表。

文件 函数 Comment
MyMAPIFormViewer.cpp
CMyMAPIFormViewer::D eleteMessage
未实现。

另请参阅

IMAPIMessageSite::GetSiteStatus

IMAPIViewContext::ActivateNext

IPersistMessage::HandsOffMessage

IPersistMessage::Save

IMAPIMessageSite : IUnknown

MFCMAPI 代码示例

MAPI 表单接口