[C++] Wo steckt der fehler ?

Code:
void CheckCLP()
{
	if(curr_clpdata!=GetCLPData())
	{
		curr_clpdata=GetCLPData();
		AddHTML("<br>Neuer Text in der Zwischenablage:<br>","gray",3,true,false,true);
		AddHTMLBox(curr_clpdata);
	}
}
Code:
char* GetCLPData()
{
	HWND r = FindWindowA("ConsoleWindowClass",NULL);
	if (OpenClipboard(r))
	{
		if (::IsClipboardFormatAvailable(CF_TEXT) || ::IsClipboardFormatAvailable(CF_OEMTEXT))
		{
			// Retrieve the Clipboard data
			HANDLE hClipboardData = GetClipboardData(CF_TEXT);

			char *pchData = (char*)GlobalLock(hClipboardData);
			GlobalUnlock(hClipboardData);
			CloseClipboard();
			return pchData;
		}
		else { return "*** NO TEXT DATA IN CLIPBOARD! ***"; }
	}
	return "nrc"; // (N)ever (R)eachable (C)ode
}


curr_clpdata ist ein "string"
AddHTML ist einfach ne funktion die das in ne datei schreibt...
genauso wie addhatmlbox


Die Funktion "CheckCLP" wird mit while(1)
von nem thread aufgerufen;

also jedes mal wenn ein NEUER text in der zwischenablage ist,
wird er also in ne datei geschieben -.-

die funktion funktioniert auch soweit,
ABER! wenn ich jetzt "Druck" auf der Tastatur drücke
kommt ja kein text (sondern ein BMP) in die zwischenablage.

ab genau diesem zeitpunkt, funktioniret das ganze kein bissel mehr.
Es wird GARNICHTS mehr in das file geschrieben -.-

z.B.:

ich kopier irgen nen text ins CLP
und noch einen text.

dann drück ich "DRUCK" (Screenshot)

dann kopier ich noch mal 2 sachen ins CLP (text)
-----

dann sollte das file doch folgendermaasen aussehen:

Code:
BLA BLA BLA

awurhohwet BLA1

***NO TEXT DATA IN CLIPBOARD!***

ewiuobgt

lollololololol

aber es sieht leider nur so aus -.-

Code:
BLA BLA BLA 

awurhohwet BLA1

***NO TEXT DATA IN CLIPBOARD!***


also die funktion funzt ned mehr nachdem einmal "Nicht-TExt-daten"
da reingekommen sind :(


Wo liegt mein denkfehler ?
Warum tut das nich so wie ich will ???

//EDIT: bevor ich es vergesse:

-ide: MS VS 2005 prof
-os: winXP
-anwendung: öhh... halt ein consolen project ^^



///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////


OK !

es hat lange gedauert,
hab den fehler gefunden !


ich hab in vergessen das wenn ein "nicht text" ins CLP kommt VOR dem return das CLP
global wiedeer freizugeben und den handle zu schliessen :)
 
Zurück
Oben