// hConWnd - HWND _реальной_ консоли BOOL LoadSrvMapping(HWND hConWnd, CESERVER_CONSOLE_MAPPING_HDR& SrvMapping) { if (!hConWnd) return FALSE; MFileMapping<CESERVER_CONSOLE_MAPPING_HDR> SrvInfoMapping; SrvInfoMapping.InitName(CECONMAPNAME, (DWORD)hConWnd); //-V205 const CESERVER_CONSOLE_MAPPING_HDR* pInfo = SrvInfoMapping.Open(); if (!pInfo) return FALSE; else if (pInfo->nProtocolVersion != CESERVER_REQ_VER) return FALSE; else { memmove(&SrvMapping, pInfo, min(pInfo->cbSize, sizeof(SrvMapping))); /*bDosBoxAllowed = pInfo->bDosBox; wcscpy_c(szBaseDir, pInfo->sConEmuBaseDir); wcscat_c(szBaseDir, L"\\"); if (pInfo->nLoggingType != glt_Processes) return NULL;*/ } SrvInfoMapping.CloseMap(); return (SrvMapping.cbSize != 0); }
BOOL LoadGuiMapping(DWORD nConEmuPID, ConEmuGuiMapping& GuiMapping) { if (!nConEmuPID) return FALSE; MFileMapping<ConEmuGuiMapping> GuiInfoMapping; GuiInfoMapping.InitName(CEGUIINFOMAPNAME, nConEmuPID); const ConEmuGuiMapping* pInfo = GuiInfoMapping.Open(); if (!pInfo) return FALSE; else if (pInfo->nProtocolVersion != CESERVER_REQ_VER) return FALSE; else { memmove(&GuiMapping, pInfo, min(pInfo->cbSize, sizeof(GuiMapping))); /*bDosBoxAllowed = pInfo->bDosBox; wcscpy_c(szBaseDir, pInfo->sConEmuBaseDir); wcscat_c(szBaseDir, L"\\"); if (pInfo->nLoggingType != glt_Processes) return NULL;*/ } GuiInfoMapping.CloseMap(); return (GuiMapping.cbSize != 0); }
BOOL CPluginBackground::LoadThSet(BOOL abFromMainThread) { if (!ghConEmuWndDC || !IsWindow(ghConEmuWndDC)) { _ASSERTE(ghConEmuWndDC!=NULL); return FALSE; } mb_ThNeedLoad = FALSE; BOOL lbRc = FALSE; MFileMapping<PanelViewSetMapping> ThSetMap; DWORD nGuiPID = 0; GetWindowThreadProcessId(ghConEmuWndDC, &nGuiPID); ThSetMap.InitName(CECONVIEWSETNAME, nGuiPID); if (ThSetMap.Open()) { lbRc = ThSetMap.GetTo(&m_ThSet) && (m_ThSet.cbSize != 0); ThSetMap.CloseMap(); if (!lbRc) { mb_ThNeedLoad = TRUE; // попробовать перечитать в следующий раз? } else { //BOOL lbNeedActivate; // Если изменились визуальные параметры CE - перерисоваться if (memcmp(&m_Default.MainFont, &m_ThSet.MainFont, sizeof(m_ThSet.MainFont))) { mn_ReqActions |= ra_UpdateBackground; m_Default.MainFont = m_ThSet.MainFont; } //TODO: AppDistinct & fade палитры if (memcmp(m_Default.crPalette, m_ThSet.crPalette, sizeof(m_ThSet.crPalette))) { mn_ReqActions |= ra_UpdateBackground; memmove(m_Default.crPalette, m_ThSet.crPalette, sizeof(m_ThSet.crPalette)); } if (mn_ReqActions && !abFromMainThread) gbNeedBgActivate = TRUE; } } return lbRc; }