v8, libuv, nodejs, win32 api — как вызвать EnumWindows и иметь функцию обратного вызова для вызова функции javascript?

Я пытаюсь написать библиотеку C ++, используя v8, для node.js. Моя единственная цель — позволить JavaScript вызывать EnumWindows, функция Win32 API.

EnumWindows Сам метод принимает функцию обратного вызова в качестве параметра. Эта функция будет вызываться для каждого перечисляемого окна, передавая ему дескриптор окна.

Я пытаюсь сделать так, чтобы он также вызывал функцию javascript для каждого дескриптора окна. Есть идеи, как это сделать? libuv выглядел многообещающе, но похоже, что именно я должен был создать тему. Это не тот случай, здесь.

0

Решение

использование uv_async_init () и uv_async_send (). Вы можете прикрепить свой собственный указатель данных к uv_async_t«s data член (например, uv_async_t foo; foo.data = someptr;). Здесь вы можете хранить любые данные, которые вам нужны (например, информацию о перечисленных окнах в вашем случае), когда сигнализируете основной поток с помощью uv_async_send(),

Оказавшись внутри обратного вызова uv_async в главном потоке, вы можете читать из того же data член и призыв к JavaScript с помощью API v8.

1

Другие решения


По вопросам рекламы [email protected]