Skip to main content

Outlook Automation with VFP

An overview of how to automate Outlook with Visual FoxPro.


Hi. I've used the FIND command to find an email msg, task or appointment. What I have a pbm with is the very first time you initiate the find, it takes MINUTES. It acts like it's indexing or something. Then after that initial find, the next time you try to find anything, bam! it finds it (or not) in less than 1 second.

Excellent article. Thank you for taking the time to write it. One other issue I'm having is I am (here we go again), finding a public folder and once I find it, I want to display it on screen. I have the object (ie oCalendarFolder) and when I call oCalendarFolder.Display it shows the window, but also returns an error "Display is not a member object".

Dan Hofford said…
How can Outlook be configured so when my vfp app wants to use it to email a file it doesn't constanly ask if its ok?
Dan Hofford said…
Forgive my ignorance. I'm new to this way of coding.
Can you tell me the difference in what you've outlined in your white paper where you write:
loSpace = loApp.GetNameSpace("MAPI")
loFolders = loSpace.Folders
loItems = loSpace.Folders.Items

and the follwing:

LOCAL loOutlook, loHandler
loOutlook=CREATEOBJECT( [Outlook.Application] )
EVENTHANDLER( loOutlook, loHandler )
DEFINE CLASS OutlookHandler AS session OLEPUBLIC
IMPLEMENTS ApplicationEvents_10 IN {00062FFF-0000-0000-C000-000000000046}#9.1
PROCEDURE ApplicationEvents_10_ItemSend(Item AS VARIANT, Cancel AS LOGICAL) AS VOID
* add user code here
Andrew MacNeill said…

Great question. The main difference is one of how you react to items. The first approach is useful for actively looking for items without worrying about what the user is doing. You aren't told if there are new emails or new items added - it's more if you are adding items automatically or reviewing existing items.

Using the IMPLEMENT approach, you are able to interact with what the user is doing. For example, when a new message comes in, your Outlook handler can react to it automatically. When a user clicks a button, you can react to it further. There's more code required but more available actions to work from.

For example, if your application, wants to react to new messages as they come in, you would need to use the IMPLEMENTS approach.

Make sense?

Popular posts from this blog

User Interface Design in Web and Windows

This is the white paper on user interface design that was given at a number of conferences including DevTeach 2003 and others.

From the overview:
"  Interfaces are a lot like people – no two are ever really alike. That can present a problem for developers and end-users. On one hand, you want to provide a clear , consistent and easy to use experience for the user. On the other, you want to showcase your graphical design skills. This session goes through some of the issues confronting interface designers today and how we can best deal with them. "

This session discusses the benefits of the Inductive User Interface, a concept that Microsoft initially showed in MS Money 2001 but has found its way into certain aspects of Windows XP, Office and other tools.

Is the Inductive Approach really the best way? Well, it certainly works for new users, who can't discern between icons. As I look at my tool bar in IE right now, I can easily see that the magnifying glass means "Se…