如何获得Context menu的Send To子菜单及多个ItemIDList值的传递问题?(100分)

  • 主题发起人 主题发起人 NR
  • 开始时间 开始时间
N

NR

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp;我已经通过IContextMenu接口获得了资源管理器的右键菜单,但是右键菜单的Send To<br>菜单的子菜单为空。如何取得它的子菜单?在资源管理器中,多个文件可以共同使用一个<br>右键菜单。如,我们选择‘1.txt’,‘2.TXT',‘3.DAT'。此时的右键菜单是针对这3个<br>文件的。那么在我的程序中,如何向IContextMenu接口传递2个或2个以上的PItemIDList<br>值?<br>
 
第一个问题可能是没有答案的 ? 例如ACD See中的Send to就是空的。<br><br>看看第二个问题吧?<br>
 
定位到注册表里!<br>在注册表里见过!
 
你是指SendTo的TGUID值吧?<br>在注册表有一个SendTo的TGUID值,但得到的仍是一个空菜单。<br>
 
到sendto文件夹里看看不久行了?
 
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders<br><br>下面有一个键值 sendto,读出来后再到 sendto 目录去读文件就可以了<br><br>老兄研究 IShellFolder 编程,不知做过 IShellIcon 和 IExtractIcon 没有?<br><br>我用 <br>IShellFolder.GetUIObjectOf(Application.Handle, 1, FPIDL, IID_IExtractIconA, nil, Pointer(ExtractIcon));<br>和 IShellFolder.GetUIObjectOf(Application.Handle, 1, FPIDL, IID_IShellIcon, nil, Pointer(ShellIcon));<br>&nbsp;<br>这两个接口老是得到 nil 的 interface. 一直百思不得其解,不知老兄有何高见?
 
刚开始我也是想用它们获得图标,后来无果而终。<br>我刚刚看了一下MS的帮助,IExtractIcon好像是用来手工提取图标的而IShellIcon是系统自动提供一个图标。<br><br>If IShellIcon is not implemented by an IShellFolder object, IShellFolder::GetUIObjectOf(..., IID_IExtractIcon, ...) is used to get an icon for all objects.<br><br>上面是帮助里的一段文字:如果IShellFolder不能获得IShellIcon, 可以使用IShellFolder::GetUIObjectOf(..., IID_IExtractIcon, ...)为所有对象取一个图标。 将IID_IExtractIconA 换成IID_IExtractIcon试试!(我现在正在准备英语考试:-《,不能去试验了)<br><br>To 两位:<br>&nbsp; 你们提供的答案我只知其一不知其二,能详细一些吗? 另外还有一个疑问:当我们为一个文件或文件夹取得了一个快捷菜单,我们如何知道哪个菜单条是SendTo? 我们可以使用“Send To”“发送到”去逐个的排查,但如果用户是日本鬼子或是台湾同胞呢?<br>
 
问一下:我不知道如何获取ContextMenu(是指在我自己的程序里,不是Explorer外壳扩展)<br>最好有源码
 
后退
顶部