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