Request # 23
How to get and show the contact phones?
This example shows how you can get most of contact phones as:
PR_ASSISTANT_TELEPHONE_NUMBER
PR_BEEPER_TELEPHONE_NUMBER
PR_BUSINESS_TELEPHONE_NUMBER
PR_BUSINESS_FAX_NUMBER
etc..
Code snip:
procedure TfrmMain.GetPhones(Node: TTreeNode);
var
MAPIFolder: IMAPIFolder;
PhoneHeadList: TPhoneHeadList;
iCount, ListSize: Integer;
begin
PhoneHeadList := nil;
MAPIFolder := GetMAPIFolder(MAPISession, PFolderHead(Node.Data).ID);
if not Assigned(MAPIFolder) then
Exit;
PhoneHeadList := GetPhoneList(MAPIFolder);
try
ListSize := Length(PhoneHeadList);
if ListSize < 1 then
Exit;
for iCount := 0 to ListSize - 1 do
begin
ClientDataSet.Append;
{$IF NOT DEFINED(DELPHI2009)}
SetAsBytes(TBinaryField(ClientDataSet.FieldByName('EntryID')), PhoneHeadList[iCount].ID);
{$ELSE}
ClientDataSet.FieldByName('EntryID').AsBytes := PhoneHeadList[iCount].ID;
{$IFEND}
ClientDataSet.FieldByName('DisplayName').AsString := PhoneHeadList[iCount].DisplayName;
ClientDataSet.FieldByName('Assistant').AsString := PhoneHeadList[iCount].ASSISTANT_TELEPHONE_NUMBER;
ClientDataSet.FieldByName('Pager').AsString := PhoneHeadList[iCount].BEEPER_TELEPHONE_NUMBER;
ClientDataSet.FieldByName('Business').AsString := PhoneHeadList[iCount].BUSINESS_TELEPHONE_NUMBER;
ClientDataSet.FieldByName('Business2').AsString := PhoneHeadList[iCount].BUSINESS2_TELEPHONE_NUMBER;
ClientDataSet.FieldByName('BusinessFax').AsString := PhoneHeadList[iCount].BUSINESS_FAX_NUMBER;
ClientDataSet.FieldByName('Callback').AsString := PhoneHeadList[iCount].CALLBACK_TELEPHONE_NUMBER;
ClientDataSet.FieldByName('Car').AsString := PhoneHeadList[iCount].CAR_TELEPHONE_NUMBER;
ClientDataSet.FieldByName('Mobile').AsString := PhoneHeadList[iCount].CELLULAR_TELEPHONE_NUMBER;
ClientDataSet.FieldByName('Company').AsString := PhoneHeadList[iCount].COMPANY_MAIN_PHONE_NUMBER;
ClientDataSet.FieldByName('Home').AsString := PhoneHeadList[iCount].HOME_TELEPHONE_NUMBER;
ClientDataSet.FieldByName('Home2').AsString := PhoneHeadList[iCount].HOME2_TELEPHONE_NUMBER;
ClientDataSet.FieldByName('HomeFax').AsString := PhoneHeadList[iCount].HOME_FAX_NUMBER;
ClientDataSet.FieldByName('ISDN').AsString := PhoneHeadList[iCount].ISDN_NUMBER;
ClientDataSet.FieldByName('Other').AsString := PhoneHeadList[iCount].OTHER_TELEPHONE_NUMBER;
ClientDataSet.FieldByName('PrimaryFax').AsString := PhoneHeadList[iCount].PRIMARY_FAX_NUMBER;
ClientDataSet.FieldByName('Primary').AsString := PhoneHeadList[iCount].PRIMARY_TELEPHONE_NUMBER;
ClientDataSet.FieldByName('Radio').AsString := PhoneHeadList[iCount].RADIO_TELEPHONE_NUMBER;
ClientDataSet.FieldByName('Telex').AsString := PhoneHeadList[iCount].TELEX_NUMBER;
ClientDataSet.FieldByName('TTYTDD').AsString := PhoneHeadList[iCount].TTYTDD_PHONE_NUMBER;
//
ClientDataSet.Post;
end;
finally
PhoneHeadList := nil;
end;
end;
Download Request #23 as Compiled Application
Download Project (DELPHI 10.4) ZIP file
Source Code: In package

