Application.ActiveInspector().CurrentItem Returns Wrong(Old) Value

D

Deepak N

I have outlook plugin in which OnLoad of Ribbon on contact form(custom form),I access Application.ActiveInspector().CurrentItem as ContactItem.

When I open a contact
*First time Application.ActiveInspector().CurrentItem gives correct value.
*Then I change First Name of this contact in Exchange server through code.
*Then i synchronize Outlook with exchange server and open the form, it displays old value of the contact. If try to edit and save it says contact being edited by other user or program

It is not Sync issue SINCE It displays the new value in the Contact's Business card view!!..
Submitted using http://www.outlookforums.com
 
K

Ken Slovak - [MVP - Outlook]

It sounds like you haven't released all object references to that original
object. Make sure you do that. Using managed code you might also have to
call Marshal.ReleaseComObject() on the object as well as GC.Collect().

In addition, make sure you aren't creating implicit object variables that
you cannot release. That happens when you use multiple dot operators such as
this:

explorer.Selection.Count

That creates an implicit Selection object that you can't release. The better
way is to do something like this:

Outlook.Selection selection = explorer.Selection;
int count = selection.Count;
 
D

Deepak N

Thanks for reply.
Is it necessary release a COM Object, if a COM object is passed as parameter to a method.

Ex:
PrintName(ContactItemClass contact)
{
Console.WriteLine(contact.FirstName);
//Is it necessary to call Marshal.ReleaseComObject(contact) here
}.
Submitted using http://www.outlookforums.com
 
K

Ken Slovak - [MVP - Outlook]

That depends on whether or not you intend to use any references to that item
again. If you call Marshal.ReleaseComObject() on it that will release the
item's RCW and unless you re-instantiate another object on that item any
further references to it will return an exception.

At some point the object reference should be released, but when depends on
any further need for it.
 

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