summaryrefslogtreecommitdiff
path: root/protocols/Xfire/src/Xfire_base.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Xfire/src/Xfire_base.cpp')
-rw-r--r--protocols/Xfire/src/Xfire_base.cpp628
1 files changed, 0 insertions, 628 deletions
diff --git a/protocols/Xfire/src/Xfire_base.cpp b/protocols/Xfire/src/Xfire_base.cpp
deleted file mode 100644
index e7dc71b9bc..0000000000
--- a/protocols/Xfire/src/Xfire_base.cpp
+++ /dev/null
@@ -1,628 +0,0 @@
-#include "stdafx.h"
-
-#include "Xfire_base.h"
-#include "variables.h"
-
-//rechnet die einzelnen chars des strings zusammen
-BYTE Xfire_base::accStringByte(char* str)
-{
- BYTE temp = 0;
-
- //keins tirng? bye bye
- if (str == NULL)
- return 0;
-
- for (unsigned int i = 0; i < (int)mir_strlen(str); i++) {
- temp += str[i];
- }
-
- return temp;
-}
-
-//lowercased einen string
-void Xfire_base::strtolower(char*str)
-{
- //keins tirng? bye bye
- if (str == NULL)
- return;
-
- //lowercase it :)
- for (unsigned int i = 0; i < (int)mir_strlen(str); i++) {
- str[i] = tolower(str[i]);
- }
-}
-
-void Xfire_base::strtolowerT(TCHAR*str)
-{
- //keins tirng? bye bye
- if (str == NULL)
- return;
-
- //lowercase it :)
- for (unsigned int i = 0; i < (int)mir_tstrlen(str); i++) {
- str[i] = tolower(str[i]);
- }
-}
-
-//uppercased einen string
-void Xfire_base::strtoupper(char*str)
-{
- //keins tirng? bye bye
- if (str == NULL)
- return;
-
- //lowercase it :)
- for (unsigned int i = 0; i < (int)mir_strlen(str); i++) {
- str[i] = toupper(str[i]);
- }
-}
-
-//setzt einen string
-void Xfire_base::setString(char*from, char**to)
-{
- //keine quelle, kein ziel? dann nix machen
- if (from == NULL || to == NULL)
- return;
-
- //stringgröße auslesen
- int size = mir_strlen(from);
-
- //bestehenden zielpointer leeren
- if (*to != NULL)
- delete[] * to;
-
- //neuen string anlegen
- *to = new char[size + 1];
-
- //string in neues array kopieren
- strcpy_s(*to, size + 1, from);
-}
-
-//setzt einen string
-void Xfire_base::appendString(char*from, char**to)
-{
- //keine quelle, kein ziel? dann nix machen
- if (from == NULL || to == NULL || *to == NULL)
- return;
-
- //stringgröße auslesen
- int size = mir_strlen(from);
- int size2 = mir_strlen(*to);
-
- //temporären pointer anlegen
- char* append = new char[size + size2 + 1];
-
- //string in neues array kopieren
- strcpy_s(append, size + size2 + 1, *to);
- //zusätzlichen stirng anhängen
- strcat_s(append, size + size2 + 1, from);
- //altes to entfernen
- delete[] * to;
- //appendstring zuordnen
- *to = append;
-}
-
-//liest einen stringval aus der db und setzt einen string für
-void Xfire_base::readStringfromDB(char*name, unsigned int dbid, char**to)
-{
- //keine quelle, kein ziel? dann nix machen
- if (name == NULL || to == NULL)
- return;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i", name, dbid);
- if (!db_get_s(NULL, protocolname, m_temp, &m_dbv)) {
- //string setzen
- setString(m_dbv.pszVal, to);
- //dbval wieder freigeben
- db_free(&m_dbv);
- }
-}
-
-//liest einen stringval aus der db welches unterid hat und setzt einen string für
-void Xfire_base::readStringfromDB(char*name, unsigned int dbid, int id, char**to)
-{
- //keine quelle, kein ziel? dann nix machen
- if (name == NULL || to == NULL)
- return;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i_%i", name, dbid, id);
- if (!db_get_s(NULL, protocolname, m_temp, &m_dbv)) {
- //string setzen
- setString(m_dbv.pszVal, to);
- //dbval wieder freigeben
- db_free(&m_dbv);
- }
-}
-
-//liest einen stringval aus der db und setzt einen string für
-void Xfire_base::readUtf8StringfromDB(char*name, unsigned int dbid, char**to)
-{
- //keine quelle, kein ziel? dann nix machen
- if (name == NULL || to == NULL)
- return;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i", name, dbid);
- if (!db_get_utf(NULL, protocolname, m_temp, &m_dbv)) {
- //string setzen
- setString(m_dbv.pszVal, to);
- //dbval wieder freigeben
- db_free(&m_dbv);
- }
-}
-
-//liest einen stringval aus der db welches unterid hat und setzt einen string für
-void Xfire_base::readUtf8StringfromDB(char*name, unsigned int dbid, int id, char**to)
-{
- //keine quelle, kein ziel? dann nix machen
- if (name == NULL || to == NULL)
- return;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i_%i", name, dbid, id);
- if (!db_get_utf(NULL, protocolname, m_temp, &m_dbv)) {
- //string setzen
- setString(m_dbv.pszVal, to);
- //dbval wieder freigeben
- db_free(&m_dbv);
- }
-}
-
-
-//schreibt einen stringval in die db welche unterid hat
-void Xfire_base::writeStringtoDB(char*name, unsigned int dbid, int id, char*val)
-{
- //keine quelle, kein ziel? dann nix machen
- if (name == NULL || val == NULL)
- return;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i_%i", name, dbid, id);
- db_set_s(NULL, protocolname, m_temp, val);
-}
-
-//schreibt einen stringval in die db welche unterid hat
-void Xfire_base::writeStringtoDB(char*name, unsigned int dbid, char*val)
-{
- //keine quelle, kein ziel? dann nix machen
- if (name == NULL || val == NULL)
- return;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i", name, dbid);
- db_set_s(NULL, protocolname, m_temp, val);
-}
-
-//schreibt einen stringval in die db welche unterid hat
-void Xfire_base::writeUtf8StringtoDB(char*name, unsigned int dbid, int id, char*val)
-{
- //keine quelle, kein ziel? dann nix machen
- if (name == NULL || val == NULL)
- return;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i_%i", name, dbid, id);
- db_set_utf(NULL, protocolname, m_temp, val);
-}
-
-//schreibt einen stringval in die db welche unterid hat
-void Xfire_base::writeUtf8StringtoDB(char*name, unsigned int dbid, char*val)
-{
- //keine quelle, kein ziel? dann nix machen
- if (name == NULL || val == NULL)
- return;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i", name, dbid);
- db_set_utf(NULL, protocolname, m_temp, val);
-}
-
-
-//schreibt einen bytewert in die db
-void Xfire_base::writeBytetoDB(char*name, unsigned int dbid, int val)
-{
- //keine quelle, kein ziel? dann nix machen
- if (name == NULL)
- return;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i", name, dbid);
- db_set_b(NULL, protocolname, m_temp, val);
-}
-
-//schreibt einen wordwert in die db
-void Xfire_base::writeWordtoDB(char*name, unsigned int dbid, int val)
-{
- //keine quelle, kein ziel? dann nix machen
- if (name == NULL)
- return;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i", name, dbid);
- db_set_w(NULL, protocolname, m_temp, val);
-}
-
-
-//liest einen byteval aus der db und gibt es zurück
-unsigned char Xfire_base::readBytefromDB(char*name, unsigned int dbid, int defaultval)
-{
- //keine quelle, kein ziel? dann nix machen
- if (name == NULL)
- return 0;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i", name, dbid);
- return db_get_b(NULL, protocolname, m_temp, defaultval);
-}
-
-//liest einen wordval aus der db und gibt es zurück
-unsigned int Xfire_base::readWordfromDB(char*name, unsigned int dbid, int defaultval)
-{
- //keine quelle, kein ziel? dann nix machen
- if (name == NULL)
- return 0;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i", name, dbid);
- return db_get_w(NULL, protocolname, m_temp, defaultval);
-}
-
-//entfernt einen dbeintrag
-BOOL Xfire_base::removeDBEntry(char*name, unsigned int dbid)
-{
- //kein name?
- if (name == NULL)
- return 0;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i", name, dbid);
-
- //eintrag entfernen
- if (!db_get(NULL, protocolname, m_temp, &m_dbv)) {
- db_free(&m_dbv);
- db_unset(NULL, protocolname, m_temp);
- return TRUE;
- }
- return FALSE;
-}
-
-//entfernt einen dbeintrag welche unterid's hat
-BOOL Xfire_base::removeDBEntry(char*name, unsigned int dbid, int id)
-{
- //kein name?
- if (name == NULL)
- return 0;
-
- //wert aus der dblesen
- mir_snprintf(m_temp, "%s_%i_%i", name, dbid, id);
-
- //eintrag entfernen
- if (!db_get(NULL, protocolname, m_temp, &m_dbv)) {
- db_free(&m_dbv);
- db_unset(NULL, protocolname, m_temp);
-
- return TRUE;
- }
- return FALSE;
-}
-
-//sucht innerhalb eines strings ein anderen string und liefert true zurück wenn gefunden
-BOOL Xfire_base::inString(char*str, char*search, char**pos)
-{
- //leere pointer?, dann FALSE zurück
- if (str == NULL || search == NULL) {
- //poszeiger, falls übergeben, auf NULL setzen
- if (pos) *pos = NULL;
- return FALSE;
- }
-
- //ist der gesuchte string größer, wie der string wo gesucht werden soll? dann FALSE zurück
- unsigned int sizeofsearch = mir_strlen(search);
- if (sizeofsearch > mir_strlen(str)) {
- //poszeiger, falls übergeben, auf NULL setzen
- if (pos) *pos = NULL;
- return FALSE;
- }
-
- char* src = str;
- char* s = search;
-
- while (*src != 0) {
- if (*src == *s) //gleich, dann zum nächsten buchstaben springen
- s++;
- else if (*s == 0) //string ende erreicht? dann true
- {
- //poszeiger mit aktueller pos füllen, da position gefunden
- if (pos) *pos = src - sizeofsearch;
- return TRUE;
- }
- else //anderer biuchstabe? dann wieder zurück zum anfangsbuchstaben
- s = search;
- src++;
- }
- if (*s == 0) //string ende erreicht? dann true
- {
- //poszeiger mit aktueller pos füllen, da position gefunden
- if (pos) *pos = src - sizeofsearch;
- return TRUE;
- }
-
- //poszeiger, falls übergeben, auf NULL setzen
- if (pos) *pos = NULL;
- //nix gefunden, FALSE
- return FALSE;
-}
-
-void Xfire_base::strreplace(char*search, char*replace, char**data)
-{
- if (replace == NULL)
- replace = "";
-
- //leere pointer?, dann zurück
- if (search == NULL || data == NULL || *data == NULL) {
- return;
- }
-
- char* pos = NULL;
- //gesuchten string suchen
- if (this->inString(*data, search, &pos)) {
- //gefunden? dann replace
- *pos = 0;
- char* newdata = NULL;
- //alles vorm gefunden anhängen
- this->setString(*data, &newdata);
- //ersetzendes anhängen
- this->appendString(replace, &newdata);
- //poszeiger um die größe des zusuchenden strings erhöhen
- pos += mir_strlen(search);
- //rest anhängen
- this->appendString(pos, &newdata);
- //alten string löschen
- delete[] * data;
- *data = NULL;
- //neuen auf diesen setzen
- this->setString(newdata, data);
- //temporären newdata löschen
- delete[] newdata;
- }
-}
-
-//stringvergleich mit wildcards
-BOOL Xfire_base::wildcmp(const TCHAR *search, const TCHAR *text)
-{
- //keine gültigen strings, dann abbruch
- if (search == NULL || text == NULL || *text == 0 || *search == 0)
- return FALSE;
-
- //wildcardmodus
- int wildc = 0;
-
- do {
- //wilcard gefunden?
- if (*search == '*') {
- //wildcardmodus an
- wildc = 1;
- //nächsten suchzeichen
- search++;
- //wenn searchzeichen 0, dann 1 zurückgeben, da der rest des searchstings egal ist
- if (*search == 0)
- return TRUE;
- }
-
- //prüfe searchzeichen mit textzeichen, aber nut wenn kein wildcardmodus aktiv ist
- if (*search != *text && !wildc)
- return FALSE;
-
- //kein wildcardmodus
- if (!wildc) {
- //nächstes suchzeichen
- search++;
- }
- //wenn suchzeichen und textzeichen gleich ist
- else if (*search == *text) {
- //den wildcardmodus abschalten
- wildc = 0;
- //nächstes suchzeichen
- search++;
- }
- //nächstes textzeichen
- text++;
- //wenn textende erreicht und suchzeichen noch vorhanden, dann 0 zurückgegebn
- if (*text == 0 && *search != 0)
- return FALSE;
- }
- //solange weiter bis kein suchzeichen mehr vorhanden is
- while (*search != 0);
-
- //textzeichen übrig 0 zurück
- if (*text != 0)
- return FALSE;
-
- //volle übereinstimmung
- return TRUE;
-}
-
-//wrapper wenn nur gameid angegeben
-BOOL Xfire_base::getIniValue(unsigned int gameid, const char* valname, char*out, int sizeofout)
-{
- return Xfire_base::getIniValue(gameid, 0, valname, out, sizeofout);
-}
-
-
-//läd einen eintrag aus der ini
-BOOL Xfire_base::getIniValue(unsigned int gameid, unsigned int subid, const char* valname, char*out, int sizeofout)
-{
- //kein ziel oder kein variablenname, dann FALSE zurück
- if (!out || !valname)
- return FALSE;
-
- char idstring[15];
- char path[MAX_PATH];
-
- //pfad einlesen
- if (!getIniPath(path))
- return FALSE; //kein pfad bug?!?!
-
- if (subid == 0) {
- mir_snprintf(idstring, "%d", gameid);
-
- if (xfire_GetPrivateProfileString(idstring, valname, "", out, sizeofout, path))
- return TRUE;
-
- subid++;
- }
-
- mir_snprintf(idstring, "%d_%d", gameid, subid);
-
- if (xfire_GetPrivateProfileString(idstring, valname, "", out, sizeofout, path))
- return TRUE;
-
- return FALSE;
-}
-
-BOOL Xfire_base::getIniPath(char*path)
-{
- //kein ziel abbruch
- if (!path)
- return FALSE;
- mir_strcpy(path, XFireGetFoldersPath("IniFile"));
- strcat_s(path, MAX_PATH, "xfire_games.ini");
- return TRUE;
-}
-
-BOOL Xfire_base::getIconPath(char*path)
-{
- //kein ziel abbruch
- if (!path)
- return FALSE;
- mir_strcpy(path, XFireGetFoldersPath("IconsFile"));
- return TRUE;
-}
-
-BOOL Xfire_base::getGamename(unsigned int gameid, char* out, int outsize)
-{
- //kein ziel
- if (!out)
- return FALSE;
-
- if (!getIniValue(gameid, "LongName", out, outsize)) {
- //customnamen laden, wenn vorhanden
- DBVARIANT dbv;
- char dbstr[XFIRE_MAXSIZEOFGAMENAME];
- mir_snprintf(dbstr, "customgamename_%d", gameid);
- if (!db_get(NULL, protocolname, dbstr, &dbv)) {
- strncpy_s(out, outsize, dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- return TRUE;
- }
- else
- return FALSE;
- }
- return TRUE;
-}
-
-//wandelt einen buffer mit größe in ein hicon mit hilfe von gdi+ um
-HICON Xfire_base::createHICONfromdata(LPVOID data, unsigned int size)
-{
- //zielspeichern anlegen
- HGLOBAL buffer = GlobalAlloc(GMEM_MOVEABLE, size);
- if (buffer) {
- LPVOID data2 = GlobalLock(buffer);
- if (data2) {
- memcpy(data2, data, size);
-
- IStream* stream = NULL;
- if (CreateStreamOnHGlobal(data2, FALSE, &stream) == S_OK) {
- HICON hicon = NULL;
- Gdiplus::Bitmap image(stream);
-
- image.GetHICON(&hicon);
- stream->Release();
-
- GlobalUnlock(buffer);
- GlobalFree(buffer);
-
- return hicon;
- }
- GlobalUnlock(buffer);
- }
- GlobalFree(buffer);
- }
- return NULL;
-}
-
-//wandelt einen buffer mit größe in ein hicon mit hilfe von gdi+ um
-HBITMAP Xfire_base::createHBITMAPfromdata(LPVOID data, unsigned int size)
-{
- //zielspeichern anlegen
- HGLOBAL buffer = GlobalAlloc(GMEM_MOVEABLE, size);
- if (buffer) {
- LPVOID data2 = GlobalLock(buffer);
- if (data2) {
- memcpy(data2, data, size);
-
- IStream* stream = NULL;
- if (CreateStreamOnHGlobal(data2, FALSE, &stream) == S_OK) {
- HBITMAP hbitmap = NULL;
- Gdiplus::Bitmap image(stream);
-
- image.GetHBITMAP(0, &hbitmap);
- stream->Release();
-
- GlobalUnlock(buffer);
- GlobalFree(buffer);
-
- return hbitmap;
- }
- GlobalUnlock(buffer);
- }
- GlobalFree(buffer);
- }
- return NULL;
-}
-
-//prüft ob processid noch gültig is
-BOOL Xfire_base::isValidPid(DWORD pid)
-{
- DWORD aProcesses[1024], cbNeeded, cProcesses;
-
- if (pid == NULL)
- return FALSE;
-
- if (!EnumProcesses(aProcesses, sizeof(aProcesses), &cbNeeded))
- return FALSE;
-
- cProcesses = cbNeeded / sizeof(DWORD);
-
- for (unsigned int i = 0; i < cProcesses; i++)
- if (aProcesses[i] == pid) {
- return TRUE;
- }
-
- return FALSE;
-}
-
-//sucht nach einen process und liefert die pid
-BOOL Xfire_base::getPidByProcessName(TCHAR *name, DWORD *pid)
-{
- if (pid == NULL || name == NULL)
- return FALSE;
-
- HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
- PROCESSENTRY32* processInfo = new PROCESSENTRY32;
- processInfo->dwSize = sizeof(PROCESSENTRY32);
-
- while (Process32Next(hSnapShot, processInfo) != FALSE) {
- if (processInfo->th32ProcessID != 0) {
- if (mir_tstrcmpi(processInfo->szExeFile, name) == 0) {
- *pid = processInfo->th32ProcessID;
- CloseHandle(hSnapShot);
- return TRUE;
- }
- }
- }
- CloseHandle(hSnapShot);
- return FALSE;
-}