다음을 통해 공유


WNDPROC 콜백 함수(winuser.h)

애플리케이션에서 정의한 콜백 함수는 창으로 전송된 메시지를 처리합니다. WNDPROC 형식은 이 콜백 함수에 대한 포인터를 정의합니다. WndProc 이름은 애플리케이션에서 정의하는 함수 이름의 자리 표시자입니다.

구문

WNDPROC Wndproc;

LRESULT Wndproc(
  HWND unnamedParam1,
  UINT unnamedParam2,
  WPARAM unnamedParam3,
  LPARAM unnamedParam4
)
{...}

매개 변수

unnamedParam1

형식: HWND

창에 대한 핸들입니다. 이 매개 변수의 이름은 일반적으로 hWnd입니다.

unnamedParam2

형식: UINT

메시지입니다. 이 매개 변수의 이름은 일반적으로 uMsg입니다.

시스템 제공 메시지 목록은 시스템 정의 메시지를 참조하세요.

unnamedParam3

형식: WPARAM

추가 메시지 정보입니다. 이 매개 변수의 이름은 일반적으로 wParam입니다.

wParam 매개 변수의 내용은 uMsg 매개 변수의 값에 따라 달라집니다.

unnamedParam4

형식: LPARAM

추가 메시지 정보입니다. 이 매개 변수의 이름은 일반적으로 lParam입니다.

lParam 매개 변수의 내용은 uMsg 매개 변수의 값에 따라 달라집니다.

반환 값

형식: LRESULT

반환 값은 메시지 처리의 결과이며 전송된 메시지에 따라 달라집니다.

설명

애플리케이션이 32비트 버전의 Windows 운영 체제에서 실행되는 경우 콜백에서 catch되지 않은 예외가 사용 가능한 경우 애플리케이션의 상위 수준 예외 처리기에 전달됩니다. 그런 다음, 시스템은 처리되지 않은 예외 필터를 호출하여 프로세스를 종료하기 전에 예외를 처리합니다. PCA를 사용하도록 설정하면 다음에 애플리케이션을 실행할 때 문제를 해결할 수 있습니다.

그러나 애플리케이션이 64비트 버전의 Windows 운영 체제 또는 WOW64에서 실행되는 경우 64비트 운영 체제는 64비트 프로세서 아키텍처, 예외 아키텍처 및 호출 규칙에 따라 catch되지 않은 예외를 다르게 처리한다는 점에 유의해야 합니다. 다음 표에서는 64비트 Windows 운영 체제 또는 WOW64에서 catch되지 않은 예외를 처리하는 가능한 모든 방법을 요약합니다.

동작 유형 시스템에서 catch되지 않은 예외를 처리하는 방법
1 시스템에서는 catch되지 않은 예외를 표시하지 않습니다.
2 시스템은 먼저 프로세스를 종료한 다음, 다음에 애플리케이션을 실행할 때 PCA(Program Compatibility Assistant)에서 이 문제를 해결하도록 제공합니다. 애플리케이션 매니페스트에 호환성 섹션을 추가하여 PCA 완화를 사용하지 않도록 설정할 수 있습니다.
3 시스템은 예외 필터를 호출하지만 연결된 처리기를 호출하지 않고 콜백 scope 떠날 때 catch되지 않은 예외를 표시하지 않습니다.

다음 표에서는 Windows 운영 체제의 64비트 버전과 WOW64가 catch되지 않은 예외를 처리하는 방법을 보여 줍니다. 동작 유형 2는 Windows 7 운영 체제 이상의 64비트 버전에만 적용됩니다.

운영 체제 WOW64 64비트 Windows
Windows XP 3 1
Windows Server 2003 3 1
Windows Vista 3 1
Windows Vista SP1 1 1
Windows 7 이상 1 2

참고

SP1(32비트, 64비트 또는 WOW64)이 있는 Windows 7에서 시스템은 처리되지 않은 예외 필터를 호출하여 프로세스를 종료하기 전에 예외를 처리합니다. PCA(프로그램 호환성 도우미)가 사용하도록 설정된 경우 다음에 애플리케이션을 실행할 때 문제를 해결하도록 제안합니다.

애플리케이션에서 예외를 처리해야 하는 경우 구조적 예외 처리를 사용하여 처리할 수 있습니다. 구조적 예외 처리를 사용하는 방법에 대한 자세한 내용은 구조적 예외 처리를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 winuser.h(windows.h 포함)

추가 정보