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


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

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

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

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

Сообщение Описание
CPL_DBLCLK Отправлено уведомление CPlApplet о том, что пользователь выбрал значок, связанный с заданным элементом панель управления. CPlApplet должен отображать диалоговое окно для указанного элемента и выполнять любые пользовательские задачи. Параметр CPlAppletlParam1 представляет целое число, представляющее отсчитываемый от нуля индекс элемента панель управления. Параметр 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 — это номер элемента панели управления, а lParam2LPCTSTR для любых дополнительных инструкций, которые могут понадобиться. Возвращает TRUE, если это сообщение обрабатывается; в противном случае FALSE. Это сообщение допустимо для версии 5.00 и более поздних версий Shell32.dll.
CPL_STOP Сообщение отправляется по одному разу для каждого элемента панели управления в файле .cpl перед выгрузкой расширения панели управления Windows. CPlApplet должен освободить любую память, связанную с номером элемента, предоставленного в lParam1. Параметр lParam2 — это указатель lpData, возвращаемый в структуре CPLINFO или NEWCPLINFO в сообщении CPL_INQUIRE или CPL_NEWINQUIRE. Возвращаемое значение игнорируется.

 

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

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

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

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

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

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

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

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

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