这个问题可能很多老手都有遇到过。昨天想做一个Shell菜单的调用功能,结果发现MSDN文档里说能行的方法,实际应用中竟然不行。调用IShellFolder的GetUIObjectOf方法取得IContextMenu的时候,选中的条目多于一个的时候,该函数的返回值竟然是OutOfMemory!同样的GetUIObjectOf参数,但是换成IDataObject的时候就不会出错。上网找了一整天,发现国外的同志们也都在使劲抱怨。就连Delphi自己的ShellListView也只能处理单个文件对象的外壳菜单。经过一天的努力,在绝望中发现TotalCommander的Shell菜单竟然是完整的……所以厚颜在此一问,不知哪路英雄对此有概念?