Werner_Bayern hat geschrieben:
Code: Alles auswählen
If !empty( cAdress )
// oMail:Recipients:Add( cAdress)
oMail:setProperty("TO", cAdress)
endif
oMail:Subject := cSubject
oMail:body := cBody
oMail:Display(.t.)
oOutlook:destroy()
end sequence
Läuft grundsätzlich, wird jedoch das Mail-Fenster geschlossen ohne zu senden, erscheint der Fehler:
Unzulässige Funktion. Bei Ausführung von: Display
Warum?
weil du es nicht abfängst
ich meine jetzt nicht den ErrorBlock im Xbase++ Thread sondern den "oMail:
Display" Thread.
du verwendest
GetObject() / oder
CreateObject() und später
CreateItem(ol
MailItem)
wenn du nun mit oMail:
Display() das "Detail" Fenster aufrufst läuft das im externen activeX Thread
ich verwende statt ol
MailItem (= 0) nun für den Outlook Calender ol
AppointmentItem (= 1)
was mir ja ebenfalls ein "Detail" Fenster aufmacht der folgende Events "feuert"
Code: Alles auswählen
// Item Display Events
#define EvClose "Close"
#define EvWrite "Write"
#define EvPropertyChange "PropertyChange"
#define EvItemChange "ItemChange"
#define EvDeactivate "Deactivate"
// Outlook selbst
#define EvQuit "Quit"
die muss man nun per
SubscribeEvent() "abonnieren", aber das geht nur bei einem
ActiveXObject() welches man mit
dynamicCast() bekommt.
Code: Alles auswählen
::oOutlook := ::oOutlook:dynamicCast( ActiveXObject() )
xVar := ::oOutlook:isEventPublished( EvQuit )
IF xVar <> NIL
lSuccess := ::oOutlook:SubscribeEvent( xVar, { | a, b, c, d | IF( NIL = ::oMainApp, NIL,;
PostAppEvent( xbeE_TerminRefresh, dDate,, ::oMainApp ) ),;
PostAppEvent( xbeP_Activate,,, ::ButtonOK ) } )
IF .NOT. lSuccess
// LOGME("::oOutlook EvQuit FAIL")
ENDIF
ENDIF
::oItem := ::oItem:dynamicCast( ActiveXObject() )
xVar := ::oItem:isEventPublished( EvWrite )
IF xVar <> NIL
lSuccess := ::oItem:SubscribeEvent( xVar, { | a, b, c, d | PostAppEvent( xbeE_TerminWrite,,, Self ) } )
IF .NOT. lSuccess
// LOGME("::oItem EvWrite FAIL")
ENDIF
ENDIF
xVar := ::oItem:isEventPublished( EvClose )
IF xVar <> NIL
lSuccess := ::oItem:SubscribeEvent( xVar, { | a, b, c, d | IF( NIL = ::oMainApp, NIL,;
PostAppEvent( xbeE_TerminRefresh, dDate,, ::oMainApp ) ),;
PostAppEvent( xbeP_Activate,,, ::ButtonOK ) } )
IF .NOT. lSuccess
// LOGME("::oItem EvClose FAIL")
ENDIF
ENDIF
::oItem:Display()
ShowOnTop( TRIM( cSUBJECT ) + " - Termin" )
Werner_Bayern hat geschrieben:Und warum knallt es unter OL 2007 bei
oMail:Recipients:Add( cAdress)?
mit
Vorgang abgebrochen
hm ... dazu müsste ich mehr Code sehen worauf sich dein oMail bezieht was du mit
CreateItem() angelegt hast
( 0 = ol
MailItem, 1 = ol
AppointmentItem , ol
Recipients = 17 )
p.s. die Standardempfänger ist doch "
TO". ich kenne Recipients als "
CC"
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItem(olMailItem)
Set myRecipient = myItem.Recipients.Add ("Jon Grande")
myRecipient.Type = olCC