Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Outlook and VBA (http://www.outlookbanter.com/outlook-vba/)
-   -   FormsDescription without RDO? (http://www.outlookbanter.com/outlook-vba/37465-formsdescription-without-rdo.html)

Peter Marchert January 11th 07 09:51 AM

FormsDescription without RDO?
 
Hello,

is it possible to read the peronal forms library with RDO?

I searched in the object browser and on the homepage from Dmitry, but I
have no idea where this information could be find.

Thanks,
Peter

--
Peter Marchert
[EDP-Service Marchert]
Homepage: http://www.marchert.de
Programming for Excel and Outlook


Ken Slovak - [MVP - Outlook] January 11th 07 04:31 PM

FormsDescription without RDO?
 
Do you want FormDescription or the actual Personal Forms Library?

For FormDescription you would use MailItem.FormDescription (or whatever item
type, it could be AppointmentItem, etc.).

The actual form definition for a custom form is stored in the folder where
it's published as a custom hidden message with a MessageClass of
"IPM.Microsoft.FolderDesign.FormsDescription". You would iterate the
HiddenItems collection of the folder looking for that MessageClass. Then you
would look at each returned item there for one with your custom form's
MessageClass in the Field(&H6800001E), which in DASL syntax is
"http://schemas.microsoft.com/mapi/proptag/0x6800001E".

For the actual Personal Forms Library you would get the Root folder (not the
IPMRootFolder) of the default Store object, look for "Common Views" and in
that folder is the Personal Forms Library. That library consists of anything
in that folder with a MessageClass of
"IPM.Microsoft.FolderDesign.FormsDescription".

In Redemption code that would be
oSession.Stores.DefaultStore.RootFolder.Folders.It em("Common
Views").HiddenItems. You would iterate that collection of items. Other
things are stored there also, so you have to check each item in that folder
for the correct MessageClass in Field(&H6800001E).

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm


"Peter Marchert" wrote in message
ps.com...
Hello,

is it possible to read the peronal forms library with RDO?

I searched in the object browser and on the homepage from Dmitry, but I
have no idea where this information could be find.

Thanks,
Peter

--
Peter Marchert
[EDP-Service Marchert]
Homepage: http://www.marchert.de
Programming for Excel and Outlook



Dmitry Streblechenko January 11th 07 07:11 PM

FormsDescription without RDO?
 
Not directly (see the reply from Ken). What exactly are you trying to do and
why?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

"Peter Marchert" wrote in message
ps.com...
Hello,

is it possible to read the peronal forms library with RDO?

I searched in the object browser and on the homepage from Dmitry, but I
have no idea where this information could be find.

Thanks,
Peter

--
Peter Marchert
[EDP-Service Marchert]
Homepage: http://www.marchert.de
Programming for Excel and Outlook




Peter Marchert January 15th 07 07:45 AM

FormsDescription without RDO?
 
Thank you, Ken and sorry for replying so late.

@Dmitry:
I needed a list of all contact user forms in Outlook (IPM.Contact.XXX).
To get them I read the Personal Forms Library and the message class of
each contact.

With the answer from Ken I could do it - thanks.

Peter

On 11 Jan., 16:31, "Ken Slovak - [MVP - Outlook]"
wrote:
Do you want FormDescription or the actual Personal Forms Library?

For FormDescription you would use MailItem.FormDescription (or whatever item
type, it could be AppointmentItem, etc.).

The actual form definition for a custom form is stored in the folder where
it's published as a custom hidden message with a MessageClass of
"IPM.Microsoft.FolderDesign.FormsDescription". You would iterate the
HiddenItems collection of the folder looking for that MessageClass. Then you
would look at each returned item there for one with your custom form's
MessageClass in the Field(&H6800001E), which in DASL syntax is
"http://schemas.microsoft.com/mapi/proptag/0x6800001E".

For the actual Personal Forms Library you would get the Root folder (not the
IPMRootFolder) of the default Store object, look for "Common Views" and in
that folder is the Personal Forms Library. That library consists of anything
in that folder with a MessageClass of
"IPM.Microsoft.FolderDesign.FormsDescription".

In Redemption code that would be
oSession.Stores.DefaultStore.RootFolder.Folders.It em("Common
Views").HiddenItems. You would iterate that collection of items. Other
things are stored there also, so you have to check each item in that folder
for the correct MessageClass in Field(&H6800001E).

--
Ken Slovak
[MVP - Outlook]http://www.slovaktech.com
Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003
Reminder Manager, Extended Reminders, Attachment Optionshttp://www.slovaktech.com/products.htm

"Peter Marchert" wrote in glegroups.com...



Hello,


is it possible to read the peronal forms library with RDO?


I searched in the object browser and on the homepage from Dmitry, but I
have no idea where this information could be find.


Thanks,
Peter


--
Peter Marchert
[EDP-Service Marchert]
Homepage:http://www.marchert.de
Programming for Excel and Outlook- Zitierten Text ausblenden -- Zitierten Text anzeigen -



Peter Marchert February 19th 07 09:05 PM

FormsDescription without RDO?
 
On 11 Jan., 16:31, "Ken Slovak - [MVP - Outlook]"
wrote:

The actual form definition for a custom form is stored in the folder where
it's published as a custom hidden message with aMessageClassof
"IPM.Microsoft.FolderDesign.FormsDescription". You would iterate the
HiddenItems collection of the folder looking for thatMessageClass. Then you
would look at each returned item there for one with your custom form'sMessageClassin the Field(&H6800001E), which in DASL syntax is
"http://schemas.microsoft.com/mapi/proptag/0x6800001E".


Hello again,

I`m looking for a way to read all published forms of a folder. The
method above I think will only work with CDO, isn`t it? If so, can I
read this informations with RDO too? I didn`t found anything, but it`s
better to ask profis before giving up :-)

Thanks for any help!
Peter

PS: CDO for programmers is not very helpful, I think, because I don`t
know if it is installed on the users maschine and I cannot (or it is
not permitted to) install it by my setup. Please correct me, if I`m
wrong.



Dmitry Streblechenko February 19th 07 09:50 PM

FormsDescription without RDO?
 
Sure, RDOFolder.HiddenItem will get you the folder's hidden messages
collection. This is really not any different from CDO 1.21

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

"Peter Marchert" wrote in message
ups.com...
On 11 Jan., 16:31, "Ken Slovak - [MVP - Outlook]"
wrote:

The actual form definition for a custom form is stored in the folder
where
it's published as a custom hidden message with aMessageClassof
"IPM.Microsoft.FolderDesign.FormsDescription". You would iterate the
HiddenItems collection of the folder looking for thatMessageClass. Then
you
would look at each returned item there for one with your custom
form'sMessageClassin the Field(&H6800001E), which in DASL syntax is
"http://schemas.microsoft.com/mapi/proptag/0x6800001E".


Hello again,

I`m looking for a way to read all published forms of a folder. The
method above I think will only work with CDO, isn`t it? If so, can I
read this informations with RDO too? I didn`t found anything, but it`s
better to ask profis before giving up :-)

Thanks for any help!
Peter

PS: CDO for programmers is not very helpful, I think, because I don`t
know if it is installed on the users maschine and I cannot (or it is
not permitted to) install it by my setup. Please correct me, if I`m
wrong.





Dan Mitchell February 20th 07 01:45 AM

FormsDescription without RDO?
 
"Peter Marchert" wrote in
ups.com:
PS: CDO for programmers is not very helpful, I think, because I don`t
know if it is installed on the users maschine


Though you can find that out at runtime by trying to use one of the
objects and trapping errors

and I cannot (or it is
not permitted to) install it by my setup. Please correct me, if I`m
wrong.


You can't just put the DLL on there yourself, no, but you can drive the
Outlook setup engine to install it:

http://www.microeye.com/resources/itemsCB.htm

has sample code which has that in there.

-- dan

Peter Marchert February 20th 07 07:18 AM

FormsDescription without RDO?
 
On 19 Feb., 21:50, "Dmitry Streblechenko" wrote:
Sure, RDOFolder.HiddenItem will get you the folder's hidden messages
collection. This is really not any different from CDO 1.21


Thanks Dmitry,

here is the CDO-Code I found:

Sub GetMessageClasses()

Dim objSession As New MAPI.Session
Dim objFolders As MAPI.Folders
Dim objFolder As MAPI.Folder
Dim objHiddenMessages As MAPI.Messages
Dim objFDMMessage As MAPI.Message

objSession.Logon

Set objFolders = objSession.GetInfoStore("").RootFolder.Folders

Set objFolder = objFolders.Item("Kontakte")

Set objHiddenMessages = objFolder.HiddenMessages

Set objFDMMessage =
objHiddenMessages.GetFirst("IPM.Microsoft.FolderDe sign.FormsDescription")

While Not objFDMMessage Is Nothing

Debug.Print objFDMMessage.Fields(&H6800001E)

Set objFDMMessage = objHiddenMessages.GetNext

Wend

End Sub

Now I tried it with RDO, but it do not work:

Public Sub GetFolderClasses(ByVal objFolder As Object)

Dim objRDOsession As Object
Dim objRDOFolder As Object
Dim objHiddenMessages As Object
Dim objFDMMessage As Object

Set objRDOsession = StartRDOSession()

Set objRDOFolder =
objRDOsession.GetFolderFromID(objFolder.EntryID)

Set objHiddenMessages = objRDOFolder.HiddenItems

For Each objFDMMessage In objHiddenMessages

Debug.Print objFDMMessage.Fields(&H6800001E)

Next

End Sub

Do you have a code example?

Peter


Peter Marchert February 20th 07 07:25 AM

FormsDescription without RDO?
 
Hello Dan,

thank you for this link. It`s interesting to know that is possible to
install the CDO with the windows installer by code. May be I need this
sometime.

Are there functions, methods or properties in CDO which are not
possible with the redemption.dll?

Peter

On 20 Feb., 01:45, Dan Mitchell wrote:
"Peter Marchert" wrote roups.com:

PS: CDO for programmers is not very helpful, I think, because I don`t
know if it is installed on the users maschine


Though you can find that out at runtime by trying to use one of the
objects and trapping errors

and I cannot (or it is
not permitted to) install it by my setup. Please correct me, if I`m
wrong.


You can't just put the DLL on there yourself, no, but you can drive the
Outlook setup engine to install it:

http://www.microeye.com/resources/itemsCB.htm

has sample code which has that in there.

-- dan




Michael Bauer [MVP - Outlook] February 20th 07 07:36 AM

FormsDescription without RDO?
 

Peter, what doesn't work, do you get an error?

The folder probably has more hidden messages than just the one that you're
looking for. And I assume that not every message has the property
PR_MAILBEAT_BOUNCE_SERVER.

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?...4&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)

Am 19 Feb 2007 22:18:16 -0800 schrieb Peter Marchert:

On 19 Feb., 21:50, "Dmitry Streblechenko" wrote:
Sure, RDOFolder.HiddenItem will get you the folder's hidden messages
collection. This is really not any different from CDO 1.21


Thanks Dmitry,

here is the CDO-Code I found:

Sub GetMessageClasses()

Dim objSession As New MAPI.Session
Dim objFolders As MAPI.Folders
Dim objFolder As MAPI.Folder
Dim objHiddenMessages As MAPI.Messages
Dim objFDMMessage As MAPI.Message

objSession.Logon

Set objFolders = objSession.GetInfoStore("").RootFolder.Folders

Set objFolder = objFolders.Item("Kontakte")

Set objHiddenMessages = objFolder.HiddenMessages

Set objFDMMessage =
objHiddenMessages.GetFirst("IPM.Microsoft.FolderDe sign.FormsDescription")

While Not objFDMMessage Is Nothing

Debug.Print objFDMMessage.Fields(&H6800001E)

Set objFDMMessage = objHiddenMessages.GetNext

Wend

End Sub

Now I tried it with RDO, but it do not work:

Public Sub GetFolderClasses(ByVal objFolder As Object)

Dim objRDOsession As Object
Dim objRDOFolder As Object
Dim objHiddenMessages As Object
Dim objFDMMessage As Object

Set objRDOsession = StartRDOSession()

Set objRDOFolder =
objRDOsession.GetFolderFromID(objFolder.EntryID)

Set objHiddenMessages = objRDOFolder.HiddenItems

For Each objFDMMessage In objHiddenMessages

Debug.Print objFDMMessage.Fields(&H6800001E)

Next

End Sub

Do you have a code example?

Peter



All times are GMT +1. The time now is 08:23 AM.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com