Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создать новый Outlook Contact? 
:(
    Опции темы
Poseidon
Дата 19.5.2005, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: нет
Всего: 133



Код
uses 
  ComObj, Variants, SysUtils; 

type 
  TContact = record 
    LastName: string; 
    FirstName : string; 
    Company : string; 
    // ###  Further properties. See MSDN 
  end; 


  //------------------------------------------------------------------------------ 
{:Add outlook contact 

@param ContactFolderPath The contact path. E.g.: '' for default contact folder, 
  'SubFolder\Sub2\Test' for subfolders 
@param Contact The contact informations. 
@author 19.09.2003 Michael Klemm} 
  //------------------------------------------------------------------------------ 
procedure OutlookAddContact(ContactFolderPath : string; Contact : TContact); 
const 
  olFolderContacts = $0000000A; 
var 
  Outlook : OleVariant; 
  NameSpace : OleVariant; 
  ContactsRoot : OleVariant; 
  ContactsFolder : OleVariant; 
  OutlookContact : OleVariant; 
  SubFolderName : string; 
  Position : integer; 
  Found : boolean; 
  Counter : integer; 
  TestContactFolder : OleVariant; 
begin 
  // Connect to outlook 
  Outlook := CreateOleObject('Outlook.Application'); 
  // Get name space 
  NameSpace := Outlook.GetNameSpace('MAPI'); 
  // Get root contacts folder 
  ContactsRoot := NameSpace.GetDefaultFolder(olFolderContacts); 
  // Iterate to subfolder 
  ContactsFolder := ContactsRoot; 
  while ContactFolderPath <> '' do 
  begin 
    // Extract next subfolder 
    Position := Pos('\', ContactFolderPath); 
    if Position > 0 then 
    begin 
      SubFolderName := Copy(ContactFolderPath, 1, Position - 1); 
      ContactFolderPath := Copy(ContactFolderPath, Position + 1, Length(ContactFolderPath)); 
    end 
    else 
    begin 
      SubFolderName := ContactFolderPath; 
      ContactFolderPath := ''; 
    end; 
    if SubFolderName = '' then 
      Break; 
    // Search subfolder 
    Found := False; 
    for Counter := 1 to ContactsFolder.Folders.Count do 
    begin 
      TestContactFolder := ContactsRoot.Folders.Item(Counter); 
      if LowerCase(TestContactFolder.Name) = LowerCase(SubFolderName) then 
      begin 
        ContactsFolder := TestContactFolder; 
        Found := True; 
        Break; 
      end; 
    end; 
    // If not found create 
    if not Found then 
      ContactsFolder := ContactsFolder.Folders.Add(SubFolderName); 
  end; 
  // Create contact item 
  OutlookContact := ContactsFolder.Items.Add; 
  // Fill contact information 
  OutlookContact.FirstName := Contact.FirstName; 
  OutlookContact.LastName := Contact.LastName; 
  OutlookContact.CompanyName := Contact.Company; 

  // ### Further properties 

  // Save contact 
  OutlookContact.Save; 
  // Disconnect from outlook 
  Outlook := Unassigned; 
end; 



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0688 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.