Пример #1
0
// Deletes a sub folder and ALL sub folders/messages
BOOL CMAPIEx::DeleteSubFolder(LPMAPIFOLDER pSubFolder, LPMAPIFOLDER pFolder) {
    if (!pSubFolder) return FALSE;

    if (!pFolder) {
        pFolder = m_pFolder;
        if (!pFolder) return FALSE;
    }

    LPSPropValue props    = NULL;
    ULONG        cValues  = 0;
    ULONG        rgTags[] = { 1, PR_ENTRYID };

    if (pSubFolder->GetProps((LPSPropTagArray)rgTags, CMAPIEx::cm_nMAPICode, &cValues, &props) == S_OK) {
        HRESULT hr = pFolder->DeleteFolder(props[0].Value.bin.cb, (LPENTRYID)props[0].Value.bin.lpb, NULL, NULL, DEL_FOLDERS | DEL_MESSAGES);
        MAPIFreeBuffer(props);
        return hr == S_OK;
    }
    return FALSE;
}