• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉,開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            HOOK鉤子機制學習筆記(3) - 鉤子常用結構體MSDN翻譯整理 收藏?

            作者:MaybeHelios???? blog: http://blog.csdn.net/maybehelios/???

            下面是應用Hook時會用到的各種結構。

            結構1:CBT_CREATEWND Structure

            ??? The CBT_CREATEWND structure contains information passed to a WH_CBT hook procedure, CBTProc, before a window is created.
            ??? 該結構包含有:在一個窗口被創建之前傳遞給WH_CBT鉤子子程,即CBTProc,的信息。

            typedef struct {
            ??? LPCREATESTRUCT lpcs;
            ??? HWND hwndInsertAfter;
            } CBT_CREATEWND, *LPCBT_CREATEWND;

            Members成員
            lpcs
            ??? Pointer to a CREATESTRUCT structure that contains initialization parameters for the window about to be created.
            ??? 一個指向CREATESTRUCT結構的指針,該結構包含即將被創建的窗體的初始化參數。

            hwndInsertAfter
            ??? Handle to the window whose position in the Z order precedes that of the window being created.
            ??? 窗體的句柄,該窗體的Z軸位置在正在被創建的窗體的Z軸位置之前。

            結構2:CBTACTIVATESTRUCT Structure

            ??? The CBTACTIVATESTRUCT structure contains information passed to a WH_CBT hook procedure, CBTProc, before a window is activated.
            ??? CBTACTIVATESTRUCT 結構包含在窗體被激活之前,傳遞給WH_CBT鉤子子程CBTProc 的信息。

            typedef struct {
            ??? BOOL fMouse;
            ??? HWND hWndActive;
            } CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT;

            Members 成員
            fMouse
            ??? Specifies whether the window is being activated as a result of a mouse click. This value is TRUE if a mouse click is causing the activation or FALSE if it is not.
            ??? 指定窗體是否是由于鼠標的點擊而導致被激活.如果是因為鼠標的點擊而引發了窗體的激活,返回true,否則返回false。

            hWndActive
            ??? Handle to the active window.
            ??? 活動窗口的句柄。

            結構3:CWPRETSTRUCT Structure

            ??? The CWPRETSTRUCT structure defines the message parameters passed to a WH_CALLWNDPROCRET hook procedure, CallWndRetProc.
            ??? CWPRETSTRUCT結構定義了傳遞給WH_CALLWNDPROCRET鉤子子程CallWndRetProc的消息參數。

            typedef struct {
            ??? LRESULT lResult;
            ??? LPARAM lParam;
            ??? WPARAM wParam;
            ??? UINT message;
            ??? HWND hwnd;
            } CWPRETSTRUCT, *PCWPRETSTRUCT;

            Members成員
            lResult
            ??? Specifies the return value of the window procedure that processed the message specified by the message value.?
            ??? 指定了窗體程序的返回值,該窗體程序處理由 message 值指定的消息。

            lParam / wParam
            ??? Specifies additional information about the message. The exact meaning depends on the message value.
            ??? 指定消息的附加信息。附加的意義取決于message的值。

            message
            ??? Specifies the message.
            ??? 指定消息。

            hwnd
            ??? Handle to the window that processed the message specified by the message value.
            ??? 處理由message的值指定的消息的窗體的窗體句柄。

            結構4:CWPSTRUCT Structure

            ??? The CWPSTRUCT structure defines the message parameters passed to a WH_CALLWNDPROC hook procedure, CallWndProc.
            ??? CWPSTRUCT 結構定義了傳遞給WH_CALLWNDPROC鉤子子程CallWndProc的消息參數。

            typedef struct {
            ??? LPARAM lParam;
            ??? WPARAM wParam;
            ??? UINT message;
            ??? HWND hwnd;
            } CWPSTRUCT, *PCWPSTRUCT;

            Members
            lParam? / wParam
            ??? Specifies additional information about the message. The exact meaning depends on the message value.
            ??? 指定消息的附加信息。附加的意義取決于message的值。

            message
            ??? Specifies the message.
            ??? 指定消息

            hwnd
            ??? Handle to the window to receive the message.
            ??? 接收消息的窗體的句柄。


            ?
            結構5:DEBUGHOOKINFO Structure
            ??? The DEBUGHOOKINFO structure contains debugging information passed to a WH_DEBUG hook procedure, DebugProc.
            ??? DEBUGHOOKINFO結構包含有傳遞給WH_DEBUG鉤子子程DebugProc的調試信息。

            typedef struct {
            ??? DWORD idThread;
            ??? DWORD idThreadInstaller;
            ??? LPARAM lParam;
            ??? WPARAM wParam;
            ??? int code;
            } DEBUGHOOKINFO, *PDEBUGHOOKINFO;

            Members成員
            idThread
            ??? Handle to the thread containing the filter function.
            ??? 包含過濾方法的線程的句柄。

            idThreadInstaller
            ??? Handle to the thread that installed the debugging filter function.
            ??? 安裝調試過濾方法的線程的句柄。

            lParam / wParam
            ??? Specifies the value to be passed to the hook in the lParam parameter of the DebugProc callback function.
            ??? 指定在DebugProc回調函數的lParam/ wParam 參數中,要傳遞給鉤子的值。

            code
            ??? Specifies the value to be passed to the hook in the nCode parameter of the DebugProc callback function.
            ??? 指定在DebugProc回調函數的nCode 參數中,要傳遞給鉤子的值。

            結構6:EVENTMSG Structure

            ??? The EVENTMSG structure contains information about a hardware message sent to the system message queue. This structure is used to store message information for the JournalPlaybackProc callback function.
            ??? 該結構包含有關于硬件的消息,該消息被發送給系統的消息隊列。該結構用來為JournalPlaybackProc回調函數存儲消息的信息。

            typedef struct {
            ??? UINT message;
            ??? UINT paramL;
            ??? UINT paramH;
            ??? DWORD time;
            ??? HWND hwnd;
            } EVENTMSG, *PEVENTMSG;

            Members成員
            message
            ??? Specifies the message.
            ??? 指定消息。

            paramH / paramH
            ??? Specifies additional information about the message. The exact meaning depends on the message value.
            ??? 指定消息的附加信息。附加的意義取決于message的值。

            time
            ??? Specifies the time at which the message was posted.
            ??? 消息被傳遞時的時間 。

            hwnd
            ??? Handle to the window to which the message was posted.
            ??? 消息被傳給的窗口的句柄。

            結構7:KBDLLHOOKSTRUCT Structure

            ??? The KBDLLHOOKSTRUCT structure contains information about a low-level keyboard input event.
            ??? 該結構包含有低層鍵盤輸入事件的信息。

            typedef struct {
            ??? DWORD vkCode;
            ??? DWORD scanCode;
            ??? DWORD flags;
            ??? DWORD time;
            ??? ULONG_PTR dwExtraInfo;
            } KBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;

            Members成員
            vkCode
            ??? Specifies a virtual-key code. The code must be a value in the range 1 to 254.?
            ??? 指定虛擬鍵值。該值必須在1到254的范圍內。

            scanCode
            ??? Specifies a hardware scan code for the key.
            ??? 指定鍵的硬件掃描碼。

            flags
            ??? Specifies the extended-key flag, event-injected flag, context code, and transition-state flag. This member is specified as follows. An application can use the following values to test the keystroke flags.
            ??? 指定擴展鍵標志,事件注入標志,上下文代碼,轉換狀態碼。成員如下所示。應用程序可以使用下列值來檢查鍵盤敲擊標志。

            ??? Value值??????????????????????????? Purpose目的
            ??? LLKHF_EXTENDED???? Test the extended-key flag. 測試擴展鍵標志。
            ??? LLKHF_INJECTED?????? Test the event-injected flag. 測試事件注入標志。
            ??? LLKHF_ALTDOWN?????? Test the context code. 測試上下文代碼。
            ??? LLKHF_UP??????????????????? Test the transition-state flag. 測試轉換狀態碼。
            ?
            ??? 0 :Specifies whether the key is an extended key, such as a function key or a key on the numeric keypad. The value is 1 if the key is an extended key; otherwise, it is 0.
            ??? 指定該鍵是否是擴展鍵,例如:功能鍵、數字鍵盤上的鍵。是擴展鍵為1,否則為0。

            ??? 1-3 :Reserved. 保留。

            ??? 4? :Specifies whether the event was injected. The value is 1 if the event was injected; otherwise, it is 0.
            ??? 指定事件是否被注入。被注入為1,否則為0。

            ??? 5? :Specifies the context code. The value is 1 if the ALT key is pressed; otherwise, it is 0.
            ??? 指定上下文代碼。如果按下了ALT,該值為1,否則為0

            ??? 6? :Reserved. 保留。

            ??? 7? :Specifies the transition state. The value is 0 if the key is pressed and 1 if it is being released.
            ??? 指定轉換狀態。如果該鍵被按下該值為1,如果被釋放為0。

            time
            ??? Specifies the time stamp for this message, equivalent to what GetMessageTime would return for this message.
            ??? 指定消息的時間戳,相當于GetMessageTime返回的值。

            dwExtraInfo
            ??? Specifies extra information associated with the message.
            ??? 指定和該消息相關聯的擴展信息。

            結構8 :MOUSEHOOKSTRUCT Structure

            ????? T he MOUSEHOOKSTRUCT structure contains information about a mouse event passed to a WH_MOUSE hook procedure, MouseProc.
            ???? MOUSEHOOKSTRUCT結構包含有傳遞給WH_MOUSE鉤子子程MouseProc的,關于鼠標事件的信息。

            typedef struct {
            ??? POINT pt;
            ??? HWND hwnd;
            ??? UINT wHitTestCode;
            ??? ULONG_PTR dwExtraInfo;
            } MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT;

            Members成員
            pt
            ??? Specifies a POINT structure that contains the x- and y-coordinates of the cursor, in screen coordinates.
            ??? 指定在屏幕坐標系下,包含有光標x、y坐標的POINT結構。

            hwnd
            ??? Handle to the window that will receive the mouse message corresponding to the mouse event.
            ??? 希望對鼠標事件做出響應、接收鼠標消息的窗體的句柄。

            wHitTestCode
            ??? Specifies the hit-test value. For a list of hit-test values, see the description of the WM_NCHITTEST message.
            ??? 指定點擊測試值。查看WM_NCHITTEST消息可以得到值的列表。

            dwExtraInfo
            ??? Specifies extra information associated with the message.
            ??? 指定和該消息相關聯的附加信息。

            結構9:MOUSEHOOKSTRUCTEX Structure

            ??? The MOUSEHOOKSTRUCTEX structure contains information about a mouse event passed to a WH_MOUSE hook procedure, MouseProc.
            ??? MOUSEHOOKSTRUCTEX結構包含有傳遞給WH_MOUSE鉤子子程MouseProc的關于鼠標事件的信息。

            ??? This is an extension of the MOUSEHOOKSTRUCT structure that includes information about wheel movement or the use of the X button.
            ??? 這是對MOUSEHOOKSTRUCT的擴展。包含有滾輪的活動和X鍵的使用。

            typedef struct {
            ??? MOUSEHOOKSTRUCT MOUSEHOOKSTRUCT;
            ??? DWORD mouseData;
            } MOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX;

            Members成員
            MOUSEHOOKSTRUCT
            ??? The members of a MOUSEHOOKSTRUCT structure make up the first part of this structure.
            ??? MOUSEHOOKSTRUCT結構的成員構成了該結構的前面部分。

            mouseData
            ??? If the message is WM_MOUSEWHEEL, the HIWORD of this member is the wheel delta. The LOWORD is undefined and reserved. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user. One wheel click is defined as WHEEL_DELTA, which is 120.
            ??? 如果消息是WM_MOUSEWHEEL,該成員的HIWORD就是wheel delta。LOWORD做為保留未定義。正值表示滾輪向前旋轉,即遠離用戶的方向;負值表示滾輪向后旋轉,即朝向用戶的方向。滾輪的點擊被定義為WHEEL_DELTA, 具體值為120。

            ??? If the message is WM_XBUTTONDOWN, WM_XBUTTONUP, WM_XBUTTONDBLCLK, WM_NCXBUTTONDOWN, WM_NCXBUTTONUP, or WM_NCXBUTTONDBLCLK, the HIWORD of mouseData specifies which X button was pressed or released, and the LOWORD is undefined and reserved. This member can be one or more of the following values. Otherwise, mouseData is not used.
            ??? 如果消息是WM_XBUTTONDOWN, WM_XBUTTONUP, WM_XBUTTONDBLCLK, WM_NCXBUTTONDOWN, WM_NCXBUTTONUP, 或者 WM_NCXBUTTONDBLCLK,? mouseData? 的HIWORD值指定哪個X鍵被按下或者釋放,LOWORD做為保留未定義。該成員可以是以下值中的一個或者多個。否則,mouseData未使用。
            ??? 1.XBUTTON1 :The first X button was pressed or released. 第一個X鍵被按下或者釋放。
            ??? 2.XBUTTON2 :The second X button was pressed or released.第二個X鍵被按下或者釋放。

            結構9:MSLLHOOKSTRUCT Structure

            ??? The MSLLHOOKSTRUCT structure contains information about a low-level keyboard input event. (msdn錯誤)
            ??? 該MSLLHOOKSTRUCT結構包含有低層鍵盤輸入事件的信息。

            typedef struct {
            ??? POINT pt;
            ??? DWORD mouseData;
            ??? DWORD flags;
            ??? DWORD time;
            ??? ULONG_PTR dwExtraInfo;
            } MSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT;

            Members成員
            pt
            ??? Specifies a POINT structure that contains the x- and y-coordinates of the cursor, in screen coordinates.
            ??? 指定在屏幕坐標系下,包含有光標x、y坐標的POINT結構。

            mouseData
            ??? If the message is WM_MOUSEWHEEL, the HIWORD of this member is the wheel delta. The LOWORD is undefined and reserved. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user. One wheel click is defined as WHEEL_DELTA, which is 120.
            ??? 如果消息是WM_MOUSEWHEEL,該成員的HIWORD就是wheel delta。LOWORD做為保留未定義。正值表示滾輪向前旋轉,即遠離用戶的方向;負值表示滾輪向后旋轉,即朝向用戶的方向。滾輪的點擊被定義為WHEEL_DELTA, 具體值為120。
            ??? If the message is WM_XBUTTONDOWN, WM_XBUTTONUP, WM_XBUTTONDBLCLK, WM_NCXBUTTONDOWN, WM_NCXBUTTONUP, or WM_NCXBUTTONDBLCLK, the HIWORD of mouseData specifies which X button was pressed or released, and the LOWORD is undefined and reserved. This member can be one or more of the following values. Otherwise, mouseData is not used.
            ??? 如果消息是WM_XBUTTONDOWN, WM_XBUTTONUP, WM_XBUTTONDBLCLK, WM_NCXBUTTONDOWN, WM_NCXBUTTONUP, 或者 WM_NCXBUTTONDBLCLK,? mouseData? 的HIWORD值指定哪個X鍵被按下或者釋放,LOWORD做為保留未定義。該成員可以是以下值中的一個或者多個。否則,mouseData未使用。
            ??? 1.XBUTTON1:The first X button was pressed or released. 第一個X鍵被按下或者釋放。
            ??? 2.XBUTTON2 :The second X button was pressed or released.第二個X鍵被按下或者釋放。

            flags
            ??? Specifies the event-injected flag. An application can use the following value to test the mouse flags.????
            ??? 指定事件注入標志。應用程序可以使用下列值來測試鼠標標志。

            ??? Value??????????????????????????? Purpose
            ??? LLMHF_INJECTED?? Test the event-injected flag.測試事件注入標志。

            ??? 0
            ??? Specifies whether the event was injected. The value is 1 if the event was injected; otherwise, it is 0.???? 事件是否被注入。如果被注入,為 1,否則為0

            ??? 1-15 :Reserved.保留

            time
            ??? Specifies the time stamp for this message.
            ??? 消息的時間戳。

            dwExtraInfo
            ??? Specifies extra information associated with the message.
            ??? 消息的擴展信息。


            本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jiangxinyu/archive/2010/02/03/5284094.aspx

            亚洲精品乱码久久久久久蜜桃 | 久久久久久无码国产精品中文字幕| 久久亚洲精品中文字幕| 99蜜桃臀久久久欧美精品网站 | 久久久久久久久久久| 香蕉久久影院| 亚洲国产小视频精品久久久三级 | 亚洲精品乱码久久久久久| 久久亚洲AV成人无码软件| 99精品久久久久久久婷婷| 精品国产99久久久久久麻豆| 久久久久久久人妻无码中文字幕爆 | 亚洲国产成人久久综合一区77| 欧美激情精品久久久久久久九九九 | 久久综合五月丁香久久激情| 久久这里有精品| 亚洲AV无码久久寂寞少妇| 精品久久久久久成人AV| 国内精品久久久久影院网站| 伊人色综合久久天天人守人婷| 一本久久a久久精品vr综合| 精品久久久久久中文字幕人妻最新| 久久久青草久久久青草| 久久无码人妻精品一区二区三区 | 亚洲午夜精品久久久久久浪潮 | 2021国内久久精品| 伊人色综合久久天天| 久久人人爽人人爽人人片AV高清| 久久棈精品久久久久久噜噜| 国产精品免费久久| 久久久久久精品无码人妻| 久久最近最新中文字幕大全| 久久无码高潮喷水| 99久久精品免费看国产免费| 亚洲成色WWW久久网站| 久久久久人妻精品一区三寸蜜桃 | 一本色道久久88综合日韩精品| 精品999久久久久久中文字幕| 一级A毛片免费观看久久精品| 国产精品一区二区久久国产| 中文字幕无码久久人妻|