列舉和釋放服務
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 列舉,然後釋放類別 「Language Detection」 的所有服務。 如需此服務類別的詳細資訊,請參閱 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;
}
相關主題