I am developing Outlook VSTO and using Items.ItemAdd event to track and process sent items. I know that it is unreliable, so I recheck items later by scanning sent folder and selected items.
The problem is that SentTime in ItemAdd handler and later in SelectionChange event differs a little (a minute and few seconds). Time in SelectionChange is smaller than in ItemAdd.
I found this old post, but without solution:
http://forums.msexchange.org/SentTime_differences_(PR_CLIENT_SUBMIT_TIME)/m_1800461424/tm.htm
I suppose that maybe when item is actually sent, Outlook silently updates it with a server timestamp that may be different. How can I detect this?
You can detect a change later using Items.ItemChange event.
Related
Globals.ThisAddIn.Application.Explorers.NewExplorer += new ExplorersEvents_NewExplorerEventHandler(DoNewExplorer);
I am trying to get the information from an email that I previously opened (by double-clicking) in outlook.
The code works fine until I open multiple emails. What I am finding is that when I click on an email, the inspector activates, but I am getting the information from the last active window, not the current one that I clicked on.
In the Activate event handler you can always call the ActiveInspector method of the Outlook Application class.
Note, the Inspectors collection contains all opened inspector windows, so you could get all of them or find the required one.
Firstly, your code tracks the Explorers.NewExplorer event, not Inspectors.NewInspector.
Secondly, for the Inspectors.NewInspector event, make sure you are using the Inspector object passed to your event handler rather than Application.ActiveInspector: by the time Inspectors.NewInspector event fires, the inspector might not yet be visible/active.
I am testifying soon as to data I gathered using MFCMAPI in which I determined that the PR_LAST_MODIFICATION_TIME did not match the PR_CREATION_TIME or PR_MESSAGE_DELIVERY_TIME of the message.
What actions in Outlook would cause PR_LAST_MODIFIER_NAME or PR_LAST_MODIFICATION_TIME to be modified? Simply reading, marking the message as unread, and viewing the attachments does not modify these properties in my lab tests.
I am trying to determine what other actions performed by the user or on behalf of the user could cause the PR_LAST_MODIFIER_NAME to no longer list the sender and PR_LAST_MODIFICATION_TIME no longer match Delivery/Creation time.
I had the opportunity many months ago to talk to developer on the MFCMAPI project from Microsoft and I am kicking myself in the gut for not writing down his name.
Any help is appreciated.
Do you mean Steve Griffin?
I am not him, but I think I can easily answer your question - every time IMessage::SaveChanges is called, PR_LAST_MODIFICATION_TIME will be reset.
I found this post, which seems to be an exact duplicate, but I can't figure out how to get the answer to work for me so I'm posting again...
TFS2010: Set up an alert that will email a member in the team when a work item is assigned to them
I want anyone (not everyone) using TFS to receive an email when they are assigned an item or when an item assigned to them changes. So, when the alert happens, the person who is currently assigned the item will receive an email.
I know I can set up this on a per-person basis with Alerts Explorer, but I can't figure out how to do this for everyone at once.
I looked at https://tfsalerts.codeplex.com/, but it looks like it's used to send alerts to groups of people...I only want to send the alert to a single relevant person (the equivalent of #Me). If this tool can do that, I'm not sure how to make it do so.
what you want to do is write a TFS Server Plugin. This plugin will fire whenever a certain event occurs. In your case, you will want to catch the WorkItemChangedEvent. In the notification, you will find old and new values of each field. By checking whether the assigned to field changed, you will know whether the WI has been reassigned.
Once you determined that the WI has been reassigned, you can take the New Value, and go to Active Directory (assuming you're using it), and get the email address. Finally, send a message.
For a code example of writing a robust server plugin (that happens to target the WorkItemChangedEvent, check out this blog post: How to Write a Robust TFS Server Plugin
I am working on an Outlook extension that requires making a change to a MailItem open in a compose window if the SendUsingAccount property is changed via the GUI. I would like to be albe to apply my changes automatically, but I cannot find any events that are raised when the user makes the change. I have tried listening to the following events with no success:
mailItem.PropertyChange
mailItem.CustomAction
mailItem.CustomPropertyChange
Are any events raised when the SendUsingAccount property changes?
No, is the short answer.
You could hack up a timer to check for the change on the property.
Marcus
I was wondering if there's some sort of system event that gets fired every time a user changes the time in Windows. I know there's a way to enable this in Windows' EventLog, but I was looking for a way to respond to this event programatically (like using the Windows API).
A WM_TIMECHANGE message is sent whenever there is a change in the system time
I'm not sure from your question if you're working in managed or native code. But if you're working in managed code you can use the TimeChanged event on the SystemEvents class.
Microsoft.Win32.SystemEvents.TimeChanged