我正在 ATL(无 MFC)中编写 Windows 资源管理器预览处理程序。除了我认为与权限不足有关的以下问题外,它的工作正常:
- 基于 CDialogImpl 的对话框(基于资源)在调用 DoModal() 后不显示。
- ShellExecute(... " http://www.someurl.com ) 不会打开默认浏览器。
- 我的 Logger::Log() 方法执行,但我没有看到任何写入日志文件的内容。
DoModal() 调用后 GetLastError() 返回 5 (ACCESS_DENIED) 但我不确定是什么。对 DoModal() 的调用是从上下文菜单处理程序进行的。
调用 ShellExecute 时会显示“Google Chrome 无响应,立即重新启动?” 对话。单击“是”将关闭 Chrome,但永远不会启动它,单击“否”则不执行任何操作。ShellExecuteEx 也一样。
ShellExecute(NULL, _T("open"), _T("http://www.google.com"), NULL, NULL, SW_SHOWNORMAL)
问题似乎与预览在 PREVHOST.EXE 中运行的处理程序的权限不足有关。文件日志在我的缩略图处理程序中写得很好,但在这个预览处理程序中却没有。在 PREVHOST.EXE 下运行时可以执行的操作是否有任何限制?有任何想法吗?
提前致谢。