Meine Absicht ist aus einer Kursverwaltung Daten (=Kurstermine =Appointments) in Outlook einzutragen.
Ich teste mit Outlook 2003, Laz 1.6.
Einges klappt ganz gut, an anderen Stellen kracht es aus nicht nachvollziehbaren Gründen, zumal die MS-Dokumentation und die MS-Beispiele Methoden vorgeben bei denen es dann zu Problemen kommt.
Ich teste mit einer kleinen Beispiel-App und allem Outlook-relevanten Code in einer eigenen Unit, die ich dem Forum zur Verfügung stellen würde.
(oder auch einen WIKI-Artikel damit bestücken)
Baustellen hab ich dzt. im Code 3 (alle mit // <<< markiert). Code liegt bei
die aktuellste ist das Auslesen und Anlegen von Categories.
Hier wird zur Laufzeit folgendes bemängelt:
<<< Method Categories not supported by automation object
Laut MS sollte das aber klappen.
Code: Alles auswählen
{ Prüft ob eine Kategorie existiert und falls nicht kann sie auch angelegt werden}
function OL_CategoryExists(sCategoryName: string; bCreateMissingCategory: boolean;
iCategoryColor: integer; iCategoryShortcutKey: integer): boolean;
var
Outlook, olCategories, olCategory, olNameSpace: olevariant;
i, NumItems: integer;
begin
Outlook := CreateOleObject('Outlook.Application');
olNameSpace := Outlook.GetNamespace('MAPI');
// olCategories := olNameSpace.Categories;
// numItems := olCategories.Count;
numItems := olNameSpace.Categories.Count; // <<< Method Categories not supported by automation object
{
laut
https://msdn.microsoft.com/en-us/librar ... 63110.aspx
sollte das eigentlich klappen
}
Result := False;
if numItems > 0 then
begin
for i := 1 to numItems do
begin
//olCategory := olCategories.Item[i];
olCategory := olNameSpace.Categories.Item[i];
// olCategory.Name is the name of the category
// olCategory.CategoryID is an internal, unique ID for the category
if olCategory.Name = sCategoryName then
begin
Result := True;
break;
end;
olCategory := Unassigned;
end;
end;
if (not Result) then
begin
if bCreateMissingCategory then
begin
//------------------------------------------------
// Kategorie erstellen: olCategories.Add
// Name...string
// Color..OlCategoryColor (optional)
// ShortcutKey.. OlCategoryShortcutKey (optional))
//------------------------------------------------
olCategories.Add(olevariant(sCategoryName), iCategoryColor);
Result := True;
end;
end;
olCategory := Unassigned;
olCategories := Unassigned;
olNameSpace := Unassigned;
Outlook := Unassigned;
end;
Ich weiß dass das Durcharbeiten von fremdem Code meist eine Herausforderung ist, zumal etliches an Kommentaren und Schnipseln noch drin ist.
Aber vielleicht gibt es jmd der mir dabei weiterhelfen kann ..
THX