Sample code for 30+ languages & platforms
Delphi DLL Requires Chilkat v11.0.0+

Transition from Imap.ThreadCmd to Imap.QueryThread

Provides instructions for replacing deprecated ThreadCmd method calls with QueryThread.

Chilkat Delphi DLL Downloads

Delphi DLL
var
success: Boolean;
imap: HCkImap;
threadAlg: PWideChar;
charset: PWideChar;
searchCriteria: PWideChar;
bUid: Boolean;
jsonObj: HCkJsonObject;
json: HCkJsonObject;

begin
success := False;

imap := CkImap_Create();

//  ...
//  ...

threadAlg := 'REFERENCES';
charset := 'UTF-8';
searchCriteria := 'SUBJECT a';
bUid := True;

//  ------------------------------------------------------------------------
//  The ThreadCmd method is deprecated:

jsonObj := CkImap_ThreadCmd(imap,threadAlg,charset,searchCriteria,bUid);
if (CkImap_getLastMethodSuccess(imap) = False) then
  begin
    Memo1.Lines.Add(CkImap__lastErrorText(imap));
    Exit;
  end;

//  ...
//  ...

CkJsonObject_Dispose(jsonObj);

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

CkImap_putSearchCharset(imap,'UTF-8');

json := CkJsonObject_Create();
success := CkImap_QueryThread(imap,threadAlg,searchCriteria,bUid,json);
if (success = False) then
  begin
    Memo1.Lines.Add(CkImap__lastErrorText(imap));
    Exit;
  end;

CkImap_Dispose(imap);
CkJsonObject_Dispose(json);