• <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

            久久综合久久综合九色| 国产精品久久久久a影院| 久久精品国产亚洲av麻豆小说 | 久久99精品久久久久久水蜜桃| 奇米综合四色77777久久| 欧美黑人激情性久久| 91精品国产综合久久精品| 7国产欧美日韩综合天堂中文久久久久 | 色欲综合久久躁天天躁蜜桃| 人妻久久久一区二区三区| 97久久国产亚洲精品超碰热 | 国产亚洲精品久久久久秋霞 | 精品综合久久久久久88小说| 久久这里有精品视频| 久久精品国产亚洲av麻豆图片| 久久综合九色综合网站| 久久国产精品久久| 人妻精品久久久久中文字幕| 日韩人妻无码一区二区三区久久99| 色欲久久久天天天综合网| 久久久久久a亚洲欧洲aⅴ| 青青久久精品国产免费看| 久久久免费精品re6| 狠狠色综合久久久久尤物| 国内精品伊人久久久影院| 97久久综合精品久久久综合| 久久精品国产亚洲精品| 亚洲国产精品无码久久久秋霞2| 久久婷婷国产麻豆91天堂| 热久久最新网站获取| 国产精品久久久久久影院| 伊人久久国产免费观看视频| 香蕉久久夜色精品升级完成| 91久久精品国产成人久久| 亚洲欧美伊人久久综合一区二区 | 77777亚洲午夜久久多喷| 久久九九亚洲精品| 亚洲精品乱码久久久久久蜜桃图片 | 久久无码中文字幕东京热| 一本久久久久久久| 久久久久AV综合网成人 |