Поделиться через


Использование CPLApplet

До Windows Vista вы создали элемент панель управления, создав файл .dll и именуя его с расширением .cpl. Этот файл экспортировал функцию CPlApplet . Эта схема по-прежнему поддерживается в Windows Vista и более поздних версиях и рассматривается в этой статье. Однако рекомендации по новым элементам панель управления рекомендуют более простой подход к элементу панель управления, созданному в виде файла .exe, использующего макет потока задач.

Когда панель управления загружает файл .dll (или .cpl), он вызывает функцию CPlApplet, чтобы получить сведения, такие как количество элементов панель управления узлов файлов, а также сведения о каждом элементе. панель управления также вызывает функцию при инициализации, открытии или закрытии окна элемента.

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

Message Description
CPL_DBLCLK Отправлено уведомление CPlApplet о том, что пользователь выбрал значок, связанный с заданным элементом панель управления. CPlApplet должен отображать диалоговое окно для указанного элемента и выполнять любые пользовательские задачи. Параметр CPlApplet lParam1 представляет целое число, представляющее отсчитываемый от нуля индекс элемента панель управления. Параметр lParam2 — это указатель lpData, возвращаемый в структуре CPLINFO или NEWCPLINFO в сообщении CPL_INQUIRE или CPL_NEWINQUIRE. Возвращаемое значение игнорируется.
CPL_EXIT Отправлено после последнего сообщения CPL_STOP и непосредственно перед Windows использует функцию FreeLibrary для освобождения библиотеки DLL, содержащей элемент панель управления. CPlApplet должен освободить оставшуюся память и подготовиться к закрытию. Возвращаемое значение игнорируется.
CPL_GETCOUNT Отправлено после CPL_INIT сообщения, чтобы предложить CPlApplet вернуть число, указывающее, сколько подпрограмм он поддерживает.
CPL_INIT Отправляется сразу после загрузки библиотеки DLL, содержащей элемент панель управления. Сообщение предложит CPlApplet выполнять процедуры инициализации, включая выделение памяти.
CPL_INQUIRE Отправлено после сообщения CPL_GETCOUNT, чтобы предложить CPlApplet предоставить сведения об указанной подпрограмме. Значение lParam1 — это целое число, представляющее отсчитываемый от нуля индекс подпрограммы о том, какие сведения запрашиваются. Параметр lParam2 CPlApplet указывает на структуру CPLINFO. Возвращаемое значение игнорируется.
CPL_NEWINQUIRE Отправлено после сообщения CPL_GETCOUNT, чтобы запросить CPlApplet предоставить сведения о указанном элементе панель управления. Значение lParam1 — это целое число, представляющее отсчитываемый от нуля индекс подпрограммы о том, какие сведения запрашиваются. Параметр lParam2 — это указатель на структуру NEWCPLINFO. CPL_NEWINQUIRE обычно следует игнорировать. Приложение должно обрабатывать только CPL_INQUIRE в Windows 95, Microsoft Windows NT 4.0 и более поздних системах, так как панель управления производительность страдает при использовании CPL_NEWINQUIRE. Это связано с тем, что возвращаемые строки и значки нельзя кэшировать. Возвращаемое значение игнорируется.
CPL_SELECT Является устаревшей. Текущие версии Windows не отправляют это сообщение.
CPL_STARTWPARMS Отправлено уведомление CPlApplet о том, что пользователь выбрал значок, связанный с заданным диалоговым окном. CPlApplet должен отображать соответствующее диалоговое окно и выполнять любые пользовательские задачи. Это сообщение похоже на CPL_DBLCLK, но может быть некоторая дополнительная информация. Параметр lParam1 — это номер элемента панель управления, а lParam2это LPCTSTR для любых дополнительных направлений, которые могут потребоваться. Возвращает значение TRUE , если это сообщение обрабатывается; в противном случае — ЗНАЧЕНИЕ FALSE. Это сообщение допустимо для версии 5.00 и более поздних версий Shell32.dll.
CPL_STOP Отправлен один раз для каждого элемента панель управления в файле .cpl перед выгрузом расширения панель управления Windows. CPlApplet должен освободить любую память, связанную с номером элемента, предоставленного в lParam1. Параметр lParam2это указатель lpData, возвращаемый в структуре CPLINFO или NEWCPLINFO в сообщении CPL_INQUIRE или CPL_NEWINQUIRE. Возвращаемое значение игнорируется.

 

элементы панель управления

Рекомендации по работе с пользователем

Регистрация элементов панель управления

обработка сообщений панель управления

Выполнение элементов панель управления

Расширение элементов системных панель управления

Назначение категорий панель управления

Создание ссылок на задачи с возможностью поиска для элемента панель управления

Доступ к панель управления в безопасном режиме в Windows Vista