Sample code for 30+ languages & platforms
Unicode C

Transition from MailMan.TransferMultipleMime to MailMan.FetchMimeBd

Provides instructions for replacing deprecated TransferMultipleMime method calls with FetchMimeBd.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkMailManW.h>
#include <C_CkStringArrayW.h>
#include <C_CkStringTableW.h>
#include <C_CkBinDataW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkMailManW mailman;
    HCkStringArrayW saUidls;
    HCkStringTableW stUidls;
    HCkStringArrayW sa;
    HCkBinDataW bdMime;
    int numUidls;
    int i;

    success = FALSE;

    mailman = CkMailManW_Create();

    //  ...
    //  ...

    saUidls = CkStringArrayW_Create();
    CkStringArrayW_Append(saUidls,L"aaa");
    CkStringArrayW_Append(saUidls,L"bbb");
    CkStringArrayW_Append(saUidls,L"ccc");

    stUidls = CkStringTableW_Create();
    CkStringTableW_Append(stUidls,L"aaa");
    CkStringTableW_Append(stUidls,L"bbb");
    CkStringTableW_Append(stUidls,L"ccc");

    //  ------------------------------------------------------------------------
    //  The TransferMultipleMime method is deprecated:

    sa = CkMailManW_TransferMultipleMime(mailman,saUidls);
    if (CkMailManW_getLastMethodSuccess(mailman) == FALSE) {
        wprintf(L"%s\n",CkMailManW_lastErrorText(mailman));
        CkMailManW_Dispose(mailman);
        CkStringArrayW_Dispose(saUidls);
        CkStringTableW_Dispose(stUidls);
        return;
    }

    //  ...
    //  ...

    CkStringArrayW_Dispose(sa);

    //  ------------------------------------------------------------------------
    //  Do the equivalent using FetchMimeBd.

    CkMailManW_putImmediateDelete(mailman,FALSE);

    success = FALSE;
    bdMime = CkBinDataW_Create();
    numUidls = CkStringTableW_getCount(stUidls);
    i = 0;
    while (i < numUidls) {
        success = CkMailManW_FetchMimeBd(mailman,CkStringTableW_stringAt(stUidls,i),bdMime);
        //  ...

        //  Mark the email for deletion.
        success = CkMailManW_DeleteByUidl(mailman,CkStringTableW_stringAt(stUidls,i));
        //  ...

        i = i + 1;
    }

    //  emails marked for deletion will be deleted at this time
    success = CkMailManW_Pop3EndSession(mailman);


    CkMailManW_Dispose(mailman);
    CkStringArrayW_Dispose(saUidls);
    CkStringTableW_Dispose(stUidls);
    CkBinDataW_Dispose(bdMime);

    }