Using PropertyAccessor breaks Live Meeting functionality

Traitée Using PropertyAccessor breaks Live Meeting functionality

  • mercredi 11 avril 2012 20:18
     
     

    I have an add-in that does some processing based on the Calendar Folder Items ItemChange event.  In the event I look for a particular custom property that I've added to the items that I need to act on.  This all works fine except for when the Live Meeting conference scheduler add-in from Microsoft is installed.

    When a user is in an appointment or meeting, they have the ability to click on the Live Meeting conference button.  It appears that this closes the appointment, and reopens a new meeting request and inserts in some Live Meeting information (defaults the Location and some text in the message body.)  The problem is, if you touch ANY properties of the item, it breaks the Live Meeting functionality.  The ONLY property I can touch is the MessageClass.  You would think this would be enough to know not to touch anything since the Live Meeting appointment uses a custom MessageClass, but it appears it's not fully loaded all the time.  So, at certain points, it only returns the normal "IPM.Appointment".

    So, it basically looks like a normal appointment at certain points in the processing.  And if you look at ANYTHING else (built in properties or anything using the PropertyAccessor) it seems to prevent the Live Meeting add-in from inserting the message body text.  Obviously it's an issue with the Live Meeting plugin, but I have no control over that, so I'm looking for suggestions on working around the issue.

    Thanks!

Toutes les réponses

  • mercredi 11 avril 2012 20:27
     
     
    please provide exact steps to reproduce the issue
  • mercredi 11 avril 2012 20:36
     
      A du code

    It's pretty simple, capture the Calendar Folder ItemChange event, then in the event do ANYTHING with the items properties (including just "reading" them).

    And this will break the process in Live Meeting that auto populates the message body.

    (Edit: here's a complete application)

    namespace Live_Meeting_Test_2010
    {
        public partial class ThisAddIn
        {
            public Outlook.Folder CalendarFolder;
            public Outlook.Items CalendarItems;

            private void ThisAddIn_Startup(object sender, System.EventArgs e)
            {
                CalendarFolder = (Outlook.Folder)this.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
                CalendarItems = CalendarFolder.Items;
                CalendarItems.ItemChange += new Outlook.ItemsEvents_ItemChangeEventHandler(CalendarItems_ItemChange);
            }

            void CalendarItems_ItemChange(object Item)
            {
                Outlook.AppointmentItem currentApt = (Outlook.AppointmentItem)Item;

                string tmpLocation = currentApt.Location;
            } // ... Shutdown and auto generated code here... } }



  • jeudi 12 avril 2012 08:47
     
     

    I cannot reproduce issue with your code. Here is what i did:

    1. create add-in using your code

    2. create appointment (normal one) with subject and location and message body, press save and close

    3. open up appointment from point above and click Online meeting

    4. your code fires up few times on item change event but everything is fine, online meeting is not corrupted

    what other steps are needed to reproduce issue?

  • jeudi 12 avril 2012 13:30
     
     

    Try these steps with and without the test add-in installed.

    1) Create a new meeting request - no need to fill in any fields or even save

    2) Click the Live Meeting button on the meeting request

    3) See what information is filled into the meeting request.

    Without the test add-in, after you press the Live Meeting button you should see the document close and reopen.  The "Location" field will change to something like "Live Meeting" and the meeting message body will be filled with information about how to connect to the Live Meeting.

    With the test add-in enabled, you will not get the message body filled in.  My assumption is that the Live Meeting add-in triggers the item change (maybe because of the updating of the Location field) and then as soon as you access any property, the Live Meeting processing halts.

  • jeudi 12 avril 2012 14:24
     
     

    followed your steps, works ok here. With add-in enabled:

    1. ordinary meeting request

    2. after online meeting was clicked:

  • jeudi 12 avril 2012 14:28
     
     

    Are you using Lync server?  My testing is using the (old) Live Meeting with OCS 2007 R2

    Thanks.

  • jeudi 12 avril 2012 14:44
     
     
    yes, i'm using Lync server 2010, but i do not think it has anything to do with server, more like with add-in version, my is 4.0.7577.4051
  • jeudi 12 avril 2012 14:48
     
     

    Right, Live Meeting uses a different add-in with OCS 2007 R2

  • jeudi 12 avril 2012 15:42
     
     

    I installed the Lync 2010 client and used the version bypass hack and have recreated what you are seeing.  The processing is totally different with the new Lync.

    This still doesn't help me since I have to have it working with the old Live Meeting Add-In.  Any other suggestions are welcome.

    Thanks.

  • jeudi 12 avril 2012 17:42
     
     Traitée A du code

    Problem solved, the object was not being released.  Added:

    System.Runtime.InteropServices.Marshal.ReleaseComObject(currentApt);


    • Marqué comme réponse Dan Slacker jeudi 12 avril 2012 17:42
    •