본문 바로가기

Application Programming Interface/Windows API

Windows DDK 문서 IMEIMES.DOC - 11. IME File Format and Data Structures (IME 파일 포맷 및 데이터 구조) #1

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

IME 개발을 위한 Win32 다국어 IME 개요

버전 1.32
최종 수정일: 1998년 4월 1일, 번역: Luciano Jeong


IME 파일 포맷과 데이터 구조체 (Part 1)

 아래는 IME가 사용하는 IME 파일 포맷과 데이터 구조체에 대해 설명합니다.

IME 파일 포맷

 IME는 아래 필드들을 리소스의 버전 정보에서 정확히 지정할 필요가 있습니다. 이는 고정된 파일 정보 부분과 가변 길이 정보 부분으로 구성되어 있습니다. 리소스의 버전 정보에 관한 상세한 내용은 Microsoft Platform SDK를 참조하십시오.

 아래는 IME 파일이 포함해야 하는 상세 정보 설정입니다.

dwFileOS
&nsbp;dwFileOS는 버전 정보의 최상위 블록에 명시되어야 하며 Windows 95 및 Windows NT/Windows 2000 IME를 위해서는 VOS__WINDOWS32로 지정되어야 합니다.

dwFileType
 dwFileType는 버전 정보의 최상위 블록에 명시되어야 하며 항상 VFT_DRV여야 합니다.

dwFileSubType
 dwFileSubType는 버전 정보의 최상위 블록에 명시되어야 하며 항상 VFT2_DRV_INPUTMETHOD여야 힙니다.

FileDescription
 FileDescription는 버전 정보의 특정 언어 블록에 명시되어야 합니다. 이는 IME의 이름과 버전을 포함하여야 합니다. 이 문자열은 화면에 보여주기 위한 용도로만 쓰이며 현재는 최대 32개의 TCHAR가 가능합니다. 차기 버전에서는 좀 더 증가할 수 있습니다.

ProductName
 ProductName는 버전 정보의 특정 언어 블록에 명시되어야 합니다.

Charset IDLanguage ID
 코드 페이지(character set ID)과 언어 ID는 버전 정보 리소스의 가변 정보 블록에 명시되어야 합니다. 코드 페이지가 여러 종류이고 언어 ID가 블록에 명시되어있다면 IME는 화면에 표시하기 위해 첫 번째 코드 페이지 ID를 사용하며 IME 언어로는 첫 번째로 명시된 언어 ID를 사용합니다. 리소스 언어 대신 IME가 처리하고자 하는 언어에 맞춰져야 합니다. IME의 파일 이름은 8.3 규칙을 따라야 합니다.

IME 개발을 위한 리소스 스크립트의 예

/* Version */
VS_VERSION_INFO VERSIONINFO
	FILEVERSION 4,0,0,0
	PRODUCTVERSION 4,0,0,0
	FILEFLAGSMASK 0x3fL
	FILEFLAGS 0xaL
	FILEOS 0x4L // dwFileOS
	FILETYPE 0x3L // dwFileType
	FILESUBTYPE 0xbL // dwFileSubType
	BEGIN
		BLOCK "StringFileInfo"
		BEGIN
			BLOCK "041103A4"
			BEGIN
				VALUE "CompanyName", "Microsoft Corporation\0"
				VALUE "FileDescription", "FAKEIME 4.0 Unicode Edition\0" // FileDescription
				VALUE "FileVersion", "4.00\0"
				VALUE "InternalName", "Fake Input Method Editor\0"
				VALUE "LegalCopyright", "Copyright (C) Microsoft Corp. \0"
				VALUE "OriginalFilename", "FAKEIME.IME\0"
				VALUE "ProductName", "FAKEIME\0" // ProductName
				VALUE "ProductVersion", "4.00\0"
			END
		END
	BLOCK "VarFileInfo"
	BEGIN
		VALUE "Translation", 0x411, 932
	END
END

IME 레지스트리 내용

 HKEY_CURRENT_USER 레지스트리는 "Input Method" 이름의 키(Key)를 갖습니다. 아래 표는 여러분이 개발할 Input Method에 대해 키가 가져야 할 내용을 설명합니다. IME의 캐럿과 관련된 작동은 이 값들을 참조하여 수행되는데 생략할 경우 시스템에서 기본으로 정의된 값을 기준으로 수행됩니다.

키(Key)내용

Input Method

 4개의 값을 포함합니다: Perpendicular Distance, Parallel Distance, Perpendicular Tolerance, Parallel Tolerance.

  • Perpendicular Distance>
    텍스트의 끝으로부터 수직 거리(Distance is perpendicular to the text escapement)의 약어입니다. 폰트의 높이, 폭을 제외하고 캐럿 위치로부터 컴포지션 윈도우까지 수직 거리(픽셀)를 지정합니다. 이 값과 Parallel Distance의 값에 따라 컴포지션 윈도우의 위치를 조정할 것입니다. 이 값의 형식은 REG_DWORD입니다.
  • Parallen Distance
    텍스트 끝으로부터 수평 거리(Distance is parallel to the text escapement)의 약어입니다. 캐럿과 컴포지션 윈도우 사이의 수평 거리(픽셀)를 지정합니다. 이 값의 형식은 REG_DWORD입니다.
  • Perpendicular Tolerance
    텍스트 끝으로부터 여분의 수직 거리(Tolerance is perpendicular to the text escapement)의 약어입니다. 이는 캐럿과 컴포지션 윈도우 사이의 수직 거리입니다. 캐럿의 이동 변화가 이 값에서 지정한 크기의 이내라면 IME는 컴포지션 윈도우의 위치를 이동하지 않습니다. 이 값의 형식은 REG_DWORD입니다.
  • Parallel Tolerance
    텍스트 끝으로부터 여분의 수평 거리(Tolerance is parallel to the text escapement)의 약어입니다. 캐럿과 컴포지션 윈도우 사이의 수평 거리를 지정하며 REG_DWORD 형식입니다.

 IME는 사용자 개별 설정을 아래 위치에 둘 수 있습니다.
HKEY_CURRENT_USER\Software\(회사명)\Windows\CurrentVersion\(IME명)

 IME는 컴퓨터 수준의 설정을 아래 위치에 둘 수 있습니다.
HKEY_LOCAL_MAACHINE\Software\(회사명)\Windows\CurrentVersion\(IME명).