Sample code for 30+ languages & platforms
PureBasic

Outlook -- Delete Folder

See more Outlook Examples

Deletes an email folder.

Note: This example requires Chilkat v9.5.0.68 or greater.

This example applies to: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttp.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkHashtable.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example requires the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

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

    ; Use your previously obtained access token here:
    CkHttp::setCkAuthToken(http, "MICROSOFT_GRAPH_ACCESS_TOKEN")

    ; This example will delete the folder /Inbox/abc/subFolderC

    ; Get the existing folder ID from the folder map created by this example 
    htFolderMap.i = CkHashtable::ckCreate()
    If htFolderMap.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

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

    CkStringBuilder::ckLoadFile(sbMap,"qa_data/outlook/folderMap.xml","utf-8")
    CkHashtable::ckAddFromXmlSb(htFolderMap,sbMap)

    existingFolderId.s = CkHashtable::ckLookupStr(htFolderMap,"/Inbox/abc/subFolderC")
    If CkHashtable::ckLastMethodSuccess(htFolderMap) <> 1
        Debug "Folder ID not found"
        CkHttp::ckDispose(http)
        CkHashtable::ckDispose(htFolderMap)
        CkStringBuilder::ckDispose(sbMap)
        ProcedureReturn
    EndIf

    CkHttp::ckSetUrlVar(http,"folder_id",existingFolderId)

    resp.s = CkHttp::ckQuickDeleteStr(http,"https://graph.microsoft.com/v1.0/me/mailFolders/{$folder_id}")
    If CkHttp::ckLastMethodSuccess(http) <> 1
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkHashtable::ckDispose(htFolderMap)
        CkStringBuilder::ckDispose(sbMap)
        ProcedureReturn
    EndIf

    ; A 204 response (with no response body) indicates success.
    If CkHttp::ckLastStatus(http) = 204
        Debug "Folder deleted."
    Else
        Debug "Folder not deleted."
        Debug resp
    EndIf



    CkHttp::ckDispose(http)
    CkHashtable::ckDispose(htFolderMap)
    CkStringBuilder::ckDispose(sbMap)


    ProcedureReturn
EndProcedure