我正在尝试实现一个 PropertySheetHandler shell 扩展,但运气不佳。
出于某种原因,ContextMenu 处理程序被成功调用(Initialize()
和QueryContextMenu()
)但AddPages()
未被调用。
我已经实现了IShellPropSheetExt
接口 ( AddPages()
and ReplacePages()
) 并声明了以下内容:
BEGIN_COM_MAP(CShellExtension)
COM_INTERFACE_ENTRY(IShellExtInit)
COM_INTERFACE_ENTRY(IContextMenu)
COM_INTERFACE_ENTRY(IShellPropSheetExt)
END_COM_MAP()
此外,在注册表中,我添加了以下条目:
HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers\MyPropSheet
当然也添加到 CLSID 中:
HKEY_CLASSES_ROOT\CLSID\{CC669AD3-9F45-4C29-ADF7-F2F58E2DB2E9}\InprocServer32
使用 DLL 路径和 ThreadingModel Apartment(也尝试过)。
我错过了什么?
我还运行了进程监视器,我可以看到我的 DLL 已找到,但没有对文件属性调用 Initialize 或 AddPages。