SetWindowsHookEx

1. 역할

: 특정 hook을 설치해둔다. (모든 프로세스가 체크 됨)

그러면, 어떤 프로세스에서 해당 메시지가 발생햇을 때 

OS가 해당DLL파일을 해당 프로세스에 injection하고 

등록된 hook procedure을 호출


즉, injection하고 바로 내가 원하는 콜백함수 호출.


2. 인자 값

- int idHook                 // hook type

- HOOKPROC lpfn         // hook procedure은 운영체제가 호출해주는 콜백 함수       DLL 내부에 존재해야 한다. ex)KeyboardProc

HINSTANCE hMod      // 위 함수가 속한 DLL의 인스턴스 핸들

DWORD dwThreadId   // hook을 걸고 싶은 thread의 ID 값    ex) 0을 넣으면 global hook이 설치된다.


3. 반환 값










'CODING(C) > WIN API 32' 카테고리의 다른 글

window API 주요 구조체 및 변수  (0) 2016.07.27

참고 블로그 : http://sweeper.egloos.com/m/2991972


윈도우 프로그램에서는 


하나의 프로그램이 많은 윈도우들을 가질 수 있고,

하나의 프로그램이 여러 개의 모듈 즉, (메모리에 올라간) 코드 덩어리들을 가지고 있을 수 있다. 


HINSTANCE / HMODULE 

: 프로그램 코드를 담고 있는 모듈(메모리에 올라가있는)/인스탄스에 대한 핸들.


cf) HMODULE과 HINSTANCE는 32비트에서는 같은 의미로 사용된다고 봐도 무관하다.

32비트 윈도우에서 인스턴스 핸들은 메모리 공간에 할당된 실행 모듈의 베이스주소(0x00400000)를 가리킨다.


HWND 

: 화면 출력을 위해 여러 윈도우들의 영역을 관리하는 리소스.


WPARAM

: unsigned int형, 주요정보 (주로 window procedure이나 callback function 의 인자)


LPARAM

: signed int형, 추가정보



'CODING(C) > WIN API 32' 카테고리의 다른 글

SetWindowsHookEx  (0) 2016.07.27

+ Recent posts