anchor.diff:    Result := daCopy;
   end;
   
  +{ TGDIDragManager }
  +
  +function TGDIDragManager.DragEnter(const dataObj: IDataObject;
  +  grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult; StdCall;
  +begin
  +
  +end;
  +
  +function TGDIDragManager.DragOver(grfKeyState: DWORD; pt: TPoint;
  +  var dwEffect: DWORD): HResult; StdCall;
  +begin
  +
  +end;
  +
  +function TGDIDragManager.DragLeave: HResult; StdCall;
  +begin
  +
  +end;
  +
  +function TGDIDragManager.Drop(const dataObj: IDataObject; grfKeyState: DWORD;
  +  pt: TPoint; var dwEffect: DWORD): HResult; StdCall;
  +begin
  +
  +end;
  +
  +constructor TGDIDragManager.Create(ADropTarget: TObject);
  +begin
  +  inherited Create;
  +  FDropTarget := ADropTarget;
  +  FRegistered := False;
  +end;
  +
  +destructor TGDIDragManager.Destroy;
  +begin
  +  if FRegistered then
  +    RevokeDragDrop;
  +  inherited Destroy;
  +end;
  +
  +procedure TGDIDragManager.RegisterDragDrop;
  +begin
  +  Activex.RegisterDragDrop(TfpgWidget(FDropTarget).WinHandle, self as IDropTarget)
  +end;
  +
  +procedure TGDIDragManager.RevokeDragDrop;
  +begin
  +  ActiveX.RevokeDragDrop(TfpgWidget(FDropTarget).WinHandle);
  +end;
  +
   initialization
     wapplication   := nil;
     MouseFocusedWH := 0;
  +  NeedToUnitialize := Succeeded(OleInitialize(nil));
   
   {$IFDEF WinCE}
     UnicodeEnabledOS := True;
  
positive.code: type
    // forward declaration
    TfpgGDIWindow = class;
  
  
    TfpgGDIFontResource = class(TfpgFontResourceBase)
  
negative.code:   end;
  
  
    { TGDIDragManager }
  
    TGDIDragManager = class(TInterfacedObject, IDropTarget)
    private
      FDropTarget: TObject;  { actually a TfpgWidget }
      FRegistered: boolean;
      { IDropTarget }
      function DragEnter(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult;StdCall;
      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
      constructor Create(ADropTarget: TObject); reintroduce;
      destructor  Destroy; override;
      procedure   RegisterDragDrop;
      procedure   RevokeDragDrop;
      property    DropTarget: TObject read FDropTarget; { actually a TfpgWidget }
    end;
  
  
  implementation
  
  uses
  