WinCPICSetBlockingHook
WinCPICSetBlockingHook 함수를 사용하면 Microsoft® Windows® CPI-C(Common Programming Interface for Communications) 구현이 새 함수를 통해 CPI-C 함수 호출을 차단할 수 있습니다. 이 레거시 호출은 Microsoft® Windows® 버전 3에서 사용되었습니다. 시스템의 나머지 부분을 차단하지 않고 차단 호출을 만드는 x 애플리케이션입니다. 기본적으로 Microsoft Windows 운영 체제에서 차단 호출은 요청이 완료될 때까지 호출 애플리케이션 스레드를 일시 중단합니다.
매개 변수
lpBlockFunc
설치할 차단 함수의 프로시저 instance 주소를 지정합니다.
반환 값
반환 값은 이전에 설치된 차단 함수의 프로시저 instance 가리킵니다. WinCPICSetBlockingHook를 호출하는 애플리케이션 또는 라이브러리는 필요한 경우 복원할 수 있도록 이 반환 값을 저장해야 합니다. (중첩이 중요하지 않은 경우 애플리케이션은 WinCPICSetBlockingHook 에서 반환된 값을 삭제하고 결국 WinCPICUnhookBlockingHook를 사용하여 기본 메커니즘을 복원할 수 있습니다.)
설명
Windows CPI-C 구현에는 CPI-C 함수 차단이 구현되는 기본 메커니즘이 있습니다. 이 함수는 애플리케이션에 기본 함수 대신 차단 시간에 자체 함수를 실행할 수 있는 기능을 제공합니다.
기본 차단 함수는 다음과 같습니다.
BOOL DefaultBlockingHook (void) {
MSG msg;
/* get the next message if any */
if ( PeekMessage (&msg,0,0,PM_NOREMOVE) ) {
if ( msg.message = = WM_QUIT )
return FALSE; // let app process WM_QUIT
PeekMessage (&msg,0,0,PM_REMOVE) ;
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
/* TRUE if no WM_QUIT received */
return TRUE;
}
WinCPICSetBlockingHook 함수는 더 복잡한 메시지 처리가 필요한 애플리케이션(예: 메뉴 가속기(TranslateAccelerator)이 있는 여러 MDI(문서 인터페이스) 모델 또는 애플리케이션을 사용하는 애플리케이션을 지원하기 위해 제공됩니다.
차단 함수는 WM_QUIT 메시지에 대한 응답으로 FALSE를 반환해야 Windows CPI-C가 애플리케이션에 제어를 반환하여 메시지를 처리하고 정상적으로 종료할 수 있습니다. 그렇지 않으면 함수는 TRUE를 반환해야 합니다.