BOOL LoadFarVersion() { wchar_t ErrText[512]; ErrText[0] = 0; BOOL lbRc = LoadFarVersion(gFarVersion, ErrText); if (!lbRc) { gFarVersion.dwVerMajor = 2; gFarVersion.dwVerMinor = 0; gFarVersion.dwBuild = FAR_X_VER; } return lbRc; }
// minimal(?) FAR version 1.71 alpha 4 build 2470 int WINAPI _export GetMinFarVersion(void) { // Однако, FAR2 до сборки 748 не понимал две версии плагина в одном файле BOOL bFar2=FALSE; if (!LoadFarVersion()) bFar2 = TRUE; else bFar2 = gFarVersion.dwVerMajor>=2; if (bFar2) { return MAKEFARVERSION(2,0,748); } return MAKEFARVERSION(1,71,2470); }
void WINAPI SetStartupInfoW(void *aInfo) { gbSetStartupInfoOk = true; if (!gFarVersion.dwVerMajor) LoadFarVersion(); if (gFarVersion.dwBuild>=FAR_Y2_VER) FUNC_Y2(SetStartupInfoW)(aInfo); else if (gFarVersion.dwBuild>=FAR_Y1_VER) FUNC_Y1(SetStartupInfoW)(aInfo); else FUNC_X(SetStartupInfoW)(aInfo); //_ASSERTE(gszRootKey!=NULL && *gszRootKey!=0); gbInfoW_OK = TRUE; StartPlugin(FALSE); }
BOOL WINAPI DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch(ul_reason_for_call) { case DLL_PROCESS_ATTACH: { ghPluginModule = (HMODULE)hModule; //ghWorkingModule = (u64)hModule; HeapInitialize(); #ifdef SHOW_STARTED_MSGBOX if (!IsDebuggerPresent()) MessageBoxA(NULL, "ConEmuLn*.dll loaded", "ConEmuLn plugin", 0); #endif bool lbExportsChanged = false; if (LoadFarVersion()) { if (gFarVersion.dwVerMajor == 3) { lbExportsChanged = ChangeExports( Far3Func, ghPluginModule ); if (!lbExportsChanged) { _ASSERTE(lbExportsChanged); } } } } break; case DLL_PROCESS_DETACH: HeapDeinitialize(); break; } return TRUE; }