Adress Book

KubiaK

Member
Hi all,

Does anyone know how to get the current adress book (from Outlook for example) in a Progress mailing interface ?
 

BONO

Member
go to http://www.global-shared.com/ u've some example


ex :
DEF VAR chNamespace AS COM-HANDLE NO-UNDO.
DEF VAR chOutlook AS COM-HANDLE NO-UNDO.
DEF VAR chFolder AS COM-HANDLE NO-UNDO.
DEF VAR chAddressEntry AS COM-HANDLE NO-UNDO.
DEF VAR chAddressList AS COM-HANDLE NO-UNDO.
DEF VAR chAddressLists AS COM-HANDLE NO-UNDO.
DEF VAR chAddressEntries AS COM-HANDLE NO-UNDO.
def var name as char no-undo.
def var name2 as char no-undo.
def var surname as char no-undo.


CREATE "Outlook.application.9" chOutlook.
ASSIGN
chNameSpace = chOutlook:GetNameSpace("MAPI":U)
chFolder = chNameSpace:GetDefaultFolder(6)
ChAddressLists = chNameSpace:AddressLists
ChAddressList = chAddressLists:Item(1)
ChAddressEntries = ChAddressList:AddressEntries
i = 1.


REPEAT WHILE i <= chAddressEntries:Count :
ASSIGN chAddressEntry = chAddressEntries:Item(i).

IF NUM-ENTRIES(chAddressEntry:Name,' ') = 1 THEN
ASSIGN
surname = chAddressEntry:Name
name = "":U
name2 = "":U.
IF NUM-ENTRIES(chAddressEntry:Name,' ') = 2 THEN
ASSIGN
surname = ENTRY(2,chAddressEntry:Name,' ')
name = ENTRY(1,chAddressEntry:Name,' ')
name2 = "":U.
IF NUM-ENTRIES(chAddressEntry:Name,' ') = 3 THEN
ASSIGN
surname = ENTRY(3,chAddressEntry:Name,' ')
name = ENTRY(1,chAddressEntry:Name,' ')
name2 = ENTRY(2,chAddressEntry:Name,' ').
ASSIGN
adress = chAddressEntry:Address
i = i + 1.

CREATE .......


END.
 

KubiaK

Member
Salut BONO, et merci pour ta réponse, mais à quel endroit, ou dans quelle sous-rubrique sur global-shared as-tu trouvé cet exemple ?
 

KubiaK

Member
Kb #21829 is an example showing how to access the Outlook AddressBook.

DEFINE VARIABLE houtlook AS Com-handle NO-UNDO.
DEFINE VARIABLE hnamespace AS Com-handle NO-UNDO.
DEFINE VARIABLE hfolder AS Com-handle NO-UNDO.
DEFINE VARIABLE hitem AS Com-handle NO-UNDO.
DEFINE VARIABLE x AS integer NO-UNDO.

CREATE "outlook.application" houtlook.

hnamespace = houtlook:getnamespace("MAPI").
hfolder = hnamespace:addresslists:ITEM(1).

DO X=1 TO hfolder:addressentries:COUNT():
hitem = hfolder:addressentries:ITEM(X).
MESSAGE hitem:NAME + " " hitem:address VIEW-AS ALERT-BOX.
END.

RELEASE OBJECT hitem.
RELEASE OBJECT hfolder.
RELEASE OBJECT hnamespace.
RELEASE OBJECT houtlook.

When i run this sample of code, i have a message telling me that the automation server for outlook.application is not properly registered and that this server should be reinstalled.

Progress 9.1C on Windows 2000, shell32.dll is version 5.0.2920.0.

Do you know what's wrong with that ?
 
Top