15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту




Работаем с Панелью управления


Автор: Farooque Khan.

Совместимость: Win 9x/NT/2000 и Visual C++ 6

Пример показывает как Windows работает с функциями панели управления (Control Panel). Объясняются типы сообщений и системных файлов, с которыми происходят необходимые манипуляции.

Когда Вы запускаете Панель управления, то она ищет .cpl файлы в системной директории Windows. .cpl файлы (called applets) это простые DLLs из которыз берутся CPlApplet функции. Для каждого найденного апплета Панель управления вызывает необходимый DLL соответствующей функцией ::LoadLibrary, а затем использует функцию GetProcAddress , чтобы получить нужный адрес CPlApplet функции. Для каждого апплета, функция CPlApplet имеет своё сообщение, к примеру, CPL_INIT, CPL_INQUIRE и т.д. Все типы сообщений можно просмотреть в онлайновой документации MSDN.

Когда Панель управления вызвала CPlApplet функцию с сообщением CPL_INQUIRE , то .cpl файл возвращает структуру CPLINFO, которая содержит информацию об этом апплете, такую как имя, иконку, информацию и т.д. Если по апплету в Панели управления происходит двойной щелчёк мышкой, то функция CPlApplet вызывается со значением CPL_DBLCLK. При этом апплет отображается на экране и пользователь может изменять его параметры.

Downloads

Скачать демонстрационный проект - 32 KB
Скачать исходник - 46 KB