<% '!--Microsoft Outlook Web Access--> '!--GetRend.inc - GetRenderer functions--> '!--Copyright (c) Microsoft Corporation 1993-1997. All rights reserved.--> '======================= ' GetMessagesRenderer ' ' Returns: rendering object for folder contents '======================= Public Function GetMessagesRenderer(ByRef fNew) On Error Resume Next Set GetMessagesRenderer = Nothing Set objRenderer = GetTableRenderer(bstrRenderFolder, fNew) If (Not objRenderer Is Nothing) Then If fNew Then bstrImgSrc = "" objRenderer.HeadingRowSuffix = "" Set objPatterns = objFormat.Patterns bstrHTML = bstrImgSrc + "/images/low.gif WIDTH=13 HEIGHT=16 BORDER=0>" objPatterns.Add 0, bstrHTML objPatterns.Add 1, "" bstrHTML = bstrImgSrc + "/images/urgent.gif WIDTH=13 HEIGHT=16 BORDER=0>" objPatterns.Add 2, bstrHTML 'message class Set objFormat = objRenderer.Formats.Add(ActMsgPR_MESSAGE_CLASS, Null) Set objPatterns = objFormat.Patterns bstrHTML = bstrImgSrc + "/images/envelope.gif WIDTH=16 HEIGHT=16 BORDER=0>" objPatterns.Add "IPM.Note", bstrHTML bstrHTML = bstrImgSrc + "/images/encrypt.gif WIDTH=16 HEIGHT=16 BORDER=0>" objPatterns.Add "IPM.Note.Secure", bstrHTML bstrHTML = bstrImgSrc + "/images/digi_sig.gif WIDTH=16 HEIGHT=16 BORDER=0>" objPatterns.Add "IPM.Note.Secure.Sign", bstrHTML bstrHTML = bstrImgSrc + "/images/smime.gif WIDTH=15 HEIGHT=14 BORDER=0>" objPatterns.Add "IPM.Note.SMIME", bstrHTML bstrHTML = bstrImgSrc + "/images/smimesig.gif WIDTH=15 HEIGHT=13 BORDER=0>" objPatterns.Add "IPM.Note.SMIME.MultipartSigned", bstrHTML bstrHTML = bstrImgSrc + "/images/oof.gif WIDTH=16 HEIGHT=16 BORDER=0>" objPatterns.Add "IPM.Note.Rules.OofTemplate.Microsoft", bstrHTML bstrHTML = bstrImgSrc + "/images/post.gif WIDTH=16 HEIGHT=15 BORDER=0>" objPatterns.Add "IPM.Post", bstrHTML bstrHTML = bstrImgSrc + "/images/icontact.gif WIDTH=16 HEIGHT=12 BORDER=0>" objPatterns.Add "IPM.Contact", bstrHTML bstrHTML = bstrImgSrc + "/images/freedoc.gif WIDTH=16 HEIGHT=15 BORDER=0>" objPatterns.Add "IPM.Document.*", bstrHTML bstrHTML = bstrImgSrc + "/images/mtgreq.gif WIDTH=16 HEIGHT=16 BORDER=0>" objPatterns.Add "IPM.Schedule.Meeting.Request", bstrHTML bstrHTML = bstrImgSrc + "/images/mtgcancl.gif WIDTH=16 HEIGHT=16 BORDER=0>" objPatterns.Add "IPM.Schedule.Meeting.Canceled", bstrHTML bstrHTML = bstrImgSrc + "/images/mtgaccpt.gif WIDTH=16 HEIGHT=16 BORDER=0>" objPatterns.Add "IPM.Schedule.Meeting.Resp.Tent", bstrHTML bstrHTML = bstrImgSrc + "/images/mtgaccpt.gif WIDTH=16 HEIGHT=16 BORDER=0>" objPatterns.Add "IPM.Schedule.Meeting.Resp.Pos", bstrHTML bstrHTML = bstrImgSrc + "/images/mtgdecln.gif WIDTH=16 HEIGHT=16 BORDER=0>" objPatterns.Add "IPM.Schedule.Meeting.Resp.Neg", bstrHTML bstrHTML = bstrImgSrc + "/images/ipnrn.gif WIDTH=16 HEIGHT=11 BORDER=0>" objPatterns.Add "*IPNRN", bstrHTML bstrHTML = bstrImgSrc + "/images/ipnnrn.gif WIDTH=16 HEIGHT=11 BORDER=0>" objPatterns.Add "*IPNNRN", bstrHTML bstrHTML = bstrImgSrc + "/images/ndr.gif WIDTH=16 HEIGHT=11 BORDER=0>" objPatterns.Add "*NDR", bstrHTML bstrHTML = bstrImgSrc + "/images/dr.gif WIDTH=16 HEIGHT=11 BORDER=0>" objPatterns.Add "*DR", bstrHTML bstrHTML = bstrImgSrc + "/forms/%classpath%icon.jpg WIDTH=16 HEIGHT=16 BORDER=0>" objPatterns.Add "*", bstrHTML 'attachments Set objFormat = objRenderer.Formats.Add(ActMsgPR_HASATTACH, Null) Set objPatterns = objFormat.Patterns objPatterns.Add 0, "" bstrHTML = bstrImgSrc + "/images/papclip.gif WIDTH=10 HEIGHT=14 BORDER=0>" objPatterns.Add 1, bstrHTML 'message flag (Outlook property) Set objFormat = objRenderer.Formats.Add(ActMsgPR_FLAG_STATUS, Null) Set objPatterns = objFormat.Patterns objPatterns.Add 0, "" bstrHTML = bstrImgSrc + "/images/flagcomp.gif WIDTH=12 HEIGHT=12 BORDER=0>" objPatterns.Add 1, bstrHTML bstrHTML = bstrImgSrc + "/images/flagmark.gif WIDTH=12 HEIGHT=12 BORDER=0>" objPatterns.Add 2, bstrHTML 'from Set objFormat = objRenderer.Formats.Add(ActMsgPR_SENT_REPRESENTING_NAME, Null) objFormat.Patterns.Add "*", "%value%" 'subject Set objFormat = objRenderer.Formats.Add(ActMsgPR_SUBJECT, Null) objFormat.Patterns.Add "*", "%value%" 'date Set objFormat = objRenderer.Formats.Add(ActMsgPR_MESSAGE_DELIVERY_TIME, Null) objFormat.Patterns.Add "*", "%value%" 'size Set objFormat = objRenderer.Formats.Add(ActMsgPR_MESSAGE_SIZE, Null) objFormat.Patterns.Add "*", "%kvalue%"+L_Kilobytes_Text+"" 'read receipt requested Set objFormat = objRenderer.Formats.Add(ActMsgPR_READ_RECEIPT_REQUESTED, Null) Set objPatterns = objFormat.Patterns objPatterns.Add 0, L_NO_Text objPatterns.Add 1, L_YES_Text 'sensitivity Set objFormat = objRenderer.Formats.Add(ActMsgPR_SENSITIVITY, Null) Set objPatterns = objFormat.Patterns objPatterns.Add 0, L_Normal_Text objPatterns.Add 1, L_Personal_Text objPatterns.Add 2, L_Priv_Text objPatterns.Add 3, L_Confidential_Text 'delete button (based on the prop PR_ROWID) Set objFormat = objRenderer.Formats.Add(ActMsgPR_ROWID, Null) objFormat.Patterns.Add "*", "" If (Session(bstrAuthenticated)) Then bstrHTML = "%value%" Else bstrHTML = "%value%" End If objRenderer.LinkPattern = bstrHTML Set objPatterns = Nothing If Err.Number <> 0 Then ReportError1 L_errFailSetDefaultPatterns_ErrorMessage End If End If 'fNew End If 'Not objRender Is Nothing Set GetMessagesRenderer = objRenderer End Function '======================= ' GetPrivateHierarchyRenderer ' ' Returns: rendering object for folder contents '======================= Public Function GetPrivateHierarchyRenderer(ByRef fNew) On Error Resume Next Set GetPrivateHierarchyRenderer = Nothing Set objRenderer = GetTableRenderer(bstrRenderHierarchy, fNew) If (Not objRenderer Is Nothing) Then If Not Session("fPrivateFormats") Then objRenderer.TablePrefix = "" & Chr(13) & Chr(10) OpenPrivateStore Set objStore = Session(bstrObjPrivateStore) If (Not objStore Is Nothing) Then szRootID = objStore.Fields.Item(ActMsgPR_IPM_SUBTREE_ENTRYID).Value ' Add formats needed for hierarchy renderer. ' Use named formats so as not to clash with formats defined for like properties ' in the content frame. ' ...entry ID (specifically for parent link) Set objFormat = objRenderer.Formats.Item("folderhierarchy_Parent") If objFormat Is Nothing Then Set objFormat = objRenderer.Formats.Add(0, "folderhierarchy_Parent") End If ' Link for any other folder szHTML = "" ' ...entry ID again (used to render icon in the hierarchy pane) ' special folder search key props are not available on the private store object Set objFormat = Nothing Set objFormat = objRenderer.Formats.Item("folderhierarchy_Icon") If objFormat Is Nothing Then Set objFormat = objRenderer.Formats.Add(0, "folderhierarchy_Icon") End If '$ Assign icons to folders szHTML = "" + _
                 L_Folder_Text + "" objFormat.Patterns.Add "*", szHTML szHTML = "" + _ 
                 L_Mailbox_Text + "" objFormat.Patterns.Add szRootID, szHTML szHTML = "" + _
                 L_Inbox_Text + "" objFormat.Patterns.Add objOMSession.Inbox.ID, szHTML szHTML = "" + _
                 L_Outbox_Text + "" objFormat.Patterns.Add objStore.Fields.Item(ActMsgPR_IPM_OUTBOX_ENTRYID).Value, szHTML szHTML = "" + _
                 L_DeletedItems_Text + "" objFormat.Patterns.Add objStore.Fields.Item(ActMsgPR_IPM_WASTEBASKET_ENTRYID).Value, szHTML szHTML = "" + _
                 L_SentItems_Text + "" objFormat.Patterns.Add objStore.Fields.Item(ActMsgPR_IPM_SENTMAIL_ENTRYID).Value, szHTML szHTML = "" +_
                L_Calendar_Text +"" objFormat.Patterns.Add objOMSession.GetDefaultFolder(0).ID, szHTML szHTML = "" +_
                L_Contacts_Text +"" objFormat.Patterns.Add objOMSession.GetDefaultFolder(5).ID, szHTML ' ...display name - provides URL wrapper for hierarchy pane Set objFormat = Nothing Set objFormat = objRenderer.Formats.Item("folderhierarchy_Link") If objFormat Is Nothing Then Set objFormat = objRenderer.Formats.Add(0, "folderhierarchy_Link") End If ' link format objFormat.Patterns.Add "*", "%value%" Set objFormat = objRenderer.Formats.Add(ActMsgPR_DISPLAY_NAME, Null) ' special case if it's the root objFormat.Patterns.Add objStore.RootFolder.Name, L_Mailbox_Text Set objFormat = Nothing Session("fPrivateFormats") = True End If End If End If Set GetPrivateHierarchyRenderer = objRenderer End Function '======================= ' GetPublicHierarchyRenderer ' ' Returns: rendering object for folder contents '======================= Public Function GetPublicHierarchyRenderer(ByRef fNew) On Error Resume Next Set GetPublicHierarchyRenderer = Nothing Set objRenderer = GetTableRenderer(bstrRenderHierarchy, fNew) If Not Session("fPublicFormats") Then objRenderer.TablePrefix = "
" + _ "" + _
                L_UpOneFolder_Text + "" + FOLDERS + "" objFormat.Patterns.Add "*", szHTML objFormat.Patterns.Add szRootID, " 
" & Chr(13) & Chr(10) objRenderer.HeadingRowPrefix = "" & Chr(13) & Chr(10) OpenPublicStore Set objStore = Session(bstrObjPublicStore) If (Not objStore Is Nothing) Then ' Save away the public store for internal use objRenderer.CurrentStore = objStore If Session(bstrAuthenticated) Then szRootID = objStore.Fields.Item(ActMsgPR_IPM_PUBLIC_FOLDERS_ENTRYID).Value Else ' add special handling for each folder in the list of published folders Set objRenderApp = Application(bstrRenderApp) aPublishedFolders = objRenderApp.ConfigParameter("Published Public Folders") If (Err.Number <> 0) Then ReportError1 L_errFailGetAnonPubFolders_ErrorMessage End If End If ' Add formats needed for hierarchy renderer. ' Use named formats so as not to clash with formats defined for like properties ' in the content frame. ' ...entry ID (specifically for parent link) Set objFormat = objRenderer.Formats.Item("folderhierarchy_Parent") If objFormat Is Nothing Then Set objFormat = objRenderer.Formats.Add(0, "folderhierarchy_Parent") End If If Session(bstrAuthenticated) Then objFormat.Patterns.Add szRootID, "" Else szHTML = "" If Not IsEmpty(aPublishedFolders) Then For iFolder = LBound(aPublishedFolders) to UBound(aPublishedFolders) objFormat.Patterns.Add aPublishedFolders(iFolder), szHTML Next End If End If ' Link for any other folder szHTML = "" objFormat.Patterns.Add "*", szHTML ' ...entry ID again (used to render icon in the hierarchy pane) ' special folder search key props are not available on the private store object Set objFormat = Nothing Set objFormat = objRenderer.Formats.Item("folderhierarchy_Icon") If objFormat Is Nothing Then Set objFormat = objRenderer.Formats.Add(0, "folderhierarchy_Icon") End If szHTML = "" + _
            FOLDER + "" objFormat.Patterns.Add "*", szHTML If Session(bstrAuthenticated) Then szHTML = "" + _
                L_PublicFolders_Text + "" objFormat.Patterns.Add szRootID, szHTML Else If Not IsEmpty(aPublishedFolders) Then For iFolder = LBound(aPublishedFolders) to UBound(aPublishedFolders) szHTML = "" + _
                        L_PublicFolders_Text + "" objFormat.Patterns.Add aPublishedFolders(iFolder), szHTML Next End If End If ' ...display name - provides URL wrapper for hierarchy pane ' this is just for the current folder, so destroy any previous stuff Set objFormat = Nothing Set objFormat = objRenderer.Formats.Item("folderhierarchy_Link") If objFormat Is Nothing Then Set objFormat = objRenderer.Formats.Add(0, "folderhierarchy_Link") End If ' anything else gets a link objFormat.Patterns.Add "*", "%value%" Set objFormat = objRenderer.Formats.Add(ActMsgPR_DISPLAY_NAME, Null) ' special case if it's the root objFormat.Patterns.Add objStore.RootFolder.Name, L_Mailbox_Text Set objFormat = Nothing Session("fPublicFormats") = True End If End If Set GetPublicHierarchyRenderer = objRenderer End Function '======================= ' GetAddressContainerRenderer ' ' Returns: rendering object for address container contents, ' such as the results of a Find User query '======================= Public Function GetAddressContainerRenderer On Error Resume Next Set objRenderer = GetTableRenderer(bstrRenderAddressContainer, fNew) if (Not objRenderer Is Nothing) Then If fNew Then ' set up HTML wrappers objRenderer.LinkPattern = "" & "%value%" & "" objRenderer.TablePrefix = "
 " + _ "" + _
                L_Folders_Text + "" + FOLDERS + "" + _ "" + _
            L_UpOneFolder_Text + "" + FOLDERS + "
" objRenderer.RowPrefix = "" objRenderer.RowSuffix = "" objRenderer.CellPattern = "%value%" objRenderer.HeadingRowPrefix = "" objRenderer.HeadingRowSuffix = "" objRenderer.HeadingCellPattern = "%value%" ' set up default view Set objView = objRenderer.Views.Add("Default AB", 9) ' list columns - order is significant! ' 32 bit of column flags says don't sort by this column Set objColumn = objView.Columns.Add(L_DetailsName_Text, ActMsgPR_DISPLAY_NAME, 25, 0, 0) ' ...business phone number Set objColumn = objView.Columns.Add(L_DetailsPhone_Text, ActMsgPR_BUSINESS_TELEPHONE_NUMBER, 18, 32, 1) ' ...alias (short unique name) Set objColumn = objView.Columns.Add(L_DetailsAlias_Text, ActMsgPR_ACCOUNT, 10, 32, 2) ' ...departmane name NOTE (BUG?) this field does NOT show up in capone find user results, though it does in the GAL view Set objColumn = objView.Columns.Add(L_DetailsDepartment_Text, ActMsgPR_DEPARTMENT_NAME, 14, 32, 3) ' ...office location Set objColumn = objView.Columns.Add(L_DetailsOffice_Text, ActMsgPR_OFFICE_LOCATION, 14, 32, 4) ' Assume the new view is the last one objRenderer.CurrentView = objRenderer.Views.Count End If End If Set GetAddressContainerRenderer = objRenderer End Function '======================= ' GetCalendarRenderer ' ' Returns: rendering object for calendar '======================= Public Function GetCalendarRenderer On Error Resume Next Set objRenderer = GetTableRenderer(bstrRenderCalendar, fNew) If fNew Then Set GetCalendarRenderer = Nothing Else Set GetCalendarRenderer = objRenderer End If End Function '======================= ' GetFirstCalendarRenderer ' ' Returns: rendering object for calendar '======================= Public Function GetFirstCalendarRenderer(ByRef fNew) On Error Resume Next Set GetFirstCalendarRenderer = Nothing Set objRenderer = GetTableRenderer(bstrRenderCalendar, fNew) Set GetFirstCalendarRenderer = objRenderer End Function Sub SetCalendarRendererFormats(objRenderer) On Error Resume Next ' If fNew Then bstrImgSrc = "" objPatterns.Add 0, bstrHTML objPatterns.Add 1, "" bstrHTML = bstrImgSrc + "/images/urgent.gif WIDTH=13 HEIGHT=16 BORDER=0>" objPatterns.Add 2, bstrHTML 'sensitivity '$$REVIEW new gifs for personal or confidential? '$$REVIEW image sizes? Set objFormat = objRenderer.Formats.Add(ActMsgPR_SENSITIVITY, Null) Set objPatterns = objFormat.Patterns bstrHTML = bstrImgSrc + "/images/private.gif WIDTH=13 HEIGHT=13 BORDER=0>" objPatterns.Add 1, bstrHTML ' personal objPatterns.Add 2, bstrHTML ' private objPatterns.Add 3, bstrHTML ' confidential objPatterns.Add "*", "" ' normal 'recurring '$$REVIEW image sizes? Set objFormat = objRenderer.Formats.Add(AmPidTag_IsRecurring, Null) Set objPatterns = objFormat.Patterns objPatterns.Add 0, "" bstrHTML = bstrImgSrc + "/images/recur.gif WIDTH=13 HEIGHT=13 BORDER=0>" objPatterns.Add "*", bstrHTML 'meeting status '$$REVIEW image sizes? Set objFormat = objRenderer.Formats.Add(AmPidTag_ApptStateFlags, Null) Set objPatterns = objFormat.Patterns objPatterns.Add 0, "" bstrHTML = bstrImgSrc + "/images/meeting.gif WIDTH=12 HEIGHT=13 BORDER=0>" objPatterns.Add "*", bstrHTML 'location Set objFormat = objRenderer.Formats.Add(AmPidTag_Location, Null) Set objPatterns = objFormat.Patterns objPatterns.Add "", "" objPatterns.Add "*", "(%value%)" objRenderer.TablePrefix = "
" & Chr(10) objRenderer.TableSuffix = "
" & Chr(10) objRenderer.RowPrefix = "" & Chr(10) objRenderer.RowSuffix = "" & Chr(10) objRenderer.CellPattern = "%value%" If (Session(bstrAuthenticated)) Then bstrHTML = "%value%" Else bstrHTML = "%value%" End If objRenderer.LinkPattern = bstrHTML objRenderer.RowsPerPage = &HFFFFFFFF Set objPatterns = Nothing 'copy options from AM session objRenderer.TimeZone = objOMSession.GetOption("TimeZone") objRenderer.FirstDayOfWeek = objOMSession.GetOption("FirstDayOfWeek") objRenderer.Is24HourClock = objOMSession.GetOption("Is24HourClock") objRenderer.BusinessDayStartTime = objOMSession.GetOption("BusinessDayStartTime") objRenderer.BusinessDayEndTime = objOMSession.GetOption("BusinessDayEndTime") objRenderer.BusinessDays = objOMSession.GetOption("WorkingDays") If Err.Number <> 0 Then ReportError1 L_errFailSetDefaultPatterns_ErrorMessage End If ' End If 'fNew End Sub '======================= ' ApplyCheckBoxColumn '======================= Sub ApplyCheckBoxColumn(objRenderer) On Error Resume Next If (Session(bstrAuthenticated)) Then Set objViews = objRenderer.Views If Err.Number <> 0 Then ReportError1 L_errFailGetViews_ErrorMessage Else nViews = objViews.Count For iView = 1 To nViews Set objView = objViews.Item(iView) If objView.Source = AMHTML_View_Folder Then 'Add column header for checkbox ' 4 is the column width if not (objView.Columns(1).property = ActMsgPR_ROWID OR objView.Columns(2).property = ActMsgPR_ROWID) then Set objColumn = objView.Columns.Add("", ActMsgPR_ROWID, 13, AMHTML_Column_CenterJustify Or AMHTML_Column_NotSortable Or AMHTML_Column_Bitmap, objView.Categories) end if End If Next End If End If End Sub '====================== ' ApplyStockCheckBoxColumn '====================== Sub ApplyStockCheckBoxColumn( objRenderer) On Error Resume Next If (Session(bstrAuthenticated)) Then Set objViews = objRenderer.Views If (Err.Number <> 0) Then ReportError1 L_errFailGetViews_ErrorMessage Else nViews = objViews.Count For iView = 1 To nViews Set objView = objViews.Item(iView) If objView.Source = AMHTML_View_Common Then 'Add the checkbox column. ' 4 is the column width if not (objView.Columns(1).property = ActMsgPR_ROWID OR objView.Columns(2).property = ActMsgPR_ROWID) then Set objColumn = objView.Columns.Add("", ActMsgPR_ROWID, 13, AMHTML_Column_CenterJustify Or AMHTML_Column_NotSortable Or AMHTML_Column_Bitmap, objView.Categories) end if End If Next End If End If End Sub %>