#29. 메시지 스트림 가로채기

이미 두 번 이상 메시지 스트림을 가로채는 방법을 강좌에서 설명하였었습니다만, 아직도 이해가 잘 안간다고 느껴지는 분들이 계실법도 해서 여기에 추가 설명을 더합니다.


Windows는 어플리케이션이나 프로세스마다 각각의 개별적인 메시지 큐를 둠으로서 능동적으로 메시지 프로세싱을 구현하도록 설계되었습니다. 이것은 이전의 DOS식의 단방향 런타임 (Single Runtime)과는 대조적인 면입니다.


이런 메시지들은 본래 메시지 큐를 통하여 조건 처리가 되어야 함이 정상이지만 특수한 경우 메시지를 메시지 큐에 들여보내기 전에 빼돌려야 하는 상황이 발생하게 됩니다.


이를 위해서 미리 준비된 오버라이드용 함수가 하나 있습니다. PreTranslateMessage()라는 것으로, 파라메터로는 메시지 태그 구조체가 주어지게 됩니다. 가로챌 메시지 스트림의 양이 많다면 조건문이 길어지게 될 것이며, 간단한 트릭의 수준이라면 조건문이 짧습니다.


간단하게 몇몇의 메시지 가로채기를 구현하고자 한다면 if/else 조건문을, 다량의 메시지 가로채기를 구현하고자 한다면 switch 조건문을 응용하는 것이 좋을 듯 합니다.

댓글 남기기