관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

PostMessage(A) 본문

API 관련/Win32 API 함수

PostMessage(A)

님투 2007. 11. 8. 23:14
반응형

PostMessage(A)

지정된 윈도우를 작성한 스렛드에 관련지을 수 있고 있는 메시지 큐에 메세지를 포스트합니다.이 함수는, 메세지의 처리의 완료를 기다리지 않고 제어를 돌려줍니다.

스렛드에 관련지을 수 있고 있는 메시지 큐에 메세지를 포스트하려면 , PostThreadMessage 함수를 사용합니다.

BOOL PostMessageA(
    HWND   hWnd,    // 윈도우 핸들
    UINT   Msg,     // 메세지 코드
    WPARAM wParam,  // wParam파라미터
    LPARAM lParam   // lParam파라미터
);

USER32.DLL

인수

hWnd

메세지를 받아들이는 윈도우의 핸들을 지정합니다.

0xFFFF (HWND_BROADCAST) (을)를 지정하면, 시스템에 있는 모든 톱 레벨 윈도우에 포스트됩니다.아이 윈도우에 대해서는 메세지는 메세지는 포스트되지 않습니다.

0 (NULL) (을)를 지정하면, dwThreadId 파라미터에 현재의 스렛드 ID (을)를 설정해 PostThreadMessage 함수를 호출했는지와 같이 동작합니다.

Msg

포스트되는 메세지 코드를 지정합니다.

wParam

메세지 고유 정보(윈도우 프로시저의 wParam 파라미터)를 지정합니다.

lParam

메세지 고유 정보(윈도우 프로시저의 lParam 파라미터)를 지정합니다.

반환값

성공하면 0 이외의 값이 돌아갑니다.

실패하면 0 하지만 돌아갑니다.확장 에러 정보를 취득하려면 , GetLastError 함수를 사용합니다.

해설

메시지 큐에 격납된 메세지는, 그 스렛드가 GetMessage 함수 또는 PeekMessage 함수를 호출하는 것에 의해서 큐로부터 꺼내집니다.

Msg 파라미터에 HWND_BROADCAST (을)를 지정하고 통신을 행하는 경우는, 상호의 어플리케이션간에 있어서의 통신을 위한 독특한 메세지를 취득하는데, RegisterWindowMessage (을)를 사용해야 합니다.

비동기 메세지 함수( PostMessage, SendNotifyMessage, SendMessageCallback 함수)로 WM_USER 이후의 메세지를 건네주는 경우에는, 메세지 파라미터에 메모리브록크의 주소를 지정할 수 없습니다.이것은, 메세지 처리가 행해지기 전에 호출해 측에 처리가 돌아와, 메세지 수취하는 측의 스렛드가 메모리브록크에 액세스 하기 전에 호출해 옆스렛드가 그것을 해방해 버릴 가능성이 있기 때문에입니다.

WM_QUIT 메세지를 포스트하려면 PostMessage 함수는 아니고 PostQuitMessage 함수를 사용하지 않으면 안됩니다.

대응 정보

Windows 95 이후 / Windows NT 3.1 이후

반응형

'API 관련 > Win32 API 함수' 카테고리의 다른 글

RegCloseKey  (0) 2007.11.08
ReadFile  (0) 2007.11.08
PathUnquoteSpaces(A)  (0) 2007.11.08
PathRenameExtension(A)  (0) 2007.11.08
PathRemoveExtension(A)  (0) 2007.11.08
Comments