mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.1 KiB
75 lines
1.1 KiB
#ifndef __WMSG_THREAD_HXX__
|
|
#define __WMSG_THREAD_HXX__
|
|
|
|
HWND
|
|
WmsgThreadGetWindowHandle(
|
|
);
|
|
|
|
RPC_STATUS __RPC_API
|
|
WmsgSetThreadContext(
|
|
IN VOID __RPC_FAR * Context
|
|
);
|
|
|
|
VOID __RPC_FAR * __RPC_API
|
|
WmsgGetThreadContext(
|
|
);
|
|
|
|
class WMSG_THREAD : public WMSG_SHARED_HEAP_OBJECT {
|
|
|
|
public:
|
|
|
|
THREAD_IDENTIFIER ThreadId;
|
|
|
|
// One hidden RPC window for each listening thread and calling thread.
|
|
HWND hWnd;
|
|
|
|
// User parameter passed to the blocking hook
|
|
VOID * Context;
|
|
|
|
// Dictionary key in WMSG_PROC
|
|
int DictKey;
|
|
|
|
enum WMSG_THREAD_STATE
|
|
{
|
|
WMSG_THREAD_PAUSED = 0,
|
|
WMSG_THREAD_LISTENING = 1
|
|
} State;
|
|
|
|
BOOL IsListening(
|
|
)
|
|
{
|
|
return (State == WMSG_THREAD_LISTENING);
|
|
}
|
|
|
|
void Pause(
|
|
)
|
|
{
|
|
State = WMSG_THREAD_PAUSED;
|
|
}
|
|
|
|
void Continue(
|
|
)
|
|
{
|
|
State = WMSG_THREAD_LISTENING;
|
|
}
|
|
|
|
WMSG_THREAD(
|
|
);
|
|
|
|
~WMSG_THREAD(
|
|
);
|
|
};
|
|
|
|
NEW_SDICT(WMSG_THREAD);
|
|
|
|
WMSG_THREAD *
|
|
WmsgThreadGet(
|
|
);
|
|
|
|
VOID
|
|
WmsgThreadDelete(
|
|
WMSG_THREAD * Thread = NULL
|
|
);
|
|
|
|
#endif
|
|
|