Отказ от ответственности: Определенно возможно сделать это через COM, но Outlook отобразит предупреждения о том, что стороннее приложение обращается к адресной книге (и это справедливо). Если вы хотите избежать этих предупреждений, вы можете запустить код из надстройки Outlook, прибегнуть к MAPI или использовать Погашение Outlook , которое в основном представляет собой расширенную оболочку для MAPI, напоминающую объект Outlook. Модель.
Объектная модель Outlook предлагает диалоговое окно SelectNamesDialog для отображения адресной книги. Он легко настраивается, и вы также можете инициализировать его с помощью пользовательских наборов адресов.
В качестве небольшого примера приведем код, который всплывает в адресной книге в режиме множественного выбора. Для краткости он использует позднюю привязку (OleVariants). Возможно, вы захотите использовать раннее связывание в производственном коде.
procedure TForm1.Button1Click(Sender: TObject);
var
application: OleVariant;
dialog: OleVariant;
i: Integer;
recipients: String;
recipient: OleVariant;
begin
application := createOleObject( 'Outlook.Application' );
// Obtain the dialog
dialog := application.session.getSelectNamesDialog;
// Only show the a single 'add' field, multiselect
dialog.setDefaultDisplayMode( 6 ); // 6 = olDefaultDelegates
// Display the dialog
dialog.display;
// Display selection
recipients := '';
for i := 1 to dialog.recipients.count do
begin
recipient := dialog.recipients.item( i );
recipients := recipients + recipient.name + #13#10;
end;
showMessage( recipients );
end;