Bagikan melalui


Menghitung dan Membebaskan Layanan

Aplikasi ELS memanggil fungsi MappingGetServices 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 melewati 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;
}

Mendapatkan 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;
}

Menggunakan Extended Linguistic Services

PemetaanFreeServices

PemetaanGetServices