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/library/office/ff863110.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;
Aber vielleicht gibt es jmd der mir dabei weiterhelfen kann ..
THX