Я обновляю старое приложение Windows, чтобы использовать интерфейс контекстного меню Windows 11 IexplorCommand, используя разреженный пакет, чтобы дать приложению личность. Это было (в основном) работать, но в какой -то момент процесса элементы контекстного меню просто перестали отображаться. Любопытно, что когда вы щелкните правой кнопкой мыши, он начинает , чтобы отображать элементы меню, но затем удаляет пустую строку перед отображением заголовка элемента. Итак, ключевой вопрос: есть ли способ отследить то, что происходит во время отображения меню, и подтвердить, что правильные классы были зарегистрированы вместе с созданием личности основного приложения? Appxmanifest.xml пакета содержит следующее расширение: < /p>
Код: Выделить всё
< /code>
и соответствующий идентификатор класса был добавлен в код Winmenu1.dll, аналогичный его использованию в проекте Microsoft W11ContextMenudemo: < /p>
class __declspec(uuid("C22CB58C-9543-491C-A5C3-3D4FB2DD89E7")) HelloWorldCommand1 final : public HelloWorldCommand
{
//public:
//const wchar_t* Title() override { return L"HelloWorld Command1"; }
//const EXPCMDSTATE State(_In_opt_ IShellItemArray* selection) override { return ECS_DISABLED; }
};
CoCreatableClass(HelloWorldCommand1)
Опять же, элементы меню отображались , поэтому вряд ли будут внутренние внутренние внутренние места; и личность в редком пакете правильно обнаружена в основном приложении, и он успешно вызывает другие DLL в одной и той же папке внешнего размещения; Таким образом, проблема, по -видимому, заключается в вызовах. Итак, как я могу отследить, где проблема может быть?
Подробнее здесь:
https://stackoverflow.com/questions/797 ... nu-display