|
I dont think there is a need for a thread for each session, unless you have special processing logic for each session. For the UI, a modeless dialog should be enough for each session.
|
|
|
|
|
Please help me!
I am writing a small program that I want to uses the Hook function for windows'socket functions like recv, send,...
I have tried to uses the function SetWindowsHookEx:
HHOOK SetWindowsHookEx(
int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId
);
But it seems to have too fews argument.It has only 4 arguments: one for the type of hook, one for the address of the function to be hooked, one for the instance that contain the function, one for the thread that the function is running in. I cannot find out where to put the address of the new function that I want to put into the hook chain.
Please show me where to put the new function's address, how to uses the SetWindowsHookEx function and how its argument work.
Thank you very much!
|
|
|
|
|
lpfn parameter is the HOOKPROC. you can pass the function handle there.
But i think you are trying to do something like sniffing right? Search codeproject for "Sniffer" you will get plenty of tools with source code.
SetWindowsHookEx allows us to HOOK these types
WH_CALLWNDPROC Thread or global
WH_CALLWNDPROCRET Thread or global
WH_CBT Thread or global
WH_DEBUG Thread or global
WH_FOREGROUNDIDLE Thread or global
WH_GETMESSAGE Thread or global
WH_JOURNALPLAYBACK Global only
WH_JOURNALRECORD Global only
WH_KEYBOARD Thread or global
WH_KEYBOARD_LL Global only
WH_MOUSE Thread or global
WH_MOUSE_LL Global only
WH_MSGFILTER Thread or global
WH_SHELL Thread or global
WH_SYSMSGFILTER Global only
AFAIK it is not possible to hook socket using this API.
SaRath.
"It is your attitude, not your aptitude, that determines your altitude - Zig Ziglar."
My Blog | Understanding State Pattern in C++
|
|
|
|
|
|
|
|
hi,
How i can get MS WORD recent fils.
|
|
|
|
|
my application allow people to resize the window. However, when the application re-size the window, the window would not smooth. I use "SetWindowPos" to reposit the content. How can i fix this problem??????????????????????????
|
|
|
|
|
How did u resize the window??
"Dream bigger...Do bigger...Expect smaller"
aji
|
|
|
|
|
Will you please clarify what do you mean by "the window would not smooth."
Are you using RedrawWindow() in your code many a times?
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
yes, i use RedrawWindow() many times. Not smooth mean the resize window would not as fast as the mouse move. how can i make it smoothly???
-- modified at 1:50 Wednesday 5th July, 2006
|
|
|
|
|
First of all try to remove RedrawWindow() where you don't need them and then work with setting flags for RedrawWindow
BOOL RedrawWindow(
HWND hWnd, // handle to window
CONST RECT *lprcUpdate, // update rectangle
HRGN hrgnUpdate, // handle to update region
UINT flags // array of redraw flags /// Try using a combination
);
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
but all RedrawWindow are needed.......something can better replace RedrawWindow???
|
|
|
|
|
Try experimenting with the flag values in the RedrawWindow Function.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
sorry. what is flag value??
|
|
|
|
|
BOOL RedrawWindow(
HWND hWnd, // handle to window
CONST RECT *lprcUpdate, // update rectangle
HRGN hrgnUpdate, // handle to update region
UINT flags // array of redraw flags /// Try using a combination
);
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
THX A LOT
|
|
|
|
|
You can see MSDN for flags
whitesky
|
|
|
|
|
hi,
i want to know format specifier for WORD and BYTE.
Example:
int nValue;
CString str;
str.Format("%d",nValue);
afxMessageBox(str);
%d for integer,same way i want to know for WORD and BTYE.
Thanks in before
James
|
|
|
|
|
A WORD is a 16 bit unsigned integer. use %u for that
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
hi,
"%d" -> Signed integers
"%u" -> UnSigned integers
as BYTE is unsigned type use "%u"
Urs,
-Pons
-----------------------
The greatest of faults, I should say, is to be conscious of none.
|
|
|
|
|
I create a CMyButton and handled WM_SIZE
void CMyButton::OnSize(...)<br />
{<br />
CButton::OnSize(...);<br />
<br />
CRect rect;<br />
GetClientRect(rect);<br />
<br />
m_rgn.DeleteObject(); <br />
SetWindowRgn(NULL, FALSE);<br />
m_rgn.CreateEllipticRgnIndirect(rect);<br />
SetWindowRgn(m_rgn, TRUE);<br />
<br />
}
But when the button size changed, round size not change, why?
Thanks.
|
|
|
|
|
Need to change the values in the rect that is being passed to m_rgn.CreateEllipticRgnIndirect
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
"Need to change the values in the rect" how to do?
|
|
|
|
|
rect.top = 20; etc . Do likewise for rect.left,rect.right,rect.bottom
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|