다음을 통해 공유


IMESTRUCT 구조체(ime.h)

SendIMEMessageEx에서 IME(입력 메서드 편집기) 메시지 및 해당 매개 변수에서 실행할 하위 기능을 지정하는 데 사용됩니다. 이 구조체는 해당 하위 함수에서 반환 값을 수신하는 데도 사용됩니다.

구문

typedef struct tagIMESTRUCT {
  UINT   fnc;
  WPARAM wParam;
  UINT   wCount;
  UINT   dchSource;
  UINT   dchDest;
  LPARAM lParam1;
  LPARAM lParam2;
  LPARAM lParam3;
} IMESTRUCT, *PIMESTRUCT, *NPIMESTRUCT, *LPIMESTRUCT;

멤버

fnc

하위 기능입니다. 다음 값 중의 하나입니다.

IME_ENTERWORDREGISTERMODE

단어를 등록하는 데 사용됩니다. 단어는 애플리케이션에서 단어와 해당 읽기를 보내도록 등록됩니다. 구조체 멤버는 다음과 같이 해석됩니다.

멤버 형식 Description
lParam1 [Windows 3.1] Lparam 낮은 순서의 단어는 0으로 끝나는 단어 문자열을 포함하는 전역 메모리에 대한 핸들을 지정합니다. 전역 메모리는 GlobalAlloc 함수에서 GMEM_MOVEABLEGMEM_SHARE 플래그를 지정하여 할당된 메모리 블록입니다.
lParam2 [Windows 3.1] Lparam 낮은 순서의 단어는 0으로 끝나는 읽기 문자열을 포함하는 전역 메모리에 대한 핸들을 지정합니다. 전역 메모리는 GlobalAlloc 함수에서 GMEM_MOVEABLEGMEM_SHARE 플래그를 지정하여 할당된 메모리 블록입니다.
lParam3 [Windows 3.1] Lparam NULL이어야 합니다.
lParam1 [Windows NT] Lparam 0으로 끝나는 단어 문자열을 포함하는 전역 메모리에 대한 핸들을 지정합니다. 전역 메모리는 GlobalAlloc 함수에서 GMEM_MOVEABLEGMEM_SHARE 플래그를 지정하여 할당된 메모리 블록입니다.
lParam2 [Windows NT] Lparam 0으로 끝나는 읽기 문자열을 포함하는 전역 메모리에 대한 핸들을 지정합니다. 전역 메모리는 GlobalAlloc 함수에서 GMEM_MOVEABLEGMEM_SHARE 플래그를 지정하여 할당된 메모리 블록입니다.
lParam3 [Windows NT] Lparam 음성의 일부에 대한 정보를 지정하는 데 사용됩니다. 이러한 정보는 현재 Windows 사양으로 지정할 수 없으므로 NULL 은 여기에 설정됩니다.
 

반환 값은 단어 등록의 결과를 나타냅니다. 등록 이 정상적으로 처리된 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.

음성의 일부와 같은 정보가 필요한 경우 사용자에게 입력을 요청하는 대화 상자가 표시되어야 합니다. nULLlParam1lParam2 멤버에 지정할 수 있습니다. 이 경우 대화 상자의 연결된 항목 필드에 아무것도 표시되지 않아야 합니다.

IME_GETCONVERSIONMODE

IME의 현재 변환 모드를 획득합니다. 이 하위 프로그래밍에서는 매개 변수를 사용하지 않습니다.

이는 IME_GET_MODE 동일합니다.

IME의 현재 변환 모드를 IME_MODE_NOCODEINPUT IME_MODE_ALPHANUMERIC조합으로 반환합니다. 변환 모드는 다음과 같습니다.

변환 모드 모드
IME_MODE_ALPHANUMERIC 영숫자
IME_MODE_KATAKANA 가타카나
IME_MODE_HIRAGANA 히라가나
IME_MODE_SBCSCHAR 싱글바이트 문자
IME_MODE_DBCSCHAR 더블 바이트 문자
IME_MODE_ROMAN 로마 문자
IME_MODE_NOROMAN 로마 문자가 아닌 문자
IME_MODE_CODEINPUT 코드 입력
IME_MODE_NOCODEINPUT 코드가 아닌 입력
 

IME_GET_MODE

IME_GETCONVERSIONMODE 동일합니다.

IME_MOVECONVERTWINDOW

IME_SETCONVERSIONWINDOW 동일합니다.

IME_SETCONVERSIONFONTEX

변환 창에 표시되는 결정되지 않은 문자열을 표시하는 데 사용할 글꼴입니다. 구조체 멤버는 다음과 같이 해석됩니다.

멤버 형식 Description
lParam1 [Windows 3.1] Lparam 하위 단어는 논리 글꼴을 지정하는 LOGFONT 구조체를 포함하는 전역 메모리에 대한 핸들을 지정합니다. 전역 메모리는 GlobalAlloc 함수에서 GMEM_MOVEABLEGMEM_SHARE 플래그를 지정하여 할당된 메모리 블록입니다. NULL 은 시스템 글꼴을 나타냅니다.
lParam1 [Windows NT] Lparam 논리 글꼴을 지정하는 LOGFONT 구조체를 포함하는 전역 메모리에 대한 핸들을 지정합니다. 전역 메모리는 GlobalAlloc 함수에서 GMEM_MOVEABLEGMEM_SHARE 플래그를 지정하여 할당된 메모리 블록입니다. NULL 은 시스템 글꼴을 나타냅니다.
 

이 하위 함수에는 반환 값이 없습니다.

IME_SETCONVERSIONFONTEX 지정한 글꼴은 결정되지 않은 문자열을 표시하는 데만 사용할 수 있습니다.

결정되지 않은 문자열을 기본 위치에 표시하려면 시스템 글꼴을 사용합니다. 표시 위치가 더 이상 기본 위치가 아니면 이전에 지정한 글꼴을 사용하도록 설정합니다.

LOGFONT 구조를 포함하는 전역 메모리는 애플리케이션에서 해제됩니다.

현재 변환 창을 표시하는 IME가 IME_SETCONVERSIONFONTEX 명령을 수신하고 변환 창을 처리하는 명령의 결과로 변경된 경우 IME는 WM_IME_REPORT:IR_CHANGECONVERT 메시지를 보내야 합니다. IME_SETCONVERSIONFONTEX 지정한 글꼴이 IME에서 사용하는 글꼴과 같으면 이 메시지를 보내지 않아야 합니다.

IME_SETCONVERSIONMODE

IME의 변환 모드를 설정합니다. wParam 멤버는 다음 값 중 하나 이상을 지정합니다.

의미
IME_MODE_ALPHANUMERIC 영숫자 변환 모드입니다. 이 값은 IME_MODE_KATAKANA 또는 IME_MODE_HIRAGANA 사용할 수 없습니다.
IME_MODE_KATAKANA 가타카나 변환 모드입니다. 이 값은 IME_MODE_ALPHANUMERIC 또는 IME_MODE_HIRAGANA 사용할 수 없습니다.
IME_MODE_HIRAGANA 히라가나 변환 모드입니다. 이 값은 IME_MODE_ALPHANUMERIC 또는 IME_MODE_HIRAGANA 사용할 수 없습니다.
IME_MODE_SBCSCHAR 싱글 바이트 문자 변환 모드입니다. 이 매개 변수는 IME_MODE_DBCSCHAR 사용할 수 없습니다.
IME_MODE_DBCSCHAR 더블 바이트 문자 변환 모드입니다. 이 매개 변수는 IME_MODE_SBCSCHAR 사용할 수 없습니다.
IME_MODE_ROMAN 로마 문자 변환 모드입니다. 이 매개 변수는 IME_MODE_NOROMAN 사용할 수 없습니다.
IME_MODE_NOROMAN 로마 문자가 아닌 문자 변환 모드입니다. 이 매개 변수는 IME_MODE_ROMAN 사용할 수 없습니다.
IME_MODE_CODEINPUT 코드 입력 변환 모드입니다. 이 매개 변수는 IME_MODE_NOCODEINPUT 사용할 수 없습니다. 코드 입력 모드에서 IME가 작동하는 방식은 특정 IME에 따라 달라집니다.
IME_MODE_NOCODEINPUT 비코드 입력 변환 모드입니다. 이 매개 변수는 IME_MODE_CODEINPUT 사용할 수 없습니다.
 

반환 값은 지정된 변환 모드가 성공적으로 설정되었는지 여부를 나타냅니다. 새 변환 모드가 설정된 경우 이전에 적용된 변환 모드의 상태를 반환합니다. 그렇지 않으면 NULL입니다.

IME_SETCONVERSIONWINDOW

IME에 대한 경계 사각형의 크기와 위치 및 변환 창의 초기 위치입니다. IME는 이 하위 함수에 지정된 위치에 결정되지 않은 문자열을 표시합니다.

wParam 멤버는 다음 값 중 하나를 지정합니다.

의미
MCW_DEFAULT 변환 창을 기본 위치(일반적으로 화면 아래쪽)에 표시합니다.

MCW_DEFAULT 스타일이 IME_SETCONVERSIONWINDOW 메시지에 지정된 경우 IME가 기본 위치에 변환 창을 표시하거나 그릴 때 IR_OPENCONVERT, IR_CHANGECONVERT, IR_FULLCONVERT 또는 IR_CLOSECONVERT 메시지를 보내지 않아야 합니다.

MCW_WINDOW lParam1 멤버에 지정된 좌표의 변환 창을 WM_CONVERTREQUEST 또는 WM_CONVERTREQUESTEX 메시지의 wParam 매개 변수에 지정된 창에 표시합니다. lParam1의 값은 창의 왼쪽 위 모서리에 상대적인 좌표를 나타내며 X 좌표를 나타내는 하위 단어와 Y 좌표의 상위 단어를 나타냅니다. 경계 사각형은 지정된 창의 클라이언트 사각형이며 가나 간지 변환을 호출하는 가장 일반적인 방법입니다.

MCW_WINDOW 스타일이 IME_SETCONVERSIONWINDOW 메시지에 지정된 경우 변환 창 상태 닫힘에서 열기로 변경된 경우 IME에서 IR_OPENCOVERT 메시지를 보내야 합니다. 변환 창 상태 열기에서 닫힘으로 변경된 경우 IME는 IR_CLOSECONVERT 메시지를 보내야 합니다. 그러나 예외가 있습니다. 자세한 내용은 IME_WINDOWUPDATE 참조하세요.

MCW_WINDOW | MCW_RECT 경계 사각형이 lParam2lParam3 멤버에 의해 지정된다는 점을 제외하고 MCW_WINDOW 동일합니다. lParam2 멤버는 왼쪽 위 점을 지정하고 lParam3은 각각 X 좌표를 나타내는 하위 단어와 Y 좌표의 상위 단어를 사용하여 오른쪽 아래 점을 지정합니다. 좌표는 창의 왼쪽 위에 상대적입니다.
MCW_SCREEN lParam1 멤버가 지정한 왼쪽 위 모서리가 있는 변환 창을 표시합니다. lParam1 멤버는 화면의 왼쪽 위 모서리에 있는 원점과 절대 좌표를 나타냅니다. 하위 단어는 X 좌표와 Y 좌표의 상위 단어를 나타냅니다. 경계 사각형은 전체 화면입니다.

MCW_SCREEN 스타일이 IME_SETCONVERSIONWINDOW 메시지에 지정된 경우 변환 창 상태 닫힘에서 열기로 변경된 경우 IME에서 IR_OPENCOVERT 메시지를 보내야 합니다. 변환 창 상태 열기에서 닫힘으로 변경된 경우 IME는 IR_CLOSECONVERT 메시지를 보내야 합니다. 그러나 예외가 있습니다. 자세한 내용은 IME_WINDOWUPDATE 참조하세요.

MCW_SCREEN | MCW_RECT 경계 사각형이 lParam2lParam3 멤버에 의해 지정된다는 점을 제외하고 MCW_SCREEN 동일합니다. lParam2 멤버는 왼쪽 위 점을 지정하고 lParam3은 각각 X 좌표를 나타내는 하위 단어와 Y 좌표의 상위 단어를 사용하여 오른쪽 아래 점을 지정합니다. 좌표는 화면 왼쪽 위에 있는 원점과 절대 좌표입니다.
MCW_HIDDEN [Windows 3.1] 이 플래그를 지정하면 IME에 변환 창이 표시되지 않습니다. 대신 애플리케이션 자체는 결정되지 않은 문자열을 표시합니다. lParam1 멤버는 애플리케이션 또는 관심 지점에 의해 표시되는 커서 위치의 좌표를 지정합니다. lParam2lParam3 멤버는 IME에서 표시를 사용하지 않는 지역을 지정합니다. 팝업 창에 결정 문자열 후보를 표시하는 IME는 이러한 정보를 사용하여 결정된 문자열 후보 창을 표시할 위치를 결정할 수 있습니다. 후보 문자열을 표시하는 창은 시스템 창으로 간주됩니다. 따라서 이러한 창을 표시할지 여부, 창을 표시하는 위치 및 방법 및 사용할 키보드 입력과 관련하여 IME에 따라 달라집니다. 세 멤버 lParam1, lParam2lParam3은 각각 X 좌표를 나타내는 하위 단어와 Y 좌표의 상위 단어를 사용하여 화면 왼쪽 위에서 절대 좌표를 지정합니다.

MCW_HIDDEN 플래그를 지정하면 IME는 IR_UNDETERMINE 메시지를 보내 애플리케이션에 결정되지 않은 문자열을 표시하도록 요청합니다. 애플리케이션 자체는 이 메시지에 포함된 결정되지 않은 문자열을 표시합니다.

MCW_HIDDEN 플래그가 지정되면 IME는 IR_OPENCONVERT, IR_CHANGECONVERT 또는 IR_CLOSECONVERT 메시지를 보내지 않습니다.

애플리케이션이 MCW_HIDDEN 지정하고 동시에 사각형을 너무 크게 요청하여 결정된 문자열에 대한 후보 창을 표시할 경우 오류로 처리되어야 합니다. 오류 코드는 IME_RD_TOOLONG 합니다.

MCW_HIDDEN 스타일이 IME_SETCONVERSIONWINDOW 메시지에 지정된 경우 IME는 IR_OPENCONVERT, IR_CHANGECONVERT, IR_FULLCONVERT 또는 IR_CLOSECONVERT 보내지 않아야 합니다.

MCW_VERTICAL 애플리케이션이 문자 문자열을 세로 쓰기 형식으로 표시하고 있음을 IME에 알릴 수 있습니다. 이 플래그를 지정하면 세로 쓰기를 위해 변환 창이 표시되고 lParam1 멤버가 지정한 위치가 오른쪽 위 모서리가 됩니다. 이 플래그는 MCW_WINDOW| MCW_WINDOW 사용하여 지정할 수 있습니다.MCW_RECT, MCW_SCREEN 또는 MCW_SCREEN|MCW_RECT. IME는 MCW_VERTICAL 지원해야 합니다. MCW_VERTICAL 지정하고 선택한 글꼴이 세로 쓰기용이 아닌 경우 IME는 기본 세로 쓰기 글꼴을 사용합니다. 이 기본 글꼴은 다음과 같이 만들어집니다.
  1. 글꼴 정보는 SYSTEM_FONT 글꼴 핸들을 사용하여 GetObject 함수에 의해 LOGFONT 구조에서 검색됩니다.
  2. 글꼴은 얼굴 이름의 시작 부분에 앰퍼샌드(@)를 추가하고 이스케이프 및 방향을 270도로 설정하여 만듭니다.
 

반환 값은 명령이 실행되었는지 여부를 나타냅니다. 명령 실행이 성공하면 TRUE입니다. 그렇지 않으면 FALSE입니다.

결정되지 않은 문자열이 경계 사각형을 오버플로하는 것처럼 보이는 경우 IME는 해당 문자열을 표시하기 전에 애플리케이션에 WM_IME_REPORT:IR_FULLCONVERT 보고서 메시지를 실행해야 합니다. 애플리케이션이 이 메시지를 처리하지 않는 경우 디스플레이에 대한 후속 처리는 이 사양에서 공식화되지 않지만 IME에 남아 있습니다. 예를 들어 결정되지 않은 문자열은 경계 사각형 내에서 스크롤되거나 일시적으로 기본 위치로 이동될 수 있습니다.

IME가 결정되지 않은 문자열을 보유할 때 IME_SETCONVERSIONWINDOW 메시지가 호출되면 IME는 WM_IME_REPORT:IR_CLOSECONVERT 메시지를 실행해야 합니다. 문자열이 매개 변수로 지정된 창에 맞으면 IME는 WM_IME_REPORT:IR_OPENCONVERT 메시지를 실행해야 합니다. 그런 다음에만 변환 창을 그려야 합니다. 문자열이 창에 맞지 않으면 IME에서 WM_IME_REPORT:IR_FULLCONVERT 메시지를 실행해야 합니다.

경계 사각형의 위치는 실제 화면 영역 외부에 지정될 수 있습니다. 전체 경계 사각형이 실제 화면 외부에 있는 경우 결정되지 않은 문자열을 표시해서는 안 됩니다. 경계 사각형의 일부가 실제 화면 외부에 있는 경우 IME는 경계 사각형을 잘라내어 결정되지 않은 문자열의 일부가 화면을 오버플로하지 않도록 하고 표시 시작 위치도 조정합니다.

변환 창에 표시되는 최대 줄 수 또는 최대 문자 수를 설정하지 않는 것이 좋습니다.

변환 창이 시스템 창과 겹치면 변환 창이 표시되어야 합니다. 예를 들어 변환 창에 표시 우선 순위를 지정하거나 시스템 창을 다른 곳으로 이동할 수 있습니다.

변환 창의 크기가 변경되거나 내용이 표시되거나 색이 표시되면 IME에서 IR_CHANGECONVERT 메시지를 보내야 합니다. 그러나 결정되지 않은 문자열이 지정된 창에 맞지 않는 경우 IME는 IR_CHANGECONVERT 대신 IR_FULLCONVERT 메시지를 보내야 합니다.

IME가 MCW_WINDOW 또는 MCW_SCREEN 모드에서 MCW_DEFAULT 이동한 경우 결정되지 않은 문자열이 있는 경우 IR_CLOSECONVERT 메시지를 보내야 합니다.

IME가 MCW_WINDOW 또는 MCW_SCREEN 모드에서 MCW_HIDDEN 이동한 경우 결정되지 않은 문자열이 있는 경우 IR_CLOSECONVERT 메시지를 보내야 합니다.

IME가 MCW_HIDDEN 모드에서 MCW_DEFAULT, MCW_SCREEN 또는 MCW_WINDOW 이동한 경우 IME는 결정되지 않은 문자열 = 0 및 결정된 문자열 = 0을 사용하여 IR_UNDETERMINE 메시지를 전송해야 합니다.

IME_SETLEVEL

현재 애플리케이션에서 IME 수준을 설정하는 한국어별 하위 기능입니다. wParam 멤버는 다음 수준 값 중 하나를 허용합니다.

Level 의미
1 IME 지원이 없습니다. 모든 IME 관련 메시지는 무시됩니다.
2 부분 IME 지원. 컴퍼지션 또는 후보 창의 위치와 입력 모드 또는 상태 포함하여 IME 동작의 하위 집합을 지원합니다.
3 전체 IME 지원.
 

IME_SETOPEN

IME의 가나 간지 변환 기능의 상태 설정합니다.

wParam 멤버가 0이 아닌 값으로 설정되어 IME를 열고 0으로 설정하여 IME를 닫습니다.

반환 값은 가나 간지 변환 기능의 이전 상태 나타냅니다. 열려 있는 경우 TRUE 를 반환합니다. 그렇지 않으면 FALSE입니다.

가나 간지 변환 기능이 IME_SETOPEN 의해 닫혔는지 결정되지 않은 문자열을 결정해서는 안 됩니다.

IME_SETOPEN 의해 가나 간지 변환 기능을 닫을 때 IME가 MCW_WINDOW 또는 MCW-SCREEN 모드이고 변환 창이 열려 있는 경우 IME에서 IR_CLOSECONVERT 메시지를 보내야 합니다. 그러나 IME가 MCW_HIDDEN 모드이고 결정되지 않은 문자열이 있는 경우 IR_CLOSECONVERT 실행할 필요가 없습니다.

IME_SET_MODEK

IME_SETCONVERSIONMODE 한국어별 버전입니다.

wParam

사용량은 fnc에 지정된 하위 함수에 따라 달라집니다.

wCount

사용량은 fnc에 지정된 하위 함수에 따라 달라집니다.

dchSource

사용량은 fnc에 지정된 하위 함수에 따라 달라집니다.

dchDest

사용량은 fnc에 지정된 하위 함수에 따라 달라집니다.

lParam1

사용량은 fnc에 지정된 하위 함수에 따라 달라집니다.

lParam2

사용량은 fnc에 지정된 하위 함수에 따라 달라집니다.

lParam3

사용량은 fnc에 지정된 하위 함수에 따라 달라집니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 ime.h

추가 정보

클립보드

개념

참조

SetClipboardData