%
'!--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 = ""
objFormat.Patterns.Add "*", szHTML
szHTML = ""
objFormat.Patterns.Add szRootID, szHTML
szHTML = ""
objFormat.Patterns.Add objOMSession.Inbox.ID, szHTML
szHTML = ""
objFormat.Patterns.Add objStore.Fields.Item(ActMsgPR_IPM_OUTBOX_ENTRYID).Value, szHTML
szHTML = ""
objFormat.Patterns.Add objStore.Fields.Item(ActMsgPR_IPM_WASTEBASKET_ENTRYID).Value, szHTML
szHTML = ""
objFormat.Patterns.Add objStore.Fields.Item(ActMsgPR_IPM_SENTMAIL_ENTRYID).Value, szHTML
szHTML = ""
objFormat.Patterns.Add objOMSession.GetDefaultFolder(0).ID, szHTML
szHTML = ""
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 = "
" & 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 = "
" + _
"" + FOLDERS + "
"
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 = ""
objFormat.Patterns.Add "*", szHTML
If Session(bstrAuthenticated) Then
szHTML = ""
objFormat.Patterns.Add szRootID, szHTML
Else
If Not IsEmpty(aPublishedFolders) Then
For iFolder = LBound(aPublishedFolders) to UBound(aPublishedFolders)
szHTML = ""
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 = "
"
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
%>