Platform SDK: CDO 1.2.1 |
Two frequently used folders, the Inbox and the Outbox, are available through Session object properties. To access these folders, simply set a Folder object to the corresponding property.
To access other folders, search for the folder using one of the following techniques:
When you know the unique identifier for the folder you are looking for, you can call the Session object’s GetFolder method.
The unique identifier for the folder, established at the time the folder is created, is stored in its ID property. The ID property is a string representation of the MAPI entry identifier and its value is determined by the service provider.
The following code fragment contains code that saves the identifier for the folder, then uses it in a subsequent GetFolder call:
' Function: Session_GetFolder ' Purpose: Demonstrate how to set a folder object ' See documentation topic: Session object GetFolder method Function Session_GetFolder() On Error GoTo error_olemsg If objSession Is Nothing Then MsgBox "No active session, must log on" Exit Function End If If strFolderID = "" Then MsgBox ("Must first set folder ID variable; see Folder->ID") Exit Function End If Set objFolder = objSession.GetFolder(strFolderID) 'equivalent to: ' Set objFolder = objSession.GetFolder(folderID:=strFolderID) If objFolder Is Nothing Then Set objMessages = Nothing MsgBox "Unable to retrieve folder with specified ID" Exit Function End If MsgBox "Folder set to " & objFolder.Name Set objMessages = objFolder.Messages Exit Function error_olemsg: MsgBox "Error " & Str(Err) & ": " & Error$(Err) Set objFolder = Nothing Set objMessages = Nothing MsgBox "Folder is no longer available" Exit Function End Function
When you are looking for a folder within a Folders collection, you can navigate through the collection, examining properties of each Folder object to determine whether it is the folder you want.
The CDO Library supports the GetFirst, GetNext, GetLast, and GetPrevious methods for the Folders collection object.
The following code fragment demonstrates how to use the Get methods to search for the specified folder:
' Function: TestDrv_Util_GetFolderByName ' Purpose: Call the utility function Util_GetFolderByName ' See documentation topic: Item property (Folder object) Function TestDrv_Util_GetFolderByName() Dim fFound As Boolean fFound = Util_GetFolderByName("Junk mail") If fFound Then MsgBox "Folder named 'Junk mail' found" Else MsgBox "Folder named 'Junk mail' not found" End If Exit Function error_olemsg: MsgBox "Error " & Str(Err) & ": " & Error$(Err) Resume Next End Function ' Function: Util_GetFolderByName ' Purpose: Use Get* methods to search for a folder ' See documentation topic: Searching For a Folder Function Util_GetFolderByName(strSearchName As String) As Boolean Dim objOneFolder As Object ' local; temp version of folder object On Error GoTo error_olemsg Util_GetFolderByName = False ' default; assume failure If objFolder Is Nothing Then MsgBox "Must first select a folder such as Session->Inbox" Exit Function End If Set objFoldersColl = objFolder.Folders ' Folders collection If objFoldersColl Is Nothing Then MsgBox "no subfolders; not found" Exit Function End If ' get the first folder in the collection Set objOneFolder = objFoldersColl.GetFirst ' loop through all the folders in the collection Do While Not objOneFolder Is Nothing If objOneFolder.Name = strSearchName Then Exit Do ' found it, leave the loop Else ' keep searching Set objOneFolder = objFoldersColl.GetNext End If Loop ' exit from the Do While loop comes here ' if objOneFolder is valid, the folder is found If Not objOneFolder Is Nothing Then ' went off end of loop Util_GetFolderByName = True ' success End If Exit Function error_olemsg: MsgBox "Error " & Str(Err) & ": " & Error$(Err) Resume Next End Function
You can also navigate upward through the folder hierarchy by using each Folder object’s Parent property.