首页 > 解决方案 > 如何使用 OLE 自动化启动 OneNote 并将其置于前台?

问题描述

我一直在努力使用 OLE 自动化将 OneNote 带到前台。当我运行以下代码时,OneNote 在后台加载,我无法将其带到前台。我在尝试启动 Word、Excel、PowerPoint 和 Edge 并将其置于前台时没有遇到任何问题,但 OneNote 的行为有所不同。关于 OneNote 使用 OLE 自动化的信息非常少,并且某些页面不再存在。

任何帮助,将不胜感激。您可以从这里下载 Onenote14-x86.h 文件

#include "stdafx.h"
#include "onenote14-x86.h"

 int _tmain(int argc, _TCHAR* argv[])

 {    
 CoInitialize(NULL);

 IApplication* piOneNote;

 CoCreateInstance(__uuidof(Application), NULL, CLSCTX_LOCAL_SERVER, __uuidof(IApplication), (void**)&piOneNote);

 if(piOneNote)
 {

 BSTR temp; 

 HRESULT hr = piOneNote->GetHierarchy(NULL, hsNotebooks, &temp);

 } 
 }

标签: c++apicomoleonenote

解决方案


您可以使用此调用创建一个新窗口

piOneNote->NavigateTo(NULL, NULL, VARIANT_TRUE);

推荐阅读