Очистка после вызова GetSystemMenu () - PullRequest
0 голосов
/ 05 января 2010

Я использую Класс-оболочку Флориана для вызова GetSystemMenu () , чтобы добавить пользовательский пункт меню в системное меню приложения.

Мне просто любопытно, требуется ли какая-либо очистка для дескриптора, возвращаемого путем вызова GetSystemMenu или дополнительных пунктов меню. Я не вижу упоминаний о необходимости вызова CloseHandle () или чего-то подобного, поэтому мое текущее предположение состоит в том, что это не нужно.

Ответы [ 2 ]

1 голос
/ 05 января 2010

Вам не нужно об этом беспокоиться.

Проверьте документы MSDN на DestroyMenu :

Меню, назначенное окну, автоматически уничтожается при закрытии приложения.

Как правило, Windows должна уничтожить меню при закрытии формы, что, в свою очередь, уничтожит ваши пользовательские пункты меню.

0 голосов
/ 05 января 2010

Я посмотрел на упаковщик, и мое внутреннее чувство таково:

Дескриптор, используемый в SystemMenu.cs, вызывает у меня сомнения ...

private IntPtr m_SysMenu = IntPtr.Zero; // Handle to the System Menu

Этот дескриптор, нигде в коде явно не закрывается или не освобождается ... что заставляет меня думать, что в коде должна быть реализация IDisposable для закрытия / освобождения дескриптора ...

Что ты думаешь?

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...