* MakeContactList.PRG * © 2000, Tamar E. Granor and Della Martin * From: Microsoft Office Automation with Visual FoxPro * Hentzenwerke Publishing. www.hentzenwerke.com * Read Outlook contact information into a cursor #DEFINE olContacts 10 #DEFINE olNone 0 #DEFINE olHome 1 #DEFINE olBusiness 2 #DEFINE olOther 3 LOCAL oNameSpace, oContacts, oContact LOCAL cFirst, cLast, cAddr, cPhone IF VarType(oOutlook) <> "O" * Start or connect to Outlook * Make it public for demonstration purposes. RELEASE oOutlook PUBLIC oOutlook oOutlook = CreateObject("Outlook.Application") ENDIF oNameSpace = oOutlook.GetNameSpace("MAPI") * Get Contacts folder oContacts= oNameSpace.GetDefaultFolder( olContacts ) * Create a cursor to hold contact information CREATE CURSOR ContactInfo ; (cFirstName C(15), cLastName C(20), mAddress M, cPhoneNum C(30)) * Go through contacts FOR EACH oContact IN oContacts.Items WITH oContact cFirst = .FirstName cLast = .LastName cPhone = .PrimaryTelephoneNumber * Choose the right address. If the primary phone number is empty, * pick up the phone number associated with this address. DO CASE CASE .SelectedMailingAddress = olHome cAddr = .HomeAddress IF EMPTY(cPhone) cPhone = .HomeTelephoneNumber ENDIF CASE .SelectedMailingAddress = olBusiness cAddr = .BusinessAddress IF EMPTY(cPhone) cPhone = .BusinessTelephoneNumber ENDIF CASE .SelectedMailingAddress = olOther cAddr = .OtherAddress IF EMPTY(cPhone) cPhone = .OtherTelephoneNumber ENDIF CASE .SelectedMailingAddress = olNone cAddr = "" ENDCASE INSERT INTO ContactInfo VALUES (cFirst, cLast, cAddr, cPhone) ENDWITH ENDFOR * Show the results BROWSE RETURNTamar