Microsoft KB Archive/192435

= How To Render a Folder To an ASP Page with CDO =

Article ID: 192435

Article Last Modified on 7/2/2004

-

APPLIES TO


 * Microsoft Collaboration Data Objects 1.2
 * Microsoft Collaboration Data Objects 1.21

-



This article was previously published under Q192435



SUMMARY
This article contains sample code that used Collaboration Data Objects (CDO) to render the messages in the Sent Items folder to an Active Server Pages (ASP) page.



MORE INFORMATION
This is an example of how you can render the contents of a Messaging Application Programming Interface (MAPI) folder to a Web browser using an ASP page script written in the Visual Basic Scripting Edition and CDO.

Copy and paste the following code to an ASP page. Modify the variables that set the server and mailbox to appropriate values. This code requires Microsoft Exchange Server version 5.5.

Sample Code
<%@ LANGUAGE="VBSCRIPT" %>  Sent Items Display  <%

'CONTAINER CONSTANT CONST CdoClassContainerRenderer = 3 CONST CdoClassObjectRenderer = 2

'RENDERSTYLE CONSTANTS CONST CdoFolderContents = 1 CONST CdoFolderHierarchy = 2

'===== Default Folder Constants ======== 'These constants are passed into the Session.GetDefaultFolder 'method to return their respective folders.

CONST CdoDefaultFolderCalendar = 0 CONST CdoDefaultFolderInbox = 1 CONST CdoDefaultFolderOutbox = 2 CONST CdoDefaultFolderSentItems = 3 CONST CdoDefaultFolderDeletedItems = 4 CONST CdoDefaultFolderContacts = 5 CONST CdoDefaultFolderJournal = 6 CONST CdoDefaultFolderNotes = 7 CONST CdoDefaultFolderTasks = 8 CONST CdoDefaultFolderTotal = 9 '===================================

strProfileInfo= " " & vbLf & " "

' Create a MAPI logon to the specified mailbox. Set objSession= CreateObject("MAPI.Session") objSession.Logon, , False, True, 0, True, strProfileInfo

' Create a container rendering application. Set objRenderApp = Server.CreateObject("AMHTML.application") Set objCRenderer = _ objRenderApp.CreateRenderer(CdoClassContainerRenderer)

'There are two ways to format data with a CDO Rendering application: ' 1 - By setting a format to a field of the message and rendering '    that field a certain way depending on the value of the '    information. ' 2 - Render a column of data all in the same fashion.

' format importance field Set cFormat = objCRenderer.Formats.Add("PR_Importance")

' The images below must exist on the server where the script is located. Set cPattern = cFormat.Patterns.Add(0,"") Set cPattern = cFormat.Patterns.Add(1,"") Set cPattern = cFormat.Patterns.Add(2,"")

' Format Class field. Set cFormat = objCRenderer.Formats.Add("PR_Message_Class") Set cPattern = cFormat.Patterns.Add("IPM.Note", _         "") Set cPattern = cFormat.Patterns.Add("IPM.AppointmentItem", _         "") Set cPattern = cFormat.Patterns.Add("IPM.Post","") Set cPattern = cFormat.Patterns.Add("IPM.Contact", _         "")

' Format Attachment field. Set cFormat = objCRenderer.Formats.Add("PR_HASATTACH") Set cPattern = cFormat.Patterns.Add(0,"<img src=invisibl.gif>") Set cPattern = cFormat.Patterns.Add(1,"<img src=papclip.gif>")

' Set the datasource to the appropriate folder. ' This will set the container to be rendered to the Sent items folder objCRenderer.DataSource= _ objSession.GetDefaultFolder(CdoDefaultFolderSentItems).Messages

' Use the default predefined view. Set objTableView = objCRenderer.Views(1)

' Add body column and render it in blue. '  set objColumn =  _ ' objTableView.Columns.Add("Body", "PR_Body" ,150, 8 ,8)

'  objColumn.RenderUsing = " %value% "

'Render the object Response.write(objCRenderer.Render(CdoFolderContents))

'Clean up Session & Rendering Objects. set objsession = nothing set objrenderapp = nothing set objCRenderer = nothing

%>  </BODY> </HTML>

<div class="references_section">