Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   CDO.DLL Creacion/Modificacion (https://www.clubdelphi.com/foros/showthread.php?t=32374)

Enan0 04-06-2006 02:25:20

CDO.DLL Creacion/Modificacion
 
aca dejo documantada informacion sobre como crear modificar y borrar citas en Outlook. lo dejo aca porque no se donde se postea
Si esta mal pido disculpas.
Saludos....


Código Delphi [-]
(* OBtener las Citas desde outlook*) (* se debe Impotar la Libreria Microsoft CDO .... desde
Proyects -> import Lybrary*) (*Luego debe ser agregada en el USES la UNIT
 MAPI_TLB, Recomiendo ponerla en la carpeta de trabajo asi tenes acceso
 a su informacion haciendo CTRL+CLIck*)  Var    F:Folder; //Carptea donde se almacenan los datos
   login :_Session; //Sesion dentro de outlook
   msgs:mapi_tlb.messages; //Lista Total de mensajes seleccionados
   msg:mapi_tlb.appointmentitem;//Mensaje (item)
   CnxTxt:string;
   aux:string;
   I:integer;

begin    login:=nil;
   //creo el objecto de connección.
   login:=CoSession.Create;
   //Conformacion de la cadena de conexion para loguearse en un servidor de Exchange.
   a:= trim(trim('ServerName') +#10+trim('UserName'));
   login.Logon('','',true,true,0,true,a);
   //Obtengo la Carpeta donde se almacenan las Citas
   //esta informacion se encuentra en la CDO.DLL
   f:=idispatch(login.GetDefaultFolder(0)) as mapi_tlb.folder;
   //Obtengo Toda la lista de Mensajes almacenados
   msgs:= idispatch(f.messages) as mapi_tlb.messages;
   //Realizo un Filtrado para obtener solo las Citas
   //esto puede ser mas especifico como filtrar por fechas Etc
   //se obtiene el primer item de la lista.
   msg:=Idispatch(msgs.GetFirst('IPM.Appointment')) as appointmentitem;
   while msg<>nil do    begin        memo1.lines.add('*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*');
       memo1.lines.add('Subject: ' + string(msg.subject));
       memo1.lines.add('ID: ' + string(msg.id));
       Memo1.lines.add('Start Date: ' + string(msg.starttime));
       Memo1.lines.add('End Date: ' + string(msg.endtime));
       Memo1.lines.add('TimeCreated: ' + string(msg.TimeCreated));
       memo1.lines.add('*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*');
       //los nombre de los Campos los podes obtener de la mapi_tlb
       //Obtengo el Siguiente iTem de la lista
       msg:=Idispatch(msgs.GetNext ) as AppointmentItem;
    end;

    //PAra modificar algun valor simplemente asignarle el nuevo valor al campo
    //y finalmente ejecutar:'
    // msg.Update(true,True);
 // Ejemplo voy a editar a todas las Descripciones agregandoles el numero de Item
   msg:=Idispatch(msgs.GetFirst('IPM.Appointment')) as appointmentitem;
   i:=1;
   while msg<>nil do    begin       aux:=msg.subject;       msg.subject:=aux + ' Item Nº: (' + inttostr(i) +')';
      msg.update(true,True);
      inc(i);
      msg:=Idispatch(msgs.GetNext ) as AppointmentItem;
    end;


//Para borrar simplemente llamar el metodo
 msg.delete;   end;

// Crear nueva CITA
 Const   CdoPropSetID1 = '0220060000000000C000000000000046'; // Used in appointment item properties. Message class: IPM.Appointment
  CdoPropSetID2 = '0320060000000000C000000000000046'; // Used in task item properties. Message class: IPM.Task
  CdoPropSetID3 = '0420060000000000C000000000000046'; // Used in contact item properties. Message class: IPM.Contact
  CdoPropSetID4 = '0820060000000000C000000000000046'; // Common Outlook ID. Used with common contact, task and appointment item properties (e. g. reminders)
  CdoPropSetID5 = '2903020000000000C000000000000046'; // Generic MAPI ID. Used with all type of item properties (e. g. categories)
  CdoPropSetID6 = '0E20060000000000C000000000000046'; // Used in note item properties. Message class: IPM.StickyNote
  CdoPropSetID7 = '0A20060000000000C000000000000046'; // Used in journal item properties. Message class: IPM.Activity
     //TaskCategories       = 'Keywords'; {CdoPropSetID5}
  TaskReminderOverride     = '0x851C'; {CdoPropSetID4}   TaskReminderSound        = '0x851E'; {CdoPropSetID4}   TaskReminderSet          = '0x8503'; {CdoPropSetID4}   TaskReminderFile         = '0x851F'; {CdoPropSetID4}   TaskReminderTime         = '0x8502'; {CdoPropSetID4}   TaskBillingInformation   = '0x8535'; {CdoPropSetID4}   TaskMileage              = '0x8534'; {CdoPropSetID4}   TaskCompanies            = '0x8539'; {CdoPropSetID4}   TaskContactNames         = '0x853A'; {CdoPropSetID4}   TaskStartDate            = '0x8104'; {CdoPropSetID2}   TaskCommonStart          = '0x8516'; {CdoPropSetID4}   TaskDueDate              = '0x8105'; {CdoPropSetID2}   TaskCommonEnd            = '0x8517'; {CdoPropSetID4}   TaskPercentComplete      = '0x8102'; {CdoPropSetID2}   TaskDateCompleted        = '0x810F'; {CdoPropSetID2}   TaskDuration             = '0x8106'; {CdoPropSetID2}   TaskTeamTask             = '0x8103'; {CdoPropSetID2}   TaskComplete             = '0x811C'; {CdoPropSetID2}   TaskTotalWork            = '0x8111'; {CdoPropSetID2}   TaskActualWork           = '0x8110'; {CdoPropSetID2}   TaskOwner                = '0x811F'; {CdoPropSetID2}   TaskStatus               = '0x8101'; {CdoPropSetID2}   TaskIsRecurring          = '0x8126'; {CdoPropSetID2}  var   cdoAppt: MAPI_TLB.Message;
  tmpCdoApptFolder : MAPI_TLB.Folder;
  cdoApp: AppointmentItem;
  AUX:String;
  auxT:TTime;
begin          tmpCdoApptFolder := idispatch(login.GetDefaultFolder(0)) as mapi_tlb.folder;
        cdoApp:=IDispatch(tmpCdoApptFolder.Messages.Add) as AppointmentItem;
        CdoApp.Subject := 'ASUNTO';
        //Importancia
        cdoApp.Importance :=  mapiLow ;
//                              mapiNormal;
//                              mapiHigh
         //Confidencialidad: 2=privado cualquier otro = publico
        cdoApp.Sensitivity := 2;

        //se agrega el campo fecha de inicio con su valor por defecto hoy=date
        cdoApp.Fields.Add(TaskStartDate,vbDate,date,CdoPropSetID2);

        //Idem anterior Fecha de Finalizacion
        cdoApp.Fields.Add(TaskDueDate,vbDate,(date+0.1),CdoPropSetID2)
        CdoApp.StartTime := date;
        CdoApp.EndTime := date+0.1;

        //Porcentaje completo
        cdoApp.Fields.Add(TaskPercentComplete,vbInteger,0,CdoPropSetID2);
        //Fecha de finalizacion
        cdoApp.Fields.Add(TaskDateCompleted,vbDate,date,CdoPropSetID2);
        //Duracion
        cdoApp.Fields.Add(TaskDuration,vbLong,(0.1),CdoPropSetID2);
         //Ponerle Alarma
        cdoApp.Fields.Add(TaskReminderOverride,vbBoolean,False,CdoPropSetID5);
        cdoApp.Fields.Add(TaskReminderSound,vbBoolean,True,CdoPropSetID4);
        cdoApp.Fields.Add(TaskReminderSet,vbBoolean,True,CdoPropSetID4);
        cdoApp.Fields.Add(TaskReminderFile,vbString,'reminder.wav',CdoPropSetID4);
        // hora de la alarma
        cdoApp.Fields.Add(TaskReminderTime,vbDate,(strtotime('00:15')),CdoPropSetID4);

       //Sin alarma...
       (*
             Fields.Add(TaskReminderOverride,vbBoolean,True,CdoPropSetID5);
             Fields.Add(TaskReminderSound,vbBoolean,False,CdoPropSetID4);
             Fields.Add(TaskReminderSet,vbBoolean,False,CdoPropSetID4);
             Fields.Add(TaskReminderFile,vbString,'reminder.wav',CdoPropSetID4);
             Fields.Add(TaskReminderTime,vbDate,Appt.Alarm,CdoPropSetID4);
         *)           cdoApp.Fields.Add(TaskOwner,vbString,'',CdoPropSetID2);
         cdoApp.Update(True,True);

 end;

Saludos

Sotrono 04-06-2006 05:51:10

Che, muy buen aporte!!

Cita:

Empezado por Enan0
lo dejo aca porque no se donde se postea
Si esta mal pido disculpas.

Bueno por hoy pasa, pero que no se vuelva a repetir, está?? :D :D

Bytes!!

Enan0 04-06-2006 18:05:01

Cita:

Empezado por Sotrono

Bueno por hoy pasa, pero que no se vuelva a repetir, está?? :D :D

Bytes!!


:confused: mm pero sigo sin saber en donde va :D..
saludos


La franja horaria es GMT +2. Ahora son las 07:32:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi