![]() |
If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
![]()
Need to access Appointment property by propertyname.
How to do that? Let's say I want to write a function and pass a property name and then return the value: {Delphi} function getPropValue(Propname: String): Variant; begin Result := AppointmentItem. ????? end; |
#2
|
|||
|
|||
![]() You need to handle every supported case, e.g.: Select Case Propname Case "Start": getPropValue=Item.Start Case "Subject": getPropValue=Item.Subject End Select -- Best regards Michael Bauer - MVP Outlook : Outlook Categories? Category Manager Is Your Tool : VBOffice Reporter for Data Analysis & Reporting : http://www.vboffice.net/product.html?pub=6&lang=en Am Wed, 8 Jul 2009 08:25:21 -0700 (PDT) schrieb MB34: Need to access Appointment property by propertyname. How to do that? Let's say I want to write a function and pass a property name and then return the value: {Delphi} function getPropValue(Propname: String): Variant; begin Result := AppointmentItem. ????? end; |
#3
|
|||
|
|||
![]()
Need to access Appointment property by propertyname.
How to do that? Let's say I want to write a function and pass a property name and then return the value: {Delphi} function getPropValue(Propname: String): Variant; begin * Result := AppointmentItem. ????? end; You need to handle every supported case, e.g.: Select Case Propname Case "Start": getPropValue=Item.Start Case "Subject": getPropValue=Item.Subject End Select You mean that there is no way without handling each property in a case statement? The Delphi Outlook object model does not expose the ItemProperties either. |
#4
|
|||
|
|||
![]()
Or use Item.ItemProperties.Item("property name") for simple, non-object
properties. -- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "Michael Bauer [MVP - Outlook]" wrote in message ... You need to handle every supported case, e.g.: Select Case Propname Case "Start": getPropValue=Item.Start Case "Subject": getPropValue=Item.Subject End Select -- Best regards Michael Bauer - MVP Outlook : Outlook Categories? Category Manager Is Your Tool : VBOffice Reporter for Data Analysis & Reporting : http://www.vboffice.net/product.html?pub=6&lang=en Am Wed, 8 Jul 2009 08:25:21 -0700 (PDT) schrieb MB34: Need to access Appointment property by propertyname. How to do that? Let's say I want to write a function and pass a property name and then return the value: {Delphi} function getPropValue(Propname: String): Variant; begin Result := AppointmentItem. ????? end; |
#5
|
|||
|
|||
![]()
On Jul 8, 2:32 pm, "Sue Mosher [MVP]" wrote:
Or use Item.ItemProperties.Item("property name") for simple, non-object properties. Thanks, Michael and Sue... Quote:
I am able to get it by using the code below instead of either modifying the Outlook2000.pas file or importing the Outlook TLB on my system. const EmptyDispParams: TDispParams = (rgvarg: nil; rgdispidNamedArgs: nil; cArgs: 0; cNamedArgs: 0); var intLCID: Integer; function GetDispId(const Obj: IDispatch; const Member: WideString; DispIdPtr: PInteger): Boolean; begin Result := Succeeded(Obj.GetIdsOfNames(GUID_NULL, @Member, 1, intLCID, DispIdPtr)); end; function InvokePropertyGet(const Obj: IDispatch; Name: WideString):Variant; var TheDispId, ArgErr: Integer; DispParams: TDispParams; begin if GetDispId(Obj, Name, @TheDispId) then begin DispParams := EmptyDispParams; OleCheck(Obj.Invoke(TheDispId, GUID_NULL, intLCID, DISPATCH_PROPERTYGET, DispParams, @Result, nil, @ArgErr)); end; end; // Usage: var AApptCompareFieldValue: Variant; OutlookPropertyName: WideString; begin intLCID := LOCALE_USER_DEFAULT; OutlookPropertyName := 'LastModificationTime'; AApptCompareFieldValue := InvokePropertyGet(AOutlookAppointmentItem, OutlookPropertyName); Showmessage(AApptCompareFieldValue); end; |
#6
|
|||
|
|||
![]()
ItemProperties was added in a version after Outlook 2000. I don't remember
which. Please give your Outlook version whenever you post a new issue here; it's almost always relevant. -- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "MB34" wrote in message ... On Jul 8, 2:32 pm, "Sue Mosher [MVP]" wrote: Or use Item.ItemProperties.Item("property name") for simple, non-object properties. Thanks, Michael and Sue... Quote:
In the included Outlook2000.pas file, ItemProperties is not exposed so I am able to get it by using the code below instead of either modifying the Outlook2000.pas file or importing the Outlook TLB on my system. const EmptyDispParams: TDispParams = (rgvarg: nil; rgdispidNamedArgs: nil; cArgs: 0; cNamedArgs: 0); var intLCID: Integer; function GetDispId(const Obj: IDispatch; const Member: WideString; DispIdPtr: PInteger): Boolean; begin Result := Succeeded(Obj.GetIdsOfNames(GUID_NULL, @Member, 1, intLCID, DispIdPtr)); end; function InvokePropertyGet(const Obj: IDispatch; Name: WideString):Variant; var TheDispId, ArgErr: Integer; DispParams: TDispParams; begin if GetDispId(Obj, Name, @TheDispId) then begin DispParams := EmptyDispParams; OleCheck(Obj.Invoke(TheDispId, GUID_NULL, intLCID, DISPATCH_PROPERTYGET, DispParams, @Result, nil, @ArgErr)); end; end; // Usage: var AApptCompareFieldValue: Variant; OutlookPropertyName: WideString; begin intLCID := LOCALE_USER_DEFAULT; OutlookPropertyName := 'LastModificationTime'; AApptCompareFieldValue := InvokePropertyGet(AOutlookAppointmentItem, OutlookPropertyName); Showmessage(AApptCompareFieldValue); end; |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
getting email address of To property in Outlook Inbox and From property in Outlook Outbox | Omatase | Outlook - General Queries | 1 | July 19th 07 01:04 PM |
obtain last selected mail | Steffen Heinzl | Add-ins for Outlook | 2 | November 17th 06 02:20 PM |
How to obtain the body of a temporary MailItem? | IceKettle | Add-ins for Outlook | 0 | November 7th 06 02:32 AM |
how do i obtain an office outlook 2003 manual | Jane & Izzy | Outlook - General Queries | 2 | October 11th 06 02:54 PM |
How do I set up/obtain a rolodex in outlook 2003? | Working dude. | Outlook - Using Contacts | 1 | July 7th 06 09:10 PM |