확장 언어 서비스 정보
ELS(확장 언어 서비스)는 애플리케이션이 지정하는 텍스트에 대한 다양한 언어 지원 기능을 제공하는 DLL(동적 연결 라이브러리)로 구현됩니다. 이 기술에는 플랫폼을 통해 애플리케이션에 액세스할 수 있는 몇 가지 미리 정의된 언어 서비스 유형에 대한 ELS 플랫폼 및 플러그 인이 포함됩니다.
참고
ELS 모듈은 Windows 7 이상과 함께 자동으로 설치됩니다.
ELS 플랫폼
ELS 플랫폼은 애플리케이션과 ELS 서비스 간의 인터페이스입니다. 애플리케이션이 특정 서비스에 액세스하고 사용할 수 있도록 동일한 API를 통해 여러 종류의 언어 기능을 구현하는 간단한 방법을 제공합니다. API에 대한 자세한 내용은 확장 언어 서비스 참조를 참조하세요.
참고
애플리케이션이 ELS API 함수를 호출할 때 플랫폼은 서비스와의 통신에 필요한 메모리 및 리소스를 할당합니다. 애플리케이션은 이러한 리소스를 해제하기 위해 플랫폼을 다시 호출해야 합니다.
플랫폼은 애플리케이션 가상 메모리 공간 내에서 실행되며 할당된 모든 메모리는 이 공간의 일부입니다. 따라서 애플리케이션은 Elscore.lib에 연결하거나 Elscore.dll 동적으로 로드하여 ELS 구성 요소 DLL(Elscore.dll)에 연결하면 됩니다.
ELS 서비스
Windows 7 이상의 경우 ELS 플랫폼은 다음과 같은 미리 정의된 서비스만 지원합니다.
참고
이후 버전의 ELS는 Microsoft 또는 서비스 공급자가 제공하는 추가 서비스를 지원합니다.
각 서비스는 서비스가 수행하는 작업을 설명하는 서비스 범주와 연결됩니다. 범주는 로컬링할 수 없는 문자열로 표시됩니다. 애플리케이션에서 사용 가능한 서비스를 열거하는 데 사용됩니다. 현재 서비스 범주는 다음과 같습니다.
- "언어 감지"
- "스크립트 검색"
- "음역"
플랫폼은 서비스 메타데이터를 사용하여 애플리케이션에서 요청한 서비스를 열거합니다. 서비스 GUID(Globally Unique Identifier), 지원되는 입력 및 출력 언어 및 스크립트 및 서비스 범주와 같은 속성은 애플리케이션에서 원하는 ELS 서비스를 열거하는 데 사용할 수 있습니다.
각 ELS 서비스는 ELS 플랫폼이 이를 감지하고 사용할 수 있도록 운영 체제에 설치할 수 있는 DLL에서 지원하는 플러그 인으로 구현됩니다. 필요한 경우 서비스는 자체 하위 서비스를 노출할 수 있습니다.
기본 ELS 작업
이 섹션에서는 ELS 플랫폼에서 지원하는 기본 작업에 대해 설명합니다. 플랫폼은 동기 및 비동기 호출 모드를 모두 지원합니다. 비동기 호출 모드는 애플리케이션 스레드 풀을 사용하여 요청을 처리하기 위해 스레드를 예약합니다.
참고
플랫폼은 비동기 모드를 지원하므로 ELS 서비스는 이러한 유형의 기능을 자체 구현할 필요가 없습니다.
서비스 열거형
ELS 플랫폼은 모든 ELS 서비스를 로드하고 관리하여 애플리케이션에 대한 작업을 투명하게 만듭니다. 애플리케이션은 MappingGetServices를 호출하여 사용 가능한 서비스를 열거합니다. 프로그래밍 지침은 서비스 열거 및 해제를 참조하세요.
참고
성능상의 이유로 애플리케이션이 사용 가능한 서비스를 한 번만 열거하도록 하는 것이 좋습니다. ELS 플랫폼은 다음 열거형에서 서비스를 다시 확인하여 열거형 결과가 항상 최신 상태인지 확인합니다.
텍스트 인식
서비스 열거 후 애플리케이션은 MappingRecognizeText 함수를 호출하여 특정 ELS 서비스를 사용하여 입력 텍스트의 텍스트 범위를 출력 텍스트에 매핑합니다. 텍스트 인식의 예는 텍스트 세그먼트를 수신하고 가장 가능성이 있는 언어를 검색하는 언어 감지 서비스를 사용하는 것입니다.
서비스에서 텍스트를 인식한 후 MappingRecognizeText 는 서비스에서 생성된 출력 데이터 및 속성으로 채워진 MAPPING_PROPERTY_BAG 구조로 반환됩니다. 메모리 누수 방지를 위해 애플리케이션은 MappingRecognizeText가 S_OK 반환할 때마다 MappingFreePropertyBag을 호출하여 속성 모음을 해제해야 합니다. 일반적으로 애플리케이션은 출력 데이터 사용을 완료할 때 또는 텍스트의 입력 영역(예: 편집 또는 삭제)이 수정되었기 때문에 출력 데이터가 더 이상 관련이 없는 경우 이를 수행합니다. 속성 모음이 해제되면 MappingFreePropertyBag 이 반환됩니다.
텍스트 인식에 대한 프로그래밍 지침은 텍스트 인식 요청에 제공됩니다.
서비스 종료
애플리케이션에 ELS 서비스가 더 이상 필요하지 않은 경우 종료되기 전에 MappingFreeServices 를 호출합니다. 자세한 내용은 서비스 열거 및 해제를 참조하세요.
버전 관리
이후 버전의 ELS를 사용하면 ELS 서비스를 업데이트할 수 있습니다. 애플리케이션은 MAPPING_SERVICE_INFO 구조의 버전 번호를 검사 서비스의 변경 내용을 검색할 수 있습니다.
참고
ELS 애플리케이션은 동일한 서비스의 다른 버전이 정확히 동일한 결과를 검색할 수 있다고 가정해서는 안 됩니다.