Microsoft KB Archive/192436

= How To Render the Global Address List with CDO =

Article ID: 192436

Article Last Modified on 7/15/2004

-

APPLIES TO


 * Microsoft Collaboration Data Objects 1.21
 * Microsoft Collaboration Data Objects 1.2
 * Microsoft Exchange Server 5.5 Standard Edition

-



This article was previously published under Q192436



SUMMARY
This article contains sample code that uses Collaboration Data Objects (CDO) to render the Global Address List (GAL) to an Active Server Pages (ASP) page.



MORE INFORMATION
This is an example of how you can render the contents of the GAL to a Web browser using an ASP page script written with 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" %>  GAL Display  <%

'CONTAINER CONSTANT CONST CdoClassContainerRenderer = 3

'RENDERSTYLE CONSTANTS CONST CdoFolderContents = 1 CONST CdoFolderHierarchy = 2 Dim objTableView Dim objColumn Dim objSession Dim objGAL Dim objALists Dim objCRenderer Dim objRenderApp strProfileInfo= "/o= /ou= /cn=Configuration/cn=Servers/cn= " & vbLf & vblf & "anon" ' TODO: Replace with the name of your enterprise, and with the name of your site.

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

Set objRenderApp = Server.CreateObject("AMHTML.application") Set objCRenderer = _ objRenderApp.CreateRenderer(CdoClassContainerRenderer) Set objALists = objSession.AddressLists Set objGAL = objALists.Item("Global Address List") objCRenderer.RowsPerPage = 100

%>   Global Address List: <%

'Assign rendering object. objCRenderer.datasource = objGAL.AddressEntries

'There are no default views associated with the 'Global Address List (GAL), so a new one must be created. Set objTableView = objCRenderer.Views.Add("viewGAL")

'Add a column in the table for each MAPI field you want to see and 'give the HTML tags for how you would like each of them to be rendered.

'Add Display name column. Set objColumn = objTableView.Columns.Add("Display Name", _   "PR_Display_NAME" ,150, 8 ,1) objColumn.RenderUsing = "%value%"

'Add phone column. Set objColumn = objTableView.Columns.Add("Phone", _   "PR_BUSINESS_TELEPHONE_NUMBER" ,100, 8 ,2) objColumn.RenderUsing = "%value%"

'Add office column. Set objColumn = objTableView.Columns.Add("Office", _     "PR_OFFICE_LOCATION" ,100, 8 ,3) objColumn.RenderUsing = "%value%"

'Add Title name column. Set objColumn = objTableView.Columns.Add("Title", "PR_TITLE", _      100, 8 ,4) objColumn.RenderUsing = "%value%</U>"

'Add Company column. Set objColumn = objTableView.Columns.Add("Company", _      "PR_COMPANY_NAME" ,100, 8 ,5) objColumn.RenderUsing = "%value%"

'Add Alias column. Set objColumn = objTableView.Columns.Add("Alias", "PR_ACCOUNT", _     100, 8 ,6) objColumn.RenderUsing = "%value%"

'Make the view we created the current view used. objCRenderer.CurrentView=objTableView

'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">