Énumération et libération des services
L’application ELS appelle la fonction MappingGetServices pour déterminer les services disponibles sur le système d’exploitation. La fonction peut être utilisée pour énumérer tous les services ELS disponibles ou pour filtrer les services en fonction des critères de recherche fournis par l’application. Lorsque les services ne sont plus nécessaires, l’application appelle MappingFreeServices.
Obtenir tous les services pris en charge
Cet exemple de code illustre l’utilisation de MappingGetServices et MappingFreeServices pour énumérer, puis libérer tous les services disponibles sur le système d’exploitation. Pour ce faire, l’application transmet la valeur NULL pour le paramètre pOptions de 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;
}
Obtenir des services spécifiques
L’exemple suivant illustre l’utilisation de MappingGetServices et MappingFreeServices pour énumérer, puis libérer tous les services de la catégorie « Détection de langue ». Pour plus d’informations sur cette catégorie de service, consultez Détection de langue 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;
}
Rubriques connexes