Можно ли использовать частные API в разработке Windows Phone 8, аналогичные разработке iOS?
Конечно, это НЕ о том, что приложения будут опубликованы (AppStore/Marketplace). Но есть много вариантов использования для непубличных проектов, где разработчик хочет вызвать внутренние системные функции.
С установленным Windows Phone 8 SDK можно смонтировать образ эмулятора Windows Phone 8 Emulator, расположенный в папке "C:\Program Files (x86)\Microsoft SDK\Windows Phone\v8.0\Emulation\Images". В главном разделе Windows Phone OS можно перейти к Windows\System32 и проверить системные DLL файлы с помощью инструмента Dependency Walker или IDA Pro.
Есть много функций, которые звучат очень интересно, но которые не доступны для публики и, следовательно, не документируются. Вопрос в том, можно ли их как-то вызвать из приложения или другими способами?
Несколько примеров интересных функций (их намного больше):
- ShellChrome.dll: InvokeStartMenu, InvokeScreenCapture, InvokeVolumeUp, LockDevice,...
- InputInjection.dll: ApiInjectInitialize, ApiInjectTouchEvent,...
- ...
Я попытался заставить LoadLibrary (в частности, LoadLibraryExA) работать как-то в собственном проекте Windows Phone App, а также загружать и вызывать эти функции (загрузка библиотеки работала). Короче говоря, я закончил с ошибками нарушения прав доступа или аналогичными при попытке вызвать функции (возможно, из изолированной среды исполнения). Другая проблема заключается в том, что я могу только угадать сигнатуры (аргументы) функций. Я не могу найти их с помощью инструментов, которые я использую.