#include <iostream>
#include <string>
// ...
void func(int a, double b, const std::string& c) {
std::cout << "a=" << a << ", b=" << b << ", c=" << c << '\n';
}
int main()
{
int a = 1;
double b = 2.0;
std::string c = "hello";
PluginSDK::CBackgroundTask task("test");
task.SetRunTask(func, a, b, c);
// ...
return 0;
}
//CDocEventHandler.h
class CDocEventHandler
{
public:
static void RegisterEventHandler(FS_LPVOID clientData);
protected:
static void OnDocPermChange(FS_LPVOID clientData, FR_Document frDoc);
static void OnDocCurrentWndProvideChange(FS_LPVOID clientData, FR_Document frDoc,FS_ByteString fbsWndProvideName);
static void OnDocPageLabelChange(FS_LPVOID clientData, FR_Document frDoc);
protected:
CDocEventHandler() { ; }
~CDocEventHandler() { ; }
static FR_DocEventCallbacksRec m_frCallbacks;
};
//CDocEventHandler.cpp
FR_DocEventCallbacksRec CDocEventHandler::m_frCallbacks = { 0 };
void CDocEventHandler::RegisterEventHandler(FS_LPVOID clientData)
{
m_frCallbacks.lStructSize = sizeof(FR_DocEventCallbacksRec);
m_frCallbacks.clientData = clientData;
m_frCallbacks.FRDocOnPermissionChange = OnDocPermChange;
m_frCallbacks.FROnDocCurrentWndProvideChange = OnDocCurrentWndProvideChange;
m_frCallbacks.FROnDocPageLabelChange = OnDocPageLabelChange;
FRAppRegisterDocHandlerOfPDDoc(&m_frCallbacks);
}
//GlobalHandler.cpp实际的调用
void CGlobalHandler::Initialize(HINSTANCE dllInstance)
{
assert(dllInstance);
//.....
CDocEventHandler::RegisterEventHandler(nullptr);
//.....
}
【调用示例代码】【仅供参考】
看下这个链接对博主有没有用
https://b23.tv/je9WZPs