Enumerazione e freeing dei servizi
L'applicazione ELS chiama la funzione MappingGetServices per determinare i servizi disponibili nel sistema operativo. La funzione può essere usata per enumerare tutti i servizi ELS disponibili o per filtrare i servizi in base ai criteri di ricerca forniti dall'applicazione. Quando i servizi non sono più necessari, l'applicazione chiama MappingFreeServices.
Ottenere tutti i servizi supportati
In questo esempio di codice viene illustrato l'uso di MappingGetServices e MappingFreeServices per enumerare e quindi liberare tutti i servizi disponibili nel sistema operativo. A tale scopo, l'applicazione passa NULL per il parametro pOptions di MappingGetServices.
#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;
}
Ottenere servizi specifici
Nell'esempio seguente viene illustrato l'uso di MappingGetServices e MappingFreeServices per enumerare e quindi liberare tutti i servizi della categoria "Rilevamento lingua". Per altre informazioni su questa categoria di servizio, vedere Rilevamento lingua 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;
}
Argomenti correlati