Hi,
ich kann zwar kaum glauben, dass das noch niemand gefragt hat, aber die Suche liefert mir keinen Treffer ...
Also: Ich möchte aus meiner Applikation dem User die Möglichkeit geben, Aufgaben (in diesem Falle sie Überprüfung/Wiedervorlage eines Vorgangs) in dieOutlook-Tasks aufzunehmen, und zwar nicht nur in die eigene, sondern auch in fremde. Der entsprechende Code dazu sieht folgendermaßen aus:
[highlight=vbnet]
Dim oApp As Object = Nothing 'Outlook.Application
Dim task As Object = Nothing 'Outlook.TaskItem
Try
oApp = GetObject(, "Outlook.Application")
If menge.MengeMinus(ctlWiedervorlage.ctlPartnerIDs, session.Benutzer.Partner.PartnerID) <> "" Then
task = oApp.CreateItem(3) 'olTaskItem
task.Body = "Wiedervorlage/Überprüfung des Prisma-Vorgangs " & pVorgangID & "(" & txtTitel.Text & ")"
task.Assign()
task.DueDate = ctlWiedervorlage.ctlDate
task.ReminderSet = True
task.Subject = "Prisma-Aufgabe: Überprüfung Vorgang " & pVorgangID
Dim CountRecipients = strPartCount(ctlWiedervorlage.ctlPartnerIDs, ",")
For i As Integer = 1 To CountRecipients
Dim RecID As Integer = zahl.getLng(strPart(ctlWiedervorlage.ctlPartnerIDs , i, ","))
If RecID <> session.Benutzer.Partner.PartnerID Then task.Recipients.Add(New clsPartner(RecID).Email)
Next
'task.Display()
task.Send()
End If
If menge.enthaelt(ctlWiedervorlage.ctlPartnerIDs, session.Benutzer.Partner.PartnerID) Then
task = oApp.CreateItem(3)
task.Body = "Wiedervorlage/Überprüfung des Prisma-Vorgangs " & pVorgangID & "(" & txtTitel.Text & ")"
task.DueDate = ctlWiedervorlage.ctlDate
task.ReminderSet = True
task.Subject = "Prisma-Aufgabe: Überprüfung Vorgang " & pVorgangID
task.Save()
End If
Catch ex As Exception
ShowInternalError("Fehler beim Erzeugen des TaskItems: " & ex.Message & vbCrLf & vbCrLf & ex.StackTrace)
Finally
If task IsNot Nothing Then
System.Runtime.InteropServices.Marshal.FinalReleas eComObject(task)
task = Nothing
End If
If oApp IsNot Nothing Then
System.Runtime.InteropServices.Marshal.FinalReleas eComObject(oApp)
oApp = Nothing
End If
Application.DoEvents()
End Try
[/highlight]
Das Problem, das ich jetzt habe ist, dass in dem Moment, wo ich den Task per Assign() in ein TaskRequestItem umwandle, in Outlook eigentlich zwei Felder auftauchen "Aktualisierte Kopie in meiner Aufgabenliste speichern" und "Statusbericht an mich senden", die standardmäßig angehakt sind. Da ich das Fenster aber nicht mehr anzeige, sondern den task sofort versende, bekäme der Sender momentan diesen Task zur Überwachung bei sich eingetragen, egal ob er sich darum kümmern muss oder nicht. Diese Haken müsste ich also programmtechnisch entfernen, ich finde diese Felder aber nicht in der Objektbeschreibung des TaskItem Objektes auf MSDN. Es gibt zwar so etwas wie StatusOnCompletionRecipients, aber das ist soweit ich das verstanden habe nur interessant, wenn ich per Programm einen Statusreport für ein TaskItem versenden will.
Wie kann ich diese Optionen entfernen?
Mit freundlichen Grüßen
Martin Dietz
ich kann zwar kaum glauben, dass das noch niemand gefragt hat, aber die Suche liefert mir keinen Treffer ...
Also: Ich möchte aus meiner Applikation dem User die Möglichkeit geben, Aufgaben (in diesem Falle sie Überprüfung/Wiedervorlage eines Vorgangs) in dieOutlook-Tasks aufzunehmen, und zwar nicht nur in die eigene, sondern auch in fremde. Der entsprechende Code dazu sieht folgendermaßen aus:
[highlight=vbnet]
Dim oApp As Object = Nothing 'Outlook.Application
Dim task As Object = Nothing 'Outlook.TaskItem
Try
oApp = GetObject(, "Outlook.Application")
If menge.MengeMinus(ctlWiedervorlage.ctlPartnerIDs, session.Benutzer.Partner.PartnerID) <> "" Then
task = oApp.CreateItem(3) 'olTaskItem
task.Body = "Wiedervorlage/Überprüfung des Prisma-Vorgangs " & pVorgangID & "(" & txtTitel.Text & ")"
task.Assign()
task.DueDate = ctlWiedervorlage.ctlDate
task.ReminderSet = True
task.Subject = "Prisma-Aufgabe: Überprüfung Vorgang " & pVorgangID
Dim CountRecipients = strPartCount(ctlWiedervorlage.ctlPartnerIDs, ",")
For i As Integer = 1 To CountRecipients
Dim RecID As Integer = zahl.getLng(strPart(ctlWiedervorlage.ctlPartnerIDs , i, ","))
If RecID <> session.Benutzer.Partner.PartnerID Then task.Recipients.Add(New clsPartner(RecID).Email)
Next
'task.Display()
task.Send()
End If
If menge.enthaelt(ctlWiedervorlage.ctlPartnerIDs, session.Benutzer.Partner.PartnerID) Then
task = oApp.CreateItem(3)
task.Body = "Wiedervorlage/Überprüfung des Prisma-Vorgangs " & pVorgangID & "(" & txtTitel.Text & ")"
task.DueDate = ctlWiedervorlage.ctlDate
task.ReminderSet = True
task.Subject = "Prisma-Aufgabe: Überprüfung Vorgang " & pVorgangID
task.Save()
End If
Catch ex As Exception
ShowInternalError("Fehler beim Erzeugen des TaskItems: " & ex.Message & vbCrLf & vbCrLf & ex.StackTrace)
Finally
If task IsNot Nothing Then
System.Runtime.InteropServices.Marshal.FinalReleas eComObject(task)
task = Nothing
End If
If oApp IsNot Nothing Then
System.Runtime.InteropServices.Marshal.FinalReleas eComObject(oApp)
oApp = Nothing
End If
Application.DoEvents()
End Try
[/highlight]
Das Problem, das ich jetzt habe ist, dass in dem Moment, wo ich den Task per Assign() in ein TaskRequestItem umwandle, in Outlook eigentlich zwei Felder auftauchen "Aktualisierte Kopie in meiner Aufgabenliste speichern" und "Statusbericht an mich senden", die standardmäßig angehakt sind. Da ich das Fenster aber nicht mehr anzeige, sondern den task sofort versende, bekäme der Sender momentan diesen Task zur Überwachung bei sich eingetragen, egal ob er sich darum kümmern muss oder nicht. Diese Haken müsste ich also programmtechnisch entfernen, ich finde diese Felder aber nicht in der Objektbeschreibung des TaskItem Objektes auf MSDN. Es gibt zwar so etwas wie StatusOnCompletionRecipients, aber das ist soweit ich das verstanden habe nur interessant, wenn ich per Programm einen Statusreport für ein TaskItem versenden will.
Wie kann ich diese Optionen entfernen?
Mit freundlichen Grüßen
Martin Dietz