diff --git a/ChangeLog b/ChangeLog index 2a6d0e33e..ba5b7812e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,7 @@ (-setPropertiesWithMID:type:inRow:) (-deleteMessageWithMID:withFlags:): return MAPISTORE_ERROR for those unimplemented methods. + (-getMessageProperties:inRow:atURL:): new subclassable method. 2010-10-14 Francis Lachapelle diff --git a/OpenChange/MAPIStoreContext.h b/OpenChange/MAPIStoreContext.h index 371867bb9..e1c9377d3 100644 --- a/OpenChange/MAPIStoreContext.h +++ b/OpenChange/MAPIStoreContext.h @@ -156,6 +156,10 @@ extern uint64_t *MAPILongLongValue (void *, uint64_t); - (int) openMessage: (struct mapistore_message *) msg atURL: (NSString *) childURL; +- (int) getMessageProperties: (struct SPropTagArray *) sPropTagArray + inRow: (struct SRow *) aRow + atURL: (NSString *) childURL; + @end #endif /* MAPISTORECONTEXT_H */ diff --git a/OpenChange/MAPIStoreContext.m b/OpenChange/MAPIStoreContext.m index fb12692d3..7e30bc793 100644 --- a/OpenChange/MAPIStoreContext.m +++ b/OpenChange/MAPIStoreContext.m @@ -945,21 +945,43 @@ static MAPIStoreMapping *mapping = nil; return MAPISTORE_ERROR; } -- (int) getProperties: (struct SPropTagArray *) SPropTagArray +- (int) getProperties: (struct SPropTagArray *) sPropTagArray inRow: (struct SRow *) aRow withMID: (uint64_t) fmid type: (uint8_t) tableType { - [self logWithFormat: @"METHOD '%s' (%d) -- tableType: %d, mid: %lld", - __FUNCTION__, __LINE__, tableType, fmid]; + NSString *childURL; + int rc; - switch (tableType) + childURL = [mapping urlFromID: fmid]; + if (childURL) { - case MAPISTORE_FOLDER: - break; - case MAPISTORE_MESSAGE: - break; + switch (tableType) + { + case MAPISTORE_MESSAGE: + rc = [self getMessageProperties: sPropTagArray inRow: aRow + atURL: childURL]; + break; + case MAPISTORE_FOLDER: + default: + rc = MAPISTORE_ERROR; + break; + } } + else + { + [self errorWithFormat: @"No url found for FMID: %lld", fmid]; + rc = MAPISTORE_ERR_NOT_FOUND; + } + + return rc; +} + +- (int) getMessageProperties: (struct SPropTagArray *) sPropTagArray + inRow: (struct SRow *) aRow + atURL: (NSString *) childURL +{ + [self logWithFormat: @"METHOD '%s' (%d)", __FUNCTION__, __LINE__]; return MAPISTORE_ERROR; }