다음을 통해 공유


제어판 메시지 처리

CPlApplet 콜백 함수는 Windows에서 제어판 항목으로 전송된 모든 메시지를 처리합니다. 함수로 전송되는 메시지는 특정 순서입니다. 동일한 토큰으로 .cpl 항목은 메시지를 특정 방식으로 처리해야 합니다.

먼저 CPlApplet 함수는 Windows에서 제어판 항목을 처음 로드할 때 CPL_INIT 메시지를 받습니다. 함수는 메모리 할당과 같은 초기화를 수행하고 0이 아닌 값을 반환해야 합니다. CPlApplet이 초기화를 완료할 수 없는 경우 0을 반환하여 Windows가 통신을 종료하고 DLL을 해제하도록 지시해야 합니다.

다음으로, CPL_INIT 메시지가 성공하면 Windows에서 CPL_GETCOUNT 메시지를 보냅니다. 그런 다음 함수는 .dll 파일에서 지원하는 제어판 항목의 수를 반환해야 합니다.

그런 다음 CPlApplet 함수는 .dll 파일에서 지원하는 각 제어판 항목에 대해 하나의 CPL_INQUIRE 메시지와 하나의 CPL_NEWINQUIRE 메시지를 받습니다. 함수는 CPLINFO 또는 NEWCPLINFO 구조체를 이름, 아이콘 및 설명 문자열과 같은 항목에 대한 정보로 채웁니다. 대부분의 애플리케이션은 CPL_INQUIRE 메시지를 처리하고 CPL_NEWINQUIRE 메시지를 무시해야 합니다. CPL_INQUIRE 메시지는 Windows에서 캐시할 수 있는 형식의 정보를 제공하므로 성능이 훨씬 향상됩니다. CPL_NEWINQUIRE 메시지는 컴퓨터 상태에 따라 항목의 아이콘을 변경하거나 문자열을 표시해야 하는 경우에만 사용됩니다. CPL_NEWINQUIRE 사용하는 제어판 항목은 캐싱을 사용하므로 Windows Vista의 시작 메뉴 검색에서 찾을 수 없습니다.

CPlApplet 함수는 사용자가 제어판 항목을 나타내는 아이콘을 선택했음을 알리는 알림으로 CPL_DBLCLK 메시지를 받습니다. 함수는 이 메시지를 여러 번 받을 수 있습니다. 메시지에는 항목 식별자 및 CPL_INQUIRE또는 CPL_NEWINQUIRE 호출 시 CPLINFO 또는 NEWCPLINFO 구조에 반환된 lpData 포인터가 포함됩니다. 함수는 해당 대화 상자를 표시하고 후속 사용자 입력을 처리해야 합니다.

CPL_DBLCLK 외에도 명령 프롬프트 또는 다른 프로그램에서와 같은 입력 매개 변수를 사용하여 제어판 항목을 호출하는 경우 CPL_STARTWPARMS 메시지를 보낼 수 있습니다. 메시지에는 추가 매개 변수 문자열과 함께 항목 식별자가 포함됩니다.

제어 애플리케이션이 종료되기 전에 CPlApplet은 .dll 파일에서 지원하는 각 제어판 항목에 대해 CPL_STOP 메시지를 한 번 받습니다. 메시지에는 제어판 항목의 식별자와 CPL_INQUIRE 또는 CPL_NEWINQUIRE 호출 시 CPLINFO 또는 NEWCPLINFO 구조에 반환된 lpData 포인터가 포함됩니다. 함수는 지정된 대화 상자에 할당된 메모리를 해제해야 합니다.

마지막 CPL_STOP 메시지 후에 CPlApplet 은 CPL_EXIT 메시지를 받습니다. 함수는 남은 할당된 메모리를 모두 해제하고 등록되었을 수 있는 프라이빗 창 클래스의 등록을 취소해야 합니다. 함수가 이 메시지에서 반환된 직후 Windows는 FreeLibrary 함수를 호출하여 제어판 항목을 해제합니다.

제어판 항목

사용자 환경 지침

제어판 항목 등록

CPLApplet 사용

제어판 항목 실행

시스템 제어판 항목 확장

제어판 범주 할당

제어판 항목에 대한 검색 가능한 작업 링크 만들기

Windows Vista에서 안전 모드에서 제어판 액세스