如何使用OLE自动化启动OneNote并将其置于前台?

问题描述

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

任何帮助将不胜感激。您可以从here

下载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);

 } 
 }

解决方法

您可以通过此调用创建新窗口

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