Sample code for 30+ languages & platforms
PureBasic

Transition from Imap.FetchBundleAsMime to Imap.FetchSingleBd

Provides instructions for replacing deprecated FetchBundleAsMime method calls with FetchSingleBd.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkBinData.pb"
IncludeFile "CkImap.pb"
IncludeFile "CkMessageSet.pb"
IncludeFile "CkStringArray.pb"

Procedure ChilkatExample()

    success.i = 0

    imap.i = CkImap::ckCreate()
    If imap.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; ...
    ; ...

    mset.i = CkMessageSet::ckCreate()
    If mset.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkImap::ckQueryMbx(imap,"FROM joe@example.com",1,mset)
    ; ...
    ; ...

    ; ------------------------------------------------------------------------
    ; The FetchBundleAsMime method is deprecated:

    saObj.i = CkImap::ckFetchBundleAsMime(imap,mset)
    If CkImap::ckLastMethodSuccess(imap) = 0
        Debug CkImap::ckLastErrorText(imap)
        CkImap::ckDispose(imap)
        CkMessageSet::ckDispose(mset)
        ProcedureReturn
    EndIf

    ; ...
    ; ...

    CkStringArray::ckDispose(saObj)

    ; ------------------------------------------------------------------------
    ; Do the equivalent using FetchSingleBd.

    CkImap::setCkAutoDownloadAttachments(imap, 1)

    bdMime.i = CkBinData::ckCreate()
    If bdMime.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    bUid.i = CkMessageSet::ckHasUids(mset)
    numEmails.i = CkMessageSet::ckCount(mset)
    i.i = 0
    While i < numEmails
        success = CkImap::ckFetchSingleBd(imap,CkMessageSet::ckGetId(mset,i),bUid,bdMime)
        ; ...
        ; ...

        i = i + 1
    Wend


    CkImap::ckDispose(imap)
    CkMessageSet::ckDispose(mset)
    CkBinData::ckDispose(bdMime)


    ProcedureReturn
EndProcedure