What DLL do I reference (and where can I get them) to access the Exchange 2003 CDO API in Visual Studio 2008 - exchange-server-2003

I am trying to create an application that will manipulate mail messages on Exchange 2003. My development environment is Windows XP with Visual Studio 2008. After reading the description of the various APIs, it seems like CDO is what I should use.
I've downloaded the Exchange 2003 SDK. The documentation has a lot of example programs, but I can't get any of them to compile. I know I need to add references to the correct .DLL(s). The reference documentation talks about CDOEX.DLL. I've gotten the DLL from an Exchange 2003 and referenced it in my project. (Following this link.) It does add a number of objects under the CDO namespace, but many of the ones referenced in the documentation are not present. (For example a couple samples use CDO.Person, which is (as far as I can tell) does not exist.
What I find particularly confusing is that the sample projects use CDO.Person, yet the class reference documentation in the SDK does not list that class as one of the classes belonging to the CDO namespace.
Can anyone please point me to what I need to reference or link to my project to access this and other related classes in the Exchange 2003 SDK?
Additionally, am I missing a portion of the big picture? Is CDO not the way to go? My application will have to access and change are number of messages in hundreds, if not thousands, of different user mailboxes in the Exchange server.

I think I have found the answer. The file needs to be registered with RegSvr32 first. I did not expect this behavior. If you do not run RegSvr32 then only a subset of the classes shows up in the project when the DLL is referenced. But, if you run RegSvr32 cdoex.dll on the file first and then reference it, then all of the classes show up.
I have not confirmed correct behavior when it runs (that will have to wait until I have access to an Exchange 2003 server for testing), but it does look like it compiles correctly.

Related

Cryptographic Service Provider signature process

I'm trying to create a custom CSP(cryptographic service provider) and I'm kinda stuck at signing the csp dll. In the cspdk(cspdk) it is said, that I should use cspsign.exe to produce the signature file that can be included into the dll as a resource. But there's no such a file in cspdk or anywhere in windows.
So I began to google and found some posts that before 2013 people were sending their dll's to microsoft and got it signed in return. And after 2013 you are supposed to use microsoft authenticode and purchase code signing cert for it.
I'm in a development stage so there will be many many builds, so may be there is some simple way to get thing working.
So the question is how this process looks like in 2019?
UPDATE:
I found out that cspsign was a test utility for Windows 2000, so the cspdk is a little bit out of date. The question remains actual ..
Those sdks are so old, with newer versions nowhere to be found, and documentation so sparse. The only reference I found on a somewhat recent process is hidden in here, halfway through the page: Authenticode signing of CSPs
Note Starting with Windows 8, it is no longer a requirement that CSPs must be signed.
So, CSPs no longer need to be signed.

how to create my own installer which check for .net framework

I created an Windows application with .Net Framework 2.0. I want to install it on different users systems. I Created an installer with some software and working fine.
Now I want to develop a simple .exe builder which checks the .Net Framework requirement.
How to proceed, please help me.
To get started, you can look into the registry to see if certain keys are present.
According to MSDN's page on this topic, the keys are stored in
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
Also, just as a side note, if .NET framework is not present, standard .net assemblies already give you an error message (which doesn't look very nice, but it still exists).
And another thing you want to consider is if you actually want to create your own installer when you can use existing ones that have this kinds of checks built-in. InstallShield is an example for that.

Does Windows, Outlook, or Exchange have an API for reading iCal format?

I'm trying to add iCal import support to my existing scheduling application which needs to support Windows XP, Vista, and 7. Writing iCal format is easy, but reading it is another story, mostly trying to convert times to local times with the complex TIMEZONE/TZID/RRULE syntax. Ideally Windows would have a native API for this, but I haven't found one.
I know Outlook 2007+ has an OpenSharedItem function that would work. I don't want to require users to have Outlook installed though, since my application "competes" with Outlook. I thought about writing a web service that would use Outlook on my web server to do this, but I know using Outlook OLE/COM objects from a service has issues, so that probably isn't an option either. I do own about 300 Exchange Server licenses, are there any APIs with Exchange that would maybe work better? I do notice when I email iCal files from GoToMeeting.com they say they were created with "Microsoft CDO for Microsoft Exchange", so I have a feeling they are doing something like this to avoid writing the format themselves.
My application is written in C++ using mostly native Win32 API, but I don't mind creating a .NET DLL for this, or even requiring users to have Internet access so I can post the file to my web server and have it return a converted format my app can use easily. My web server runs on Windows though, so anything Unix-based might be dificult. Other than that, I'm pretty open to options.
Update: I did find CDOEX but as I've never used it before, can anyone tell me where to start and if it can in fact do what I need? I don't really see much about iCal in the docs, and I'd need to install Exchange on my dev PC (not crazy about that) to start playing around with this API.
You can try to use Redemption (I am its author) - it allows to explicitly import iCal files using RDOAppointmentItem.Import(..., olICal).

Can no longer locate service packs for Visual Basic 5

I have been using Visual Basic 5 since it was first released until a couple of years ago.
I re-installed it on each new laptop I bought and downloaded the service pack each time. I think it is SP2 for VB5 I need.
But having not touched it in two years I have now just installed it on a laptop to modify an app. However, it seems that Microsoft no longer offers the service pack for download.
And on opening my projects i get repeated messages for each frame telling me I "don't have the license to use the control in developer mode".
What is this error and how do I get the service packs?
If you port to VB6, you shouldn't have to make very many changes.
If you port to any version of VB.Net, you will find that the changes are rather extreme. An automated tool will try to do some of the work for you, but depending on how your code was written and what VB5 features you used, you will probably find that you manually need to fix up most of the changes that were made.
The biggest problem is that some of the VB5 features don't have direct equivalents in VB.Net. Do any of your forms use control arrays? You CAN do something at least vaguely similar in VB.Net, but the conversion tool doesn't know about that, so converting them will have to be completely manual.
FYI, Microsoft service packs are available in two forms. The normal update process figures out what patches are needed on your computer, then downloads them and installs them. But there's also an "administrative" version that downloads every change that MIGHT be needed, in one package. That package doesn't automatically install - when the download is complete, you have to manually start it running. The admin version is intended for system administrators, who might have to apply the same patch to dozens / hundreds / thousands of computers on a network - you shouldn't have to download the same data over and over.
The admin service packs won't help you with VB5, of course (unless you find someone that downloaded the VB5 service packs and held on to them). But if you end up going to a new version of Visual Studio (or VB), and you think that it's likely that you'll keep using them more than 6 months or so past the end of Microsoft support, you might want to get in the habit of downloading the admin service packs and archiving them somewhere. It might prevent problems like this in the future.
The licensing issue is referenced on Microsoft knowledge base
http://support.microsoft.com/kb/181854
A fix is available, downloadable from the same place.
Note : if you are running Windows Seven, you need to run VisualBasic in elevated mode.

Using a WinForm as a Windows Installer Custom Action

I am working on in installer project that needs to gather some info and act on it during the install (mainly online key retreival and registration). The Setup Project UserInterface templates seem inflexible and poorly documented so I am looking at opening a WinForm as a Custom Action.
I know this is possible because I see reference to it in many places but this is my first Windows Installer experience and so far it is mired in googled contradictions, partial or outdated information and guesswork... erg....
Does anyone have (even a pointer to) a clear concise description of how one gets this done in a VS 2008 WinForm project...
Many thanks for inputs
There is no guarantee that the .net framework is installed when the installer is launched (especially on Windows XP). A best practice is to keep your installer away from any dependencies.
Put the online key retrieval and registration in your application rather than doing all that stuff during install.
Create a standard installer class. In the class create your form and show it (ShowDialog is prefered)

Resources