枚举和释放服务
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;
}
相关主题