Использование 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