Exemple #1
0
 void TcharToUtf8(char** dest, const TCHAR* src)
 {
#ifdef _UNICODE
	 UnicodeToUtf8(dest, src);
#else
	 AnsiToUtf8(dest, src);
#endif
 }
Exemple #2
0
String StrToXmlUtf8Str(String str)
{
	str = AnsiReplaceStr(str, "&", "&"); // Should be the first replacement! (because of the '&').
	str = AnsiReplaceStr(str, "\"", """);
	str = AnsiReplaceStr(str, "'", "'");
	str = AnsiReplaceStr(str, "<", "&lt;");
	str = AnsiReplaceStr(str, ">", "&gt;");
	return AnsiToUtf8(str);
}
Exemple #3
0
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;
	}
Exemple #6
0
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);
}
Exemple #7
0
/**
 *  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;
}