Click here to Skip to main content
13,588,549 members

How can a Hook DLL pass data to the Process sets it .

Lygatto Zenki asked:

Open original thread
for example Process A(MFC Process),uses loadlibrary to load a dll and install a global hook(the hook procedure is in the dll).
I want this dll to pass any information to the Process A, So I used SendMessage in the hook procedure to send WM_COPYDATA to Process A,but it didnt work.The Process A(have setted onCopyData()) didnt receive the message , also the same as PostThreadMessage().

//Hook Procedure
__declspec(dllexport)  LRESULT  CALLBACK  mousehook_proc(int nCode,WPARAM wParam,LPARAM lParam)
                        COPYDATASTRUCT cds;
                        MOUSEHOOKSTRUCT *pmhs = (MOUSEHOOKSTRUCT *)lParam;
			int result = ::SendMessage((HWND)FindWindow(NULL,L"MySpyM"),WM_COPYDATA,(WPARAM)pmhs->hwnd,(LPARAM)&cds);//The MySpyM Process("MySpyM" also the Window name) did not receive the WM_COPYDATA Message and if i replace the Message with WM_CLOSE,it received.......
			return ::CallNextHookEx((HHOOK)hook_handle,nCode,wParam,lParam);

//The spy program porcess the WM_COPYDATA Message
BOOL CMySpyMDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)

	MessageBox(L"Get Message",L"Alert",NULL);
		return CDialog::OnCopyData(pWnd, pCopyDataStruct);
Tags: Win32, MFC


When answering a question please:
  1. Read the question carefully.
  2. Understand that English isn't everyone's first language so be lenient of bad spelling and grammar.
  3. If a question is poorly phrased then either ask for clarification, ignore it, or edit the question and fix the problem. Insults are not welcome.
  4. Don't tell someone to read the manual. Chances are they have and don't get it. Provide an answer or move on to the next question.
Let's work to help developers, not make them feel stupid.
Please note that all posts will be submitted under the The Code Project Open License (CPOL).

Advertise | Privacy | Cookies | Terms of Service
Web03 | 2.8.180615.1 | Last Updated 26 Mar 2009
Copyright © CodeProject, 1999-2018
All Rights Reserved.
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100