зеркало из https://github.com/mozilla/gecko-dev.git
cleanup some of the mapi error returns, attempt to fix idl for findnext, sr=mscott 108275
This commit is contained in:
Родитель
e0c1daff6f
Коммит
913d69fe8b
|
@ -315,7 +315,7 @@ ULONG FAR PASCAL MAPISendDocuments(ULONG ulUIParam, LPTSTR lpszDelimChar, LPTSTR
|
||||||
|
|
||||||
ULONG FAR PASCAL MAPIFindNext(LHANDLE lhSession, ULONG ulUIParam, LPTSTR lpszMessageType,
|
ULONG FAR PASCAL MAPIFindNext(LHANDLE lhSession, ULONG ulUIParam, LPTSTR lpszMessageType,
|
||||||
LPTSTR lpszSeedMessageID, FLAGS flFlags, ULONG ulReserved,
|
LPTSTR lpszSeedMessageID, FLAGS flFlags, ULONG ulReserved,
|
||||||
LPTSTR lpszMessageID)
|
unsigned char lpszMessageID[64])
|
||||||
{
|
{
|
||||||
nsIMapi *pNsMapi = NULL;
|
nsIMapi *pNsMapi = NULL;
|
||||||
|
|
||||||
|
|
|
@ -110,7 +110,7 @@ interface nsIMapi : IUnknown
|
||||||
|
|
||||||
HRESULT FindNext( [in] unsigned long aSession, [in] ULONG ulUIParam, [in] LPTSTR lpszMessageType,
|
HRESULT FindNext( [in] unsigned long aSession, [in] ULONG ulUIParam, [in] LPTSTR lpszMessageType,
|
||||||
[in] LPTSTR lpszSeedMessageID, [in] ULONG flFlags, [in] ULONG ulReserved,
|
[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,
|
HRESULT ReadMail( [in] unsigned long lhSession, [in] ULONG ulUIParam, [in] LPTSTR lpszMessageID,
|
||||||
[in] ULONG flFlags, [in] ULONG ulReserved, [out] lpnsMapiMessage *lppMessage);
|
[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;
|
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.
|
// finally register(create) the session.
|
||||||
PRUint32 nSession_Id;
|
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,
|
STDMETHODIMP CMapiImp::FindNext(unsigned long aSession, unsigned long ulUIParam, LPTSTR lpszMessageType,
|
||||||
LPTSTR lpszSeedMessageID, unsigned long flFlags, unsigned long ulReserved,
|
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);
|
nsCAutoString keyString((char *) lpszMessageID);
|
||||||
nsMsgKey msgKey = keyString.ToInteger(&irv);
|
nsMsgKey msgKey = keyString.ToInteger(&irv);
|
||||||
if (irv)
|
if (irv)
|
||||||
return E_FAIL;
|
return MAPI_E_INVALID_MESSAGE;
|
||||||
MsgMapiListContext *listContext;
|
MsgMapiListContext *listContext;
|
||||||
LONG ret = InitContext(aSession, &listContext);
|
LONG ret = InitContext(aSession, &listContext);
|
||||||
if (ret != SUCCESS_SUCCESS)
|
if (ret != SUCCESS_SUCCESS)
|
||||||
|
@ -427,12 +443,12 @@ STDMETHODIMP CMapiImp::DeleteMail(unsigned long aSession, unsigned long ulUIPara
|
||||||
nsCAutoString keyString((char *) lpszMessageID);
|
nsCAutoString keyString((char *) lpszMessageID);
|
||||||
nsMsgKey msgKey = keyString.ToInteger(&irv);
|
nsMsgKey msgKey = keyString.ToInteger(&irv);
|
||||||
if (irv)
|
if (irv)
|
||||||
return E_FAIL;
|
return SUCCESS_SUCCESS;
|
||||||
MsgMapiListContext *listContext;
|
MsgMapiListContext *listContext;
|
||||||
LONG ret = InitContext(aSession, &listContext);
|
LONG ret = InitContext(aSession, &listContext);
|
||||||
if (ret != SUCCESS_SUCCESS)
|
if (ret != SUCCESS_SUCCESS)
|
||||||
return ret;
|
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,
|
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);
|
message->lpszNoteText = (PRUnichar *) ConvertBodyToMapiFormat (msgHdr);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if (! (flFlags & MAPI_PEEK))
|
||||||
|
m_db->MarkRead(key, PR_TRUE, nsnull);
|
||||||
}
|
}
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
@ -668,7 +686,7 @@ void MsgMapiListContext::ConvertRecipientsToMapiFormat (nsIMsgHeaderParser *pars
|
||||||
{
|
{
|
||||||
mapiRecips[i].lpszAddress = (PRUnichar *) CoTaskMemAlloc(strlen(walkAddresses) + 1);
|
mapiRecips[i].lpszAddress = (PRUnichar *) CoTaskMemAlloc(strlen(walkAddresses) + 1);
|
||||||
if (mapiRecips[i].lpszAddress)
|
if (mapiRecips[i].lpszAddress)
|
||||||
strcpy((char *) mapiRecips[i].lpszAddress, walkAddresses);\
|
strcpy((char *) mapiRecips[i].lpszAddress, walkAddresses);
|
||||||
}
|
}
|
||||||
walkAddresses += strlen (walkAddresses) + 1;
|
walkAddresses += strlen (walkAddresses) + 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@ public :
|
||||||
|
|
||||||
STDMETHODIMP FindNext( unsigned long aSession, unsigned long ulUIParam, LPTSTR lpszMessageType,
|
STDMETHODIMP FindNext( unsigned long aSession, unsigned long ulUIParam, LPTSTR lpszMessageType,
|
||||||
LPTSTR lpszSeedMessageID, unsigned long flFlags, unsigned long ulReserved,
|
LPTSTR lpszSeedMessageID, unsigned long flFlags, unsigned long ulReserved,
|
||||||
LPTSTR lpszMessageID );
|
unsigned char lpszMessageID[64] );
|
||||||
|
|
||||||
STDMETHODIMP ReadMail(unsigned long lhSession, unsigned long ulUIParam, LPTSTR lpszMessageID,
|
STDMETHODIMP ReadMail(unsigned long lhSession, unsigned long ulUIParam, LPTSTR lpszMessageID,
|
||||||
unsigned long flFlags, unsigned long ulReserved, lpnsMapiMessage *lppMessage);
|
unsigned long flFlags, unsigned long ulReserved, lpnsMapiMessage *lppMessage);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче