请问该怎样正确获取某一种类型的变量的数据呢?

                            
我按照网上的代码自己写底层键盘钩子(自己写可以加深印象),由这些代码产生了一个问题,希望热心的朋友能帮忙解释一下,谢谢!   
  底层键盘钩子的回调函数是这样的  
  function   LowLevelKeyboardProc(nCode:   Integer;   wParam:   WPARAM;   lParam:   LPARAM):   LRESULT;   stdcall;  
  回调函数中的   lParam   参数通过类型转换   PKBDLLHOOKSTRUCT(lParam)   转换成   PKBDLLHOOKSTRUCT   数据类型。  
  这是   PKBDLLHOOKSTRUCT   的定义  
      TKBDLLHOOKSTRUCT   =   record  
          vkCode:   DWORD;  
          ScanCode:   DWORD;  
          Flags:   DWORD;  
          Time:   DWORD;  
          dwExtraInfo:   DWORD;  
      end;  
      KBDLLHOOKSTRUCT   =   TKBDLLHOOKSTRUCT;  
      PKBDLLHOOKSTRUCT   =   ^KBDLLHOOKSTRUCT;  
   
  我的问题是这样的:  
  1、   PKBDLLHOOKSTRUCT   应该准确的叫做什么?   结构?结构指针?或者都不对?  
  2、   PKBDLLHOOKSTRUCT(lParam)   转换而来的数据怎么正确的获取数据?   比方说   p   :=   PKBDLLHOOKSTRUCT(lParam);   ,那么获取   p   结构中   vkCode   数据的时候用   p^.vkCode   正确还是   p.vkCode   正确?  
  3、   什么时候该用     p^.vkCode   这样类似的代码,什么时候又该用   p.vkCode   这样类似的代码呢?他们的区别在哪里?为什么要那样用?  
   
 

查看回复