MODULE ComPhoneBookClient;
(**
project = "BlackBox"
organization = "www.oberon.ch"
contributors = "Oberon microsystems"
version = "System/Rsrc/About"
copyright = "System/Rsrc/About"
license = "Docu/BB-License"
changes = ""
issues = ""
**)
IMPORT COM, WinOle, WinApi, ComTools, StdLog, ComPhoneBook, Dialog;
VAR
para*: RECORD
name*: Dialog.Combo;
number*: ARRAY 32 OF CHAR
END;
PROCEDURE GetNumber*;
VAR phoneBook: ComPhoneBook.ILookup; res: INTEGER; str: WinApi.PtrWSTR;
BEGIN
res := WinOle.CoCreateInstance(ComPhoneBook.CLSID, NIL, WinOle.CLSCTX_SERVER,
COM.ID(phoneBook), phoneBook);
IF res = WinApi.S_OK THEN
res := phoneBook.LookupByName(para.name.item, str);
IF res = WinApi.S_OK THEN
para.number := str$; ComTools.FreeString(str)
ELSE StdLog.String("GetNumber failed, error = "); StdLog.Int(res); StdLog.Ln;
para.number := ""
END;
Dialog.Update(para)
ELSE StdLog.String("Instance creation failed, error = "); StdLog.Int(res); StdLog.Ln
END;
END GetNumber;
BEGIN
para.name.SetLen(5);
para.name.SetItem(0, "Daffy Duck");
para.name.SetItem(1, "Wile E. Coyote");
para.name.SetItem(2, "Scrogge McDuck");
para.name.SetItem(3, "Huey Lewis");
para.name.SetItem(4, "Thomas Dewey");
END ComPhoneBookClient.
ComPhoneBook.Register
ComPhoneBook.Unregister
"StdCmds.OpenToolDialog('Com/Rsrc/PhoneBook', 'PhoneBook')"