윈도우즈 유저

윈도우즈 USER는 마이크로소프트 윈도우 운영체제의 한 구성 요소로, 간단한 사용자 인터페이스를 구축하기 위한 핵심 기능을 제공한다. 이 구성 요소는 모든 버전의 윈도우에 존재하며, 창 관리, 메시지 전달, 입력 처리 및 표준 컨트롤 기능을 포함한다.

기능 및 역할

윈도우즈 USER는 마이크로소프트 윈도우의 핵심 사용자 경험 대부분을 제공한다. 역사적으로 이 구성 요소는 다음을 담당했다.Petzold, Charles (1998). Programming Windows Fifth Edition, Microsoft Press,   .Chen, Raymond (2007). The Old New Thing, Addison-Wesley Professional, 

 창을 그리는 기능 (장치 독립적인 기본 그리기 API인 GDI 사용)
 겹치는 창을 다른 창 뒤로 가리게 하는 기능
 창 크기 및 위치 조정
 모든 표준 창 관리 컨트롤 제공 (예: 닫기 버튼 또는 제목 표시줄)
 표준 윈도우 메뉴 모음 제공
 표준 컨트롤 제공 (예: 버튼, 목록 상자 또는 편집 상자)
 대화 상자 관리 제공 (단축키, 탭 키 처리)
 마우스 및 키보드로부터의 모든 사용자 입력 처리
 데스크톱 배경 이미지 (윈도우 8까지)
 모든 표준 시각적 요소 그리기
 동적 데이터 교환을 사용한 프로세스 간 통신
 마우스 포인터 커서 표시 및 관리
 데이터 전송 (클립보드)

점차 윈도우의 규모가 커지고 기능이 잘 분화되면서, 윈도우즈 USER는 다른 구성 요소들과 협력하여 이러한 기능을 제공하게 되었다.

 컨트롤: 윈도우 95부터 새로운 컨트롤은 별도의 공용 컨트롤 구성 요소에 배치되었다. 윈도우 XP부터는 표준 컨트롤의 새로운 구현도 동일한 구성 요소로 옮겨졌다.
 표준 시각 요소: 윈도우 XP부터 시각 요소는 테마 구성 요소에 의해 그려진다.
 창 관리 경험: 윈도우 비스타부터 표준 창 관리 그리기는 Aero 테마가 활성화될 때 윈도우즈 USER에서 데스크톱 창 관리자로 옮겨졌다. 윈도우 8부터는 윈도우 사전 설치 환경을 제외하고 창 프레임은 항상 DWM에 의해 그려진다.
 프로그램 간 통신: 윈도우 3.1부터 객체 연결 삽입이 프로그램 간 통신을 위한 권장 모델로 동적 데이터 교환을 대체했다.
 메뉴 모음: 윈도우 7부터 리본 인터페이스가 메뉴 모음 및 상황에 맞는 메뉴를 대체하는 권장 모델이다. 이는 UIRibbon 구성 요소에 의해 제공된다.Windows Ribbon Framework
 데스크톱 배경 화면: 윈도우 8부터 데스크톱 배경 화면 그리기는 윈도우 탐색기로 옮겨졌다. 단, 윈도우 사전 설치 환경에서는 WallpaperHost.exe 응용 프로그램에 의해 그려진다. 이전에 USER가 데스크톱 배경을 그렸을 모든 곳은 검은색으로 그려지며, DWM이 활성화된 경우에는 사용자 테마 색상이 대신 그려진다.
 마우스 포인터: 윈도우 비스타부터 DWM이 활성화된 경우 마우스 포인터 그리기는 DWM에 의해 관리된다. 그러나 윈도우 11부터는 파일 %SystemRoot%\System32\DWMInit.dll이 존재하지 않는 한 DWM이 비활성화된 경우 표시되지 않는다.

개발자 경험

윈도우즈 USER는 윈도우 응용 프로그램을 구축하는 데 사용되는 추상화를 구현한다. 여기에는 다음이 포함된다.

 HWND (창 핸들)

HWND는 윈도우 개발자 플랫폼에서 시각적 표시 및 입력의 기본 단위이다. 모든 시각적 요소는 자체 HWND를 갖거나 더 큰 HWND의 일부로 존재한다. 윈도우즈 USER의 많은 함수는 크기, 위치 및 제목과 같은 HWND의 속성을 조작한다. 각 HWND는 메시지 전달을 위한 통신 채널(WNDPROC - 창 프로시저)도 가지고 있다.

창은 계층 구조의 루트에 있는 데스크톱 창과 함께 트리로 관리된다. 자식 창은 일반적으로 (항상 그런 것은 아니지만) 부모 창 내부에 시각적으로 포함된다.

 MSG (메시지)

응용 프로그램과 운영 체제는 메시지를 사용하여 HWND와 통신한다. 창 메시지는 대상 HWND, 메시지 코드 및 마우스 위치와 같은 기타 세부 정보의 조합이다.

 메시지 루프

윈도우즈 USER에 대한 호출을 올바른 방식으로 결합함으로써 윈도우 응용 프로그램은 메시지를 처리한다. 핵심 윈도우 메시지 루프(GetMessage, TranslateMessage 및 DispatchMessage 호출 포함)는 모든 윈도우 응용 프로그램의 핵심이다.

윈도우즈 USER와 관련된 개발자 기능은 C 헤더 파일 winuser.h에서 제공된다.

구현
16비트 버전의 윈도우에서는 윈도우즈 USER가 user.exe라는 파일로 구현되었다. 여기서 파일 확장자는 윈도우즈 USER가 실제로는 항상 동적 링크 라이브러리였기 때문에 잘못된 이름이었다.

32비트 버전의 윈도우에서는 윈도우즈 USER의 32비트 버전은 user32.dll이라고 불리며 System32 디렉터리에 위치하고, 16비트 응용 프로그램과의 호환성은 수정된 user.exe도 함께 제공됨으로써 제공된다.

64비트 버전의 윈도우에서는 윈도우즈 USER의 64비트 구현은 user32.dll이라고 불리며 System32 디렉터리에 위치하고, 수정된 32비트 버전(역시 user32.dll이라고 불림)은 SysWOW64 디렉터리에 존재한다.

 같이 보기 
 그래픽 장치 인터페이스 (GDI)
 윈도우 라이브러리 파일

 각주 

 외부 링크 
 Comprehensive Reference on WOW64 Folders, Variables, Values and References 

분류:윈도우 구성 요소
분류:윈도우 기술