다음을 통해 공유


BroadcastSystemMessageExA 함수(winuser.h)

지정된 받는 사람에게 메시지를 보냅니다. 수신자는 애플리케이션, 설치 가능한 드라이버, 네트워크 드라이버, 시스템 수준 디바이스 드라이버 또는 이러한 시스템 구성 요소의 조합일 수 있습니다.

이 함수는 받는 사람으로부터 더 많은 정보를 반환할 수 있다는 점을 제외하고 BroadcastSystemMessage 와 유사합니다.

구문

long BroadcastSystemMessageExA(
  [in]                DWORD    flags,
  [in, out, optional] LPDWORD  lpInfo,
  [in]                UINT     Msg,
  [in]                WPARAM   wParam,
  [in]                LPARAM   lParam,
  [out, optional]     PBSMINFO pbsmInfo
);

매개 변수

[in] flags

형식:DWORD

브로드캐스트 옵션입니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
BSF_ALLOWSFW
0x00000080
받는 사람이 메시지를 처리하는 동안 포그라운드 창을 설정할 수 있도록 합니다.
BSF_FLUSHDISK
0x00000004
각 수신자가 메시지를 처리한 후 디스크를 플러시합니다.
BSF_FORCEIFHUNG
0x00000020
제한 시간이 경과하거나 받는 사람 중 한 명이 응답하지 않더라도 메시지를 계속 브로드캐스트합니다.
BSF_IGNORECURRENTTASK
0x00000002
현재 작업에 속한 창에 메시지를 보내지 않습니다. 이렇게 하면 애플리케이션에서 자체 메시지를 수신할 수 없습니다.
BSF_LUID
0x00000400
BSF_LUID 설정되면 메시지가 BSMINFO 구조체의 luid 멤버에 지정된 것과 동일한 LUID가 있는 창으로 전송됩니다.

Windows 2000: 이 플래그는 지원되지 않습니다.

BSF_NOHANG
0x00000008
응답하지 않는 애플리케이션의 시간 초과를 강제로 적용합니다. 받는 사람 중 한 명이 시간 초과된 경우 메시지 브로드캐스트를 계속하지 마세요.
BSF_NOTIMEOUTIFNOTHUNG
0x00000040
받는 사람이 응답하지 않는 한 메시지에 대한 응답을 기다립니다. 시간이 초과되지 않습니다.
BSF_POSTMESSAGE
0x00000010
메시지를 게시합니다. BSF_QUERY 함께 사용하지 마세요.
BSF_RETURNHDESK
0x00000200
액세스가 거부되고 이 핸들과 BSF_QUERY 모두 설정된 경우 BSMINFO 는 데스크톱 핸들과 창 핸들을 모두 반환합니다. 액세스가 거부되고 BSF_QUERY 설정되면 BSMINFO에서 창 핸들만 반환됩니다.

Windows 2000: 이 플래그는 지원되지 않습니다.

BSF_QUERY
0x00000001
현재 받는 사람이 TRUE를 반환하는 경우에만 후속 받는 사람에게 보내는 메시지를 한 번에 한 명의 받는 사람에게 보냅니다.
BSF_SENDNOTIFYMESSAGE
0x00000100
SendNotifyMessage 함수를 사용하여 메시지를 보냅니다. BSF_QUERY 함께 사용하지 마세요.

[in, out, optional] lpInfo

형식: LPDWORD

메시지의 받는 사람에 대한 정보를 포함하고 받는 변수에 대한 포인터입니다.

함수가 반환될 때 이 변수는 실제로 메시지를 받은 받는 사람을 식별하는 이러한 값의 조합을 받습니다.

이 매개 변수가 NULL이면 함수는 모든 구성 요소로 브로드캐스트됩니다.

이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
BSM_ALLCOMPONENTS
0x00000000
모든 시스템 구성 요소에 브로드캐스트합니다.
BSM_ALLDESKTOPS
0x00000010
모든 데스크톱에 브로드캐스트합니다. SE_TCB_NAME 권한이 필요합니다.
BSM_APPLICATIONS
0x00000008
애플리케이션에 브로드캐스트합니다.

[in] Msg

형식: UINT

보낼 메시지입니다.

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

[in] wParam

형식: WPARAM

추가 메시지 관련 정보입니다.

[in] lParam

형식: LPARAM

추가 메시지 관련 정보입니다.

[out, optional] pbsmInfo

형식: PBSMINFO

요청이 거부되고 dwFlagsBSF_QUERY 설정된 경우 추가 정보가 포함된 BSMINFO 구조체에 대한 포인터입니다.

반환 값

형식: long

함수가 성공하면 반환 값은 양수 값입니다.

함수가 메시지를 브로드캐스트할 수 없는 경우 반환 값은 –1입니다.

dwFlags 매개 변수가 BSF_QUERY 하나 이상의 받는 사람이 해당 메시지에 BROADCAST_QUERY_DENY 반환되는 경우 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

BSF_QUERY 지정하지 않으면 함수는 요청된 모든 받는 사람에게 지정된 메시지를 보내고 해당 받는 사람이 반환한 값을 무시합니다.

호출자의 스레드가 요청을 거부한 창 이외의 바탕 화면에 있는 경우 호출자는 SetThreadDesktop(hdesk) 을 호출하여 해당 창의 모든 항목을 쿼리해야 합니다. 또한 호출자는 반환된 hdesk 핸들에서 CloseDesktop을 호출해야 합니다.

시스템은 시스템 메시지(0~(WM_USER-1) 범위의 메시지)에 대해서만 마샬링을 수행합니다. 다른 메시지(그 >= WM_USER)를 다른 프로세스로 보내려면 사용자 지정 마샬링을 수행해야 합니다.

참고

winuser.h 헤더는 BROADCASTSystemMessageEx를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll

추가 정보

BSMINFO

BroadcastSystemMessage

개념

메시지 및 메시지 큐

참조

SendNotifyMessage