如何获取当前窗口id或outlook新邮件窗口



我在outlook新消息窗口中有一个ribbon按钮。这个按钮的作用是……如果有人按下按钮,那么一个标志将被设置为true。

在邮件发送期间,我想实现基于该标志的自定义逻辑。

但问题是,如果我打开两个窗口,那么标志值保持当前窗口的状态,这是正常的。

我如何获得当前窗口的ItemSend事件或当前窗口的标志值。

Outlook不为其窗口分配任何ID。相反,您可以使用窗口句柄(Windows API)。要获得句柄,你需要将检查器或资源管理器窗口强制转换为IOLEWindow接口,并使用getwwindow方法来检索句柄。

还可以使用Inspector类的CurrentItem属性来获取显示的Outlook项目对象。保存的项具有EntryID属性值集,允许获取对象的唯一EntryID。以下是MSDN的声明:

当在其存储中创建项目时,MAPI存储提供程序分配一个唯一的ID字符串。因此,在保存或发送Outlook项目之前,不会为其设置EntryID属性。当项目移动到另一个存储时,例如,从收件箱移动到Microsoft Exchange Server公用文件夹,或从一个个人文件夹(.pst)文件移动到另一个.pst文件时,条目ID会发生变化。解决方案不应该依赖于唯一的EntryID属性,除非项不会被移动。

你也可以考虑添加一个带有你自己ID的user属性。

在按钮的事件处理程序中,向您传递Control参数(类型为IRibbonControl)。阅读虹膜控制。属性并将其强制转换为Inspector对象。然后你就可以读督察了。CurrentItem属性来检索正在显示的项。

也可以使用Application。ActiveInspector(然后是inspector . currentitem)——当用户点击你的按钮时,检查器应该是活动的,因此是Application。ActiveInspector将检索驻留按钮的检查器。

最新更新