Defensive programming 101

What is defensive programming? Defensive programming is an approach to improve your source code and software, in the general terms of: Quality – Reducing the number of bugs Making source code readable: Comments, Comments, Comments…. Making the software behave in a predictable manner. Code review and test the code in retail and debug builds. I often see programmers…


Error 0x80190194 when using an Outlook 2007 client to download a Web Distribution enabled OAB

You can receive the following error (0x80190194) in Outlook when trying to download a Web Distribution only enabled Offline Address Book. The error 0x80190194 is an HTTP 404 error: C:\WINDOWS\system32>err 0x80190194# for hex 0x80190194 / decimal -2145844844BG_E_HTTP_ERROR_404 bitsmsg.h# 1 matches found for “0x80190194” The reason for this error message is that when an Outlook 2007…


Missing OAB Template Language ID’s cause generation problems.

Under certain circumstances the OAB Generation process can fail when OABGen.dll is able to query the Address-Templates container in the Active Directory, however is unable to read any attribute values from the multi-valued attribute “msExchTemplateRDN’s”. This active directory attribute contains the language id’s that are necessary for building the OAB Template files. If these language id’s…


How to create a Global Address List programmatically using Visual Basic

Since I do a fair share of programming in Visual Basic, C# and C++ I thought I would post something here for you guys that like to do things programmatically. With the code sample provided here in this article you will be able to use Visual Basic to create a Global Address List. An Exchange…


Exchange 2003 SP2 DSProxy (Referral Service) Changes

I wanted to post something on how MAPI clients connect to a domain controllers and instead of reinventing the wheel, I will point to Ross Smith’s outstanding write up on the changes for DSProxy. The article can be found here: Dave