FireBreath передача значений из одной функции в другую и использование этих функций в JavaScript

Как я могу пройти ptx а также pty от TestPluginAPI::ClickSemulationMove
в TestPluginAPI::ClickSemulationClick(int ptx, int pty),
Дело в том, что я должен использовать эти две функции в JavaScript и, следовательно, не могу просто выставить их из одной в другую.

FB::variant TestPluginAPI::ClickSemulationClick(int ptx, int pty)
{

ShowCursor(true);
MouseLeft();
MouseReturn(ptx, pty);
ShowCursor(true);
return 0;
}

FB::variant TestPluginAPI::ClickSemulationMove(int ptx, int pty)
{
POINT pt;
MouseMove(-325, 605);
GetCursorPos(&pt);
ptx = pt.x;
pty = pt.y;
return 0;
}

Как я понял, мне нужно использовать JSObjectPtr или FB :: VariantList, но я немного запутался без какого-либо образца. Может кто-нибудь показать мне простой пример кода?

0

Решение

Вы читали JSAPI документы? Вся информация там.

Чтобы вернуть массив (будет массивом javascript) с двумя значениями, вы можете просто сделать:

return FB::variant_list_of(pt.x)(pt.y);

Затем в JavaScript вы можете вызвать другой метод, например:

var res = plugin().ClickSemulationMove(); // Assuming you don't actually need args here
plugin().ClickSemulationClick(res[0], res[1]);

Вы также можете передать массив напрямую, в этом случае вы можете сделать что-то подобное в C ++:

FB::variant TestPluginAPI::ClickSemulationClick(const std::vector<int>& arr)
{
ShowCursor(true);
MouseLeft();
MouseReturn(arr[0], arr[1]);
ShowCursor(true);
return 0;
}

Серьезно, есть примеры всех этих вещей в Пример FBTestPlugin в базе кода FireBreath; Вы должны провести там некоторое время. Большинство вопросов, которые, как я вижу, задают вы, могут быть быстро обнаружены при чтении этого кода, и тогда вы поймете это лучше.

1

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

Других решений пока нет …

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