cleanup some of the mapi error returns, attempt to fix idl for findnext, sr=mscott 108275

This commit is contained in:
bienvenu%nventure.com 2004-04-26 21:39:15 +00:00
Родитель e0c1daff6f
Коммит 913d69fe8b
4 изменённых файлов: 26 добавлений и 8 удалений

Просмотреть файл

@ -315,7 +315,7 @@ ULONG FAR PASCAL MAPISendDocuments(ULONG ulUIParam, LPTSTR lpszDelimChar, LPTSTR
ULONG FAR PASCAL MAPIFindNext(LHANDLE lhSession, ULONG ulUIParam, LPTSTR lpszMessageType,
LPTSTR lpszSeedMessageID, FLAGS flFlags, ULONG ulReserved,
LPTSTR lpszMessageID)
unsigned char lpszMessageID[64])
{
nsIMapi *pNsMapi = NULL;

Просмотреть файл

@ -110,7 +110,7 @@ interface nsIMapi : IUnknown
HRESULT FindNext( [in] unsigned long aSession, [in] ULONG ulUIParam, [in] LPTSTR lpszMessageType,
[in] LPTSTR lpszSeedMessageID, [in] ULONG flFlags, [in] ULONG ulReserved,
[in] [out] LPTSTR lpszMessageID ) ;
[in] [out] char lpszMessageID[64] ) ;
HRESULT ReadMail( [in] unsigned long lhSession, [in] ULONG ulUIParam, [in] LPTSTR lpszMessageID,
[in] ULONG flFlags, [in] ULONG ulReserved, [out] lpnsMapiMessage *lppMessage);

Просмотреть файл

@ -172,6 +172,22 @@ STDMETHODIMP CMapiImp::Login(unsigned long aUIArg, LOGIN_PW_TYPE aLogin, LOGIN_P
return hr;
}
}
else
{
// get default account
nsresult rv;
nsCOMPtr <nsIMsgAccountManager> accountManager =
do_GetService(NS_MSGACCOUNTMANAGER_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv,MAPI_E_LOGIN_FAILURE);
nsCOMPtr <nsIMsgAccount> account;
nsCOMPtr <nsIMsgIdentity> identity;
rv = accountManager->GetDefaultAccount(getter_AddRefs(account));
NS_ENSURE_SUCCESS(rv,MAPI_E_LOGIN_FAILURE);
account->GetDefaultIdentity(getter_AddRefs(identity));
NS_ENSURE_SUCCESS(rv,MAPI_E_LOGIN_FAILURE);
identity->GetKey(&id_key);
}
// finally register(create) the session.
PRUint32 nSession_Id;
@ -370,7 +386,7 @@ LONG CMapiImp::InitContext(unsigned long session, MsgMapiListContext **listConte
STDMETHODIMP CMapiImp::FindNext(unsigned long aSession, unsigned long ulUIParam, LPTSTR lpszMessageType,
LPTSTR lpszSeedMessageID, unsigned long flFlags, unsigned long ulReserved,
LPTSTR lpszMessageID)
unsigned char lpszMessageID[64])
{
//
@ -410,7 +426,7 @@ STDMETHODIMP CMapiImp::ReadMail(unsigned long aSession, unsigned long ulUIParam,
nsCAutoString keyString((char *) lpszMessageID);
nsMsgKey msgKey = keyString.ToInteger(&irv);
if (irv)
return E_FAIL;
return MAPI_E_INVALID_MESSAGE;
MsgMapiListContext *listContext;
LONG ret = InitContext(aSession, &listContext);
if (ret != SUCCESS_SUCCESS)
@ -427,12 +443,12 @@ STDMETHODIMP CMapiImp::DeleteMail(unsigned long aSession, unsigned long ulUIPara
nsCAutoString keyString((char *) lpszMessageID);
nsMsgKey msgKey = keyString.ToInteger(&irv);
if (irv)
return E_FAIL;
return SUCCESS_SUCCESS;
MsgMapiListContext *listContext;
LONG ret = InitContext(aSession, &listContext);
if (ret != SUCCESS_SUCCESS)
return ret;
return (listContext->DeleteMessage(msgKey)) ? SUCCESS_SUCCESS : E_FAIL;
return (listContext->DeleteMessage(msgKey)) ? SUCCESS_SUCCESS : MAPI_E_INVALID_MESSAGE;
}
STDMETHODIMP CMapiImp::SaveMail(unsigned long aSession, unsigned long ulUIParam, lpnsMapiMessage lppMessage,
@ -613,6 +629,8 @@ lpnsMapiMessage MsgMapiListContext::GetMessage (nsMsgKey key, unsigned long flFl
message->lpszNoteText = (PRUnichar *) ConvertBodyToMapiFormat (msgHdr);
}
if (! (flFlags & MAPI_PEEK))
m_db->MarkRead(key, PR_TRUE, nsnull);
}
return message;
}
@ -668,7 +686,7 @@ void MsgMapiListContext::ConvertRecipientsToMapiFormat (nsIMsgHeaderParser *pars
{
mapiRecips[i].lpszAddress = (PRUnichar *) CoTaskMemAlloc(strlen(walkAddresses) + 1);
if (mapiRecips[i].lpszAddress)
strcpy((char *) mapiRecips[i].lpszAddress, walkAddresses);\
strcpy((char *) mapiRecips[i].lpszAddress, walkAddresses);
}
walkAddresses += strlen (walkAddresses) + 1;
}

Просмотреть файл

@ -78,7 +78,7 @@ public :
STDMETHODIMP FindNext( unsigned long aSession, unsigned long ulUIParam, LPTSTR lpszMessageType,
LPTSTR lpszSeedMessageID, unsigned long flFlags, unsigned long ulReserved,
LPTSTR lpszMessageID );
unsigned char lpszMessageID[64] );
STDMETHODIMP ReadMail(unsigned long lhSession, unsigned long ulUIParam, LPTSTR lpszMessageID,
unsigned long flFlags, unsigned long ulReserved, lpnsMapiMessage *lppMessage);