What is ConversationTopic?

  • Thread starter Vladimir Chtchetkine
  • Start date
V

Vladimir Chtchetkine

The explanation of this property in the doc say: "Returns a String
representing the topic of the conversation thread of the item." What exactly
this means? It seems very attractive to me because I would like to be able
to support a conversation around an item without changing the item content.
In other words I would like to provide users with ability to "stick notes"
to the item and easily navigate to them and through them without even
touching content of the item itself. So, is ConversationTopic (as name
suggests) has anything to do with that? And event if it is not so, what
would be the best way to associate some sort of a discussion around but
outside the item?



TIA



Vladimir
 
D

Dmitry Streblechenko

ConversationTopic is simply the subject without any prefixes (RE, FW, etc).
It is a read-only property and is computed by the store provider from the
value of the subject.

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
 
V

Vladimir Chtchetkine

So, it just sounds like something big ;-)
Can you advice me on how should I approach the problem I just described?
What I exactly want is to provide users with an ability to initiate and
support a conversation around a subject described in an Outlook item without
sending that item back'n'forth. Something like a set (possibly hierarchical)
of "sticky notes" attached to the item that everybody (who is participating)
can see and add. Sorry if the description is too vague. I'm just meditating
on the idea but an advice would be highly appreciated.

TIA,

Vladimir
 
D

Dmitry Streblechenko

ConversationIndex. The first 22 bytes will be the same for all messages in a
thread. Note that it won't work too well for the messages received from
outside of your Exchange server. Outlook ignores the "in-reply-to" headers.

From MSDN:

Tracking Conversations
Conversation tracking is collecting responses to a message. Clients should
set two properties that aid in tracking conversations:

PR_CONVERSATION_TOPIC

PR_CONVERSATION_INDEX

PR_CONVERSATION_TOPIC is the normalized subject of the message, the subject
without the prefix strings. Set this property to the value of the message's
PR_NORMALIZED_SUBJECT property.

PR_CONVERSATION_INDEX indicates the position of the message within a
particular conversation. It is a client's reponsibility to set
PR_CONVERSATION_INDEX for each outgoing message, whether it is a new
message, a forwarded message, or a reply. Clients can set this property
manually or call ScCreateConversationIndex, a utility function provided by
MAPI.

ScCreateConversationIndex generates the value of a conversation index for
any outgoing message. ScCreateConversationIndex implements the index as a
header block that is 22 bytes in length, followed by zero or more child
blocks each 5 bytes in length.

The header block is composed of 22 bytes, divided into three parts:

a.. One reserved byte. Its value is 1.
b.. Five bytes for the current system time converted to the FILETIME
structure format.
c.. Sixteen bytes holding a GUID, or globally unique identifier.
d.. Each child block is composed of 5 bytes, divided as follows:
e.. One bit containing a code representing the difference between the
current time and the time stored in the header block. This bit will be 0 if
the difference is less than .02 second and greater than two years and 1 if
the difference is less than one second and greater than 56 years.
f.. Thirty one bits containing the difference between the current time and
the time in the header block expressed in FILETIME units.This part of the
child block is produced using one of two strategies, depending on the value
of the first bit. If this bit is zero, ScCreateConversationIndex discards
the high 15 bits and the low 18 bits. If this bit is one, the function
discards the high 10 bits and the low 23 bits.
g.. Four bits containing a random number generated by calling the Win32
function GetTickCount.
h.. Four bits containing a sequence count that is taken from part of the
random number.
If you choose to set the conversation indexes of messages manually, consider
the following suggestions:

1.. Keep differences in the respondents' time zones transparent; use UTC
times rather than local time.
2.. Indent each conversation group by the same amount.
3.. Sort responses to the same message date.
4.. Separate threads started at different times that happen to share the
same topic.
5.. To implement a categorized sort so that messages are grouped by topic,
sort by PR_CONVERSATION_TOPIC first and then by PR_CONVERSATION_INDEX. To
present the results of the sort, set the PR_DEPTH property to 0 for messages
with a conversation index that is 22 bytes in length. Then, for every 5-byte
increment in the length, increment the value of the PR_DEPTH property by
one.
The PR_ORIGINAL group of properties can also be used for conversation
tracking. Set these properties to link reply or forwarded messages to the
original message. All of the PR_ORIGINAL properties are optional. If you do
not explicitly set, for example, PR_ORIGINAL_AUTHOR_ENTRYID, the message
store provider can use the default value, or the value of the
PR_SENDER_ENTRYID property. Likewise, if you do not set
PR_ORIGINAL_AUTHOR_NAME or PR_ORIGINAL_SUBMIT_TIME, these properties can
default to the values of the PR_SENDER_NAME and PR_CLIENT_SUBMIT_TIME
properties, respectively.


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top