Re: Getting Start/End time, etc. from IPM.Schedule.Meeting.Resp.Po



Hi Dmitry, and thanks again as always for your help.

So, if I understand you correctly, I can get at these named properties by
calling GetFields, and passing a string in the form
"{00062002-0000-0000-C000-000000000046}0x8223".

So, in order to get those values, I am looking at a couple of sample
messages with OutlookSpy. I notice, though, that there might be two
properties, both marked with the same string. For example, for the property
'IsRecurring', in one message I see both this:

{00062002-0000-0000-C000-000000000046}0x8223

and this:

{6ED8DA90-450B-101B-98DA-00AA003F1305}0x5

Is one preferable to the other, more likely to be there, more likely always
to have the same ID, etc.?

What I'd like to be able to do is identify them somehow by the string
"IsRecurring", or find a canonical list somewhere that tells me what these
GUID/ID pairs are, so I am not relying on GUIDs and IDs that I have yanked
from a few arbitrary messages.

Is there some documentation someplace that lists these name/identifier
mappings for these standard named properties?

Thanks so much.







"Dmitry Streblechenko" wrote:

That is to be expected - you must use GetIDsFromNames instead of hardcoding
the tags.
You will need to pass the appropriate GUID and id (integere in most cases)
to GetIDsFromNames and "or" the returned tag with teh appropriate type (e.g.
PT_LONG).
You can see GUIDs in ids in OutlookSpy - click IMessage, select the
property, see the GUID and id on tre rigth hand side in teh "Named property"
box.
See http://www.dimastr.com/redemption/utils.htm#named-props
If you are using RDO object, you can skip the GetIDsFromNames call and pass
the property name as a DASL formatted string instead of an integer -
http://www.dimastr.com/redemption/rdo/MAPIProp.htm#properties - Redemption
will GetIDsFromNames internally.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"malcolm" <malcolm@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:2739B185-1129-4FF3-9B8C-D849982A3F51@xxxxxxxxxxxxxxxx
Well, the plot has thickened. It appears that many of the properties I
want
to read: IsRecurring, Location, Required/OptionalAttendees, etc., are
custom
tags - and they don't even have a consistent tag (for example, in one
message
'IsRecurring' is 0x8028, while in another it's 0x81EB). In fact, some
messages have TWO named properties both called 'IsRecurring'.

So what I guess I need to do is look for the string (e.g. 'IsRecurring' )
that identifies the tag. I'm using Redemption, so I've tried getting all
the
tags with HrGetPropList, then iterating over the list and calling
GetNamesFromIDs for each property tag. That gives me an INamedProperty
interface, which exposes a GUID and an ID in the form of a variant. But
the
'IsRecurring', etc., strings I'm looking for are nowhere to be found; the
variant is yet another numerical identifier. Is there some lookup table
somewhere that maps these IDs onto the strings? Or am I barking up the
wrong
tree?

"malcolm" wrote:

Hi Dmitry,

I guess that's what I'll do! Thanks.

"malcolm" wrote:

Hi all,

I am replacing some old property-extraction code that used the Outlook
API
with new code that uses Redemption, and I am trying to get various
properties
from a MeetingResponsePositive .msg file.

In the old system, we would get a dispatch pointer from a loose .msg by
calling CreateItemFromTemplate(). The code then attaches a temporary
Outlook::_MailItem to the returned dispatch, and calls GetClass to find
the
classID. For a MeetingResponsePositive item, this returns, say,
olMeetingResponsePositive (that's 56). We would attach the dispatch to
an
Outlook::_AppointmentItem object, and were able to read the Appointment
properties via GetStart(), etc.

In the new code, we get the dispatch pointer from the .msg using
Redemption::IRDOSession::GetMessageFromMsgFile(). If we use
Redemption::IRDOAppointment to wrap the dispatch pointer, we can't call
the
GetStart(), etc. properties (MEMBER_NOT_FOUND).

I thought I would get the associated Appointment dispatch by calling
GetAssociatedAppointment() on the IRDO::MeetingItem object, but if I
call it
with (TRUE) this creates a meeting in Outlook's default calendar, which
I
don't want to do, and if I call it with (FALSE), I get nothing back at
all,
because the meeting isn't already in the calendar.

I suppose I can just read the properties I want directly from the MAPI
table, but s there anything else I can do?

Thanks very much,
Malcolm



.



Relevant Pages

  • Re: Getting Start/End time, etc. from IPM.Schedule.Meeting.Resp.Po
    ... I was talking about calling GetFields with the string I mentioned. ... Outlook and Outlook Spy both seem to agree that the token ... to GetIDsFromNames and "or" the returned tag with teh appropriate type ...
    (microsoft.public.win32.programmer.messaging)
  • Re: Linked List & Dynamic Memory Allocation
    ... for every call to malloc but when I do that inside the for loop I end ... You attach a string to the ... you can find your lunch is to start at the tag labeled "lunch" and follow it to the box on ... Suppose I have 1000 cubic feet of "memory". ...
    (microsoft.public.vc.mfc)
  • Re: Convert *.wma File Names to Text
    ... the value of the Tag property isn't used ... title As String * 30 ... Dim FileName As String ... Dim mp3info As MP3TagInfo ...
    (microsoft.public.vb.general.discussion)
  • Include Schema Name When Creating XML
    ... I have a Java program that creates an XML string and I wanted to pass ... public void startDocument ... This method will create the open tag for a new element. ...
    (comp.lang.java.programmer)
  • Re: Invalid Procedure Call
    ... This is done with about 9 SQL strings total, ... My problem is occuring in the SQL string that takes the raw ... Fields: tag, pointid, date ... This SQL statement is put into a string and executed in VBA. ...
    (microsoft.public.access.queries)

Loading