473,554 Members | 3,024 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Outlook Integration

Hi

We are developing an off-the-shelf software suite for a certain business sector. Most of the program is simply a GUI on top of some .mdb files. Its a .net application written in c#

One major requirement is "Outlook Integration". The Outlook contact folders are to be used for contact management

I want to know what is the standard way to do this these days. Most of the information in MSDN seems rather old

I first used the Outlook 11 Object Library, and it was great, it lets me access folders in a local .pst file, or on an exchange server. But it was too slow. My test contact folder with 3000 entries took over 3 minutes to load in

I tried to do a SetColumns on the MAPIFolders items to speed it up, but then the objects within the items could no longer be cast as ContactItem in C#

I read in the newsgroups that CDO can be used to speed things up, but I am unsure which version to use. I have 1.21 library, for exchange 2000 library, and for exchange management library

I also read elsewhere that cdo 1.21 is old and no longer supported in a .net environment, and the exchange 2000 and management libraries seem to have little to do with contact lists or address books

All 3 CDOs seem to be solely related to direct connections to the exchange server, but I can only assume the customer has outlook that may or may not be in workgroup mode. The contact folders could be in either .pst files or on an exchange server

As this is not an in-house project, I cant assume much. But I can specify certain versions of outlook (ideally outlook 98 or 2000 or better) as a requirement

What I want to do must be possible, as ActiveSync can access any type of outlook contact folder, and it much faster than using the Outlook Object Library

Anyone know how ActiveSync does it? Or how I should do it? Or is using Outlook as a contact management system not completely supported my microsoft in this way

Thanks a lo

Kurt
Jul 21 '05 #1
3 5714
Cor
Hi Kurt,

There are 4 versions of CDO (in chronological order):

- CDO.DLL : CDO version 1.2.1
- CDONTS.DLL : CDO version 1.2.1 for Windows NT Server (not the same as CDO
version 1.2.1!)
- CDOSYS.DLL : CDO for Windows 2000
- CDOEX.DLL : CDO for Exchange 2000 Server

some links for you problem (just collected not used)

http://www.microeye.com/resources/res_outlookvsnet.htm

http://msdn.microsoft.com/library/de...classtopic.asp

http://msdn.microsoft.com/library/de...figuration.asp

http://msdn.microsoft.com/library/de...vr_cdo_top.asp
I hope this helps a little bit?

Cor
Jul 21 '05 #2
Kurt,
I first used the Outlook 11 Object Library, and it was great,
it lets me access folders in a local .pst file, or on an exchange server.
But it was too slow. My test contact folder with 3000 entries took over 3 minutes to load in.
How often are you going to load all 3000 entries? I would only expect the
initial import, then you only care about changed items...

In addition to Cor's links, I would add:

http://msdn.microsoft.com/library/de...technology.asp

It identifies the majority of the technologies available to Exchange Server.
Here are a handful of samples that may (or may not) help:

http://msdn.microsoft.com/library/de...lders_http.asp

http://msdn.microsoft.com/library/de...age_webdav.asp

http://msdn.microsoft.com/library/de...ize_webdav.asp

http://msdn.microsoft.com/library/de...tify_intro.asp
I also read elsewhere that cdo 1.21 is old and no longer supported
in a .net environment, and the exchange 2000 and management
libraries seem to have little to do with contact lists or address books. The Exchange CDO libraries are only available if you have Exchange loaded.
CDO 1.21 is available with Exchange or as an optional install with Outlook.

Remember that newer versions of Outlook & CDO will cause a security prompt
when accessing contacts to prevent viruses. Property constructed COM-Addins
in Outlook 2003 will bypass the security prompt.

If PST (no Exchange Server) is an option, then you only real choices are
Outlook OOM, CDO 1.21, or Extended MAPI. The only published (supported) way
of working with Contacts themselves in the Outlook OOM, think of the Outlook
OOM as the "Business Model" for Outlook Contacts. CDO 1.21 & Extended MAPI
are largely the "Data Model" for Outlook Contacts...

http://www.cdolive.com has published some of the property tags to work with
Contacts from CDO 1.21 or Extended MAPI, however you are bypassing the
"Business Model" in favor of direct access to the "Data Model.

I would not recommend Extended MAPI from .NET, you may be able to use unsafe
code & Extended MAPI, however I have not tried. My initial tests (from
VB.NET) suggest that Extended MAPI is possible from .NET, however I suspect
the pain is not worth the gain in either C# or VB.NET.

I use CDO 1.21 from .NET via the VS.NET generated interop without any real
problems. However! its "easier" from VB.NET as VB.NET has implicit support
for late binding. For performance I would not recommend Late Binding. I cast
most of the CDO properties to their respective types, so I get early binding
in VB.NET, the same technique can be be applied to C#. Also remember to call
Marshal.Release ComObject for each COM object you use via interop (whether
PIA or other interop assembly). ReleaseComObjec t should be called in a
loop...

I also understand that CDO 1.21 is "not supported" in .NET, in that if you
use CDO 1.21 from .NET and have a problem, you are on your own to resolve
it. Not that it is explicitly not allowed.

Hope this helps
Jay

"Kurt" <an*******@disc ussions.microso ft.com> wrote in message
news:52******** *************** ***********@mic rosoft.com... Hi.

We are developing an off-the-shelf software suite for a certain business sector. Most of the program is simply a GUI on top of some .mdb files. Its
a .net application written in c#.
One major requirement is "Outlook Integration". The Outlook contact folders are to be used for contact management.
I want to know what is the standard way to do this these days. Most of the information in MSDN seems rather old.
I first used the Outlook 11 Object Library, and it was great, it lets me access folders in a local .pst file, or on an exchange server. But it was
too slow. My test contact folder with 3000 entries took over 3 minutes to
load in.
I tried to do a SetColumns on the MAPIFolders items to speed it up, but then the objects within the items could no longer be cast as ContactItem in
C#.
I read in the newsgroups that CDO can be used to speed things up, but I am unsure which version to use. I have 1.21 library, for exchange 2000
library, and for exchange management library.
I also read elsewhere that cdo 1.21 is old and no longer supported in a ..net environment, and the exchange 2000 and management libraries seem to
have little to do with contact lists or address books.
All 3 CDOs seem to be solely related to direct connections to the exchange server, but I can only assume the customer has outlook that may or may not
be in workgroup mode. The contact folders could be in either .pst files or
on an exchange server.
As this is not an in-house project, I cant assume much. But I can specify certain versions of outlook (ideally outlook 98 or 2000 or better) as a
requirement.
What I want to do must be possible, as ActiveSync can access any type of outlook contact folder, and it much faster than using the Outlook Object
Library.
Anyone know how ActiveSync does it? Or how I should do it? Or is using Outlook as a contact management system not completely supported my microsoft
in this way?
Thanks a lot

Kurt

Jul 21 '05 #3
Hi Kurt

The post already mention a wealth of information.

I have done outlook integration using C#, Extended MAPI and Outlook model.

There is a managed extended mapi library you can use if you ultimately want
to do extended mapi (www.mapi33.freeservers.com), however I guess you need
to determine what the application will do and your
target users.

In my particular case, I had to support O2K and higher, thus was not able to
use the PIA's and also had to work around the security patches. Lots of
headaches, but this eventually will mean that the Outlook plug-in does not
require administrators to install the software. This however was my target
group. Yours might require administrators and thus it is easier to use the
CDO, Outlook or simple mapi instead.

I mixed the Outlook and Extended mapi, using them interchangeably , but not
without headaches I might add.
:-)

There are other libraries available such as redemption library, but it will
be safer to do VB6 or Delphi COM based implementation. Redemption interop
apparently does not work to well with c#. I personally did not use that, but
It might be a better alternative if you are looking for a quicker
implementation. (Unless you have already some extensive knowledge of
Extended mapi, but is are a huge support group that is very helpful)

Henk

"Kurt" <an*******@disc ussions.microso ft.com> wrote in message
news:52******** *************** ***********@mic rosoft.com...
Hi.

We are developing an off-the-shelf software suite for a certain business sector. Most of the program is simply a GUI on top of some .mdb files. Its
a .net application written in c#.
One major requirement is "Outlook Integration". The Outlook contact folders are to be used for contact management.
I want to know what is the standard way to do this these days. Most of the information in MSDN seems rather old.
I first used the Outlook 11 Object Library, and it was great, it lets me access folders in a local .pst file, or on an exchange server. But it was
too slow. My test contact folder with 3000 entries took over 3 minutes to
load in.
I tried to do a SetColumns on the MAPIFolders items to speed it up, but then the objects within the items could no longer be cast as ContactItem in
C#.
I read in the newsgroups that CDO can be used to speed things up, but I am unsure which version to use. I have 1.21 library, for exchange 2000
library, and for exchange management library.
I also read elsewhere that cdo 1.21 is old and no longer supported in a ..net environment, and the exchange 2000 and management libraries seem to
have little to do with contact lists or address books.
All 3 CDOs seem to be solely related to direct connections to the exchange server, but I can only assume the customer has outlook that may or may not
be in workgroup mode. The contact folders could be in either .pst files or
on an exchange server.
As this is not an in-house project, I cant assume much. But I can specify certain versions of outlook (ideally outlook 98 or 2000 or better) as a
requirement.
What I want to do must be possible, as ActiveSync can access any type of outlook contact folder, and it much faster than using the Outlook Object
Library.
Anyone know how ActiveSync does it? Or how I should do it? Or is using Outlook as a contact management system not completely supported my microsoft
in this way?
Thanks a lot

Kurt

Jul 21 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
4054
by: Iain Miller | last post by:
Currently using & developing a new application in A97. This app has a lot of Name & Address information in it. A lot of that information will be duplicated in Outlook & I suddenly wondered if its possible under the newer versions of Office to use the information already stored in Outlook as part of an Access database project. The logic being...
0
328
by: Krishna | last post by:
I am trying to loop thru Inbox and select any one email and save it as a RTF file. Here is the code I am using Outlook.Explorer myOutlookExplorer = myOutlookApp.Explorers.Add(myOutlookNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox), Outlook.OlFolderDisplayMode.olFolderDisplayNormal); myOutlookExplorer.Activate();...
3
415
by: Kurt | last post by:
Hi We are developing an off-the-shelf software suite for a certain business sector. Most of the program is simply a GUI on top of some .mdb files. Its a .net application written in c# One major requirement is "Outlook Integration". The Outlook contact folders are to be used for contact management I want to know what is the standard way...
14
4933
by: Gerhard | last post by:
I'm posting this again, as no answer to the first post.... I would like to integrate Outlook into my vb.net web page, so that when I send an email (which I can successfully do now), it shows up in the sender's Outlook Sent Items. How do I do that? Thanks.
2
2441
by: Pieter | last post by:
Hi, I'm using a thight integration with Outlook 2003 (with an Exchange server) in my VB.NET (2005) application. Until now I'm using the Outlook Object Model, but it appears to be very slow, and has some problems: - doing a Move changes the ReceivedTime of the MailItem - I can't use RichText in the MailItem.Body (only allows plain text or...
6
1420
by: KatMagic | last post by:
The following code wrks fine when running from my pc (localhost); but errors when I put the asp.net code up to the production web server. Theerror I get is System.Runtime.InteropServices.COMException: COM Object ... is either not valid or not registered. What am I missing? My code: Public Function CallOutlook()
3
4137
by: Mike P | last post by:
Is it possible to incorporate Outlook in your web app so that you can view your Inbox from your web app? And if so, does anybody have any good links? *** Sent via Developersdex http://www.developersdex.com ***
0
1321
by: Ben Grimwade | last post by:
Hi, im developing an Application that integrates with Outlook by creating an appointment in there calender. The code in question is below Dim appt As Outlook.AppointmentItem obj = diary.Items.Find(" = " & Chr(34) & idCheck & Chr(34)) If obj Is Nothing Then 'Now create a new appointment in the user's diary appt =...
1
1731
by: PromisedOyster | last post by:
We have a written a C# application that interfaces with Outlook using the API. Since Microsoft Office 2000 SP1, our users have had to put up with the very annoying warning popup about a program accessing Outlook and do they want to allow/deny. However, since migrating many of our users to Office 2007, some (not all) of our Office 2007...
0
7783
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
0
8023
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
1
7547
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
6129
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then...
1
5426
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
3536
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2009
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1117
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
828
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.