Kriegst Du eine Fehlermeldung, wenn Du vor dem Funktionsaufruf _OL_ErrorNotify(2) einbaust?
Outlook Mail mit eingebetteten Bildern im Body Text als versteckte Anhänge
-
Concara -
15. Juni 2022 um 15:42 -
Erledigt
-
-
Ich habe einen Screenshot mit STRG+V in eine Mail kopiert und dann das folgende Skript ausgeführt, im Outlook Explorer die Mail selectiert und erhalte folgende Informationen:
Code
Alles anzeigen#include <OutlookEX.au3> Global $oOutlook = _OL_Open() Global $oExplorer = $oOutlook.ActiveExplorer MsgBox(0, "", "Select item") Global $aSelected = _OL_FolderSelectionGet($oOutlook) Global $oAttachment = $aSelected[1][0].Attachments(1) Global $vProperty = $oAttachment.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E") ConsoleWrite("Content ID : " & $vProperty & @CRLF) $vProperty = $oAttachment.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3713001E") ConsoleWrite("Content Location: " & $vProperty & @CRLF) $vProperty = $oAttachment.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x37050003") ConsoleWrite("Method : " & $vProperty & @CRLF) $vProperty = $oAttachment.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x37140003") ConsoleWrite("Flags : " & $vProperty & @CRLF)
ZitatContent ID : image001.png@01D88269.19876430
Content Location:
Method : 1
Flags : 4
-
Hi!
Gut dann war ich nicht ganz auf dem Holzweg.
Also wenn man es auf das Outlook.jpg Beispiel anwendet, erhält man.
ZitatContent ID :
Content Location: The_Outlook.jpg
Method : 1
Flags : 0
Danke für deine Bemühung
Wie kann ich jetzt diese Eigenschaften ändern?
Mit _OL_ItemModify? Und wenn ja wie
-
Ich hab jetzt wieder die deine _OL_ItemAttachmentGet missbraucht.
Kannst du mir da einen "sauberen" Weg zeigen, wie man "http://schemas.microsoft.com/mapi/proptag/0x3712001E" setzt
Wenn man "http://schemas.microsoft.com/mapi/proptag/0x3712001E" setzt dann schaut das sehr gut aus mit Outlook Thunderbird und K-9
AutoIt
Alles anzeigen#include <OutlookEX.au3> #include <debug.au3> _OL_ErrorNotify(2) $oOutlook = _OL_Open() $oMail = _OL_ItemCreate($oOutlook, $olMailItem, "*", "", "Subject=TestMail", "BodyFormat=" & $olFormatHTML, _ 'HTMLBody=This is a picture.<img src="cid:test">This is more text.') If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error creating a mail item. @error = " & @error & ", @extended = " & @extended) $oItem = _OL_ItemAttachmentAdd($oOutlook, $oMail, Default, @ScriptDir & "\The_Outlook.JPG, 1, 0") If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error adding an attachment to the mail item. @error = " & @error & ", @extended = " & @extended) ;_OL_ItemModify($oOutlook, $oItem, Default, "http://schemas.microsoft.com/mapi/proptag/0x3712001E=test") $aOutlookinfo = _OL_ItemAttachmentGet2($oOutlook, $oMail, Default) _DebugArrayDisplay($aOutlookinfo, "Outlookinfo", "", 0, Default, "Object to the attachment|DisplayName|FileName|PathName|Position|Size|Type|Index|Class|BlockLevel|0x3712001E|0x3713001E|0x37050003|0x37140003") $asplit = StringSplit("Object to the attachment|DisplayName|FileName|PathName|Position|Size|Type|Index|Class|BlockLevel|0x3712001E|0x3713001E|0x37050003|0x37140003", "|") For $i = 1 To UBound($aOutlookinfo, 2) - 1 ConsoleWrite($asplit[$i + 1] & @TAB & " --> " & @TAB & $aOutlookinfo[1][$i] & @CRLF) Next _OL_ItemRecipientAdd($oOutlook, $oMail, Default, $olBCC, "test@test.com") ;_OL_ItemSend($oOutlook, $oMail, Default) ;$oMail.Display _OL_Close($oOutlook) ; #FUNCTION# ==================================================================================================================== ; Name ..........: _OL_ItemAttachmentGet ; Description ...: Returns a list of attachments of an item. ; Syntax.........: _OL_ItemAttachmentGet($oOL, $vItem[, $sStoreID = Default]) ; Parameters ....: $oOL - Outlook object returned by a preceding call to _OL_Open() ; $vItem - EntryID or object of the item ; $sStoreID - [optional] StoreID where the EntryID is stored (default = users mailbox) ; Return values .: Success - two-dimensional one based array with the following information: ; |0 - Object to the attachment ; |1 - DisplayName: String representing the name, which does not need to be the actual file name, displayed below the icon representing the embedded attachment ; |2 - FileName: String representing the file name of the attachment ; |3 - PathName: String representing the full path to the linked attached file ; |4 - Position: Integer indicating the position of the attachment within the body of the item ; |5 - Size: Integer indicating the size (in bytes) of the attachment ; |6 - Type: OlAttachmentType constant indicating the type of the specified object ; Failure - Returns 0 and sets @error: ; |1 - No Outlook item specified ; |2 - Item could not be found. EntryID might be wrong ; |3 - Item has no attachments ; Author ........: water ; Modified.......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: Yes ; =============================================================================================================================== Func _OL_ItemAttachmentGet2($oOL, $vItem, $sStoreID = Default) If Not IsObj($vItem) Then If StringStripWS($vItem, BitOR($STR_STRIPLEADING, $STR_STRIPTRAILING)) = "" Then Return SetError(1, 0, 0) $vItem = $oOL.Session.GetItemFromID($vItem, $sStoreID) If @error Then Return SetError(2, @error, 0) EndIf If $vItem.Attachments.Count = 0 Then Return SetError(3, 0, 0) Local $aAttachments[$vItem.Attachments.Count + 1][14] = [[$vItem.Attachments.Count, 14]] Local $iIndex = 1 For $oAttachment In $vItem.Attachments $aAttachments[$iIndex][0] = $oAttachment $aAttachments[$iIndex][1] = $oAttachment.DisplayName $aAttachments[$iIndex][2] = $oAttachment.FileName $aAttachments[$iIndex][3] = $oAttachment.PathName $aAttachments[$iIndex][4] = $oAttachment.Position $aAttachments[$iIndex][5] = $oAttachment.Size $aAttachments[$iIndex][6] = $oAttachment.Type $aAttachments[$iIndex][7] = $oAttachment.Index $aAttachments[$iIndex][8] = $oAttachment.Class $aAttachments[$iIndex][9] = $oAttachment.BlockLevel $oAttachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", "test") $aAttachments[$iIndex][10] = $oAttachment.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E") $aAttachments[$iIndex][11] = $oAttachment.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3713001E") $aAttachments[$iIndex][12] = $oAttachment.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x37050003") $aAttachments[$iIndex][13] = $oAttachment.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x37140003") $iIndex += 1 Next Return $aAttachments EndFunc ;==>_OL_ItemAttachmentGet2
-
Moin,
ich habe absolut keine Ahnung und habe Outlook auch noch nie benutzt. Aber ich habe ein Beispiel und einige vielleicht hilfreiche Links gefunden:
HTML
Alles anzeigenpublic void SendEmailViaOutlook() { String htmlTemplate = "<html>\n"; htmlTemplate += " <head>\n"; htmlTemplate += " <style type=\"text//css\">\n"; htmlTemplate += " #Header {border-width: 1; border: solid; text-align: center}\n"; htmlTemplate += " #Content {border-width: 1; border: solid; text-align: center}\n"; htmlTemplate += " #Footer {border-width: 1; border: solid; text-align: center}\n"; htmlTemplate += " </style>\n"; htmlTemplate += " </head>\n"; htmlTemplate += " <body>\n"; htmlTemplate += " <table>\n"; htmlTemplate += " <tr><td><img src=\"cid:companylogo.jpg@embed\"/></td></tr>\n"; htmlTemplate += " <tr><td><div id=\"Header\">$HEADER$</div></td></tr>\n"; htmlTemplate += " <tr><td><div id=\"Contentr\">$CONTENT$</div></td></tr>\n"; htmlTemplate += " <tr><td><div id=\"Footer\">$FOOTER$</div></td></tr>\n"; htmlTemplate += " <tr><td><img src=\"cid:usersign.jpg@embed\"/></td></tr>\n"; htmlTemplate += " </table>\n"; htmlTemplate += " </body>n"; htmlTemplate += "</html>\n"; //the code is simplified to demostrate problem //$CONTENT etc. will be replaced by another html from custom html wysiwyg editor try { Outlook.Application outlook = new Outlook.Application(); Outlook._MailItem outLookMailMessage = outlook.CreateItem(Outlook.OlItemType.olMailItem) as Outlook._MailItem; outLookMailMessage.BodyFormat = Outlook.OlBodyFormat.olFormatHTML; outLookMailMessage.HTMLBody = htmlTemplate; outLookMailMessage.Subject = this.Subject; outLookMailMessage.Recipients.Add("somenone@somewhere.com"); path = ""; //set some path to folder with images Outlook.Attachment attachment1 = outLookMailMessage.Attachments.Add(path, Outlook.OlAttachmentType.olEmbeddeditem, null, ""); attachment1.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", "companylogo.jpg@EMBED"); Outlook.Attachment attachment2 = outLookMailMessage.Attachments.Add(path, Outlook.OlAttachmentType.olEmbeddeditem, null, ""); attachment2.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", "usersign.jpg@EMBED"); outLookMailMessage.Send(); outLookMailMessage = null; } catch (System.Exception ex) { MessageBox.Show(ex.Message); } }
Den Tag ContentId gibt es als ANSI (0x001E) und als Unicode (0x001F) Typ. Vielleicht funktioniert Unicode besser.
-
Das funktioniert bei mir:
Code
Alles anzeigen#include <OutlookEX.au3> ; ***************************************************************************** ; Create test environment ; ***************************************************************************** Global $oOutlook = _OL_Open() If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error creating a connection to Outlook. @error = " & @error & ", @extended = " & @extended) Global $Result = _OL_TestEnvironmentCreate($oOutlook) If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF - Manage Test Environment", "Error creating the test environment. @error = " & @error & ", @extended = " & @extended) ; ***************************************************************************** ; Example 1 ; Embed a file in a mail ; ***************************************************************************** _OL_ErrorNotify(2) Global $aOL_Item = _OL_ItemFind($oOutlook, "*\Outlook-UDF-Test\SourceFolder\Mail", $olMail, "", "", "", "EntryID") If $aOL_Item[0][0] = 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemAttachmentAdd Example Script", "Could not find a mail item in folder 'Outlook-UDF-Test\SourceFolder\Mail'. @error = " & @error) ; Get the object of the mail item Global $oItem = _OL_ItemGet($oOutlook, $aOL_Item[1][0], Default, -1) ; Create the attachment Global $oAttachment = $oItem.Attachments.Add("H:\tools\AutoIt3\OutlookEX\The_Outlook.jpg", $olEmbeddeditem, Default, "") ; Embed the attachment $oAttachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", "The_Outlook.jpg@EMBED"); ; Display item $oItem.Display MsgBox(64, "OutlookEX UDF: _OL_ItemAttachmentAdd Example Script", "A link to the file was successfully added to the mail item!") _OL_Close($oOutlook)
-
Mein Skript baut auf Deinem Beispiel auf. Gefunden unter: c# - Send email with embedded image without using wordeditor - Stack Overflow
-
Hallo Water!
Mit deinem Code erhalte ich:
Was ich auch nicht ganz verstehe ist warum deine Funktion _OL_ItemAttachmentAdd nicht das Attachmentobject zurück gibt?
Laut dem Beschreibungstext der Funktion sollte das doch sein?
Damit sollte man doch auch PropertyAccessor setzen können?
Das Beispiel unten funktioniert aber nicht.
Zitat; #FUNCTION# ====================================================================================================================
; Name ..........: _OL_ItemAttachmentAdd
; Description ...: Adds one or more attachments to an item.
; Syntax.........: _OL_ItemAttachmentAdd($oOL, $vItem, $sStoreID, $vP1[, $vP2 = ""[, $vP3 = ""[, $vP4 = ""[, $vP5 = ""[, $vP6 = ""[, $vP7 = ""[, $vP8 = ""[, $vP9 = ""[, $vP10 = ""[, $sDelimiter = ","]]]]]]]]]])
; Parameters ....: $oOL - Outlook object returned by a preceding call to _OL_Open()
; $vItem - EntryID or object of the item
; $sStoreID - StoreID where the EntryID is stored. Use the keyword "Default" to use the users mailbox
; $vP1 - The source of the attachment. This can be a file (represented by the full file system path (drive letter or UNC path) with a file name) or an
; +Outlook item (EntryId or object) that constitutes the attachment
; +or a zero based one-dimensional array with unlimited number of attachments.
; |Every attachment parameter can consist of up to 4 sub-parameters separated by commas or parameter $sDelimiter:
; | 1 - Source: The source of the attachment as described above
; | 2 - (Optional) Type: The type of the attachment. Can be one of the OlAttachmentType constants (default = $olByValue)
; | 3 - (Optional) Position: For RTF format. Position where the attachment should be placed within the body text (default = Beginning of the item)
; | 4 - (Optional) DisplayName: For RTF format and Type = $olByValue. Name is displayed in an Inspector object or when viewing the properties of the attachment
; $vP2 - [optional] Same as $vP1 but no array is allowed
; $vP3 - [optional] Same as $vP2
; $vP4 - [optional] Same as $vP2
; $vP5 - [optional] Same as $vP2
; $vP6 - [optional] Same as $vP2
; $vP7 - [optional] Same as $vP2
; $vP8 - [optional] Same as $vP2
; $vP9 - [optional] Same as $vP2
; $vP10 - [optional] Same as $vP2
; $sDelimiter - [optional] Delimiter to separate the sub-parameters of the attachment parameters $vP1 - $vP10 (default = ",")
; Return values .: Success - Item object
; Failure - Returns 0 and sets @error:
; |1 - No Outlook item specified
; |2 - Item could not be found. EntryID might be wrong
; |3 - Error adding attachment to the item list. @extended = number of the invalid attachment (zero based)
; |4 - Attachment could not be found. @extended = number of the invalid attachment (zero based)
; Author ........: water, seadoggie01
; Modified.......:
; Remarks .......: $vP2 to $vP10 will be ignored if $vP1 is an array of attachments.
; For more details about sub-parameters 2-4 please check MSDN for the Attachments.Add method
; Related .......:
; Link ..........:
; Example .......: Yes
; ===============================================================================================================================
Ca. so:
AutoIt$oItem = _OL_ItemAttachmentAdd($oOutlook, $oMail, Default, $sPicturePath & ", 1, 0") If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error adding an attachment to the mail item. @error = " & @error & ", @extended = " & @extended) $oItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", $ContentID)
-
Hier der Code der soweit das macht, was ich erreichen will.
Die Bilder Outlook.png und The_Outlook.jpg müssen dazu im Scriptordner vorhanden sein.
Beide sind in der OutlookUDF von Water enthalten.
AutoIt
Alles anzeigen#include <OutlookEX.au3> Global $oOutlook = _OL_Open() _OL_ErrorNotify(2) Global $iCount Global $ContentID = "@" & Hex(@YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC, 12) Global $oMail = _OL_ItemCreate($oOutlook, $olMailItem, "*", "", "Subject=TestMail", "BodyFormat=" & $olFormatHTML, _ 'HTMLBody=This is a picture.<img src="cid:Outlook.png' & $ContentID & '">This is more text.<img src="cid:The_Outlook.jpg' & $ContentID & '">') If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error creating a mail item. @error = " & @error & ", @extended = " & @extended) _AttachmentAdd(@ScriptDir & "\Outlook.png") _AttachmentAdd(@ScriptDir & "\The_Outlook.jpg") _OL_ItemRecipientAdd($oOutlook, $oMail, Default, $olBCC, "test.test@test.com") _OL_ItemSend($oOutlook, $oMail, Default) _OL_Close($oOutlook) Func _AttachmentAdd($sPicturePath) Local $PicName = StringTrimLeft($sPicturePath, StringInStr($sPicturePath, "\", 0 , -1)); & "@" $oItem = _OL_ItemAttachmentAdd($oOutlook, $oMail, Default, $sPicturePath & ", 1, 0") If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error adding an attachment to the mail item. @error = " & @error & ", @extended = " & @extended) $aOutlookinfo = _OL_ItemAttachmentGet($oOutlook, $oMail, Default) $iCount += 1 $aOutlookinfo[$iCount][0].PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", $PicName & $ContentID) EndFunc ;==>_AttachmentAdd
-
OK ich habe es herausbekommen.
Man muss natürlich die Attachments ansprechen.
Hier also der funktionierende Code ohne extra die Eigenschaften der Attachments auszulesen.
AutoIt
Alles anzeigen#include <OutlookEx.au3> $oOutlook = _OL_Open() _OL_ErrorNotify(2) ; ***************************************************************************** ; Example 4 ; Create a html mail plus two attachments (plus one inline picture = attachment) ; but don't send it ; Inline picture using Content-ID ; http://stackoverflow.com/questions/9158706/how-to-embed-an-image-on-an-outlook-2007-vsto ; ***************************************************************************** ; Create the item without setting the body. We first need to add the picture before we can refer to in by the HTML body. $oItem = _OL_ItemCreate($oOutlook, $olMailItem, "*", "", "Subject=TestMail", "BodyFormat=" & $olFormatHTML) If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error creating a mail in folder 'Outlook-UDF-Test\TargetFolder\Mail'. @error = " & @error & ", @extended = " & @extended) ; Add all attachments $oItem = _OL_ItemAttachmentAdd($oOutlook, $oItem, Default, @ScriptDir & "\The_Outlook.jpg, 1, 0") If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error adding an attachment to a mail in folder 'Outlook-UDF-Test\TargetFolder\Mail'. @error = " & @error & ", @extended = " & @extended) $oItem.Attachments(1).PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", "The_Outlook.jpg") $oItem = _OL_ItemAttachmentAdd($oOutlook, $oItem, Default, @ScriptDir & "\Outlook.png, 1, 0") If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error adding an attachment to a mail in folder 'Outlook-UDF-Test\TargetFolder\Mail'. @error = " & @error & ", @extended = " & @extended) $oItem.Attachments(2).PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", "Outlook.png") ; Modify the item to add HTML that refers to the picture $oItem = _OL_ItemModify($oOutlook, $oItem, Default, "HTMLBody=Bodytext in <b>bold</b><img src='cid:The_Outlook.jpg'>Embedded image.Bodytext in <b>bold</b><img src='cid:Outlook.png'>Embedded image.") If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error modifying the item in folder 'Outlook-UDF-Test\TargetFolder\Mail'. @error = " & @error & ", @extended = " & @extended) _OL_ItemRecipientAdd($oOutlook, $oItem, Default, $olBCC, "test.test@test.com") _OL_ItemSend($oOutlook, $oItem, Default) If @error <> 0 Then Exit Else MsgBox(64, "OutlookEX UDF: _OL_ItemCreate Example Script", "Mail with inline picture created.") Endif
-
Hab mir gerade die UDF angesehen. Sie gibt tatsächlich das Objekt des Mail-Items zurück. Für die weitere Verwendung wäre natürlich das Objekt des Attachments sinnvoll.
Ich schaue mir das noch an und prüfe, wie ich das bei den anderen Funktionen gelöst habe - damit die UDF konsistent bleibt.
Eventuell passe ich dann die UDF entsprechend an. Was natürlich ein SCRIPT BREAKING CHANGE wäre -
Die Idee ist nun, über eine Funktion Optionen für die UDF zu setzen. Dies würde Script Breaking Changes vermeiden.
Damit könnte man dann angeben, ob die Funktionen der UDF das Objekt des Items (in Deinem Beispiel das Objekt der Mail) oder das angelegte Objekt (in Deinem Fall das Attachment) zurückgeben sollen.
Dies würde für alle Add und Create Funktionen gelten,Was hältst Du davon?
-
Ich halte davon viel.
Und alle die deine UDF verwenden und aktuell halten, werden es dir danken, wenn sie nichts an ihren Programmen umändern müssen.
-
Wenn es bloss so einfach wäre.
Mit _OL_AttachmentAdd kann man ja mehr als eine Datei anhängen. Welches Objekt soll in diesem Fall zurückgegeben werden? Des ersten Attachments, des letzten? Oder ein Array mit allen Attachment-Parametern und dem jeweiligen Objekt dazu?
Dies gilt auch für _OL_ItemRecipientAdd.
Weitere betroffene Funktionen sind:
_OL_CategoryAdd
_OL_MailSignatureCreate
_OL_UserpropertyAdd
-
Das ist für mich auch schwierig zu beurteilen.
Die Arbeit hast du und wie viel es bringt kann ich dir auch nicht sagen.
Eventuell können andere dir da mehr Rückmeldung geben.
Ob das allerdings wer liest hier ist auch fraglich.
-
Ich verwende zwar kein OL, aber meine Gedanken zur UDF-Gestaltung:
Die Idee ist nun, über eine Funktion Optionen für die UDF zu setzen. Dies würde Script Breaking Changes vermeiden.
Ist sicher der effektivste Weg.
Wenn es bloss so einfach wäre.
Mit _OL_AttachmentAdd kann man ja mehr als eine Datei anhängen. Welches Objekt soll in diesem Fall zurückgegeben werden? Des ersten Attachments, des letzten? Oder ein Array mit allen Attachment-Parametern und dem jeweiligen Objekt dazu?
Könnte man vielleicht so handhaben (Variablen etc. frei erfunden, nur zur Verdeutlichung des Prinzips)
AutoIt
Alles anzeigenGlobal Const $OL_RET_OBJSELF = 0x1 Global Const $OL_RET_ATTACHARRAY = 0x2 Global Const $OL_RET_ATTACHITEM = 0x3 Global $g_ReturnType = $OL_RET_OBJSELF Global $g_ReturnItem Func _OL_SetReturnOpt($_Type=$OL_RET_OBJSELF, $_Number=Null) $g_ReturnType = $_Type $g_ReturnItem = $_Number EndFunc Func _OL_AnyFunc($oOL, ...) ... ... ; ein Array $aRet wird in der Func befüllt ... Switch $g_ReturnType Case $OL_RET_OBJSELF Return $oOL Case $OL_RET_ATTACHARRAY Return $aRet Case $OL_RET_ATTACHITEM Return $aRet[$g_ReturnItem] EndSwitch EndFunc
-
Es lass es vorläufig wie es ist.
Da sonst noch niemand Probleme in diese Richtung hatte, scheint der Bedarf nicht allzu groß zu sein.
Die Funktion um Optionen für die UDF zu setzen bleibt aber drin - für später
BugFix : Unsere Posts haben sich überschnitten. Deine Lösung werde ich vormerken und bei Bedarf darauf zurückkommen. Danke auf jeden Fall.
-