jjzjj

STDMETHODIMP

全部标签

c++ - VS COM 项目在 32 位编译但在尝试编译 64 位时抛出错误 C2259

您好,我目前正在运行VisualStudio2010,并且有一个上下文菜单shell扩展在32位机器上完全以32位运行,因此所有方法都存在。这是一个ATL项目。32位上没有错误甚至警告。问题来了。当我进入visualstudio下的配置管理器并将事件解决方案平台从Win32切换到x64并尝试编译时,我收到错误“错误C2259:'ATL::CCOMObject:无法实例化抽象类”。既然这个完全相同的项目确实在32位编译和运行,为什么它会抛出x64的错误?任何想法或正确方向的观点将不胜感激。需要实现的主要方法如下:STDMETHODIMPInitialize(LPCITEMIDLIST,L

windows - 可以指定 IFileDialog 的起始位置吗?

我在Microsoft文档中找不到任何内容,所以我想知道是否有人知道,是否可以指定IFileDialog的起始位置?具体来说,我希望第一次打开对话框时,它会在父窗口的中央打开。除了以某种方式挂接到底层WM_*消息之外,我没有看到一种直接的方法来执行此操作。是否可以使用类似SetWindowPos的东西? 最佳答案 shell的IFileDialog实现支持IOleWindow接口(interface)(注意它似乎没有被记录......)。但是必须先打开对话框才能获取其窗口句柄。所以诀窍是使用IFileDialogEvents订阅对话