Monotone-Parent: 905276f295d6f28a6946297f6a7af9ad60f71842

Monotone-Revision: 4ecb95aab8f686702ff3eb186a97b1bf1f3b5531

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2012-06-29T19:09:02
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2012-06-29 19:09:02 +00:00
parent 95a443d89a
commit a783d81528
4 changed files with 22 additions and 12 deletions

View File

@ -1,5 +1,9 @@
2012-06-29 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OpenChange/MAPIStoreSOGo.m
(sogo_message_attachment_open_embedded_message): added the "mode"
parameter.
* OpenChange/SOGoMAPIDBObject.m: new class module that replaced
SOGoMAPIFSMessage.

View File

@ -37,6 +37,7 @@
- (uint32_t) AID;
- (int) openEmbeddedMessage: (MAPIStoreEmbeddedMessage **) messagePtr
inMode: (enum OpenEmbeddedMessage_OpenModeFlags) mode
withMID: (uint64_t *) mid
withMAPIStoreMsg: (struct mapistore_message **) mapistoreMsgPtr
inMemCtx: (TALLOC_CTX *) memCtx;

View File

@ -91,6 +91,7 @@
}
- (int) openEmbeddedMessage: (MAPIStoreEmbeddedMessage **) messagePtr
inMode: (enum OpenEmbeddedMessage_OpenModeFlags) mode
withMID: (uint64_t *) mid
withMAPIStoreMsg: (struct mapistore_message **) mapistoreMsgPtr
inMemCtx: (TALLOC_CTX *) memCtx
@ -103,19 +104,23 @@
mapping = [self mapping];
attMessage = [self openEmbeddedMessage];
if (attMessage)
if (mode == MAPI_CREATE)
attMessage = [self createEmbeddedMessage];
else
{
*mid = [mapping idFromURL: [attMessage url]];
*messagePtr = attMessage;
*mapistoreMsgPtr = mapistoreMsg;
// if (attMessage)
// [mapping registerURL: [attMessage url]
// withID: *mid];
attMessage = [self openEmbeddedMessage];
if (attMessage)
{
*mid = [mapping idFromURL: [attMessage url]];
*messagePtr = attMessage;
*mapistoreMsgPtr = mapistoreMsg;
}
}
// else if (flags == MAPI_CREATE)
// {
// attMessage = [self createEmbeddedMessage];
// if (attMessage)
// [mapping registerURL: [attMessage url]
// withID: *mid];
// }
return (attMessage ? MAPISTORE_SUCCESS : MAPISTORE_ERROR);

View File

@ -963,9 +963,8 @@ sogo_message_submit (void *message_object, enum SubmitFlags flags)
static enum mapistore_error
sogo_message_attachment_open_embedded_message
(void *attachment_object,
TALLOC_CTX *mem_ctx, void **message_object,
uint64_t *midP,
(void *attachment_object, enum OpenEmbeddedMessage_OpenModeFlags mode,
TALLOC_CTX *mem_ctx, void **message_object, uint64_t *midP,
struct mapistore_message **msg)
{
struct MAPIStoreTallocWrapper *wrapper;
@ -983,6 +982,7 @@ sogo_message_attachment_open_embedded_message
GSRegisterCurrentThread ();
pool = [NSAutoreleasePool new];
rc = [attachment openEmbeddedMessage: &message
inMode: mode
withMID: midP
withMAPIStoreMsg: msg
inMemCtx: mem_ctx];