    " 2"

 -  ,   . ,  ,
      - ,     
   " 2"

         ,    
 " 2":

        -    
        -     
        -     

              ?

        -     Windows  Portable Executable
        -    stdcall- EnumSnoopServices
        -   stdcall- 

          
        EnumSnoopServices   -  
        :
  "Info" -    ,   
  "Proc" -   
  "ScanCode" - - ,    
  "Modifier" -  (Alt,Control,Shift)   
  "Copy" -  ,      
                
  "Paste" -  ,     
              ,   "" 
  "lParam" -  ,    
  "Reserved" - , 

      . True ,   
      ,      .

           3 .
   "lParam" -  ,   EnumSnoopServices
   "hOut" - memory handle   
     "hIn" - memory handle  ,   
   
     -   .

            (  Delphi-Object Pascal)
=================
library Plugin;

uses
    Plugin1;

    exports EnumSnoopServices;
          
begin

end.
==========================

unit Plugin1;

interface

Function EnumSnoopServices
         (Var Info:PChar;Var Proc:Pointer;Var ScanCode:Integer;
          Var Modifier:Integer; Var Copy:LongBool;Var Paste:LongBool;
          Var lParam:Longint;Var Reserved:Pointer):LongBool;Export;stdcall;

implementation

Uses Windows;

Function SnoopTranslate(lParam,HOut:Integer;Var HIn:Integer):Longint;Stdcall;
begin
HIn:=HOut;
Result:=0;
end;

Function EnumSnoopServices(Var Info:PChar;Var Proc:Pointer;Var ScanCode:Integer;Var Modifier:Integer;Var Copy:LongBool;Var Paste:LongBool;Var lParam:Longint;Var Reserved:Pointer):LongBool;Export;stdcall;
begin
   Result:=False; //  
   Info:=PChar('Plugin number 1');  //
   Proc:=@SnoopTranslate; //  
   ScanCode:=VK_PAUSE;
   Modifier:=MOD_ALT or MOD_CONTROL; //  Alt-Ctrl-Pause
   Copy:=LongBool(True); //,    
   Paste:=LongBool(True); //,     
   lParam:=0; //  
   Reserved:=nil; //  
end;                                 

initialization

finalization

end.                                 
==================