[evolution-mapi] Bug #620166 - Prefer named constants over property codes
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-mapi] Bug #620166 - Prefer named constants over property codes
- Date: Wed, 27 Jul 2011 11:16:40 +0000 (UTC)
commit 20b31ec599081e641bfbdfd26d59bf7203b98668
Author: Milan Crha <mcrha redhat com>
Date: Wed Jul 27 13:15:48 2011 +0200
Bug #620166 - Prefer named constants over property codes
src/addressbook/e-book-backend-mapi-contacts.c | 10 +-
src/calendar/e-cal-backend-mapi.c | 310 ++++++------------------
src/libexchangemapi/exchange-mapi-cal-utils.c | 54 ++--
src/libexchangemapi/exchange-mapi-connection.c | 9 +-
src/libexchangemapi/exchange-mapi-mail-utils.c | 2 +-
src/libexchangemapi/exchange-mapi-utils.c | 65 ++++-
src/libexchangemapi/exchange-mapi-utils.h | 39 ++--
7 files changed, 171 insertions(+), 318 deletions(-)
---
diff --git a/src/addressbook/e-book-backend-mapi-contacts.c b/src/addressbook/e-book-backend-mapi-contacts.c
index 31a5942..18e1624 100644
--- a/src/addressbook/e-book-backend-mapi-contacts.c
+++ b/src/addressbook/e-book-backend-mapi-contacts.c
@@ -260,7 +260,7 @@ mapi_book_write_props (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC_CTX *
} G_STMT_END
#define set_str_named_value(named_id, val) G_STMT_START { \
- if (!exchange_mapi_utils_add_spropvalue_named_id (conn, fid, mem_ctx, values, n_values, named_id, val ? val : "")) \
+ if (!exchange_mapi_utils_add_spropvalue_namedid (conn, fid, mem_ctx, values, n_values, named_id, val ? val : "")) \
return FALSE; \
} G_STMT_END
@@ -331,7 +331,7 @@ mapi_book_write_props (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC_CTX *
set_str_value (PR_MESSAGE_CLASS, IPM_DISTLIST);
u32 = 0xFFFFFFFF;
- if (!exchange_mapi_utils_add_spropvalue_named_id (conn, fid, mem_ctx, values, n_values, PidLidFileUnderId, &u32))
+ if (!exchange_mapi_utils_add_spropvalue_namedid (conn, fid, mem_ctx, values, n_values, PidLidFileUnderId, &u32))
return FALSE;
set_str_named_con_value (PidLidFileUnder, E_CONTACT_FILE_AS);
set_str_named_con_value (PidLidDistributionListName, E_CONTACT_FILE_AS);
@@ -397,15 +397,15 @@ mapi_book_write_props (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC_CTX *
g_list_foreach (local, (GFunc)e_vcard_attribute_free, NULL);
g_list_free (local);
- if (!exchange_mapi_utils_add_spropvalue_named_id (conn, fid, mem_ctx, values, n_values,
+ if (!exchange_mapi_utils_add_spropvalue_namedid (conn, fid, mem_ctx, values, n_values,
PidLidDistributionListOneOffMembers, oneoff_members))
return FALSE;
- if (!exchange_mapi_utils_add_spropvalue_named_id (conn, fid, mem_ctx, values, n_values,
+ if (!exchange_mapi_utils_add_spropvalue_namedid (conn, fid, mem_ctx, values, n_values,
PidLidDistributionListMembers, members))
return FALSE;
- if (!exchange_mapi_utils_add_spropvalue_named_id (conn, fid, mem_ctx, values, n_values,
+ if (!exchange_mapi_utils_add_spropvalue_namedid (conn, fid, mem_ctx, values, n_values,
PidLidDistributionListChecksum, &crc32))
return FALSE;
diff --git a/src/calendar/e-cal-backend-mapi.c b/src/calendar/e-cal-backend-mapi.c
index ab31271..d1bc379 100644
--- a/src/calendar/e-cal-backend-mapi.c
+++ b/src/calendar/e-cal-backend-mapi.c
@@ -416,11 +416,7 @@ mapi_cal_get_changes_cb (FetchItemsCallbackData *item_data, gpointer data)
kind = e_cal_backend_get_kind (E_CAL_BACKEND (cbmapi));
cache_dir = e_cal_backend_get_cache_dir (E_CAL_BACKEND (cbmapi));
-// exchange_mapi_debug_property_dump (array);
-
- recurring = NULL;
- /* FIXME: Evolution does not support recurring tasks */
- recurring = (const bool *)find_mapi_SPropValue_data(array, PROP_TAG(PT_BOOLEAN, 0x8126));
+ recurring = exchange_mapi_util_find_array_namedid (array, item_data->conn, item_data->fid, PidLidTaskFRecurring);
if (recurring && *recurring) {
g_warning ("Encountered a recurring task.");
exchange_mapi_util_free_stream_list (&streams);
@@ -573,98 +569,6 @@ handle_deleted_items_cb (FetchItemsCallbackData *item_data, gpointer data)
}
static gboolean
-mapi_cal_get_known_ids (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC_CTX *mem_ctx, struct SPropTagArray *props, gpointer data)
-{
- /* this is a list of all known calendar MAPI tag IDs;
- if you add new add it here too, otherwise it may not be fetched */
- static uint32_t known_cal_mapi_ids[] = {
- PR_7BIT_DISPLAY_NAME_UNICODE,
- PR_ADDRTYPE_UNICODE,
- PR_ATTACH_DATA_BIN,
- PR_ATTACH_FILENAME_UNICODE,
- PR_ATTACH_LONG_FILENAME_UNICODE,
- PR_ATTACH_METHOD,
- PR_BODY,
- PR_BODY_UNICODE,
- PR_CONVERSATION_TOPIC_UNICODE,
- PR_CREATION_TIME,
- PR_DISPLAY_NAME_UNICODE,
- PR_DISPLAY_TYPE,
- PR_END_DATE,
- PR_FID,
- PR_GIVEN_NAME_UNICODE,
- PR_HTML,
- PR_ICON_INDEX,
- PR_IMPORTANCE,
- PR_LAST_MODIFICATION_TIME,
- PR_MESSAGE_CLASS,
- PR_MESSAGE_FLAGS,
- PR_MID,
- PR_MSG_EDITOR_FORMAT,
- PR_NORMALIZED_SUBJECT_UNICODE,
- PR_OBJECT_TYPE,
- PR_OWNER_APPT_ID,
- PR_PRIORITY,
- PR_PROCESSED,
- PR_RCVD_REPRESENTING_ADDRTYPE_UNICODE,
- PR_RCVD_REPRESENTING_EMAIL_ADDRESS_UNICODE,
- PR_RCVD_REPRESENTING_NAME_UNICODE,
- PR_RECIPIENT_DISPLAY_NAME_UNICODE,
- PR_RECIPIENT_FLAGS,
- PR_RECIPIENT_TRACKSTATUS,
- PR_RECIPIENT_TYPE,
- PR_RENDERING_POSITION,
- PR_RESPONSE_REQUESTED,
- PR_RTF_IN_SYNC,
- PR_SENDER_ADDRTYPE_UNICODE,
- PR_SENDER_EMAIL_ADDRESS_UNICODE,
- PR_SENDER_NAME_UNICODE,
- PR_SEND_INTERNET_ENCODING,
- PR_SENSITIVITY,
- PR_SENT_REPRESENTING_ADDRTYPE_UNICODE,
- PR_SENT_REPRESENTING_EMAIL_ADDRESS_UNICODE,
- PR_SENT_REPRESENTING_NAME_UNICODE,
- PR_SMTP_ADDRESS_UNICODE,
- PR_START_DATE,
- PR_SUBJECT_UNICODE
- };
-
- /* do not make this array static, the function modifies it on run */
- ResolveNamedIDsData known_nids[] = {
- { PidLidGlobalObjectId, 0 },
- { PidLidCleanGlobalObjectId, 0 },
- { PidLidAppointmentRecur, 0 },
- { PidLidAppointmentTimeZoneDefinitionStartDisplay, 0 },
- { PidLidAppointmentTimeZoneDefinitionEndDisplay, 0 },
- { PidLidTaskFRecurring, 0 },
- { PidLidAppointmentSubType, 0 },
- { PidLidRecurring, 0 },
- { PidLidReminderSet, 0 },
- { PidLidPercentComplete, 0 },
- { PidLidTaskStatus, 0 },
- { PidLidAppointmentSequence, 0 },
- { PidLidBusyStatus, 0 },
- { PidLidLocation, 0 },
- { PidLidTaskStartDate, 0 },
- { PidLidTaskDueDate, 0 },
- { PidLidTaskDateCompleted, 0 },
- { PidLidAppointmentStartWhole, 0 },
- { PidLidAppointmentEndWhole, 0 },
- { PidLidReminderTime, 0 },
- { PidLidReminderSignalTime, 0 },
- { PidLidExceptionReplaceTime, 0 },
- { PidNameKeywords, 0 }
- };
-
- g_return_val_if_fail (props != NULL, FALSE);
-
- if (!exchange_mapi_utils_add_named_ids_to_props_array (conn, fid, mem_ctx, props, known_nids, G_N_ELEMENTS (known_nids)))
- return FALSE;
-
- return exchange_mapi_utils_add_props_to_props_array (mem_ctx, props, known_cal_mapi_ids, G_N_ELEMENTS (known_cal_mapi_ids));
-}
-
-static gboolean
mapi_cal_get_idlist (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC_CTX *mem_ctx, struct SPropTagArray *props, gpointer data)
{
static const uint32_t cal_IDList[] = {
@@ -745,62 +649,30 @@ get_deltas (gpointer handle)
gmtime_r (¤t_time, &tm);
strftime (t_str, 26, "%Y-%m-%dT%H:%M:%SZ", &tm);
-// e_file_cache_freeze_changes (E_FILE_CACHE (priv->cache));
- /* FIXME: GetProps does not seem to work for tasks :-( */
- if (kind == ICAL_VTODO_COMPONENT) {
- if (g_strcmp0 (e_source_get_property (source, "public"), "yes") == 0) {
- options |= MAPI_OPTIONS_USE_PFSTORE;
- is_public = TRUE;
- use_restriction = FALSE;
- }
-
- if (!exchange_mapi_connection_fetch_items (priv->conn, priv->fid, use_restriction ? &res : NULL, NULL,
- is_public ? NULL : mapi_cal_get_known_ids, NULL,
- mapi_cal_get_changes_cb, cbmapi,
- options, &mapi_error)) {
- if (mapi_error) {
- gchar *msg = g_strdup_printf (_("Failed to fetch changes from a server: %s"), mapi_error->message);
- e_cal_backend_notify_error (E_CAL_BACKEND (cbmapi), msg);
- g_free (msg);
- g_error_free (mapi_error);
- } else {
- e_cal_backend_notify_error (E_CAL_BACKEND (cbmapi), _("Failed to fetch changes from a server"));
- }
+ if (g_strcmp0 (e_source_get_property (source, "public"), "yes") == 0) {
+ options |= MAPI_OPTIONS_USE_PFSTORE;
+ is_public = TRUE;
+ use_restriction = FALSE;
+ }
-// e_file_cache_thaw_changes (E_FILE_CACHE (priv->cache));
- g_mutex_unlock (priv->updating_mutex);
- if (mem_ctx)
- talloc_free (mem_ctx);
- return FALSE;
- }
- } else {
- if (g_strcmp0 (e_source_get_property (source, "public"), "yes") == 0) {
- options |= MAPI_OPTIONS_USE_PFSTORE;
- is_public = TRUE;
- use_restriction = FALSE;
+ if (!exchange_mapi_connection_fetch_items (priv->conn, priv->fid, use_restriction ? &res : NULL, NULL,
+ is_public ? NULL : exchange_mapi_cal_utils_get_props_cb, GINT_TO_POINTER (kind),
+ mapi_cal_get_changes_cb, cbmapi,
+ options, &mapi_error)) {
+ if (mapi_error) {
+ gchar *msg = g_strdup_printf (_("Failed to fetch changes from a server: %s"), mapi_error->message);
+ e_cal_backend_notify_error (E_CAL_BACKEND (cbmapi), msg);
+ g_free (msg);
+ g_error_free (mapi_error);
+ } else {
+ e_cal_backend_notify_error (E_CAL_BACKEND (cbmapi), _("Failed to fetch changes from a server"));
}
- if (!exchange_mapi_connection_fetch_items (priv->conn, priv->fid, use_restriction ? &res : NULL, NULL,
- is_public ? NULL : exchange_mapi_cal_utils_get_props_cb, GINT_TO_POINTER (kind),
- mapi_cal_get_changes_cb, cbmapi,
- options, &mapi_error)) {
- if (mapi_error) {
- gchar *msg = g_strdup_printf (_("Failed to fetch changes from a server: %s"), mapi_error->message);
- e_cal_backend_notify_error (E_CAL_BACKEND (cbmapi), msg);
- g_free (msg);
- g_error_free (mapi_error);
- } else {
- e_cal_backend_notify_error (E_CAL_BACKEND (cbmapi), _("Failed to fetch changes from a server"));
- }
-
- //e_file_cache_thaw_changes (E_FILE_CACHE (priv->cache));
- g_mutex_unlock (priv->updating_mutex);
- if (mem_ctx)
- talloc_free (mem_ctx);
- return FALSE;
- }
+ g_mutex_unlock (priv->updating_mutex);
+ if (mem_ctx)
+ talloc_free (mem_ctx);
+ return FALSE;
}
-// e_file_cache_thaw_changes (E_FILE_CACHE (priv->cache));
notify_view_completed (cbmapi);
@@ -899,53 +771,27 @@ get_deltas (gpointer handle)
g_slist_foreach (did.unknown_mids, (GFunc) g_free, NULL);
g_slist_free (did.unknown_mids);
- if (kind == ICAL_VTODO_COMPONENT) {
- if (g_strcmp0 (e_source_get_property (source, "public"), "yes") == 0) {
- options |= MAPI_OPTIONS_USE_PFSTORE;
- is_public = TRUE;
- }
-
- if (!exchange_mapi_connection_fetch_items (priv->conn, priv->fid, &res, NULL,
- is_public ? NULL : mapi_cal_get_known_ids, NULL,
- mapi_cal_get_changes_cb, cbmapi,
- options, &mapi_error)) {
-
- if (mapi_error) {
- gchar *msg = g_strdup_printf (_("Failed to fetch changes from a server: %s"), mapi_error->message);
- e_cal_backend_notify_error (E_CAL_BACKEND (cbmapi), msg);
- g_free (msg);
- g_error_free (mapi_error);
- } else {
- e_cal_backend_notify_error (E_CAL_BACKEND (cbmapi), _("Failed to fetch changes from a server"));
- }
+ if (g_strcmp0 (e_source_get_property (source, "public"), "yes") == 0) {
+ options |= MAPI_OPTIONS_USE_PFSTORE;
+ is_public = TRUE;
+ }
- g_mutex_unlock (priv->updating_mutex);
- g_free (or_res);
- return FALSE;
- }
- } else {
- if (g_strcmp0 (e_source_get_property (source, "public"), "yes") == 0) {
- options |= MAPI_OPTIONS_USE_PFSTORE;
- is_public = TRUE;
+ if (!exchange_mapi_connection_fetch_items (priv->conn, priv->fid, &res, NULL,
+ is_public ? NULL : exchange_mapi_cal_utils_get_props_cb, GINT_TO_POINTER (kind),
+ mapi_cal_get_changes_cb, cbmapi,
+ options, &mapi_error)) {
+ if (mapi_error) {
+ gchar *msg = g_strdup_printf (_("Failed to fetch changes from a server: %s"), mapi_error->message);
+ e_cal_backend_notify_error (E_CAL_BACKEND (cbmapi), msg);
+ g_free (msg);
+ g_error_free (mapi_error);
+ } else {
+ e_cal_backend_notify_error (E_CAL_BACKEND (cbmapi), _("Failed to fetch changes from a server"));
}
- if (!exchange_mapi_connection_fetch_items (priv->conn, priv->fid, &res, NULL,
- is_public ? NULL : exchange_mapi_cal_utils_get_props_cb, GINT_TO_POINTER (kind),
- mapi_cal_get_changes_cb, cbmapi,
- options, &mapi_error)) {
- if (mapi_error) {
- gchar *msg = g_strdup_printf (_("Failed to fetch changes from a server: %s"), mapi_error->message);
- e_cal_backend_notify_error (E_CAL_BACKEND (cbmapi), msg);
- g_free (msg);
- g_error_free (mapi_error);
- } else {
- e_cal_backend_notify_error (E_CAL_BACKEND (cbmapi), _("Failed to fetch changes from a server"));
- }
-
- g_free (or_res);
- g_mutex_unlock (priv->updating_mutex);
- return FALSE;
- }
+ g_free (or_res);
+ g_mutex_unlock (priv->updating_mutex);
+ return FALSE;
}
g_free (or_res);
}
@@ -1185,7 +1031,7 @@ mapi_cal_cache_create_cb (FetchItemsCallbackData *item_data, gpointer data)
switch (kind) {
case ICAL_VTODO_COMPONENT:
/* FIXME: Evolution does not support recurring tasks */
- recurring = (const bool *)find_mapi_SPropValue_data(properties, PROP_TAG(PT_BOOLEAN, 0x8126));
+ recurring = exchange_mapi_util_find_array_namedid (properties, item_data->conn, item_data->fid, PidLidTaskFRecurring);
if (recurring && *recurring) {
g_warning ("Encountered a recurring task.");
exchange_mapi_util_free_stream_list (&streams);
@@ -1268,51 +1114,26 @@ populate_cache (ECalBackendMAPI *cbmapi, GError **perror)
gmtime_r (¤t_time, &tm);
strftime (t_str, 26, "%Y-%m-%dT%H:%M:%SZ", &tm);
-// e_file_cache_freeze_changes (E_FILE_CACHE (priv->cache));
- /* FIXME: GetProps does not seem to work for tasks :-( */
- if (kind == ICAL_VTODO_COMPONENT) {
- if (g_strcmp0 (e_source_get_property (source, "public"), "yes") == 0) {
- options |= MAPI_OPTIONS_USE_PFSTORE;
- is_public = TRUE;
- }
-
- if (!exchange_mapi_connection_fetch_items (priv->conn, priv->fid, NULL, NULL,
- is_public ? NULL : mapi_cal_get_known_ids, NULL,
- mapi_cal_cache_create_cb, cbmapi,
- options, &mapi_error)) {
- e_cal_backend_store_thaw_changes (priv->store);
- g_mutex_lock (priv->mutex);
- priv->populating_cache = FALSE;
- g_mutex_unlock (priv->mutex);
- mapi_error_to_edc_error (perror, mapi_error, OtherError, _("Failed to fetch items from a server"));
- if (mapi_error)
- g_error_free (mapi_error);
-
- return FALSE;
- }
- } else {
- if (g_strcmp0 (e_source_get_property (source, "public"), "yes") == 0) {
- options |= MAPI_OPTIONS_USE_PFSTORE;
- is_public = TRUE;
- }
+ if (g_strcmp0 (e_source_get_property (source, "public"), "yes") == 0) {
+ options |= MAPI_OPTIONS_USE_PFSTORE;
+ is_public = TRUE;
+ }
- if (!exchange_mapi_connection_fetch_items (priv->conn, priv->fid, NULL, NULL,
- is_public ? NULL : exchange_mapi_cal_utils_get_props_cb, GINT_TO_POINTER (kind),
- mapi_cal_cache_create_cb, cbmapi,
- options, &mapi_error)) {
- e_cal_backend_store_thaw_changes (priv->store);
- g_mutex_lock (priv->mutex);
- priv->populating_cache = FALSE;
- g_mutex_unlock (priv->mutex);
+ if (!exchange_mapi_connection_fetch_items (priv->conn, priv->fid, NULL, NULL,
+ is_public ? NULL : exchange_mapi_cal_utils_get_props_cb, GINT_TO_POINTER (kind),
+ mapi_cal_cache_create_cb, cbmapi,
+ options, &mapi_error)) {
+ e_cal_backend_store_thaw_changes (priv->store);
+ g_mutex_lock (priv->mutex);
+ priv->populating_cache = FALSE;
+ g_mutex_unlock (priv->mutex);
- mapi_error_to_edc_error (perror, mapi_error, OtherError, _("Failed to fetch items from a server"));
- if (mapi_error)
- g_error_free (mapi_error);
+ mapi_error_to_edc_error (perror, mapi_error, OtherError, _("Failed to fetch items from a server"));
+ if (mapi_error)
+ g_error_free (mapi_error);
- return FALSE;
- }
+ return FALSE;
}
-// e_file_cache_thaw_changes (E_FILE_CACHE (priv->cache));
notify_view_completed (cbmapi);
@@ -1550,9 +1371,6 @@ mapi_cal_get_required_props (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC
{
static uint32_t req_props_list[] = {
PR_OWNER_APPT_ID,
- PROP_TAG(PT_LONG, 0x8201),
- PROP_TAG(PT_BINARY, 0x0023),
- PROP_TAG(PT_BINARY, 0x0003),
PR_SENT_REPRESENTING_NAME_UNICODE,
PR_SENT_REPRESENTING_ADDRTYPE_UNICODE,
PR_SENT_REPRESENTING_EMAIL_ADDRESS_UNICODE,
@@ -1561,8 +1379,18 @@ mapi_cal_get_required_props (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC
PR_SENDER_EMAIL_ADDRESS_UNICODE
};
+ /* do not make this array static, the function modifies it on run */
+ ResolveNamedIDsData nids[] = {
+ { PidLidGlobalObjectId, 0 },
+ { PidLidCleanGlobalObjectId, 0 },
+ { PidLidAppointmentSequence, 0 }
+ };
+
g_return_val_if_fail (props != NULL, FALSE);
+ if (!exchange_mapi_utils_add_named_ids_to_props_array (conn, fid, mem_ctx, props, nids, G_N_ELEMENTS (nids)))
+ return FALSE;
+
return exchange_mapi_utils_add_props_to_props_array (mem_ctx, props, req_props_list, G_N_ELEMENTS (req_props_list));
}
@@ -1576,11 +1404,11 @@ capture_req_props (FetchItemsCallbackData *item_data, gpointer data)
ui32 = (const uint32_t *)find_mapi_SPropValue_data(properties, PR_OWNER_APPT_ID);
if (ui32)
cbdata->appt_id = *ui32;
- ui32 = (const uint32_t *)find_mapi_SPropValue_data(properties, PROP_TAG(PT_LONG, 0x8201));
+ ui32 = exchange_mapi_util_find_array_namedid (properties, item_data->conn, item_data->fid, PidLidAppointmentSequence);
if (ui32)
cbdata->appt_seq = *ui32;
- cbdata->cleanglobalid = exchange_mapi_util_copy_binary_r (find_mapi_SPropValue_data(properties, PROP_TAG(PT_BINARY, 0x0023)));
- cbdata->globalid = exchange_mapi_util_copy_binary_r (find_mapi_SPropValue_data(properties, PROP_TAG(PT_BINARY, 0x0003)));
+ cbdata->cleanglobalid = (gpointer) exchange_mapi_util_find_array_namedid (properties, item_data->conn, item_data->fid, PidLidCleanGlobalObjectId);
+ cbdata->globalid = (gpointer) exchange_mapi_util_find_array_namedid (properties, item_data->conn, item_data->fid, PidLidGlobalObjectId);
cbdata->username = g_strdup (exchange_mapi_util_find_array_propval (properties, PR_SENT_REPRESENTING_NAME_UNICODE));
cbdata->useridtype = g_strdup (exchange_mapi_util_find_array_propval (properties, PR_SENT_REPRESENTING_ADDRTYPE_UNICODE));
cbdata->userid = g_strdup (exchange_mapi_util_find_array_propval (properties, PR_SENT_REPRESENTING_EMAIL_ADDRESS_UNICODE));
diff --git a/src/libexchangemapi/exchange-mapi-cal-utils.c b/src/libexchangemapi/exchange-mapi-cal-utils.c
index f7003be..d5fbd30 100644
--- a/src/libexchangemapi/exchange-mapi-cal-utils.c
+++ b/src/libexchangemapi/exchange-mapi-cal-utils.c
@@ -751,7 +751,7 @@ exchange_mapi_cal_util_mapi_props_to_comp (ExchangeMapiConnection *conn, mapi_id
ExchangeMAPIStream *stream;
/* GlobalObjectId */
- stream = exchange_mapi_util_find_stream (streams, PidLidGlobalObjectId);
+ stream = exchange_mapi_util_find_stream_namedid (streams, conn, fid, PidLidGlobalObjectId);
if (stream) {
gchar *value = globalid_to_string (stream->value);
prop = icalproperty_new_x (value);
@@ -781,7 +781,7 @@ exchange_mapi_cal_util_mapi_props_to_comp (ExchangeMapiConnection *conn, mapi_id
}
/* AppointmentSequence */
- ui32 = (const uint32_t *)find_mapi_SPropValue_data(properties, PidLidAppointmentSequence);
+ ui32 = exchange_mapi_util_find_array_namedid (properties, conn, fid, PidLidAppointmentSequence);
if (ui32) {
gchar *value = g_strdup_printf ("%d", *ui32);
prop = icalproperty_new_x (value);
@@ -790,21 +790,21 @@ exchange_mapi_cal_util_mapi_props_to_comp (ExchangeMapiConnection *conn, mapi_id
g_free (value);
}
- location = (const gchar *)exchange_mapi_util_find_array_propval(properties, PidLidLocation);
+ location = exchange_mapi_util_find_array_namedid (properties, conn, fid, PidLidLocation);
if (location && *location)
icalcomponent_set_location (ical_comp, location);
- b = (const bool *)find_mapi_SPropValue_data(properties, PidLidAppointmentSubType);
+ b = exchange_mapi_util_find_array_namedid (properties, conn, fid, PidLidAppointmentSubType);;
all_day = b && *b;
- stream = exchange_mapi_util_find_stream (streams, PidLidAppointmentTimeZoneDefinitionStartDisplay);
+ stream = exchange_mapi_util_find_stream_namedid (streams, conn, fid, PidLidAppointmentTimeZoneDefinitionStartDisplay);
if (stream) {
gchar *buf = exchange_mapi_cal_util_bin_to_mapi_tz (stream->value);
dtstart_tz_location = exchange_mapi_cal_tz_util_get_ical_equivalent (buf);
g_free (buf);
}
- if (get_mapi_SPropValue_array_date_timeval (&t, properties, PidLidAppointmentStartWhole) == MAPI_E_SUCCESS) {
+ if (exchange_mapi_util_find_array_datetime_namedid (&t, properties, conn, fid, PidLidAppointmentStartWhole) == MAPI_E_SUCCESS) {
icaltimezone *zone = dtstart_tz_location ? icaltimezone_get_builtin_timezone (dtstart_tz_location) : (icaltimezone *)default_zone;
prop = icalproperty_new_dtstart (icaltime_from_timet_with_zone (t.tv_sec, all_day, zone));
if (!all_day && zone && icaltimezone_get_tzid (zone)) {
@@ -814,14 +814,14 @@ exchange_mapi_cal_util_mapi_props_to_comp (ExchangeMapiConnection *conn, mapi_id
icalcomponent_add_property (ical_comp, prop);
}
- stream = exchange_mapi_util_find_stream (streams, PidLidAppointmentTimeZoneDefinitionEndDisplay);
+ stream = exchange_mapi_util_find_stream_namedid (streams, conn, fid, PidLidAppointmentTimeZoneDefinitionEndDisplay);
if (stream) {
gchar *buf = exchange_mapi_cal_util_bin_to_mapi_tz (stream->value);
dtend_tz_location = exchange_mapi_cal_tz_util_get_ical_equivalent (buf);
g_free (buf);
}
- if (get_mapi_SPropValue_array_date_timeval (&t, properties, PidLidAppointmentEndWhole) == MAPI_E_SUCCESS) {
+ if (exchange_mapi_util_find_array_datetime_namedid (&t, properties, conn, fid, PidLidAppointmentEndWhole) == MAPI_E_SUCCESS) {
icaltimezone *zone = dtend_tz_location ? icaltimezone_get_builtin_timezone (dtend_tz_location) : (icaltimezone *)default_zone;
prop = icalproperty_new_dtend (icaltime_from_timet_with_zone (t.tv_sec, all_day, zone));
if (!all_day && zone && icaltimezone_get_tzid (zone)) {
@@ -831,7 +831,7 @@ exchange_mapi_cal_util_mapi_props_to_comp (ExchangeMapiConnection *conn, mapi_id
icalcomponent_add_property (ical_comp, prop);
}
- ui32 = (const uint32_t *)find_mapi_SPropValue_data(properties, PidLidBusyStatus);
+ ui32 = exchange_mapi_util_find_array_namedid (properties, conn, fid, PidLidBusyStatus);
if (ui32) {
prop = icalproperty_new_transp (get_transp_from_prop (*ui32));
icalcomponent_add_property (ical_comp, prop);
@@ -899,7 +899,7 @@ exchange_mapi_cal_util_mapi_props_to_comp (ExchangeMapiConnection *conn, mapi_id
param = icalparameter_new_cn (name);
icalproperty_add_parameter (prop, param);
- ui32 = exchange_mapi_util_find_array_propval (properties, PidLidResponseStatus);
+ ui32 = exchange_mapi_util_find_array_namedid (properties, conn, fid, PidLidResponseStatus);
param = icalparameter_new_partstat (get_partstat_from_trackstatus (ui32 ? *ui32 : olResponseNone));
icalproperty_add_parameter (prop, param);
@@ -945,9 +945,9 @@ exchange_mapi_cal_util_mapi_props_to_comp (ExchangeMapiConnection *conn, mapi_id
}
}
- b = (const bool *)find_mapi_SPropValue_data(properties, PidLidRecurring);
+ b = exchange_mapi_util_find_array_namedid (properties, conn, fid, PidLidRecurring);
if (b && *b) {
- stream = exchange_mapi_util_find_stream (streams, PidLidAppointmentRecur);
+ stream = exchange_mapi_util_find_stream_namedid (streams, conn, fid, PidLidAppointmentRecur);
if (stream) {
icaltimezone *recur_zone;
const gchar *recur_tz_location;
@@ -961,12 +961,12 @@ exchange_mapi_cal_util_mapi_props_to_comp (ExchangeMapiConnection *conn, mapi_id
}
}
- b = (const bool *)find_mapi_SPropValue_data(properties, PidLidReminderSet);
+ b = exchange_mapi_util_find_array_namedid (properties, conn, fid, PidLidReminderSet);
if (b && *b) {
struct timeval start, displaytime;
- if ((get_mapi_SPropValue_array_date_timeval (&start, properties, PidLidReminderTime) == MAPI_E_SUCCESS)
- && (get_mapi_SPropValue_array_date_timeval (&displaytime, properties, PidLidReminderSignalTime) == MAPI_E_SUCCESS)) {
+ if ((exchange_mapi_util_find_array_datetime_namedid (&start, properties, conn, fid, PidLidReminderTime) == MAPI_E_SUCCESS)
+ && (exchange_mapi_util_find_array_datetime_namedid (&displaytime, properties, conn, fid, PidLidReminderSignalTime) == MAPI_E_SUCCESS)) {
ECalComponentAlarm *e_alarm = e_cal_component_alarm_new ();
ECalComponentAlarmTrigger trigger;
@@ -987,38 +987,38 @@ exchange_mapi_cal_util_mapi_props_to_comp (ExchangeMapiConnection *conn, mapi_id
const uint64_t *status = NULL;
/* NOTE: Exchange tasks are DATE values, not DATE-TIME values, but maybe someday, we could expect Exchange to support it;) */
- if (get_mapi_SPropValue_array_date_timeval (&t, properties, PidLidTaskStartDate) == MAPI_E_SUCCESS)
+ if (exchange_mapi_util_find_array_datetime_namedid (&t, properties, conn, fid, PidLidTaskStartDate) == MAPI_E_SUCCESS)
icalcomponent_set_dtstart (ical_comp, icaltime_from_timet_with_zone (t.tv_sec, 1, default_zone));
- if (get_mapi_SPropValue_array_date_timeval (&t, properties, PidLidTaskDueDate) == MAPI_E_SUCCESS)
+ if (exchange_mapi_util_find_array_datetime_namedid (&t, properties, conn, fid, PidLidTaskDueDate) == MAPI_E_SUCCESS)
icalcomponent_set_due (ical_comp, icaltime_from_timet_with_zone (t.tv_sec, 1, default_zone));
- status = (const uint64_t *)find_mapi_SPropValue_data(properties, PidLidTaskStatus);
+ status = exchange_mapi_util_find_array_namedid (properties, conn, fid, PidLidTaskStatus);
if (status) {
icalcomponent_set_status (ical_comp, get_taskstatus_from_prop(*status));
if (*status == olTaskComplete
- && get_mapi_SPropValue_array_date_timeval (&t, properties, PidLidTaskDateCompleted) == MAPI_E_SUCCESS) {
+ && exchange_mapi_util_find_array_datetime_namedid (&t, properties, conn, fid, PidLidTaskDateCompleted) == MAPI_E_SUCCESS) {
prop = icalproperty_new_completed (icaltime_from_timet_with_zone (t.tv_sec, 1, default_zone));
icalcomponent_add_property (ical_comp, prop);
}
}
- complete = (const double *)find_mapi_SPropValue_data(properties, PidLidPercentComplete);
+ complete = exchange_mapi_util_find_array_namedid (properties, conn, fid, PidLidPercentComplete);
if (complete) {
prop = icalproperty_new_percentcomplete ((gint)(*complete * 100 + 1e-9));
icalcomponent_add_property (ical_comp, prop);
}
- b = (const bool *)find_mapi_SPropValue_data(properties, PidLidTaskFRecurring);
+ b = exchange_mapi_util_find_array_namedid (properties, conn, fid, PidLidTaskFRecurring);
if (b && *b) {
/* FIXME: Evolution does not support recurring tasks */
g_warning ("Encountered a recurring task.");
}
- b = (const bool *)find_mapi_SPropValue_data(properties, PidLidReminderSet);
+ b = exchange_mapi_util_find_array_namedid (properties, conn, fid, PidLidReminderSet);
if (b && *b) {
struct timeval abs;
- if (get_mapi_SPropValue_array_date_timeval (&abs, properties, PidLidReminderTime) == MAPI_E_SUCCESS) {
+ if (exchange_mapi_util_find_array_datetime_namedid (&abs, properties, conn, fid, PidLidReminderTime) == MAPI_E_SUCCESS) {
ECalComponentAlarm *e_alarm = e_cal_component_alarm_new ();
ECalComponentAlarmTrigger trigger;
@@ -1264,9 +1264,9 @@ task_build_name_id (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC_CTX *mem
{ PidLidTaskOwner, 0 },
{ PidLidTaskAssigner, 0 },
{ PidLidTaskFRecurring, 0 },
- { PidLidTaskRole, 0 },
{ PidLidTaskOwnership, 0 },
- { PidLidTaskAcceptanceState, 0 }
+ { PidLidTaskAcceptanceState, 0 },
+ { PidLidTaskRole, 0 }
};
if (!props)
@@ -1369,7 +1369,7 @@ exchange_mapi_cal_utils_write_props_cb (ExchangeMapiConnection *conn, mapi_id_t
} G_STMT_END
#define set_named_value(named_id, val) G_STMT_START { \
- if (!exchange_mapi_utils_add_spropvalue_named_id (conn, fid, mem_ctx, values, n_values, named_id, val)) \
+ if (!exchange_mapi_utils_add_spropvalue_namedid (conn, fid, mem_ctx, values, n_values, named_id, val)) \
return FALSE; \
} G_STMT_END
@@ -1387,7 +1387,7 @@ exchange_mapi_cal_utils_write_props_cb (ExchangeMapiConnection *conn, mapi_id_t
\
exchange_mapi_util_time_t_to_filetime (dtval, &filetime); \
\
- if (!exchange_mapi_utils_add_spropvalue_named_id (conn, fid, mem_ctx, values, n_values, named_id, &filetime)) \
+ if (!exchange_mapi_utils_add_spropvalue_namedid (conn, fid, mem_ctx, values, n_values, named_id, &filetime)) \
return FALSE; \
} G_STMT_END
diff --git a/src/libexchangemapi/exchange-mapi-connection.c b/src/libexchangemapi/exchange-mapi-connection.c
index 124ea7a..5dc46a7 100644
--- a/src/libexchangemapi/exchange-mapi-connection.c
+++ b/src/libexchangemapi/exchange-mapi-connection.c
@@ -1252,8 +1252,6 @@ exchange_mapi_util_get_attachments (ExchangeMapiConnection *conn, mapi_id_t fid,
goto loop_cleanup;
}
- mapi_SPropValue_array_named (&obj_attach, &properties);
-
az = 0;
attachment = g_new0 (ExchangeMAPIAttachment, 1);
attachment->cValues = properties.cValues;
@@ -1770,7 +1768,7 @@ exchange_mapi_connection_fetch_items (ExchangeMapiConnection *conn, mapi_id_t
}
if (propsTagArray && propsTagArray->cValues) {
- struct SPropValue *lpProps;
+ struct SPropValue *lpProps = NULL;
struct SPropTagArray *tags;
uint32_t prop_count = 0, k, ll;
/* we need to make a local copy of the tag array
@@ -1784,7 +1782,6 @@ exchange_mapi_connection_fetch_items (ExchangeMapiConnection *conn, mapi_id_t
if (ms != MAPI_E_SUCCESS)
make_mapi_error (perror, "GetProps", ms);
- MAPIFreeBuffer (tags);
properties_array.lpProps = talloc_zero_array (mem_ctx, struct mapi_SPropValue,
prop_count + 1);
properties_array.cValues = prop_count;
@@ -1831,8 +1828,6 @@ exchange_mapi_connection_fetch_items (ExchangeMapiConnection *conn, mapi_id_t
FetchItemsCallbackData *item_data;
if ((options & MAPI_OPTIONS_DONT_OPEN_MESSAGE) == 0) {
- mapi_SPropValue_array_named (&obj_message, &properties_array);
-
if ((options & MAPI_OPTIONS_FETCH_GENERIC_STREAMS) != 0) {
uint32_t z;
const uint32_t *cpid = exchange_mapi_util_find_array_propval (&properties_array, PR_INTERNET_CPID);
@@ -1980,8 +1975,6 @@ exchange_mapi_connection_fetch_object_props (ExchangeMapiConnection *conn, mapi_
}
if (ms == MAPI_E_SUCCESS) {
- mapi_SPropValue_array_named (obj_message, &properties_array);
-
if ((options & MAPI_OPTIONS_FETCH_GENERIC_STREAMS)) {
uint32_t z;
diff --git a/src/libexchangemapi/exchange-mapi-mail-utils.c b/src/libexchangemapi/exchange-mapi-mail-utils.c
index f3de312..5ff3da1 100644
--- a/src/libexchangemapi/exchange-mapi-mail-utils.c
+++ b/src/libexchangemapi/exchange-mapi-mail-utils.c
@@ -1621,7 +1621,7 @@ mapi_mail_utils_create_item_build_props (ExchangeMapiConnection *conn, mapi_id_t
}
if (item->pid_name_content_type) {
- if (!exchange_mapi_utils_add_spropvalue_named_id (conn, fid, mem_ctx, values, n_values, PidNameContentType, item->pid_name_content_type))
+ if (!exchange_mapi_utils_add_spropvalue_namedid (conn, fid, mem_ctx, values, n_values, PidNameContentType, item->pid_name_content_type))
return FALSE;
}
diff --git a/src/libexchangemapi/exchange-mapi-utils.c b/src/libexchangemapi/exchange-mapi-utils.c
index b6c650c..e712c5f 100644
--- a/src/libexchangemapi/exchange-mapi-utils.c
+++ b/src/libexchangemapi/exchange-mapi-utils.c
@@ -255,6 +255,35 @@ exchange_mapi_util_find_array_namedid (struct mapi_SPropValue_array *properties,
return res;
}
+enum MAPISTATUS
+exchange_mapi_util_find_array_datetime_propval (struct timeval *tv, struct mapi_SPropValue_array *properties, uint32_t proptag)
+{
+ g_return_val_if_fail (tv != NULL, MAPI_E_INVALID_PARAMETER);
+ g_return_val_if_fail (properties != NULL, MAPI_E_INVALID_PARAMETER);
+
+ return get_mapi_SPropValue_array_date_timeval (tv, properties, proptag);
+}
+
+enum MAPISTATUS
+exchange_mapi_util_find_array_datetime_namedid (struct timeval *tv, struct mapi_SPropValue_array *properties, ExchangeMapiConnection *conn, mapi_id_t fid, uint32_t namedid)
+{
+ enum MAPISTATUS res = MAPI_E_NOT_FOUND;
+ uint32_t proptag;
+
+ g_return_val_if_fail (tv != NULL, MAPI_E_INVALID_PARAMETER);
+ g_return_val_if_fail (properties != NULL, MAPI_E_INVALID_PARAMETER);
+ g_return_val_if_fail (conn != NULL, MAPI_E_INVALID_PARAMETER);
+
+ proptag = exchange_mapi_connection_resolve_named_prop (conn, fid, namedid, NULL);
+ if (proptag != MAPI_E_RESERVED)
+ res = exchange_mapi_util_find_array_datetime_propval (tv, properties, proptag);
+
+ if (res == MAPI_E_NOT_FOUND)
+ res = exchange_mapi_util_find_array_datetime_propval (tv, properties, namedid);
+
+ return res;
+}
+
ExchangeMAPIStream *
exchange_mapi_util_find_stream (GSList *stream_list, uint32_t proptag)
{
@@ -269,6 +298,27 @@ exchange_mapi_util_find_stream (GSList *stream_list, uint32_t proptag)
return NULL;
}
+ExchangeMAPIStream *
+exchange_mapi_util_find_stream_namedid (GSList *stream_list, ExchangeMapiConnection *conn, mapi_id_t fid, uint32_t namedid)
+{
+ uint32_t proptag;
+ gconstpointer res = NULL;
+
+ g_return_val_if_fail (conn != NULL, NULL);
+
+ if (!stream_list)
+ return NULL;
+
+ proptag = exchange_mapi_connection_resolve_named_prop (conn, fid, namedid, NULL);
+ if (proptag != MAPI_E_RESERVED)
+ res = exchange_mapi_util_find_stream (stream_list, proptag);
+
+ if (!res)
+ res = exchange_mapi_util_find_stream (stream_list, namedid);
+
+ return (ExchangeMAPIStream *) res;
+}
+
void
exchange_mapi_util_free_attachment_list (GSList **attach_list)
{
@@ -1058,25 +1108,14 @@ exchange_mapi_utils_add_spropvalue (TALLOC_CTX *mem_ctx, struct SPropValue **val
g_return_val_if_fail (values_array != NULL, FALSE);
g_return_val_if_fail (n_values != NULL, FALSE);
- if ((prop_tag & 0xFFFF) == PT_DOUBLE) {
- uint64_t zero = 0;
-
- /* add an empty fake value and rewrite it */
- *values_array = add_SPropValue (mem_ctx, *values_array, n_values, PROP_TAG(PT_LONG, 0x0001), &zero);
-
- ((*values_array)[(*n_values) - 1]).ulPropTag = prop_tag;
- ((*values_array)[(*n_values) - 1]).dwAlignPad = 0;
- memcpy (&((*values_array)[(*n_values) - 1]).value.dbl, prop_value, 8);
- } else {
- *values_array = add_SPropValue (mem_ctx, *values_array, n_values, prop_tag, prop_value);
- }
+ *values_array = add_SPropValue (mem_ctx, *values_array, n_values, prop_tag, prop_value);
return TRUE;
}
/* similar as exchange_mapi_utils_add_spropvalue, just here is not used prop_tag, but named id */
gboolean
-exchange_mapi_utils_add_spropvalue_named_id (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC_CTX *mem_ctx, struct SPropValue **values_array, uint32_t *n_values, uint32_t named_id, gconstpointer prop_value)
+exchange_mapi_utils_add_spropvalue_namedid (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC_CTX *mem_ctx, struct SPropValue **values_array, uint32_t *n_values, uint32_t named_id, gconstpointer prop_value)
{
uint32_t prop_tag;
diff --git a/src/libexchangemapi/exchange-mapi-utils.h b/src/libexchangemapi/exchange-mapi-utils.h
index 703ca99..51c32fc 100644
--- a/src/libexchangemapi/exchange-mapi-utils.h
+++ b/src/libexchangemapi/exchange-mapi-utils.h
@@ -26,15 +26,11 @@
#include "exchange-mapi-connection.h"
-gchar *
-exchange_mapi_util_mapi_id_to_string (mapi_id_t id);
-gboolean
-exchange_mapi_util_mapi_id_from_string (const gchar *str, mapi_id_t *id);
+gchar * exchange_mapi_util_mapi_id_to_string (mapi_id_t id);
+gboolean exchange_mapi_util_mapi_id_from_string (const gchar *str, mapi_id_t *id);
-gchar *
-exchange_mapi_util_mapi_ids_to_uid (mapi_id_t fid, mapi_id_t mid);
-gboolean
-exchange_mapi_util_mapi_ids_from_uid (const gchar *str, mapi_id_t *fid, mapi_id_t *mid);
+gchar * exchange_mapi_util_mapi_ids_to_uid (mapi_id_t fid, mapi_id_t mid);
+gboolean exchange_mapi_util_mapi_ids_from_uid (const gchar *str, mapi_id_t *fid, mapi_id_t *mid);
gconstpointer exchange_mapi_util_find_SPropVal_array_propval (struct SPropValue *values, uint32_t proptag);
gconstpointer exchange_mapi_util_find_SPropVal_array_namedid (struct SPropValue *values, ExchangeMapiConnection *conn, mapi_id_t fid, uint32_t namedid);
@@ -43,27 +39,24 @@ gconstpointer exchange_mapi_util_find_row_namedid (struct SRow *aRow, ExchangeMa
gconstpointer exchange_mapi_util_find_array_propval (struct mapi_SPropValue_array *properties, uint32_t proptag);
gconstpointer exchange_mapi_util_find_array_namedid (struct mapi_SPropValue_array *properties, ExchangeMapiConnection *conn, mapi_id_t fid, uint32_t namedid);
-ExchangeMAPIStream *
-exchange_mapi_util_find_stream (GSList *stream_list, uint32_t proptag);
+enum MAPISTATUS exchange_mapi_util_find_array_datetime_propval (struct timeval *tv, struct mapi_SPropValue_array *properties, uint32_t proptag);
+enum MAPISTATUS exchange_mapi_util_find_array_datetime_namedid (struct timeval *tv, struct mapi_SPropValue_array *properties, ExchangeMapiConnection *conn, mapi_id_t fid, uint32_t namedid);
-void
-exchange_mapi_util_free_attachment_list (GSList **attach_list);
-void
-exchange_mapi_util_free_recipient_list (GSList **recip_list);
-void
-exchange_mapi_util_free_stream_list (GSList **stream_list);
+ExchangeMAPIStream *exchange_mapi_util_find_stream (GSList *stream_list, uint32_t proptag);
+ExchangeMAPIStream *exchange_mapi_util_find_stream_namedid (GSList *stream_list, ExchangeMapiConnection *conn, mapi_id_t fid, uint32_t namedid);
-void
-exchange_mapi_debug_property_dump (struct mapi_SPropValue_array *properties);
+void exchange_mapi_util_free_attachment_list (GSList **attach_list);
+void exchange_mapi_util_free_recipient_list (GSList **recip_list);
+void exchange_mapi_util_free_stream_list (GSList **stream_list);
+
+void exchange_mapi_debug_property_dump (struct mapi_SPropValue_array *properties);
void exchange_mapi_util_recip_entryid_generate_smtp (TALLOC_CTX *mem_ctx, struct Binary_r *entryid, const gchar *display_name, const gchar *email);
void exchange_mapi_util_recip_entryid_generate_ex (TALLOC_CTX *mem_ctx, struct Binary_r *entryid, const gchar *exchange_dn);
gboolean exchange_mapi_util_recip_entryid_decode (ExchangeMapiConnection *conn, const struct Binary_r *entyrid, gchar **display_name, gchar **email);
-gchar *
-exchange_lf_to_crlf (const gchar *in);
-gchar *
-exchange_crlf_to_lf (const gchar *in);
+gchar *exchange_lf_to_crlf (const gchar *in);
+gchar *exchange_crlf_to_lf (const gchar *in);
gchar *exchange_mapi_util_profile_name (const gchar *username, const gchar *domain, const gchar *hostname, gboolean migrate);
@@ -71,7 +64,7 @@ gboolean exchange_mapi_utils_add_props_to_props_array (TALLOC_CTX *mem_ctx, stru
gboolean exchange_mapi_utils_add_named_ids_to_props_array (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC_CTX *mem_ctx, struct SPropTagArray *props, ResolveNamedIDsData *named_ids_list, guint named_ids_n_elems);
gboolean exchange_mapi_utils_add_spropvalue (TALLOC_CTX *mem_ctx, struct SPropValue **values_array, uint32_t *n_values, uint32_t prop_tag, gconstpointer prop_value);
-gboolean exchange_mapi_utils_add_spropvalue_named_id (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC_CTX *mem_ctx, struct SPropValue **values_array, uint32_t *n_values, uint32_t named_id, gconstpointer prop_value);
+gboolean exchange_mapi_utils_add_spropvalue_namedid (ExchangeMapiConnection *conn, mapi_id_t fid, TALLOC_CTX *mem_ctx, struct SPropValue **values_array, uint32_t *n_values, uint32_t named_id, gconstpointer prop_value);
uint32_t exchange_mapi_utils_push_crc32 (uint32_t crc32, uint8_t *bytes, uint32_t n_bytes);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]