void TcharToUtf8(char** dest, const TCHAR* src) { #ifdef _UNICODE UnicodeToUtf8(dest, src); #else AnsiToUtf8(dest, src); #endif }
String StrToXmlUtf8Str(String str) { str = AnsiReplaceStr(str, "&", "&"); // Should be the first replacement! (because of the '&'). str = AnsiReplaceStr(str, "\"", """); str = AnsiReplaceStr(str, "'", "'"); str = AnsiReplaceStr(str, "<", "<"); str = AnsiReplaceStr(str, ">", ">"); return AnsiToUtf8(str); }
std::string AnsiToUtf8(const std::string& strAnsi) { std::string strUtf8; CHAR * lpszUtf8 = AnsiToUtf8(strAnsi.c_str()); if (lpszUtf8 != NULL) { strUtf8 = lpszUtf8; delete []lpszUtf8; } return strUtf8; }
// Message handler for about box. LRESULT CALLBACK CWin32InputBox::DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { CWin32InputBox *_this = (CWin32InputBox *) ::GetWindowLongPtr(hDlg, GWLP_USERDATA); WIN32INPUTBOX_PARAM *param = _this ? _this->GetParam() : 0; switch (message) { case WM_INITDIALOG: { SetWindowLongPtr(hDlg, GWLP_USERDATA, (LONG_PTR) lParam); _this = (CWin32InputBox *) lParam; _this->_param->hDlg = hDlg; _this->InitDialog(); return TRUE; } case WM_COMMAND: { #ifdef _MY_DEBUG CHAR buf[1024]; static int i=0; sprintf(buf, "WM_COMMAND: %09d wParam=%08X lParam=%08X\n", i++, wParam, lParam); OutputDebugString(buf); #endif INT_PTR buttonId = LOWORD(wParam); for (size_t i=0; i<sizeof(definputbox_buttonids)/sizeof(definputbox_buttonids[0]); i++) { if (buttonId == definputbox_buttonids[i]) { ::GetWindowTextA( _this->_hwndEditCtrl, _this->_param->szResult, _this->_param->nResultSize); std::string strUtf8 = AnsiToUtf8(_this->_param->szResult); memset(_this->_param->szResult, 0, _this->_param->nResultSize); strncpy(_this->_param->szResult, strUtf8.c_str(), _this->_param->nResultSize-1); ::EndDialog(hDlg, buttonId); return TRUE; } } } break; } return FALSE; }
bool SendIRCMsgToSkype(const CString& a_nick, const CString& a_channel, const CString& a_message) { if(m_chanNameMap.find(a_channel.AsLower()) != m_chanNameMap.end() && !a_message.empty()) { CString l_message = stripIRCColorCodes(a_message); if(!IsStrValidUTF8(l_message)) { l_message = AnsiToUtf8(l_message); } if(!a_nick.empty()) { l_message = "<" + a_nick + "> " + l_message; } return SendSkypeCommand("CHATMESSAGE " + m_chanNameMap[a_channel.AsLower()] + " " + l_message); } return false; }
bool TActionSevenZip::execute() { if (!_inited) return false; if (_error || _aborted) return false; f_Action->logB(_("Note:"), 1); f_Action->log(_("7-Zip requires the source files to be on one drive.")); f_Action->log(" " + _("The 7-Zip executable will be called for every drive."), -1); String drive, prevDrive, file; // Call 7z.exe for every drive: std::ifstream ifs(f_Action->abtFileList->incFileName.c_str()); if (!ifs) { f_Action->logError(ASPF(_("Could not open file: %s"), ecc::QuoteStr(f_Action->abtFileList->incFileName)) ); _error = true; return false; } drive = prevDrive = ""; _deleteFileListFile(); int filesLeft = 0; char line[2048]; while (ifs.getline(line, 2048)) { // Test for reading more than 2048 chars or another error: if (ifs.fail()) { f_Action->logError(__FUNC__ ": [Error while reading stream]"); _error = true; break; } file = String(line); /* TODO 3 : drive should become (optionable) StorePath (like Zip) */ drive = IncludeTrailingPathDelimiter(ExtractFileDrive(file)); /* 093b1 (b.324): use OEM or UTF-8 to encode filenames in 7z listfile: */ if (PGlobals->OEMlistfile7Zip) CharToOem(file.c_str(), file.c_str()); else file = AnsiToUtf8(file); // UTF-8 is default encoding in releases NEWER than 7-Zip 4.32. file = file.Delete(1, drive.Length()); if (drive != prevDrive) { if (filesLeft) _call7ZipExe(prevDrive); // Tests and sets _error and _aborted. filesLeft = 0; if (_error || _aborted) break; prevDrive = drive; } abtAppendStrToFile(ecc::QuoteStr(file), _fileListFile, false); ++filesLeft; } // Do the remains: if (filesLeft) _call7ZipExe(prevDrive); // Tests and sets _error and _aborted. _inited = false; // Reset. // Display 7-Zip archive details: if ((!_aborted) && (!_error)) { TFileProperties fp(_destFileName); if (!fp.failed()) { f_Action->logB(_("7-Zip Archive Details:"), 1); f_Action->log(ASPF(_("Compressed Size: %s (%s Bytes)"), ecc::FloatToHumanFileSize(fp.getSize()), IntToStr(fp.getSize())) ); } } if (_error || _aborted) _deleteFileListFile(); return !(_error || _aborted); }
/** * Erstellt das Fenster mit entsprechenden Werten. * * @param[in] width Breite des Fensters * @param[in] height Höhe des Fensters * @param[in] fullscreen Vollbildmodus ja oder nein * * @return @p true bei Erfolg, @p false bei Fehler * * @bug Hardwarecursor ist bei Fenstermodus sichtbar, * Cursor deaktivieren ist fehlerhaft * * @author FloSoft */ bool VideoWinAPI::CreateScreen(unsigned short width, unsigned short height, const bool fullscreen) { if(!initialized) return false; std::wstring wTitle = AnsiToUtf8(GetWindowTitle()); WNDCLASSW wc; wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; wc.lpfnWndProc = WindowProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = GetModuleHandle(NULL); wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_SYMBOL)); wc.hCursor = NULL; wc.hbrBackground = NULL; wc.lpszMenuName = NULL; wc.lpszClassName = wTitle.c_str(); // Fensterklasse registrieren if (!RegisterClassW(&wc)) return false; DWORD dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; DWORD dwStyle = WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX; if(fullscreen) { dwExStyle = WS_EX_APPWINDOW; dwStyle = WS_POPUP; EnumDisplaySettings(0, ENUM_CURRENT_SETTINGS, &dm_prev); } else { // Bei Fensteranwendung die Breiten und Hoehen der Fensterrahmen, Titelleiste draufaddieren width += 2 * GetSystemMetrics(SM_CXFIXEDFRAME); height += 2 * GetSystemMetrics(SM_CXFIXEDFRAME) + GetSystemMetrics(SM_CYCAPTION); } // Fenster erstellen screen = CreateWindowExW(dwExStyle, wTitle.c_str(), wTitle.c_str(), dwStyle, CW_USEDEFAULT, CW_USEDEFAULT, width, height, NULL, NULL, GetModuleHandle(NULL), NULL); if(screen == NULL) return false; SetClipboardViewer(screen); std::stringstream title; title << GetWindowTitle() << " - v" << GetWindowVersion() << "-" << GetWindowRevisionShort(); wTitle = AnsiToUtf8(title.str().c_str()); SetWindowTextW(screen, wTitle.c_str()); SetWindowTextW(GetConsoleWindow(), wTitle.c_str()); // Pixelformat zuweisen GLuint PixelFormat; static PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), 1, PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, PFD_TYPE_RGBA, 8, // 8 Bit 8, // red 0, 8, // green 0, 8, // blue 0, 8, // alpha 0, 0, 0, 0, 0, 0, 32, // 32 Bit 0, 0, PFD_MAIN_PLANE, 0, 0, 0, 0 }; screen_dc = GetDC(screen); if(screen_dc == NULL) return false; // Pixelformat auswaehlen PixelFormat = ChoosePixelFormat(screen_dc, &pfd); if(PixelFormat == 0) return false; // Pixelformat zuweisen if(!SetPixelFormat(screen_dc, PixelFormat, &pfd)) return false; // Renderingkontext erstellen screen_rc = wglCreateContext(screen_dc); if(screen_rc == NULL) return false; // Renderingkontext aktivieren if(!wglMakeCurrent(screen_dc, screen_rc)) return false; // Mauscursor ausblenden ShowCursor(FALSE); // Bei Fullscreen Aufloesung umstellen if(fullscreen) { // Aktuelle Framerate holen und die spaeter dann benutzen DEVMODE prev; EnumDisplaySettings(0, ENUM_CURRENT_SETTINGS, &prev); DEVMODE dm; memset(&dm, 0, sizeof(dm)); dm.dmSize = sizeof(dm); dm.dmFields = DM_DISPLAYFREQUENCY | DM_PELSWIDTH | DM_PELSHEIGHT; dm.dmDisplayFrequency = prev.dmDisplayFrequency; dm.dmPelsWidth = width; dm.dmPelsHeight = height; ChangeDisplaySettings(&dm, CDS_FULLSCREEN); } this->screenWidth = width; this->screenHeight = height; this->isFullscreen_ = fullscreen; // Das Fenster anzeigen ShowWindow(screen, SW_SHOW); // Das Fenster in den Vordergrund rcken SetForegroundWindow(screen); // Dem Fenster den Eingabefokus geben SetFocus(screen); return true; }