서비스 열거 및 해제
ELS 애플리케이션은 MappingGetServices 함수를 호출하여 운영 체제에서 사용할 수 있는 서비스를 확인합니다. 함수를 사용하여 사용 가능한 모든 ELS 서비스를 열거하거나 애플리케이션에서 제공하는 검색 조건에 따라 서비스를 필터링할 수 있습니다. 서비스가 더 이상 필요하지 않은 경우 애플리케이션은 MappingFreeServices를 호출합니다.
지원되는 모든 서비스 가져오기
이 코드 예제에서는 MappingGetServices 및 MappingFreeServices 를 사용하여 운영 체제에서 사용 가능한 모든 서비스를 열거한 다음 해제하는 방법을 보여 줍니다. 이를 위해 애플리케이션은 MappingGetServices의 pOptions 매개 변수에 대해 NULL을 전달합니다.
#include <windows.h>
#include <stdio.h>
#include <elscore.h>
int __cdecl main()
{
PMAPPING_SERVICE_INFO prgServices = NULL;
DWORD dwServicesCount = 0;
HRESULT Result;
DWORD i;
// Get all installed ELS services.
Result = MappingGetServices(NULL, &prgServices, &dwServicesCount);
if (SUCCEEDED(Result))
{
for (i = 0; i < dwServicesCount; ++i)
{
// Do something with each service.
// ... prgServices[i] ...
printf_s("Service: %ws, category: %ws\n",
prgServices[i].pszDescription, prgServices[i].pszCategory);
}
MappingFreeServices(prgServices);
}
return 0;
}
특정 서비스 가져오기
다음 예제에서는 MappingGetServices 및 MappingFreeServices 를 사용하여 "언어 감지" 범주의 모든 서비스를 열거한 다음 해제하는 방법을 보여 줍니다. 이 서비스 범주에 대한 자세한 내용은 Microsoft 언어 검색을 참조하세요.
#include <windows.h>
#include <stdio.h>
#include <elscore.h>
int __cdecl main()
{
MAPPING_ENUM_OPTIONS EnumOptions;
PMAPPING_SERVICE_INFO prgServices = NULL;
DWORD dwServicesCount = 0;
HRESULT Result;
DWORD i;
ZeroMemory(&EnumOptions, sizeof (MAPPING_ENUM_OPTIONS));
EnumOptions.Size = sizeof (MAPPING_ENUM_OPTIONS);
// Use the Language Auto-Detection category to enumerate
// all language detection services.
EnumOptions.pszCategory = L"Language Detection";
// Execute the enumeration:
Result = MappingGetServices(&EnumOptions, &prgServices, &dwServicesCount);
if (SUCCEEDED(Result))
{
for (i = 0; i < dwServicesCount; ++i)
{
// Do something with each service.
// ... prgServices[i] ...
printf_s("Service: %ws, category: %ws\n",
prgServices[i].pszDescription, prgServices[i].pszCategory);
}
MappingFreeServices(prgServices);
}
return 0;
}
관련 항목