Newsgroups : Borland : borland.public.delphi.nativeapi.win32 : 2005 Apr : E_OUTOFMEMORY Why??

www.cryer.info
Managed Newsgroup Archive

E_OUTOFMEMORY Why??

Subject:E_OUTOFMEMORY Why??
Posted by:"Jon Jacobs" (jonjacobsatcomcast.net)
Date:Tue, 26 Apr 2005 20:57:51

Why does this give me E_OUTOFMEMORY?

Jon

unit ddp1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ActiveX, ComCtrls;

type
  TForm1 = class(TForm)
    StatusBar1: TStatusBar;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TDnD = class(TInterfacedObject, IDropTarget)
  private
    FControl: TWinControl;
  public
    function DragEnter(const dataObj: IDataObject; grfKeyState: Longint;
      pt: TPoint; var dwEffect: Longint): HResult; stdcall;
    function DragOver(grfKeyState: Longint; pt: TPoint;
      var dwEffect: Longint): HResult; stdcall;
    function DragLeave: HResult; stdcall;
    function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint;
      var dwEffect: Longint): HResult; stdcall;
    constructor Create(AControl: TWinControl);
  end;

var
  Form1: TForm1;
  Dnd: IDropTarget;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  H: DWord;
  S: string;
begin
  Dnd := TDnD.Create(Self);
  H := RegisterDragDrop(Handle, DnD);

  if H = S_OK then
    S := 'S_OK' else
  if H = DWord(DRAGDROP_E_INVALIDHWND) then
    S := 'DRAGDROP_E_INVALIDHWND' else
  if H = DWord(DRAGDROP_E_ALREADYREGISTERED) then
    S := 'DRAGDROP_E_ALREADYREGISTERED' else
  if H = DWord(E_OUTOFMEMORY) then
    S := 'E_OUTOFMEMORY'
  else
    S := IntToHex(H, 8);

  StatusBar1.SimpleText := S;
end;

{ TDnD }

constructor TDnD.Create(AControl: TWinControl);
begin
  inherited Create;
  FControl := AControl;
end;

function TDnD.DragEnter(const dataObj: IDataObject; grfKeyState: Integer;
  pt: TPoint; var dwEffect: Integer): HResult;
begin

end;

function TDnD.DragLeave: HResult;
begin

end;

function TDnD.DragOver(grfKeyState: Integer; pt: TPoint;
  var dwEffect: Integer): HResult;
begin

end;

function TDnD.Drop(const dataObj: IDataObject; grfKeyState: Integer;
  pt: TPoint; var dwEffect: Integer): HResult;
begin

end;

end.

Replies:

www.cryer.info
Managed Newsgroup Archive