Mendaftar dan Membebaskan Layanan
Aplikasi ELS memanggil fungsiMappingGetServices untuk menentukan layanan yang tersedia pada sistem operasi. Fungsi ini dapat digunakan baik untuk menghitung semua layanan ELS yang tersedia, atau untuk memfilter layanan berdasarkan kriteria pencarian yang disediakan aplikasi. Ketika layanan tidak lagi diperlukan, aplikasi memanggil MappingFreeServices.
Dapatkan Semua Layanan yang Didukung
Contoh kode ini menggambarkan penggunaan MappingGetServices dan MappingFreeServices untuk menghitung dan kemudian membebaskan semua layanan yang tersedia pada sistem operasi. Untuk melakukan ini, aplikasi meneruskan NULL untuk parameter pOptions dari 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;
}
Dapatkan Layanan Tertentu
Contoh berikutnya menggambarkan penggunaan MappingGetServices dan MappingFreeServices untuk menghitung dan kemudian membebaskan semua layanan kategori "Deteksi Bahasa". Untuk informasi selengkapnya tentang kategori layanan ini, lihat Deteksi Bahasa 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;
}
Topik terkait