WM_WININICHANGE

인수

wParam : 사용되지 않는다.

lParam : 변경된 시스템 설정의 이름 문자열이며 레지스트리의 키 이름이나 Win.ini 의 섹션 이름이 전달된다. 그러나 레지스트리 키일 경우 전체 경로가 아니라 단순히 키의 이름만 전달되며 설정을 변경하는 프로그램이 이 인수에 정확하게 값을 대입해 주지 않기 때문에 이 인수로부터 어떤 설정이 변경되었는지 정확하게 알아내기는 어렵다. 따라서 이 메시지를 받았을 때 응용 프로그램이 참조하고 있는 모든 설정값을 다시 조사해야 한다.

설명

이 메시지는 하위 호환성을 위해서만 제공되므로 Win32 응용 프로그램은 이 메시지 대신 WM_SETTINGCHANGE 메시지를 대신 사용해야 한다. 이 두 메시지는 이름만 다른 같은 메시지이다.

#if(WINVER >= 0x0400)
#define WM_SETTINGCHANGE WM_WININICHANGE
#endif /* WINVER >= 0x0400 */

Win.ini 파일은 운영체제의 중요한 설정 상태를 저장하는 정보 파일이다. 이 파일이 변경되었다는 것은 곧 시스템 설정에 중요한 변화가 있었다는 뜻이며 이때 WM_WININICHANGE 메시지가 모든 탑 레벨 윈도우에게 보내진다. Win.ini는 16비트 윈도우즈에서는 파일 형태로 존재하며 95이후부터 다음 레지스트리 키애 연결되어 있다.

HKEY_LOCAL_MACHINE\Software\Microsoft\ Windows NT\CurrentVersion\IniFileMapping

Win.ini를 직접 편집하는 것뿐만 아니라 이 레지스트리 키를 편집하는 것도 동일하게 시스템 설정을 변경시킨다. 만약 Win.ini를 편집하여 시스템 설정을 변경하였다면 SendMessage 함수의 첫번째 인수로 HWND_BROADCAST를 주어 모든 탑 레벨 윈도우에게 이 메시지를 전달해야 한다.

리턴 메시지를 처리했으면 0을 리턴한다.
예제

 

플랫폼

95이상

참조

WM_SETTINGCHANGE


written by http://www.winapi.co.kr