RichEdit EDITSTREAM Probleme
-
Hallo,
möchte unter XP aus einem RichEdit Fenster eines anderen Programmes den Inhalt auslesen. Habe mir über die ProzessID das Fenster-Handle geholt und dann das Child-Window vom Typ RICHEDIT_CLASSW genommen. Bei dem SendMessage beendet sich allerdings das andere Programm mit dem RichEdit und GetLastError spuckt auch nichts aus.
DWORD CALLBACK EditStreamCallback(DWORD_PTR dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb) { std::cout << '.'; return 0; } int _tmain(int argc, _TCHAR* argv[]) { /* ... */ HWND child = /* ... */ EDITSTREAM editstr; editstr.pfnCallback = &EditStreamCallback; LRESULT result; result = SendMessage(child, EM_STREAMOUT, (CP_UTF16 << 16) | SF_USECODEPAGE | SF_RTF, reinterpret_cast<LPARAM>(&editstr)); }
-
Dasgeht nicht, weil Deine Prozedur in Deinem Prozessraum liegt. Das RTF Control will den Code aber in seinem Prozessraum ausführen. Das kann so nichtgehen!
Du müsstest den ganzen Code in eine DLL packen, und den in dem fremden Prozessraum inhezieren um das hinzubekommen.