chunnel said:
I appreciate your well researched answer to this question. However, in
Vista 32, Fax and Scan will immediately read my address book. But in
Vista
64, it will not. exporting, I have 12 Contact folders with almost 10,000
entries, is really not an option. This is a driver issue with Vista 64
and
it should be resolved.
Sorry, I kind of glossed over that. Yes, in 32 bit Windows it works, and in
64 bit Windows it does not (the "complex reasons" I tangentially mentioned).
I am not a mail specialist, by any means (I'm more a networking guy). But -
the main underlying reason is that Outlook Contacts are stored in a PST
file, and must be accessed programmatically via MAPI program calls exposed
in an Outlook DLL (MAPI=="Messaging Application Programming Interface", the
main API used by Outlook). Outlook, like all Office apps, is a strictly
32-bit application. On 64 bit Vista, Windows Contacts and Fax run as 64 bit
applications. They cannot thunk down to the 32 bit library in Outlook, to
make the necessary calls to read the Contacts from the PST. If Windows Fax
cannot make these calls, then it cannot access the Outlook Contacts
information directly. On 32 bit Windows, it is very easy for 32 bit Windows
Fax to load the 32 bit Outlook DLLs directly into its own process space (via
a call to LoadLibrary(), or similar, and then extract data direct from the
Outlook data store (Exchange or PST file).
Windows Contacts, unlike Outlook Contacts, are just *.contact text files,
sitting in the %UserProfile%\Contacts directory. They can be read and
written by any app which can do file I/O (basically, any app). Likewise, 64
bit calls to Active Directory and LDAP servers are well-supported, so
Windows Fax can read contacts from Active Directory. But it cannot read data
from 32 bit Outlook.
Exactly why such thunking is not available, I dunno - I haven't studied that
specific question closely before now. As a rough guess ... on 32 bit
Windows, it is very easy for 32 bit Windows Fax to load the 32 bit Outlook
DLLs directly into its own process space - this is a bog-standard
programming design used by thousands of Windows apps every second. But you
cannot load a 32 bit DLL directly into a 64 bit process - it's
architecturally impossible, for any application. So, the guy writing the 64
bit Windows Fax and/or Contacts would have needed to write some special
out-of-process thunking mechanism, to reach Outlook data from the 64 bit
Fax. I'm just guessing, but I can easily imagine some program managers
saying "well, no-one needs to reach Outlook; except for rare, edge scenarios
like ... oh I dunno, using Outlook Contacts from Windows Fax". So they
didn't invest in the considerable development effort required.
Anyway you're right - although it's not a driver issue, as such, because a
"driver" refers to a very specific type of executable; which is not involved
in this situation. But the underlying binary support to make what you want
happen, doesn't seem to be there on 64 bit Windows. As far as I know, there
is no workaround, and no easy solution. The ideal solution would be a 64 bit
version of Office, but I believe the Office product group are very reluctant
to go 64 bit.
You can try asking in the microsoft.public.windows.vista.print_fax_scan
newsgroup - it's very possible someone has discovered or developed some kind
of workaround. I'm sure you're not the only one in this situation (and while
I am advising you to the best of my ability, I am not, as I said, a
Mail/Outlook/MAPI expert).
Good luck!