STDMETHODIMP CMapiImp::DeleteMail(unsigned long aSession, unsigned long ulUIParam, LPTSTR lpszMessageID, unsigned long flFlags, unsigned long ulReserved) { PRInt32 irv; nsCAutoString keyString((char *) lpszMessageID); nsMsgKey msgKey = keyString.ToInteger(&irv); if (irv) return SUCCESS_SUCCESS; MsgMapiListContext *listContext; LONG ret = InitContext(aSession, &listContext); if (ret != SUCCESS_SUCCESS) return ret; return (listContext->DeleteMessage(msgKey)) ? SUCCESS_SUCCESS : MAPI_E_INVALID_MESSAGE; }
STDMETHODIMP CMapiImp::DeleteMail(unsigned long aSession, unsigned long ulUIParam, LPTSTR lpszMessageID, unsigned long flFlags, unsigned long ulReserved) { nsresult irv; nsAutoCString keyString((char *) lpszMessageID); nsMsgKey msgKey = keyString.ToInteger(&irv); // XXX Why do we return success on failure? if (NS_FAILED(irv)) return SUCCESS_SUCCESS; MsgMapiListContext *listContext; LONG ret = InitContext(aSession, &listContext); if (ret != SUCCESS_SUCCESS) return ret; return (listContext->DeleteMessage(msgKey)) ? SUCCESS_SUCCESS : MAPI_E_INVALID_MESSAGE; }
/* Return TRUE on success, FALSE on failure */ extern "C" PRBool MSG_DeleteMapiMessage(nsIMsgFolder *folder, nsMsgKey key) { PRBool success = FALSE; MsgMapiListContext *context = new MsgMapiListContext(); if (context) { if (NS_SUCCEEDED(context->OpenDatabase(folder))) { success = context->DeleteMessage(key); } delete context; } return success; }