Как зарегистрировать форму для сообщения WM_DEVICECHANGE в Windows Mobile - PullRequest
2 голосов
/ 17 сентября 2009

Я использую C # .NET 3.5 Compact Framework для написания кода. Пожалуйста, кто-нибудь может сказать мне, как мне зарегистрировать форму для WM_DEVICECHANGE и как обработать это сообщение в WindowProc ..

если я сделаю это, я получу сообщение об изменении аппаратного обеспечения устройства .. я не понимаю, как писать, пожалуйста, скажите.

Спасибо

Ответы [ 2 ]

0 голосов
/ 06 ноября 2009

На самом деле WM_DEVICECHANGE вряд ли будет тем, что вы хотите. Возможно, вы захотите подключиться к очереди уведомлений устройства Windows CE, вызвав RequestDeviceNotifications и передав ему дескриптор очереди, созданной с помощью CreateMsgQueue .

Если вам не хочется писать весь этот код P / Invoke, как обычно, в Smart Device Framework это уже сделано и в более логичной объектной модели.

0 голосов
/ 17 сентября 2009

Ключ в том, чтобы создать класс, производный от NativeWindow, дать ему дескриптор формы для вызова AssignHandle и переопределить функцию WndProc (позволяющую делать то, что вы хотите с WM_DEVICECHANGE).

См. Пример на этой странице MSDN для получения более подробной информации: Переопределение метода NativeWindow.WndProc

[EDIT] Не совсем уверен, доступен ли класс NativeWindow в compactFramework. Если нет, у Алекса Яхнина есть класс и пример приложения о том, как ловить сообщения, доступные здесь . Надеюсь, это поможет.

...