For the directory part of this I'd look at a sample directory like photodirectory, or the directory provided by the call manager. To access outlook, it depends on if you want to access Outlook or Exchange. For the former, you'd have to write a connection component running on the computer where Outlook is installed, which allows you to request a directory listing, and performs queries using the Outlook Object model. Here's an example on how to extract contacts form a local Outlook: http://www.kbalertz.com/Feedback_310260.aspx
A better way to handle this would be to query the exchange server directly. There are two main protocols to do this: CDO (that's for applications running on Exchange), or WebDAV (for applications accessing Exchange remotely - requires Exchange 2000 or above). In case of CDO, you'd need a connection stub (like in the Outlook case) that takes your queries, looks up contacts on the exchange server, and sends you back the results. In case of WebDav, your application server could perform the query directly and send the results back to the phone.
Here's an example for CDO: http://support.microsoft.com/?kbid=310206. I haven't found any good samples on WebDAV, but I'd use WebDAV myself (there are, at least for .NET languages) some great pre-made solutions allowing you to query an Exchange server via WebDAV.
Are you getting this error “Installer User Interface Mode Not Supported. The installer cannot run in this UI mode. To specify the interface mode, use the -i command-line option, followed by the UI mode identifier. The value UI mode identifiers...
The below trick might come handy when you have to add a new node to a cluster but you don't have or is unsure of the security password for the publisher. This procedure has been around for ages.
1) Login into the CLI of the Publisher.