Outlook Synchronization Question

S

sublimese

If anyone could answer this I would greatly appreciate it.

I am wondering if you could please answer or point me towards the
answer for a synchronization question I have.

I am using Outlook 2003 connected to an Exchange Server via RPC over
HTTPS.

The only Synchronization Group I have setup is the default "All
Accounts". "All Accounts" is set up using the default values that
outlook put into it. (Send Email, Receive Email, NO folders are
checked.)
Even though no folders are checked, Outlook is still obviously
synchronizing items in the background. For example, if I make a
"Client Rule" that moves an incoming email from my inbox to another
folder (folder1 for reference), the rule is run in my outlook, the
email is moved, AND the email is moved on the Exchange Server. Since
there is not a Synchronization Group setup that has that folder1
selected I am guessing that there is an additional synchronization
going on in the background that is separate from the Synchronization
Groups. Is this the case? If it is the case, can I access this
synchronization using the Outlook Object Model, or CDO. Are there any
events that I can hook into in this background sync?

Also, does anyone have any recommendations on books or websites that
deal directly with VS.NET 2005, VSTO, and Outlook? Thank you.

Thank you very much
Kelly Johnson
CyGen Technologies, Inc.
(e-mail address removed)
 
T

Thaddaeus Parker

Your explorer has a SyncObject property. What you want to do is something
like this.
SyncObject syncObject =
currentExplorer.Application.GetNamespace("MAPI").SyncObjects[1];

syncObject.SyncStart += new
SyncObjectEvents_SyncStartEventHandler(syncObject_SyncStart);

private void syncObject_SyncStart()

{

// this signals the start of Send/Receive.

}

That way during any synchronization you can execute extra logic. One quick
point is that when the synchronization (F9--Send/Receive) first occurs your
event will be fired first before the other synchronization occurs.

Regards,



Thaddaeus.
 
S

sublimese

Thaddaeus,
Thank you for the reply, but it doesn't really address my question.
The code that you provided will indeed get me a reference to the "All
Accounts" Sync Group, which is the ONLY sync group set up in my
outlook. However, if you re-read my question you will see that I am
wondering if there is an ADDITIONAL background sync of some sort going
on. In my default "All Accounts" sync group, NO folders are selected
for syncing. However, when CLIENT ONLY rules run on my Outlook, those
changes are propagated back to Exchange. Since there is no sync group
that has any folder setup to sync, according to the documentation any
changes that occur on my client should not be synched to Exchange.

Here is another example. If I connect to exchange (via RPC over https)
and get my email. Then I disconnect from the server (via unplugging my
network cable), then make a new folder in my outlook, and move a couple
of emails from my inbox to the new folder, then reconnect to the
network (via plugging the network cable back in), in a few moments, the
folder I created while offline will appear on Exchange and the emails I
moved from my inbox to the new folder will be moved on exchange. This
can be verified by connecting to my account via OWA. Obviously Outlook
is synching the fact that I made a new folder and that I moved items
into the new folder DESPITE the fact that there is no Sync group setup
to sync the new folder. What is doing this "background synching"? Can
I access this "background synching"?

Thank you
 
T

Thaddaeus Parker

The "background synching" that you are referring to is really the send and
receive action. When the synchronization starts out "sends" first to the
server. The receive is more detailed and requests from the server what
changes that have occurred on the server since the last synchronization.
The client compares what it received from the Exchange server to what the
current state of the client store is and then pushes any changes back to the
exhange server.

Unfortunately, I don't know of any methods, events or properties that would
allow for the programmatically attach to the process of that action from the
client side of the house. What you would probably want to do is create a
COM component on the Exchange Server which is an EventSink for all events
that occur during a send and receive.

Programming Microsoft Outlook and Microsoft Exchange Server 2003 by Thomas
Rizzo gives some good examples of the client and server side events.

Regards,

Thaddaeus.
 

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