Когда вы задаете вопрос «JNA включает», полезно указать, что есть две части проекта JNA. Это артефакт jna
, который включает в себя основные функции, и артефакт jna-platform
, содержащий отправленные пользователем сопоставления JNA для различных платформ. Я выделяю «отправлено пользователем», поскольку JNA - это проект, поддерживаемый сообществом, а ответ на часто задаваемый вопрос «JNA не хватает функции XXX в сопоставлениях библиотек платформы»: «Нет, это не так, он просто ждет, когда вы добавите ее. :) ".
DLL Olea cc является одним из таких экземпляров. Его еще нет в артефакте jna-platform
, но он может быть, если его отправил пользователь. См., Например, пользователь в 2015 году сам сопоставил эту библиотеку, но не предоставил ее сообществу, так что через 5 лет вы воспроизводите это усилие! Если вы прокрутите вниз в этом выпуске JNA, вы увидите образец кода, реализующий ваш метод и несколько других, что было бы fantasti c, если бы вы могли внести свой вклад в JNA!
Между тем, когда отображение не В JNA приведенная выше ссылка на часто задаваемые вопросы дает шаблон для ее реализации. В вашем конкретном случае c код для реализации AccessibleObjectFromWindow
будет простым для вас, чтобы вы могли выполнить его в своем собственном проекте. Создайте класс Olea cc со следующим содержимым:
public interface Oleacc extends StdCallLibrary, WinUser, WinNT {
Oleacc INSTANCE = (Oleacc) Native.loadLibrary("oleacc", Oleacc.class, W32APIOptions.DEFAULT_OPTIONS);
HRESULT AccessibleObjectFromWindow(HWND win, int objID, Guid.REFIID iid, PointerByReference ptr);
}
И готово! Так это отображение еще в JNA? Нет, но, надеюсь, после того, как вы реализовали его и протестировали свой код, вы можете внести свое отображение в проект, чтобы следующий человек, которому это нужно, мог найти его в JNA!