Current location: Hot Scripts Forums » Programming Languages » C/C++ » Help calling and using a functions in visual c++ 6


Help calling and using a functions in visual c++ 6

Reply
  #1 (permalink)  
Old 07-08-06, 05:22 PM
method method is offline
Wannabe Coder
 
Join Date: Jul 2006
Posts: 228
Thanks: 0
Thanked 0 Times in 0 Posts
Talking Help calling and using a functions in visual c++ 6

Hi all i am very new to visual c++ . I am using visual studio 6 . So i might ask some simple questions but since i am new i consider you guys bare with me.

I have the following 2 block of codes and i want to be able to call the first one like this :

int pos=-1;
pos=GetPosByNick("name");


I am making a form with a textbox and a button. On the click of the button i want to take the input and place it instead of name in above function call and get the pos value and then use that in my second block of code instead of zero :

(WPARAM)0


so i be happy if an expert tell me step by step what do i need to do to be able to use these blocks of codes. Where to place them , what do i need to declare. Since it is my first attempt to do a program in visual c++ i be happy if an expert give me step by step instrcutions. Thanks



Code:
int GetPosByNick(CString szNick) 
{ 

HWND hList=NULL;  // List View identifier 

HWND parent,child; 
 parent=NULL; 
 child=NULL; 
 parent = ::FindWindow("My Window Class",NULL); 
CString c; 

child =::FindWindowEx(parent,0,"WTL_SplitterWindow",NULL); 
child =::FindWindowEx(child,0,"WTL_SplitterWindow",NULL); 
child =::FindWindowEx(child,0,"WTL_SplitterWindow",NULL); 
child =::FindWindowEx(child,0,"ATL:0053C8D0",NULL); 
hList=::FindWindowEx(child,0,"SysListView32",NULL); 


HWND hwnd=parent; 
HWND listview=hList; 

   int count=(int)::SendMessage(listview, LVM_GETITEMCOUNT, 0, 0); 
   int i; 

   LVITEM lvi, *_lvi; 
   char item[512]; 
   char *_item; 
   unsigned long pid; 
   HANDLE process; 

   GetWindowThreadProcessId(listview, &pid); 
   process=OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_VM_WRITE|PROCESS_QUERY_INFORMATION, FALSE, pid); 

   _lvi=(LVITEM*)VirtualAllocEx(process, NULL, sizeof(LVITEM), MEM_COMMIT, PAGE_READWRITE); 
    
   _item=(char*)VirtualAllocEx(process, NULL, 512, MEM_COMMIT, PAGE_READWRITE); 
    

   lvi.cchTextMax=512; 
    
    
   for(i=0; i<count; i++) { 
      lvi.iSubItem=2; 
      lvi.pszText=_item; 
      WriteProcessMemory(process, _lvi, &lvi, sizeof(LVITEM), NULL); 
      ::SendMessage(listview, LVM_GETITEMTEXT, (WPARAM)i, (LPARAM)_lvi); 

       
      ReadProcessMemory(process, _item, item, 512, NULL); 
      //ReadProcessMemory(process, _subitem, subitem, 512, NULL); 
       if(item==szNick) 
      { 
         VirtualFreeEx(process, _lvi, 0, MEM_RELEASE); 
          ::CloseHandle(process); 
         return i; 
      } 
       
   } 
VirtualFreeEx(process, _lvi, 0, MEM_RELEASE); 
 ::CloseHandle(process); 
return -1; 

}

Second block of code:


Code:
HWND listview=NULL;  // List View identifier 
 HWND parent,child; 
 parent=NULL; 
 child=NULL; 
 parent = ::FindWindow("My Window Class",NULL); 

 child =::FindWindowEx(parent,0,"WTL_SplitterWindow",NULL); 
 child =::FindWindowEx(child,0,"WTL_SplitterWindow",NULL); 
 child =::FindWindowEx(child,0,"WTL_SplitterWindow",NULL); 
 child =::FindWindowEx(child,0,"ATL:0053C8D0",NULL); 
 listview=::FindWindowEx(child,0,"SysListView32",NULL); 

 LVITEM lvi, *_lvi; 
 unsigned long pid; 
 HANDLE process; 

 GetWindowThreadProcessId(listview, &pid); 
 process=OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, FALSE, pid); 
   if(process) 
   { 
    
   _lvi=(LVITEM*)VirtualAllocEx(process, NULL, sizeof(LVITEM), MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE); 
   lvi.mask = LVIF_STATE; 
   lvi.state =15; 
   lvi.stateMask = LVIS_SELECTED | LVIS_FOCUSED; 

   WriteProcessMemory(process, _lvi, &lvi, sizeof(LVITEM), NULL); 
   ::SendMessage(listview, LVM_SETITEMSTATE, (WPARAM)0, (LPARAM)_lvi); 
   VirtualFreeEx(process, _lvi, 0, MEM_RELEASE); 
   } 
 ::CloseHandle(process);
Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Forum Jump


All times are GMT -5. The time now is 04:38 PM.
vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.