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