Для работы с сервисами WM SDK предлагает некоторый набор функций. Если Вы захотели узнать какие сервисы присутствуют на Вашем любимом устройстве, то помочь Вам в этом может функция EnumServices. Я не буду описвать ее применение, т.к. об этом можно почитать в документации. Хотелось бы поведать о том, что согласно документации, функция поддерживается, начиная с версии Windows CE .NET 4.0 и выше и прописана в заголовочном файле «service.h». Но не тут-то было…
Недавно я написал утилитку, которая в том числе и пречисляла сервисы. Утилита должна была работать в версии WinMobile, начиная с 4.0. Изначально функции работы с сервисами брались через LoadLibrary и GetProcAddress. Не знаю что меня сподвигло на изменение кода, но вчера я решил подключить «service.h» и вызвать функции «нормально» 🙂 Каково жы было мое удивление, когда проект отказался собираться для платформы 4.х. Компилятор говорил мне, что не может найти все функции, которые работают с сервисами. Открыв «service.h» я их НЕ НАШЕЛ ! Сижу и думаю: «то ли я не проснулся, то-ли компилятор не туда лезет». Но нет, все нормально. В этом заголовочнике их определения просто нет. самое интересное, что в библиотеке coredll.lib для 4.х. имеются эти ф-ции, и начиная с платформы 5.х определения в заголовочнике уже есть.
Пришлось мне вернуться к динамической загрузке, а осадок остался.
Вопрос к Microsoft-у: Почему бы не написать это в документации?