Wincom and Outlook example
This example executes Outlook, creates a new contact, and saves it in your contact
list.
DEFINE outapp INTEGER
DEFINE outit INTEGER
DEFINE outcon INTEGER
DEFINE outsav INTEGER
MAIN
DEFINE result INTEGER
DEFINE str STRING
--initialization of global variables
LET outapp = -1
LET outit = -1
LET outcon = -1
LET outsav = -1
--first, we must create an Instance of an Outlook Application
CALL ui.interface.frontcall("WinCOM", "CreateInstance",
["Outlook.Application"], [outapp])
CALL CheckError(outapp, __LINE__)
--then, creating a contact object
CALL ui.interface.frontcall("WinCOM", "CallMethod",
[outapp, "CreateItem(olContactItem)"], [outit])
CALL CheckError(outit, __LINE__)
--then, displaying the contact form
CALL ui.interface.frontCall("WinCOM", "CallMethod",
[outit, "Display"], [outcon])
CALL CheckError(outcon, __LINE__)
--CALL SetProperty to fill the various fields with the values you expect
#First Name
CALL ui.interface.frontCall("WinCOM", "SetProperty",
[outit, "FirstName", "Lionel"], [result])
CALL CheckError(result, __LINE__)
#1st email address
CALL ui.interface.frontCall("WinCOM", "SetProperty",
[outit, "Email1Address", "lif@4js.com"], [result])
CALL CheckError(result, __LINE__)
#Business address
CALL ui.interface.frontCall("WinCOM", "SetProperty",
[outit, "BusinessAddress", "1 rue de Berne"], [result])
CALL CheckError(result, __LINE__)
--then, CALL GetProperty to check the values again
CALL ui.Interface.frontCall("WinCOM", "GetProperty",
[outit, "FirstName"], [str])
CALL CheckError(str, __LINE__)
DISPLAY "First Name of the new contact is " || str
CALL ui.Interface.frontCall("WinCOM", "GetProperty",
[outit, "Email1Address"], [str])
CALL CheckError(str, __LINE__)
DISPLAY "1st email of the new contact is " || str
CALL ui.Interface.frontCall("WinCOM", "GetProperty",
[outit, "BusinessAddress"], [str])
CALL CheckError(str, __LINE__)
DISPLAY "Business Address of the new contact is " || str
--at the end, saving the contact
CALL ui.interface.frontCall("WinCOM", "CallMethod", [outit, "Save"], [outsav])
CALL CheckError(outsav, __LINE__)
--then Free the memory on the client side
CALL freeMemory()
END MAIN
FUNCTION freeMemory()
DEFINE res INTEGER
IF outit != -1 THEN
CALL ui.Interface.frontCall("WinCOM","ReleaseInstance", [outit], [res] )
END IF
IF outapp != -1 THEN
CALL ui.Interface.frontCall("WinCOM","ReleaseInstance", [outapp], [res] )
END IF
END FUNCTION
FUNCTION checkError(res, lin)
DEFINE res INTEGER
DEFINE lin INTEGER
DEFINE mess STRING
IF res = -1 THEN
DISPLAY "COM Error for call at line:", lin
CALL ui.Interface.frontCall("WinCOM","GetError",[],[mess])
DISPLAY mess
--let's release the memory on the GDC side
CALL freeMemory()
DISPLAY "Exit with COM Error."
EXIT PROGRAM (-1)
END IF
END FUNCTION
Tip: You may find the various Outlook objects (such as ContactItem object),
methods (such as theCreateItem method), and properties (such as the FirstName or
BusinessAddress properties) on the Microsoft™ Developer Network.