Sample code for 30+ languages & platforms
Delphi DLL

Transition from Imap.Search to Imap.QueryMbx

Provides instructions for replacing deprecated Search method calls with QueryMbx.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Imap, MessageSet;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
imap: HCkImap;
criteria: PWideChar;
bUid: Boolean;
msgSetObj: HCkMessageSet;
mset: HCkMessageSet;

begin
success := False;

imap := CkImap_Create();

// ...
// ...

criteria := 'FROM bob@example.com';
bUid := True;

// ------------------------------------------------------------------------
// The Search method is deprecated:

msgSetObj := CkImap_Search(imap,criteria,bUid);
if (CkImap_getLastMethodSuccess(imap) = False) then
  begin
    Memo1.Lines.Add(CkImap__lastErrorText(imap));
    Exit;
  end;

// ...
// ...

CkMessageSet_Dispose(msgSetObj);

// ------------------------------------------------------------------------
// Do the equivalent using QueryMbx.
// Your application creates a new, empty MessageSet object which is passed 
// in the last argument and filled upon success.

mset := CkMessageSet_Create();
success := CkImap_QueryMbx(imap,criteria,bUid,mset);
if (success = False) then
  begin
    Memo1.Lines.Add(CkImap__lastErrorText(imap));
    Exit;
  end;

CkImap_Dispose(imap);
CkMessageSet_Dispose(mset);

end;