int OnPluginLoad(WPARAM, LPARAM lParam) { CallPluginEventHook((HINSTANCE)lParam, hTTBModuleLoaded, 0, 0); if (g_ctrl->hWnd && g_ctrl->bOrderChanged) PostMessage(g_ctrl->hWnd, TTB_UPDATEFRAMEVISIBILITY, 0, 0); return 0; }
static void LoadOptionsModule(HWND hdlg, OptionsDlgData *dat, HINSTANCE hInst) { OptionsPageInit opi = { 0 }; CallPluginEventHook(hInst, hOptionsInitEvent, (WPARAM)&opi, 0); if (opi.pageCount == 0) return; for (int i = 0; i < opi.pageCount; i++) { OptionsPageData* opd = (OptionsPageData*)mir_calloc(sizeof(OptionsPageData)); if (LoadOptionsPage(&opi.odp[i], opd)) dat->arOpd.insert(opd); else mir_free(opd); } FreeOptionsData(&opi); PostMessage(hdlg, DM_REBUILDPAGETREE, 0, 0); }
static void LoadOptionsModule(HWND hdlg, OptionsDlgData *dat, HINSTANCE hInst) { OptionsPageInit opi = { 0 }; CallPluginEventHook(hInst, hOptionsInitEvent, (WPARAM)&opi, 0); if (opi.pageCount == 0) return; for (int i = 0; i < opi.pageCount; i++) { OptionsPageData *opd = new OptionsPageData(&opi.odp[i]); if (opd->pDialog == NULL) // smth went wrong delete opd; else dat->arOpd.insert(opd); } FreeOptionsData(&opi); PostMessage(hdlg, DM_REBUILDPAGETREE, 0, 0); }
static bool LoadPluginDynamically(PluginListItemData *dat) { TCHAR exe[MAX_PATH]; GetModuleFileName(NULL, exe, _countof(exe)); TCHAR *p = _tcsrchr(exe, '\\'); if (p) *p = 0; pluginEntry* pPlug = OpenPlugin(dat->fileName, _T("Plugins"), exe); if (pPlug->pclass & PCLASS_FAILED) { LBL_Error: Plugin_UnloadDyn(pPlug); return false; } if (!TryLoadPlugin(pPlug, true)) goto LBL_Error; if (CallPluginEventHook(pPlug->bpi.hInst, hModulesLoadedEvent, 0, 0) != 0) goto LBL_Error; dat->hInst = pPlug->bpi.hInst; NotifyFastHook(hevLoadModule, (WPARAM)pPlug->bpi.pluginInfo, (LPARAM)pPlug->bpi.hInst); return true; }