anchor.diff:  end;
   
   procedure TDragFilesTarget.DoDragEnter(DataObj: IDataObject;
  -  KeyState: Integer; PT: TPoint; var Effect: TfpgOLEDragDropEffect);
  +  KeyState: LongInt; PT: TPoint; var Effect: DWORD);
   begin
     FDragAcceptFiles := DoDragAcceptFiles(DataObj);
  -  if FDragAcceptFiles and DoDragAcceptPosition(PT) then begin
  -    inherited;
  -  end else begin
  +  if FDragAcceptFiles and DoDragAcceptPosition(PT) then
  +    inherited DoDragEnter(DataObj, KeyState, PT, Effect)
  +  else
  +    Effect := DROPEFFECT_NONE;
  +end;
  +
  +procedure TDragFilesTarget.DoDragOver(KeyState: LongInt; PT: TPoint; var Effect: TfpgOLEDragDropEffect);
  +begin
  +  if FDragAcceptFiles and DoDragAcceptPosition(PT) then
  +    inherited DoDragOver(KeyState, PT, Effect)
  +  else
       Effect := deNone;
  -  end;
  -end;
  -
  -procedure TDragFilesTarget.DoDragOver(KeyState: Integer; PT: TPoint;
  -  var Effect: TfpgOLEDragDropEffect);
  -begin
  -  if FDragAcceptFiles and DoDragAcceptPosition(PT) then begin
  -    inherited;
  -  end else begin
  -    Effect := deNone;
  -  end;
   end;
   
   procedure TDragFilesTarget.DoDragDrop(DataObj: IDataObject;
  -  KeyState: Integer; PT: TPoint; Effect: TfpgOLEDragDropEffect);
  +  KeyState: LongInt; PT: TPoint; Effect: TfpgOLEDragDropEffect);
   begin
     DoDropFiles(DataObj, PT);
     inherited;
  
positive.code:     function    DoDragAcceptFiles(DataObj: IDataObject): Boolean;
      function    DoDragAcceptPosition(PT: TPoint): Boolean;
      procedure   DoDropFiles(DataObj: IDataObject; PT: TPoint);
      procedure   DoDragEnter(DataObj: IDataObject; KeyState: Longint; PT: TPoint; var Effect: TfpgOLEDragDropEffect); override;
      procedure   DoDragOver(KeyState: Longint; PT: TPoint; var Effect: TfpgOLEDragDropEffect); override;
      procedure   DoDragDrop(DataObj: IDataObject; KeyState: Longint; PT: TPoint; Effect: TfpgOLEDragDropEffect); override;
    public
  
negative.code:     function    DragOver(grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult; stdcall;
      function    DragLeave: HResult; stdcall;
      function    Drop(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult; stdcall;
    public
      property    OnDragEnter: TfpgOLEDragEnterEvent read FOnDragEnter write FOnDragEnter;
      property    OnDragOver: TfpgOLEDragOverEvent read FOnDragOver write FOnDragOver;
      property    OnDragLeave: TNotifyEvent read FOnDragLeave write FOnDragLeave;
  