RDOSession object is the top level object in the RDO 
object hierarchy from which all 
other objects are retrieved. To be able to use RDOSession object properties and 
methods, log on to a MAPI session first by either setting the MAPIOBJECT 
property or calling Logon, LogonExchangeMailbox or LogonPstStore methods.
The example below logs to the default MAPI session and prints out the subjects 
of all messages in the Inbox folder:
The example below connects to the 
MAPI session used by Outlook (Application object below refers to an instance of 
the Outlook.Application object) and prints out the subjects 
of all messages in the Inbox folder:
	
		| 
 | 
	
		| Derived from: 
		IDispatch | 
	
		| 
 | 
	
		| Properties: | 
	
		| 
 | 
	
		| Accounts | 
		RDOAccounts, read-only. Returns the collection representing mail, 
		store and address book accounts in the current profile. Outlook 2002 and up only. | set Session = 
		CreateObject("Redemption.RDOSession")Session.Logon
 set Accounts = Session.Accounts
 for each Account in Accounts
 Debug.Print Account.Name
 next
 | 
	
		| AddressBook | RDOAddressBook, read-only. 
		Returns the object exposing the Address Book related functionality  | set AB = Session.AddressBookset Recips = AB.ShowAddressBook
 MsgBox "You have selected " & 
		Recips.Count & " recipients" | 
	
		| AuthKey | string, write-only. Sets the 
		authentication key - see Security. |   | 
	
		| Categories | returns 
RDOCategories collection representing categories from the local machine    
		RDOCategories collection first attempts to read the category list 
		from the default store in the profiles (where Outlook 2007 stores it). 
		If no categories are present in the default store, Redemption tries to 
		read the categories list from the registry if Outlook 2003 or older is 
		installed.   | set Session = 
		CreateObject("Redemption.RDOSession")Session.Logon
 set Categories = Session.Categories
 for each Category in Categories
 Debug.Print Category.Name
 next
   | 
	
		| ConnectEncryptData | Boolean, read/write. 
 Setting this property to true forces LogonExchangeMailbox 
method to set the PR_PROFILE_UI_STATE property to 0x4100 to force MAPI to 
encrypt the data.
 
 | Set oRDOSession = CreateObject("Redemption.RDOSession") oRDOSession.ParentWindow = Application.ActiveExplorer
 oRDOSession.ConnectEncryptData = true
 oRDOSession.LogonExchangeMailbox "dmitry streblechenko", 
		"myserver.com"
 | 
	
		| ConnectIgnoreNoPF | Boolean, read/write. 
 Setting this property to true forces LogonExchangeMailbox 
method to set the CONNECT_IGNORE_NO_PF bit in the PR_PROFILE_CONNECT_FLAGS 
property to tell MAPI that it is Ok to connect even if the PF store is not 
available.
 
 Note that only Outlook 2010 and the standalone version of MAPI understand this 
property.
 
 |  | 
	
		| CurrentUser | 
		RDOAddressEntry, read-only. 
		Returns the address entry representing the default user identity in the 
		current MAPI session. 
		  
		Note that if the RDOSession object was initialized by setting its
		MAPIOBJECT property to Namespace.MAPIOBJECT 
		from OOM, the current user returned by this property can vary depending 
		on the store currently selected in Outlook. 
		If the goal is to retrieve the default mail account, using the first
		RDOAccount object from the 
		RDOSession.Accounts.GetOrders(acMail) collection might be a 
		better alternative. 
		  
		 
		  | set Session = 
		CreateObject("Redemption.RDOSession")Session.Logon
 MsgBox "Current user's name: 
		" & Session.CurrentUser.Name 
		  | 
	
		| CurrentWindowsUser  | 
		RDOAddressEntry, read-only. Returns 
		the address entry representing the identity of the current Windows user. Accessing this property does 
		not require an active MAPI session, i.e. it can be accessed even if 
		Logon method had not been called. Note that the properties of 
		the current Windows user are retrieved directly from the Active 
		Directory, which means the parent process must be running under an 
		identity of a domain user and the AD server must be accessible.   Note: the following
		RDOAddressEntry properties will return 
		null in the current version: Delegates, IsDelegateFor, 
		IsMemberOfDL, Reports   | set Session = 
		CreateObject("Redemption.RDOSession")MsgBox "Your SMTP address is " & Session.CurrentWindowsUser.SmtpAddress
 | 
	
		| ExchangeConnectionMode  | Returns or sets on of 
		rdoExchangeConnectionMode enum values that indicate the current 
		connection mode used in the profile. 
   When setting the property, 
		only  olCachedDisconnected (the same as setting the
		Offline property to true), olCachedConnectedHeaders
		, olCachedConnectedDrizzle, olCachedConnectedFull 
		can be used. 
		rdoExchangeConnectionMode can be one of the following constants:
 
 
			
				| 
				olCachedConnectedDrizzle | 600 | The account is using 
				cached Exchange mode such that headers are downloaded first, 
				followed by the bodies and attachments of full items. |  
				| 
				olCachedConnectedFull | 700 | The account is using 
				cached Exchange mode on a Local Area Network or a fast 
				connection with the Exchange server. The user can also select 
				this state manually, disabling auto-detect logic and always 
				downloading full items regardless of connection speed. |  
				| 
				olCachedConnectedHeaders | 500 | The account is using 
				cached Exchange mode on a dial-up or slow connection with the 
				Exchange server, such that only headers are downloaded. Full 
				item bodies and attachments remain on the server. The user can 
				also select this state manually regardless of connection speed. |  
				| 
				olCachedDisconnected | 400 | The account is using 
				cached Exchange mode with a disconnected connection to the 
				Exchange server.  |  
				| olCachedOffline | 200 | The account is using 
				cached Exchange mode and the user has selected 
				Work Offline from the File menu. |  
				| olDisconnected | 300 | The account has a 
				disconnected connection to the Exchange server.  |  
				| olNoExchange | 0 | The account does not 
				use an Exchange server. |  
				| olOffline | 100 | The account is not 
				connected to an Exchange server and is in the classic offline 
				mode. This also occurs when the user selects Work 
				Offline from the File menu. |  
				| olOnline | 800 | The account is 
				connected to an Exchange server and is in the classic online 
				mode.  |    |   | 
	
		| ExchangeMailboxServerName
		 | Returns a String value that 
		represents the name of the Exchange server on which the active mailbox 
		is hosted. Read-only.   |   | 
	
		| 
		ExchangeMailboxServerVersion  | Returns a String value that 
		represents the full version of the Exchange server on which the active 
		mailbox is hosted.  If Exchange is not used by 
		the current profile, an empty string is returned. Read-only.   |   | 
	
		| FastShutdownSupported | Boolean, read-only. Returns 
		true if the current version of Outlook and all providers in the profile 
		support fast shutdown. Only Outlook 2007 SP2 or 
		higher supports fast shutdown.   See the following for more 
		information: 
		
		http://blogs.msdn.com/stephen_griffin/archive/2009/03/03/fastest-shutdown-in-the-west.aspx
		   | 
		set Session = 
		CreateObject("Redemption.RDOSession")Session.Logon
 Debug.Print "Stores in the profile: " & Session.Stores.Count
 if Session.FastShutdownSupported Then
 Session.DoFastShutdown
 Else
 Session.Logoff
 End If
   | 
	
		| Favorites 
 | RDOFavorites, read-only. Returns the list of folders marked as favorites in the default store in 
		the current profile.
 
 | SetMySession = 
		CreateObject("Redemption.RDOSession") MySession.MAPIOBJECT = Application.Session.MAPIOBJECT SetInbox = 
		MySession.GetDefaultFolder(olFolderInbox) 'open or add a folder setNewFolder = 
		Inbox.Folders.OpenOrAdd("The 
		Favorite Folder") setFavorites = 
		MySession.Favorites 'try to retrieve an existing favorite object by the 
		folder 'can also be retrieved by name or index setFavorite = 
		Favorites.Item(NewFolder) ifFavorite
		
		Is
		
		Nothing
		
		Then
		
		
		  
		set Favorite = Favorites.Add(NewFolder) EndIf   | 
	
		| HeadersOnlyOnSlowConnection 
 | boolean, read/write. Corresponds to "Send 
/ Receive | Download | On Slow Connectiosn Download Only Headers" in the 
Outlook UI. 
 |  | 
	
		| JunkEmailOptions | Returns
		RDOJunkEmailOptions object 
		representing profile-wide Junk E-mail options, which are saved in the 
		profile data (registry) as well as the primary message store in case of 
		an Exchange mailbox. Profile and mailbox options 
		are reconciled based on the last modification time. | set Session = 
		CreateObject("Redemption.RDOSession")Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set JunkOptions = Session.JunkEmailOptions
 for each address in JunkOptions.BlockedSenders
 Debug.Print address
 next
   | 
	
		| LoggedOn | boolean, read-only. Returns 
		true if logged on, false otherwise. | if not Session.LoggedOn Then   Session.Logon End If 
		  | 
	
		| MAPIDllFileName 
 | Returns full path to the MAPI dll (olmapi32.dll, msmapi32.dll or 
		exmapi32.dll). 
 |  | 
	
		| MAPIFormMgr 
 | Returns RDOMAPIFormMgr 
that exposes MAPI forms in the current MAPI session; it corresponds to the 
IMAPIFormMgr Extended MAPI interface.   | 
	
	set 
	Session = CreateObject("Redemption.RDOSession") 
	Session.MAPIOBJECT = Application.Session.MAPIOBJECT 
	
	set 
	
	 
	PersonaFormContainer = Session.MAPIFormMgr.OpenLocalFormContainer 
	
	for
	
	
	each 
	
	 
	FormInfo 
	
	in 
	
	 
	PersonaFormContainer 
	
	  
	Debug.Print 
	FormInfo.DisplayName 
	
	next 
	 | 
	
		| MAPIOBJECT | IMAPISession Extended MAPI 
		object, read-write. 
		Allows to set the MAPI session to be used without explicitly logging to 
		a MAPI profile. Useful if RDO is used in an environment where a MAPI 
		session is already available (e.g. a COM add-in). 
		If you set the MAPIOBJECT property, do not call RDOSession.Logoff as 
		that will render the original session invalid as well.   
		Important note: if you set this property to Namespace.MAPIOBJECT property from the Outlook Object Model and your 
		code is running outside the outlook.exe address space (i.e. it is not 
		a COM add-in) some RDO features (RDOFolder.ACL, 
		GetSharedDefaultFolder, GetSharedMailbox, etc) will not function properly 
		due to bugs in the MAPI COM marshaling support. 
		  | 'use the same MAPI object 
		as Outlook 'Namespace is returned 
		from Application.GetNamespace("MAPI") in OOM set Session = 
		CreateObject("Redemption.RDOSession") Session.MAPIOBJECT = 
		Namespace.MAPIOBJECT | 
	
		| MAPITimeoutShort 
 | Boolean, read/write. By default this property is true, which causes Redemption to use the 
		MAPI_TIMEOUT_SHORT flag when logging to a MAPI profile (Logon, 
		LogonExchangeMailbox, LogonPstStore). If one of the MAPI providers does 
		not finish initialization within 5 seconds or so, the call will return 
		MAPI_E_TIME_OUT error.
 
 Reset this property to false if you are accessing Exchange over a slow 
		or high latency network.
 
 
 |  | 
	
		| MAPIVersion 
 | Returns a string representing the version of the MAPI system 
		(olmapi32.dll, msmapi32.dll or exmapi32.dll). 
 |  | 
	
		| Offline | Boolean. read/write. Sets the "Work Offline" option in the current 
		session. Note that to affect the Offline state in Outlook, you must use the MAPI 
		session returned from Namespace.MAPIOBJECT property in OOM and run in 
		the outlook.exe address space (which means your code must be in an 
		Outlook COM add-in or a VBA script).
 
 Note: this property is only supported in 
		Outlook 2007 or newer.
 
 
 | set Session = CreateObject("Redemption.RDOSession") Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 Session.Offline = true
 
 | 
	
		| OutlookVersion  | Returns a String value that 
		represents the full version of Outlook. If Outlook is not installed, an 
		empty string is returned. Read-only.   |   | 
	
		| ParentWindow   | Object, read/write.  This can be set either to a 
		window handle (HWND) or to an object that supports the 
		IOleWindow interface (such as Explorer or Inspector 
		objects in the Outlook Object Model).  Setting this property to 1 
		forces Redemption to use the value returned by the GetForegroundWindow 
		Windows API function, setting it to 2 uses the value from 
		GetDesktopWindow.   Setting that property allows 
		MAPI to display dialog boxes when needed, for example when logging to a 
		profile (Logon, LogonExchangeMailbox), opening a message store (LogonPstStore, 
		AddPstStoreWithPassword, GetStoreFromID, GetSharedMailbox) or when 
		resoling names (ResolveName, Resolve, etc). This property has no effect 
		when running in a service.   | set Session = 
		CreateObject("Redemption.RDOSession")Session.ParentWindow = Application.ActiveExplorer
 Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set AdrrEntry = Session.AddressBook.ResolveName("d")
   | 
	
		| ProfileName | string, read-only. Returns 
		the name of the currently used MAPI profile.   | MsgBox Session.ProfileName | 
	
		| Profiles | 
		RDOProfiles, read-only. Returns a collection representing the list 
		of profiles for the current Windows user.   | set Session = 
		CreateObject("Redemption.RDOSession")Debug.Print("Default profile: " & Session.Profiles.DefaultProfileName)
 Debug.Print("Profiles: ")
 Debug.Print("------")
 for each Name in Session.Profiles
 Debug.Print(Name)
 next
   | 
	
		| SkipAutodiscoverLookupInAD | Boolean, read/write. 
 Normally, Redemption methods that require autodiscover XML (such as LogonHostedExchangeMailbox, 
GetSharedMailbox, free/busy methods, etc.) look (each in a separate thread) for 
the autodiscover XML in a few predetermined HTTP locations with a timeout of 5 
seconds. A lookup in the Active Directory however, especially if the remote 
server cannot be contacted through LDAP, can take a long time to time out. Set 
SkipAutodiscoverLookupInAD property to true if you are connecting to a hosted Exchange 
server. Leave it as false if you are connecting to an on-premises Exchange serer 
that does not publish autodiscover through HTTP.
 
 |  | 
	
		| Signatures 
 | Returns RDOSignatures collection 
		representing Outlook signatures in the current profile. 
 | 
	
	'enumerate all signatures 
	
	set 
	Session = CreateObject("Redemption.RDOSession") 
	Session.MAPIOBJECT = Application.Session.MAPIOBJECT 
	
	
	for
	
	
	each 
	Signature 
	
	in 
	
	 
	Session.Signatures 
	
	  
	Debug.Print Signature.Name 
	
	next 
	 | 
	
		| SocialConnectors 
 | Returns RDOSocialConnectors 
		collection representing Social connectors (such as Facebook or LinkedIn) 
		configured in the current profile. | userToFind = "user@domain.demo" set Session = CreateObject("Redemption.RDOSession")
 Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set SocialConnector = Session.SocialConnectors.Item("Linkedin")
 set persons = SocialConnector.FindPerson(userToFind)
 for each person in persons
 MsgBox   person.FullName
 next
 
 | 
	
		| Templates 
 | Returns
RDOTemplates collection representing templates in 
		the default Exchange mailbox in the profile. 
 | RDOTemplates templates = session.Templates; RDOTemplate template1 = templates.Add(        "See report",     
		"Please see the attached 
		last quarter report."); RDOTemplate template2 = templates.Add(    
		"Submit 
		support ticket",     
		@"Please 
		submit support ticket at<br>"+    
		"<a href=""https://www.mycompany.demo/support"">" 
		+     
		
		"https://www.mycompany.demo/support</a>."); templates.Save(); 
		//can also call 
		RDOTemplate.Save | 
	
		| Stores | RDOStores, read-only. Returns 
		the collection of stores in the current profile. | set Session = 
		CreateObject("Redemption.RDOSession")Session.Logon
 MsgBox Session.Stores.DefaultStore.Name
 
		  | 
	
		| TimeZones | 
		RDOTimezones, read-only. Returns collection representing time zones 
		available in Windows. | set Session = 
	CreateObject("Redemption.RDOSession")set Timezones = Session.Timezones
 for each TZ in Timezones
 Debug.Print TZ.Name
 next
   | 
	
		| Version | String, read-only. returns 
		the Redemption file version, e.g. "5.10.0.9602"   |   | 
	
		| UseEWSImpersonation | If set to true, forces Redemption to add the ExchangeImpersonation 
		header to the EWS calls 
 |  | 
	
		| 
 | 
	
		| Methods | 
	
		| 
 | 
	
		| CacheAutodiscoverXml(SMTPAddress, AutodiscoverXml) 
 | SMTPAddress - string. The SMTP address of an Exchange 
		mailbox for which autodiscover XML is to be cached. 
 AutodiscoverXml- string, Autodiscover XML to be cached.
 A valid url (http or https) can also be passed  - the specified url will later 
be used to retrieve the Autodiscover XML for the specified SMTP address whenever 
Redemption will need it (GetSharedDefaultMailbox, 
LogonHostedExchangeMailbox, etc.) thus avoiding the need to probe 
multiple Autodiscover urls (some of which can take a considerable amount of time 
to return or timeout).
 
 RDOSession.CacheAutodiscoverXml and 
RDOSession.GetAutodiscoverXml 
methods allow to cache autodiscover XML instead of  retrieving it each 
time it is needed. This allows to speed up Redemption methods that require  
autodiscover, such as RDOSession.LogonHostedExchangeMailbox,
RDOSession.GetArchiveMailbox, ,
RDOSession.GetSharedMailbox,
RDOOutOfOfficeAssistant,
 
 |  | 
	
		| CreateOneOffEntryID(Name, 
		AddressType, Address, SendRichInfo, UseUnicode) 
 | Create a one-off entry id 
		corresponding to the specified name, address type and address. Useful if 
		you need to set the flag (MAPI_ONE_OFF_NO_RICH_INFO) governing whether a 
		message will be sent in the RTF format or not.   This method does not require 
		an active MAPI session.   Name - string, name of 
		the recipient AddressType - string, 
		address type Address  - 
		string, e-mail address SendRichInfo - 
		optional, boolean. 
		If true, e-mails will be sent in the RTF format UseUnicode - optional, boolean. 
		Determines whether the name and address are embedded in the Unicode 
		format. Note that Outlook 2000 cannot handle one-off entry ids in the 
		Unicode format.   |  | 
	
		| IsAttachmentBlocked(FileName) 
 | Returns True if the given file name is blocked by Outlook and False 
		otherwise. The method is a wrapper for the
IAttachmentSecurity MAPI interface
 
 FileName - the file name to be checked. The file does 
		need to physically exist. Passing the path information is not required.
 
 | Session.MAPIOBJECT = Application.Session.MAPIOBJECT MsgBox Session.IsAttachmentBlocked("MyHarmlessFile.txt")   | 
	
		| Logoff   | Logs off from the current 
		MAPI session.   Note: 
		If you are setting the RDOSession.MAPIOBJECT property to 
		Namespace.MAPIOBJECT from the Outlook Object Model or another RDOSession, 
		do not call Logoff as it will render the original session invalid.   | set Session = 
		CreateObject("Redemption.RDOSession") Session.Logon MsgBox "There are " & 
		Session.Stores.Count & " stores in the default profile"   | 
	
		| Logon(ProfileName, 
		Password, ShowDialog, NewSession, ParentWindowHandle, NoMail) | Logs to the specified 
		profile.  ProfileName - string, 
		optional. If ProfileName is not specified or is an empty string, the 
		default profile is used. Password - string, 
		optional.Presently this parameter is only used by the PST provider if 
		the PST store is protected with a password. This is *not* a Windows 
		account password. ShowDialog - boolean, 
		optional. If true, the dialog selection dialog is used. NewSession - boolean, 
		optional. If true, a new MAPI session is created; if false, RDO will try 
		to connect to the existing MAPI session ParentWindowHandle - 
		integer, optional. Window handle of the window to be used as the parent 
		of the dialogs shown by Logon() NoMail - boolean, 
		optional. If true, MAPI session is initialized without starting the MAPI 
		spooler.   | set Session = 
		CreateObject("Redemption.RDOSession") Session.Logon("Outlook")  
		setSession = 
		CreateObject("Redemption.RDOSession") | 
	
		| LogonExchangeMailbox(User, 
		ServerName) | Log to a temporary profile 
		that points to the specified Exchange mailbox. 
		Exchange only. User - string. Name, address 
		or distinguished name identifying the mailbox, e.g. "UserName", "user@mydomain.com", 
		"/o=MyCompany/.../cn=UserName" 
		ServerName - name or address of the Exchange server., e.g. 
		"mail", "mail.mydomain.com". 
		  | 
		set Session = 
		CreateObject("Redemption.RDOSession")Session.LogonExchangeMailbox("dmitry@", "mail")
 MsgBox Session.Stores.Count
 | 
	
		| LogonHostedExchangeMailbox(SMTPAddress, UserName, 
		Password) 
 | Similar to LogonExchangeMailbox, logs to a temporary profile that 
		points to an Exchange mailbox owned by the specified SMTP address. The connection settings are retrieved using
		
		Exchange Autodiscover Service and a temporary profile is created 
		that uses RPC-over-HTTP (ROH) to connect to the mailbox under Outlook 
		2013.
 When Outlook 2016 is used, the profile is automatically configured by 
		the MSEMS provider to use either MAPI-over-HTTP or RPC-over-HTTP 
		depending on the Exchange Server version and its settings.
 No credentials prompt will be show under Outlook 2010 or newer. Under 
		Outlook 2007, the prompt is still shown. The dialog will use the window 
		specified by the RDOSession.ParentWindow 
		property as the parent window.
 
 SMTPAddress - string. The SMTP address of the user who 
		owns the mailbox. This parameter is used to retrieve the autodiscover 
		XML that contains the connection settings.
 
 UserName - string. The user name to be used to log to 
		the specified mailbox. In most cases, the user name is the same as the 
		SMTPAddress parameter, but can also be in the Domain\Name form 
		when NTLM authentication is used.
 
 Password - string. the mailbox password.
 
 
 | set Session = CreateObject("Redemption.RDOSession")
Session.ParentWindow = SomeHWND
 Session.LogonHostedExchangeMailbox _
    "user@mydomain.onmicrosoft.com", _ 
    "user@mydomain.onmicrosoft.com", _ 
    "<thePassword>"
Set oRDOFolder = Session.GetDefaultFolder(olFolderInbox)
for each item in oRDOFolder.Items
    debug.print item.subject
next
 | 
	
		| LogonPstStore(Path, 
		Format, DisplayName, Password, Encryption) | LogonPstStore method, 
		in addition to the Logon and LogonExchangeMailbox methods 
		and setting the MAPIOBJECT property, allows to log to MAPI.  LogonPstStore, similar 
		to the LogonExchangeMailbox method, creates a temporary profile, 
		adds the specified PST store (new or existing) to that temporary 
		profile, and log to the profile. The temporary profile is immediately 
		deleted, so it will never be visible to an end user. LogonPstStore 
		is useful if you need to process a PST file without explicitly creating 
		a new profile using ProfMan and/or without 
		adding the temporary PST store to an existing profile using 
		RDOSession.Stores.AddPstStore:   Path - string, 
		required, path to 
		the PST file. If the file does not exist, a new PST store will be 
		created. Format - integer, 
		optional. The format of the PST file if a new store is to be created. 
		Can be one of the rdoStoreType enums: olStoreDefault (1), olStoreUnicode (2), olStoreANSI (3). DisplayName - string, 
		optional. The display name of the store if one is to be created. 
		Password - string, optional. The PST file pssword. Encryption - one of 
		the rdoPstEncryption enums, optional. Specifies the encryption level to 
		be used when creating a new PST file. psteCompressableEncryption 
		(1)psteBestEncryption (2)
 psteNoEncryption (0)
   Returns
		RDOPstStore object. The same 
		store can be retrieved after calling LogonPstStore from the 
		RDOSession.Stores.DefaultStore.   | 
		'create initialize first RDOSession object that shared the MAPI session with Outlookset Session = CreateObject("Redemption.RDOSession")
 Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 'create and initialize a temporary session that uses a new or 
		existing PST file
 set TempSession = CreateObject("Redemption.RDOSession")
 TempSession.LogonPstStore "c:\temp\archive_test.pst", 1, "Archive PST 
		Store"
 'delete all folders in the temporary PST store to make sure there is 
		no collision
 set ArchiveRootFolder = TempSession.Stores.DefaultStore.IPMRootFolder
 set SubFolders = ArchiveRootFolder.Folders
 for i = SubFolders.Count to 1 step - 1
 SubFolders.Remove(i)
 next
 'copy the contents of the default store used by the first session
 'to the PST file used by the second session
 for each Folder in Session.Stores.DefaultStore.IPMRootFolder.Folders
 Folder.CopyTo(ArchiveRootFolder)
 next
   | 
	
		| GetCachedSharedDefaultFolder 
 | Unlike GetSharedDefaultFolder, 
		returns only a cached
		RDOFolder object. If the folder from the 
		given user is not cached, MAPI_E_NOT_FOUND exception is thrown.   NameOrAddressOrObject 
		- can be a string representing the Exchange mailbox name or address or 
		an RDOAddressEntry or an
		RDORecipient object.   FolderType - integer. 
		The type of the folder. Accepts the same values as 
		Namespace.GetDefaultFolder method in Outlook Object Model (olFolderInbox, 
		olFolderContacts, etc).  Returns
		a cached
		RDOFolder object. If the folder cannot be 
		opened 
		 | 
		//try to open a cached delegate Inbox first 
		//if that fails, try to open the online version 
		
		string mailboxName = 
		"Redemption Support"; 
		RDOFolder folder = 
		null; 
		try 
		{ 
		   
		folder = session.GetCachedSharedDefaultFolder(mailboxName, 
		rdoDefaultFolders.olFolderInbox); 
		} 
		catch(COMException e) 
		{ 
		   
		
		if (e.ErrorCode != (int)MAPICode.MAPI_E_NOT_FOUND) 
		throw; 
		   
		
		else 
		   
		{ 
		       
		
		//could not find the cached folder, try its online version 
		       
		folder = session.GetSharedDefaultFolder(mailboxName, 
		rdoDefaultFolders.olFolderInbox); 
		   
		} 
		} 
		RDOItems items = folder.Items; 
		MessageBox.Show(items.Count.ToString()); 
		Marshal.ReleaseComObject(items); 
		Marshal.ReleaseComObject(folder); 
		 | 
	
		| GetCachedSharedMailbox 
 | Returns
		RDOStore object representing the given user's 
		mailbox. Unlike GetSharedMailbox 
		, returns only a cached
		RDOStore object. If the mailbox of the the 
		given user is not cached, MAPI_E_NOT_FOUND exception is thrown.   
		NameOrAddressOrObject - can be a string representing the Exchange 
		mailbox name or address or an 
		RDOAddressEntry or an RDORecipient object. 
		  |  | 
	
		| GetAutodiscoverXml(SMTPAddress, UserName, Password) 
 | SMTPAddress - string. The SMTP address of an Exchange 
		mailbox for which autodiscover XML is to be retreiveed. 
 UserName - string, optional. Use ranem to be used for 
		authentication when retrieving autodiscover.  If not specified, 
		Redemption attempts to use the identity of the current local user.
 
 Password - string, optional
 
 RDOSession.CacheAutodiscoverXml and 
RDOSession.GetAutodiscoverXml 
methods allow to cache autodiscover XML instead of  retrieving it each 
time it is needed. This allows to speed up Redemption methods that require  
autodiscover, such as RDOSession.LogonHostedExchangeMailbox,
RDOSession.GetArchiveMailbox, ,
RDOSession.GetSharedMailbox,
RDOOutOfOfficeAssistant,
 
 |  | 
	
		| GetDefaultFolder(FolderType) | FolderType - integer. 
		The type of default folder to return. Accepts the same values as 
		Namespace.GetDefaultFolder method in Outlook Object Model (olFolderInbox, 
		olFolderContacts, etc). 
		 Returns
		RDOFolder object.   | 
		set Session = 
		CreateObject("Redemption.RDOSession")Session.Logon
 set Inbox = Session.GetDefaultFolder(olFolderInbox)
 for each Msg in Inbox.Items
 Debug.Print(Msg.Subject)
 next
   | 
	
		| 
		GetFolderFromPath(FolderPath) | Returns an RDOFolder object given its full path, e.g. "\\Personal 
		Folders\Inbox". Note that a folder path (unlike the entry id) 
		is not guaranteed to be unique, e.g. you can have multiple stores called 
		"Personal Folders", in which case GetFolderFromPath can fail.   FolderPath - string, full folder path in the form "\\Store 
		name\Parent Folder Name\Folder". If store name is not specified, 
		the default store is assumed.   |  | 
	
		| GetMessageFromMsgFile(FileName,
		CreateNew) | Returns an 
		RDOMail object 
		created on top of a specified MSG file. FileName - string. A 
		fully qualified path to the MSG file (e.g. "c:\temp\test.msg"). CreateNew - Boolean, 
		optional (default value is false). Determines whether RDO opens an 
		existing file (an error will be raised if the file does not exist) or 
		creates a new MSG file.   | 
		'open an existing MSG file set Session = 
		CreateObject("Redemption.RDOSession")Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set Msg = Session.GetMessageFromMsgFile("c:\temp\temp.msg")
 msg.Display
   'create a new MSG file set Session = 
		CreateObject("Redemption.RDOSession")Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set Msg = Session.GetMessageFromMsgFile("c:\temp\new.msg", true)
 Msg.MessageClass = "IPM.Note"
 Msg.Body = "new body"
 Msg.Save
 Msg.Display
 
		  | 
	
		| GetSelectFoldersDialog | Returns RDOSelectFoldersDialog 
		object that allows to display the "Select Folder" dialog and allows to 
		customize the dialog in the ways not possible through the 
		RDOSesion.PickFolder method call. 
 | set Session = CreateObject("Redemption.RDOSession") Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set SelectFoldersDialog = Session.GetSelectFoldersDialog
 if SelectFoldersDialog.Display Then
 set Folder = SelectFoldersDialog.SelectedFolder
 MsgBox "selected folder: " & Folder.Name
 End If
 
 | 
	
		| CreateMessageFromMsgFile(FileName, 
		MessageType, FileFormat) | Creates a new MSG file and 
		returns a message (RDOMail or one of the 
		derived types, such as RDOContactItem) 
		created on top of MSG file.    Unlike 
		RDOSession.GetMessageFromMsgFile 
		(which can also create a new MSG file if CreateNew parameter = true), 
		you can specify the MSG file format (default, Unicode or ANSI) and the 
		message class of the new item so you always get back the right item kind 
		rather than the generic RDOMail.   FileName - string. A 
		fully qualified path to the MSG file (e.g. "c:\temp\test.msg").   MessageType - variant, 
		optional. Either string specifying the message class (e.g. "IPM.Contact") 
		or one of the rdoItemType values (integer), e.g. olPostItem. If not specified, "IPM.Note" 
		will be used   FileFormat - variant, 
		optional (defaults to mffDefault) , one of the rdoMsgFileFormat enums: mffDefault = 1 - Unicode 
		under Outlook 2007 or higher, ANSI otherwisemffUnicode =2 - Unicode MSG file
 mffANSI =3 - ANSI MSG file (Outlook 2002 and below)
 
 | 'Create a contact (can be 
		any other type of item) on top of a new MSG file'Below we will get back a contact since we explicitly specify the 
		message class ("IPM.Contact").
 'The MSG file will be created in the Unicode format fro Outlook 2003 or 
		higher or ANSI format
 'for the older versions of Outlook (mffDefault = 1)
 'The last two parameters are optional
 set Session = CreateObject("Redemption.RDOSession")
 Session.Logon     
		'don't really need to call this 
		method
 set Contact = Session.CreateMessageFromMsgFile("c:\temp\TestContact.Msg", 
		"IPM.Contact", 1)
 Contact.FirstName = "Dmitry"
 Contact.LastName = "Streblechenko"
 Contact.EMail1Address = "redemption@dimastr.com"
 Contact.Save
   | 
	
		| GetMessageFromID(EntryIDMessage, 
		EntryIDStore, Flags) | EntryIDMessage - 
		string representing the entry id of the message 
		EntryIDStore - (optional). string representing the entry id of 
		the message's parent store. 
		Flags - (optional). integer flags to be used to call 
		IMAPISession::OpenEntry. By default MAPI_BEST_ACCESS (0x10) is used. 
		This parameter is most useful if you need to bypass the cached mode in 
		Outlook 2003. E.g. passing MAPI_NO_CACHE (0x200) +  
		MAPI_BEST_ACCESS (0x10) will open the message in the best access mode 
		bypassing the cached store. 
		Returns RDOMail object. 
		  | 'using RDO along with the 
		Outlook Object Model 'connect to the same MAPI session as the one used by Outlook 
		'and open the given Outlook.MailItem object as
		 'Redemption.RDOMail 
		 
		 set Session = 
		CreateObject("Redemption.RDOSession")Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set Mail = Session.GetMessageFromID(MailItem.EntryID)
 MsgBox Mail.SenderName
 
		  | 
	
		| GetFolderFromID(EntryIDFolder, 
		EntryIDStore, Flags) | EntryIDFolder - string 
		representing the entry id of the folder 
		EntryIDStore - (optional). string representing the entry id of 
		the folder's parent store. 
		Flags - (optional). integer flags to be used to call IMAPISession::OpenEntry. 
		By default MAPI_BEST_ACCESS (0x10) is used. This parameter is most 
		useful if you need to bypass the cached mode in Outlook 2003. E.g. 
		passing MAPI_NO_CACHE (0x200) +  MAPI_BEST_ACCESS (0x10) will open 
		the folder in the best access mode bypassing the cached store. 
		Returns RDOFolder object. 
		  | 'using RDO along with the 
		Outlook Object Model 'connect to the same MAPI session as the one used by Outlook 
		'and open the given Outlook.MAPIFolder object as
		 'Redemption.RDOFolder 
		 
		 set Session = 
		CreateObject("Redemption.RDOSession")Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set Folder = Session.GetFolderFromID(MAPIFolder.EntryID)
 for each Msg in Folder.Items
 Debug.Print(Msg.Subject)
 next
   | 
	
		| GetSelectNamesDialog 
 | Returns RDOSelectNamesDialog 
		object which can be used to display the contents of the address book. 
 | set Session = CreateObject("Redemption.RDOSession") Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set ABDialog = Session.GetSelectNamesDialog
 ABDialog.ActiveRecipientSelector = olBCC
 set Contacts = Session.GetDefaultFolder(olFolderContacts)
 if (not (Contacts Is Nothing)) and (Contacts.ShowAsOutlookAB) Then
 ABDialog.InitialAddressList = Contacts.GetAddressList
 End If
 ABDialog.ShowOnlyInitialAddressList = True
 if ABDialog.Display Then
 for each recip in ABDialog.Recipients
 Debug.Print recip.Name & ": " & 
		recip.Address
 next
 End If
 
 | 
	
		| GetStoreFromID(EntryIDStore, 
		Flags) | EntryIDStore - string 
		representing the entry id of the store. 
		Flags - (optional). integer flags to be used to call 
		IMAPISession::OpenMsgStore. By default MAPI_BEST_ACCESS (0x10) is used. 
		This parameter is most useful if you need to bypass the cached mode in 
		Outlook 2003. E.g. passing MDB_ONLINE(0x100) +  MAPI_BEST_ACCESS 
		(0x10) will open the store in the best access mode bypassing the cached 
		store. Returns
		RDOStore object.   | 
		'using RDO along with the 
		Outlook Object Model'connect to the same MAPI session as the one used by Outlook 
		'and open the parent store of the given Outlook.MAPIFolder object as
		 'Redemption.RDOStore 
		 
		 set Session = 
		CreateObject("Redemption.RDOSession")Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set Store = Session.GetStoreFromID(MAPIFolder.StoreID)
 MsgBox Store.Name
 
		  | 
	
		| GetAddressEntryFromID(EntryID, 
		Flags) | EntryID - string 
		representing the entry id of the address entry object. 
		Flags - (optional). integer flags to be used to call 
		IAddrBook::OpenEntry. By default MAPI_BEST_ACCESS (0x10) is used. This 
		parameter is most useful if you need to bypass the cached mode in 
		Outlook 2003. E.g. passing MAPI_NO_CACHE (0x200) +  
		MAPI_BEST_ACCESS (0x10) will open the address entry in the best access 
		mode bypassing the cached store. 
		Returns RDOAddressEntry object. 
		  
		For the one-off entry ids (e.g. created using RDOSession.CreateOneOffEntryID), 
		this methods does not require an active MAPI session. 
		  |   | 
	
		| GetAddressListFromID(EntryID, 
		Flags) | EntryID - string 
		representing the entry id of the address list object. 
		Flags - (optional). integer flags to be used to call 
		IAddrBook::OpenEntry. By default MAPI_BEST_ACCESS (0x10) is used. This 
		parameter is most useful if you need to bypass the cached mode in 
		Outlook 2003. E.g. passing MAPI_NO_CACHE (0x200) +  
		MAPI_BEST_ACCESS (0x10) will open the address list in the best access 
		mode bypassing the cached store. 
		Returns RDOAddressList object. 
		  |   | 
	
		| GetSharedDefaultFolder(NameOrAddressOrObject, 
		FolderType) | NameOrAddressOrObject 
		- can be a string representing the Exchange mailbox name or address or 
		an RDOAddressEntry or an
		RDORecipient object.   FolderType - integer. 
		The type of the folder. Accepts the same values as 
		Namespace.GetDefaultFolder method in Outlook Object Model (olFolderInbox, 
		olFolderContacts, etc).  Returns
		RDOFolder object.   | set Session = 
		CreateObject("Redemption.RDOSession")Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set Folder = Session.GetSharedDefaultFolder("dmitry", olFolderCalendar)
 for each Msg in Folder.Items
 Debug.Print(Msg.Subject)
 next
   | 
	
		| GetSharedMailbox(NameOrAddressOrObject) | Returns
		RDOStore object representing the given user's 
		mailbox.   
		NameOrAddressOrObject - can be a string representing the Exchange 
		mailbox name or address or an 
		RDOAddressEntry or an RDORecipient object.   | set Session = 
		CreateObject("Redemption.RDOSession")Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set Store = Session.GetSharedMailbox("dmitry")
 MsgBox "The address of the 
		mailbox owner: " & Store.Owner.Address 
		  | 
	
		| GetSharedMailboxEx (NameOrAddressOrObject, 
		EntryIDFlags, OpenStoreFlags)   | Returns
		IRDOExchangeStore object representing the given user's 
		mailbox. Similar to GetSharedMailbox, 
		but allows to provide various flags used when creating the store entry 
		id (use Admin privilege etc) and opening the store.   
		NameOrAddressOrObject - can be a string representing the Exchange 
		mailbox name or address or an 
		RDOAddressEntry or an RDORecipient object.   
		EntryIDFlags - a combination of rdoCreateStoreEntryIDFlags enums 
		(see below). GetSharedMailbox method uses OPENSTORE_HOME_LOGON | 
		OPENSTORE_TAKE_OWNERSHIP.   OPENSTORE_USE_ADMIN_PRIVILEGE 
		(0x00000001)OPENSTORE_PUBLIC (0x00000002)
 OPENSTORE_HOME_LOGON (0x00000004)
 OPENSTORE_TAKE_OWNERSHIP (0x00000008)
 OPENSTORE_OVERRIDE_HOME_MDB (0x00000010)
 OPENSTORE_TRANSPORT (0x00000020)
 OPENSTORE_REMOTE_TRANSPORT (0x00000040)
 OPENSTORE_INTERNET_ANONYMOUS (0x00000080)
 OPENSTORE_ALTERNATE_SERVER (0x00000100)
 OPENSTORE_IGNORE_HOME_MDB (0x00000200)
 OPENSTORE_NO_MAIL (0x00000400)
 OPENSTORE_OVERRIDE_LAST_MODIFIER (0x00000800)
 OPENSTORE_CALLBACK_LOGON (0x00001000)
 OPENSTORE_LOCAL (0x00002000)
 OPENSTORE_FAIL_IF_NO_MAILBOX (0x00004000)
 OPENSTORE_CACHE_EXCHANGE (0x00008000)
 OPENSTORE_CLI_WITH_NAMEDPROP_FIX (0x00010000)
 OPENSTORE_ENABLE_LAZY_LOGGING (0x00020000)
 OPENSTORE_CLI_WITH_REPLID_GUID_MAPPING_FIX (0x00040000)
 OPENSTORE_NO_LOCALIZATION (0x00080000)
 OPENSTORE_RESTORE_DATABASE (0x00100000)
 OPENSTORE_XFOREST_MOVE (0x00200000)
     OpenStoreFlags- flags 
		to be used when calling IMAPISession::OpenMsgStore. GetSharedMailbox 
		method uses MDB_NO_DIALOG | MAPI_BEST_ACCESS | MDB_TEMPORARY | 
		MDB_NO_MAIL.    |   | 
	
		| GetArchiveMailbox 
		(NameOrAddressOrObject, 
		EntryIDFlags, OpenStoreFlags) | Returns
		IRDOExchangeStore object representing the given user's 
		archive mailbox (Exchange 2010 or newer only)   
		NameOrAddressOrObject - can be a string representing the Exchange 
		mailbox name or address or an 
		RDOAddressEntry or an RDORecipient object.   
		EntryIDFlags - Optional, variant. A combination of rdoCreateStoreEntryIDFlags enums 
		(see GetSharedMailboxEx  above). If not specified, 
		OPENSTORE_HOME_LOGON | OPENSTORE_TAKE_OWNERSHIP are used.   OpenStoreFlags-  
		Optional, variant. Flags 
		to be used when calling IMAPISession::OpenMsgStore. 
		(see GetSharedMailboxEx  above) If not specified, 
		MDB_NO_DIALOG | MAPI_BEST_ACCESS | MDB_TEMPORARY | MDB_NO_MAIL are used.    | set Session = CreateObject("Redemption.RDOSession") Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set AddressEntry = Session.CurrentUser
 set ArchiveStore = Session.GetArchiveMailbox(AddressEntry)
 for each fld in ArchiveStore.IPMRootFolder.Folders
 Debug.Print fld.Name
 next
 
 | 
	
		| GetNicknames(ProfileOrFileName)   | Returns
		RDONickNames collection representing 
		nicknames from a particular profile, file or message store. This method does not require 
		an active MAPI session.   ProfileOrFileName - 
		variant, optional. Either a string (profile name of file name) or an
		RDOStore object.   If not specified, and there 
		is no active MAPI session (i.e. you did not call Logon or set the 
		MAPIOBJECT property), will return the nick names for the default 
		profile. If there is an active session, the nicknames form the current 
		profile will be returned.   If specified, Redemption will 
		check if the profile with the given name exists (see example) and return 
		nicknames for that profile.   If the profile with the given 
		name does not exist, Redemption assumes that a fully qualified file name 
		is specified (e.g. "C:\temp\Nicknames.NK2") and will attempt to open the 
		file.   If an
		RDOStore object is passed, GetNicknames 
		will attempt to retrieve the nicknames stored in a hidden item in the 
		Inbox of the specified store.   If neither profile nor file 
		exist, or the no store is specified, an error will be raised.   | 'list all nicknames in all 
		profilesset Session = CreateObject("Redemption.RDOSession")
 for each ProfileName in Session.Profiles
 Debug.Print("-----------------------------")
 Debug.Print("--- " & ProfileName & " --- ")
 Debug.Print("-----------------------------")
 set NickNames = Session.GetNickNames(ProfileName)
 for each NickName in NickNames
 Debug.Print NickName.Name & " - " & 
		NickName.SmtpAddress
 next
 next
   | 
	
		| GetRDOObjectFromOutlookObject (OutlookObject, Unwrap) 
 | Returns RDO Object (RDOMail, RDOFolder, etc) form the corresponding 
		Outlook Object Model object. 
 Normally, to retrieve an RDO object from an Outlook object, it is 
		necessary to call
	RDOSession.GetMessageFromID. 
		That call however opens another instance of the message, and if 
		modifications are made to both objects, can produce an conflict error. 
		GetRDOObjectFromOutlookObject method will use the MAPIOBJECT 
		property exposed by the Outlook objects in the same manner used by the
		Safe*Item objects.
 
 OutlookObject - object. The following objects are 
		supported: messages (MailItem, ContactItem, etc), MAPIFolder, 
		AddressEntry, Store, Attachment).
 
 Unwrap - optional, boolean. If true, for messages, 
		Redemption will use
		
		IMAPISecureMessage.GetBaseMessage.
 For the stores,
		
		IProxyStoreObject will be used.
 
 
 | set Session = CreateObject("Redemption.RDOSession") set Msg = session.GetRDOObjectFromOutlookObject(Application.ActiveInspector.CurrentItem, 
		true)
 MsgBox Msg.SaveAs "c:\temp\test.msg", 
		olMsg
 
 | 
	
		| GetWindowsUser(Name, NameKind) | Returns an
	RDOAddressEntry object corresponding to 
		the specified name, which can be a display name, primary SMTP address, 
		NT style user name (domain\user), etc. GetWindowsUser 
		(just like RDOSession.CurrentWindowsUser) 
		does not require an active MAPI session and can be called without 
		calling Logon or LogonExchangeMailbox. 
 Name - string. Name to be resolved
 NameKind - one of the rdoWindowsUserNameKind enum 
		values:
 
 ADS_NAME_TYPE_1779 =1
 ADS_NAME_TYPE_CANONICAL = 2
 ADS_NAME_TYPE_NT4 = 3
 ADS_NAME_TYPE_DISPLAY = 4
 ADS_NAME_TYPE_DOMAIN_SIMPLE =5
 ADS_NAME_TYPE_ENTERPRISE_SIMPLE =6
 ADS_NAME_TYPE_GUID = 7
 ADS_NAME_TYPE_UNKNOWN = 8
 ADS_NAME_TYPE_USER_PRINCIPAL_NAME = 9
 ADS_NAME_TYPE_CANONICAL_EX = 10
 ADS_NAME_TYPE_SERVICE_PRINCIPAL_NAME = 11
 ADS_NAME_TYPE_SID_OR_SID_HISTORY_NAME = 12
 
 
 | ADS_NAME_TYPE_NT4 = 3 ADS_NAME_TYPE_DISPLAY = 4
 ADS_NAME_TYPE_USER_PRINCIPAL_NAME = 9
 set Session = CreateObject("Redemption.RDOSession")
 set AddressEntry = Session.GetWindowsUser("LITWAREINC\Bob", 
		ADS_NAME_TYPE_NT4)
 MsgBox AddressEntry.Name & ": " & AddressEntry.SmtpAddress
 
 | 
	
		| CompareEntryIDs(EntryID1, 
		EntryID2) | Checks whether the two entry 
		ids refer to the same MAPI object. Note that entry ids cannot be 
		directly compared and multiple entry ids can refer to the same object 
		(e.g. in case of long term vs. short term entry id). EntryID1 - string, entry id 
		of the first object EntryID2 - string, entry id 
		of the second object   |   | 
	
		| OpenRulesFile(FileName) 
 | Opens an RWZ file with the specified filename and returns an instance of 
		the RDOClientRules object. Dos not require an active MAPI session.
 
 FileName - string, a fully qualified RWZ filename.
 
 | 
		set Session = CreateObject("Redemption.RDOSession") 
		set rules = Session.OpenRulesFile("c:\temp\test.rwz") 
		for 
		each ClientRule 
		in rules 
		
		   Debug.Print 
		ClientRule.Name 
		next 
		  | 
	
		| SetLocaleIDs(LocaleID, 
		CodePageID) | The SetLocaleIDs 
		method sets identifiers that define a messaging users locale.  The locale info is only used 
		by the dynamically created profiles when LogonExchangeMailbox is 
		called. If SetLocaleIDs is called after logon, an error will be 
		raised. LocaleID - integer.
		The locale identifier (LCID) to be used for 
		this messaging user. CodePageID - integer.
		The code page identifier to be used for this 
		messaging user. 
		   | set Session = 
		CreateObject("Redemption.RDOSession")Session.SetLocaleIDs 1031, 1252  
		  'German locale with 
		multilingual codepage
 Session.LogonExchangeMailbox "dmitry", "vm-w2k3"
 
		  | 
	
		| PickFolder(SelectedFolder,
		Caption, ParentWindow, Flags, AllowedFolderType) | Displays the Pick Folder 
		dialog box. This is a modal dialog box which means that code execution 
		will not continue until the user either selects a folder or cancels the 
		dialog box. Returns an
		RDOFolder object corresponding to the folder 
		that the user selects in the dialog box. Returns Nothing when the dialog 
		box is canceled by the user.   SelectedFolder - 
		optional,
		RDOFolder. If specified, this folder will be 
		initially selected. If not specified, the Inbox folder is selected when 
		the dialog is displayed.   Caption - optional, 
		string. If specified, determines the Select Folder dialog caption. If 
		not specified, defaults to "Select Folder" (localized 
		appropriately in French/German/Italian/Portugese/Russian/Spanish along 
		with other dialog box controls).   ParentWindow - 
		optional, integer. If specified, the handle of the dialog's parent 
		window. If not specified, the dialog is shown as a child of the 
		currently active window.   Flags - optional. Can 
		be a combination of the following rdoPickFolderFlags enum values:   sffHideNewButton (1) - 
		hides the "New" button, preventing the user from creating a new folder. pffHideParentFolders (2) - displays only the specified folders 
		and its subfolders (see the screenshot)
 pffNoSizing (4) - prevents the user from resizing the dialog.
   pffHidePublicFoldersStore 
		(8) - hides the Public Folders store but leaves all the other stores 
		visible (unless pffHideParentFolders  is also specified).   pffShowStoresOnly 
		(16) - only shows the top level folders of the stores in the current 
		profile.  "New" button will be hidden. AllowedFolderType - optional. One of the rdoItemType enums. If 
		not specified, all folders are displayed. If is specified, only the 
		folders with the DefaultItemType property matching the specified value 
		are displayed.
 The following 
		values are supported: olMailItem, olAppointmentItem, olContactItem, 
		olTaskItem, olJournalItem, olNoteItem. | set Session = 
		CreateObject("Redemption.RDOSession")Session.Logon
 set Folder = Session.PickFolder
 If Not (Folder Is Nothing) 
		Then     MsgBox 
		"You selected  " & Folder.Name End If   
		   
   'Allows to select either 
		the Contacts folder or one of its subfolders sffHideNewButton = 1sffHideParentFolders = 2
 sffNoSizing = 4
 set Session = CreateObject("Redemption.RDOSession")
 Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set InitialFolder = Session.GetDefaultFolder(olFolderContacts)
 set Folder = Session.PickFolder(InitialFolder, "Please select a contacts 
		folder", ,ffHideParentFolders)
   
		   
   'replacement for 
		Namespace.PickFolder in OOM'that allows to specify the initial folder
 set Session = CreateObject("Redemption.RDOSession")
 Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 'convert Outlook.Folder to Redemption.RDOFolder
 set rFolder = 
		Session.GetFolderFromID(Application.ActiveExplorer.CurrentFolder.EntryID)
 set rFolder = Session.PickFolder(Folder, "Please select a folder")
 if Not (rFolder Is Nothing) Then
 'convert Redemption.RDOFolder back to Outlook.Folder
 set oFolder = 
		Application.Session.GetFolderFromID(rFolder.EntryID)
 MsgBox oFolder.Name
 End If
 | 
	
		| DoFastShutdown | Shuts down MAPI in the 
		current process space. No MAPI calls will be allowed if this method 
		succeeds. An error will be raised if 
		the current version of Outlook and all providers in the profile do not 
		support fast shutdown. Only Outlook 2007 SP2 or 
		higher supports fast shutdown.   See the following for more 
		information: 
		
		http://blogs.msdn.com/stephen_griffin/archive/2009/03/03/fastest-shutdown-in-the-west.aspx
		   | set Session = 
		CreateObject("Redemption.RDOSession")Session.Logon
 Debug.Print "Stores in the profile: " & Session.Stores.Count
 if Session.FastShutdownSupported Then
 Session.DoFastShutdown
 Else
 Session.Logoff
 End If
   | 
	
		| 
 | 
	
		| Events: | 
	
		| 
 | 
	
		| OnNewMail(EntryID) | Fires when a new message is 
		delivered to the Inbox of the default store.   EntryID - string, 
		entry id (in hex) of the newly delivered message. Note that under 
		Exchange, the entry id is a short term entry id. To retrieve the long 
		term entry id, open the message (e.g. using RDOSession.GetMessageFromID), 
		then read the EntryID property from the RDOMail 
		object.   | Dim WithEvents Session As 
		Redemption.RDOSession...
 Sub Session_OnNewMail(ByVal 
		EntryID As String)Dim Msg As Redemption.RDOMail
 Set Msg = Session.GetMessageFromID(EntryID)
 MsgBox "Session_OnNewMail: " & Msg.Subject
 End Sub
 | 
	
		| OnOfflineStateChange | Fires when the user clicks on the "Work Offline" button/menu item in 
		Outlook or when the RDOSession.Offline 
		property is set. 
 |  |