본문 바로가기

Application Programming Interface/Windows API

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

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

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

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


IME 관리 구조체

아래는 IME를 관리하기 위해 사용되는 구조체들에 대해 설명하고 있습니다.

IMEINFO

IMEINFO 구조체는 내부적으로 IMM과 IME 인터페이스에 사용됩니다.

/* IMEINFO */
typedef struct tagIMEInfo {   
/* The byte count of private data in an IME context. */
/* IME 컨텍스트에서 사적으로 쓰일 메모리의 바이트 수 */
DWORD dwPrivateDataSize;
/* The IME property bits. See description below. */
/* IME 속성 비트입니다. 상세한 내용은 아래에 이어집니다. */
DWORD fdwProperty;
/* The IME conversion mode capability bits. */
/* 사용 가능한 IME 변환 모드 비트입니다. */
DWORD fdwConversionCaps;
/* The IME sentence mode capability. */
/* 사용 가능한 IME 문장 모드를 나타냅니다. */
DWORD fdwSentenceCaps;
/* The IME UI capability. */
/* IME 사용자 인터페이스를 나타냅니다. */
DWORD fdwUICaps;
/* The ImeSetCompositionString capability. */
/* 현재 시스템에서 ImeSetCompositionString 함수가 지원 가능한 기능들과 관련된 멤버입니다. */
DWORD fdwSCSCaps;
/* The IME inherit IMC capability. */
DWORD fdwSelectCaps; } IMEINFO;

IMEINFO 구조체의 멤버 설명

dwPrivateDataSize
 구조체의 총 크기입니다.

fdwProperty
 상위 1워드(HIWORD)는 어플리케이션이 사용하며 다음과 같은 비트 플래그들이 조합됩니다.

비트설명
IME_PROP_AT_CARET이 비트가 설정되면 IME 변환 윈도우는 캐럿이 놓인 위치에 표시됩니다. 이 비트가 설정되지 않으면 시스템 기본 작동입니다.
IME_PROP_SPECIAL_UI 이 비트가 설정되면 IME가 특별한 사용자 인터페이스을 가짐을 나타냅니다. IME는 어플리케이션이 표시할 수 없는 비표준 사용자 인터페이스를 제공할 때 이 비트를 반드시 설정해야 합니다. 일반적으로 IME는 이 플래그를 설정하지 않습니다.
IME_PROP_CANDLIST_START_FROM_1이 비트가 설정되면 후보 목록 문자열의 사용자 인터페이스는 0번 또는 1번째 후보부터 선택을 시작합니다. 어플리케이션은 기존의 후보 문자열 앞에 다른 후보 문자열을 추가할 수 있습니다.
IME_PROP_UNICODE이 비트가 설정되면 입력 컨텍스트의 문자열이 유니코드로 되어 있음을 의미합니다.

fdwProperty의 하위 워드(LOWORD)는 아래의 속성시스템에서 사용됩니다.

비트설명
IME_PROP_END_UNLOAD이 비트가 설정되면 IME는 자신을 사용하는 클라이언트가 없을때 언로드됩니다.
IME_PROP_KBD_CHAR_FIRST더블 바이트 문자열을 IME가 해석하기 전에 시스템이 먼저 키보드의 글쇠를 현지 글자로 해석합니다. 해석된 이 문자는 보조 정보와 함께 IME로 전달됩니다. 이 비트가 설정되어있지 않다면 보조정보는 전달되지 않습니다.
IME_PORP_NEED_ALTKEYIME가 ALT키의 눌림상태를 받고자합니다.
IME_PROP_IGNORE_UPKEYSIME가 ImeProcessKey 함수를 통해 UP 키의 눌림 상태를 받고싶지 않습니다.
IME_PROP_COMPLETE_ON_ UNSELECTWindows 98 및 Windows 2000에서 새롭게 정의된 비트입니다. 이 비트가 설정되면 IME는 자신이 비활성화되면 현재 가지고 있는 컴포지션 문자열을 완성할 것입니다. 이 비트가 설정되지 않으면 키보드 레이아웃 변경 등의 상황으로 IME가 비활성화될 때 자신이 가지고 있던 컴포지션 문자열을 취소합니다.

fdwConversionCaps

변환 모드가 정의되어 있습니다. 관련된 비트가 설정되지 않으면 IME는 해당 기능을 하지 않습니다.

변환 모드설명
IME_CMODE_KATAKANA이 비트가 설정되면 IME가 가타카나 입력을 지원합니다.
IME_CMODE_NATIVE이 비트가 설정되면 IME가 네이티브 모드를 지원합니다.
IME_CMODE_FULLSHAPE이 비트가 설정되면 IME가 전각문자 입력을 지원합니다.
IME_CMODE_ROMAN이 비트가 설정되면 IME가 로마자 입력을 지원합니다.
IME_CMODE_CHARCODE이 비트가 설정되면 IME가 문자 코드 입력을 지원합니다.
IME_CMODE_HANJACONVERT이 비트가 설정되면 IME가 [한자]키를 통한 변환을 지원합니다.
IME_CMODE_SOFTKBD이 비트가 설정되면 IME가 소프트키보드를 지원합니다.
IME_CMODE_NOCONVERSION이 비트가 설정되면 IME가 No-Conversion 모드를 지원합니다.
IME_CMODE_EUDC이 비트가 설정되면 IME가 EUDC 모드를 지원합니다.
IME_CMODE_SYMBOL이 비트가 설정되면 IME가 기호 입력 모드를 지원합니다.
IME_CMODE_FIXED이 비트가 설정되면 IME가 고정 변환 모드를 지원합니다. 이 모드는 IME가 사전 변환(Full Conversion이 아님)할 수 있도록 합니다. 고정변환 모드의 예는 DBCS 히라가나-로마자 입력 IME입니다. 이 모드에서 IME는 로마자를 입력하면 이를 히라가나로 변환할 수 있습니다. 그러나 이 모드는 DBCS 히라가나 문자를 한자로 변환하는 것을 금지합니다.

fdwSentenceCaps

문장 입력 모드를 정의한 상수입니다. 비트가 설정되지 않으면 IME는 해당 기능을 지원하지 않습니다.

변환 모드설명
IME_SMODE_PLAURALCLAUSE이 비트가 설정되면 IME가 복수형의 절(Plural Clause) 입력 모드를 지원합니다.
IME_SMODE_SINGLECONVERT이 비트가 설정되면 단일 문자 문장 모드(single character sentence mode)를 지원합니다.
IME_SMODE_AUTOMETIC 이 비트가 설정되면 IME가 자동 문장 완성 모드를 지원합니다.
IME_SMODE_PHRASEPREDICT이 비트가 설정되면 IME가 구(Phrase) 예측 모드를 지원합니다.
IME_SMODE_CONVERSATION이 비트가 설정되면 IME가 대화 모드를 지원합니다. 이 대화모드는 특히 채팅 어플리케이션에 유용합니다. 채팅 어플리케이션은 IME의 문장 모드를 대화 스타일로 변경할 수 있으며 Windows 98 및 Windows 2000부터 지원하는 새로운 기능힙니다.

fdwUICaps

fdwUICaps의 비트들은 IME의 사용자 인터페이스 기능을 지정합니다.

비트설명
UI_CAP_2700LogFont의 Escape가 0이거나 2700일 때 사용자 인터페이스는이를 지원합니다.
UI_CAP_ROT90LogFont의 Escape가 0, 900, 1800 또는 2700일 때 사용자 인터페이스는 이를 지원합니다.
UI_CAP_ROTANY LogFont의 Escape가 어떤 값이든 사용자 인터페이스는 이를 지원합니다.
UI_CAP_SOFKBDIME가 시스템이 제공하는 기본 소프트키보드를 사용합니다.

fdwSCSCaps

fdwSCSCaps의 비트는 IME가 정의하는 SetCompositionString 함수가 할 수 있는 기능을 지정합니다.

비트설명
SCS_CAP_COMPSTRIME가 SCS_SETSTR로 컴포지션 문자열을 생성할 수 있습니다.
SCS_CAP_MAKEREADSCS_SETSTR을 동반하여 ImmSetCompositionString 함수를 호출할 때 IME는 lpRead 매개변수 없이 컴포지션 문자열의 발음 문자열을 얻을 수 있습니다. IME가 이 기능을 가지고 있는 한 어플리케이션은 SCS_SETSTR을 사용하여 lpRead 매개변수를 직접 설정할 필요가 없습니다.

fdwSelectCaps

fdwSelectCaps의 비트들은 어플리케이션의 기능을 지정합니다. 사용자가 IME를 바꿀 때 어플리케이션은 이 비트를 참고하여 이전 IME의 변환 상태를 상속받아 새로 선택된 IME에게 전달할 것인지 아닌지를 결정합니다. 새로 선택된 IME가 이 기능을 갖지 않는다면 어플리케이션은 기존 IME의 변환 상태를 계속 유지해야 할 것입니다.

비트설명
SELECT_CAP_CONVMODEIME가 ImeSelect 함수가 호출될 때 변환 모드를 상속받을 수 있습니다.
SELECT_CAP_SENTENCEIME가 ImeSelect 함수가 호출될 때 문장 모드를 상속받을 수 있습니다.