YES!!!!!!!
I did it! And this is amazing: it compiled and worked the first time round. No errors, nothing! Here's the code:
Code:
HWND hFind=NULL;
HWND hChildFind=NULL;
hFind=FindWindow("DC++",NULL);
LPVOID ipcAddr1;
LPVOID ipcAddr2;
DWORD dwProcId;
HANDLE hProc;
LV_ITEM lvi;
char *chText=new char[512];
lvi.mask=LVIF_TEXT;
lvi.iItem=0;
lvi.iSubItem=0;
hChildFind=FindWindowEx(hFind,NULL,"SysListView32",NULL);
GetWindowThreadProcessId(hChildFind,&dwProcId);
hProc=OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcId);
ipcAddr1=VirtualAllocEx(hProc,NULL,sizeof(LV_ITEM),MEM_COMMIT,PAGE_READWRITE);
ipcAddr2=VirtualAllocEx(hProc,NULL,512,MEM_COMMIT,PAGE_READWRITE);
lvi.pszText=(char *)ipcAddr2;
lvi.cchTextMax=511;
WriteProcessMemory(hProc,ipcAddr1,(LPVOID)&lvi,sizeof(lvi),NULL);
SendMessage(hChildFind,LVM_GETITEM,NULL,(LPARAM)ipcAddr1);
ReadProcessMemory(hProc,ipcAddr2,(LPVOID)chText,511,NULL);
MessageBox(NULL,chText,"Notify",MB_OK);
delete blah blah