The NameSpace Object
In Outlook, the NameSpace object represents the MAPI message store. The NameSpace object provides methods for logging on or off Outlook, referencing a default folder, and returning objects directly by ID. In addition, the NameSpace object provides access to a variety of methods and properties that are not normally available with the Application object.
For a complete list and description of the methods, properties, and events for the NameSpace object, see Microsoft Outlook Visual Basic Reference Help.
Open the NameSpace object item in the VBScript Samples folder to work directly with this code in Outlook.
NameSpace Object Methods
This section covers the GetDefaultFolder method and the dial method of the NameSpace object.
Returning a Default Folder
You can use the GetDefaultFolder method of the NameSpace object to access folders in the root folder, also known as the Mailbox. To reference a folder in the Mailbox, you can either specify a numeric value as the argument in the GetDefaultFolder method or copy the olDefaultFolders constants from the Outlook Constants item in the VBScript Samples folder and paste them into your code. The table lists these numeric values.
The following example uses the GetDefaultFolder method of the NameSpace object to return the Contacts folder and then display it:
Sub CommandButton1_Click
Set MyFolder = Application.GetNameSpace("MAPI").GetDefaultFolder(10)
MyFolder.Display
End Sub
| Folder | Value |
|---|---|
Deleted Items
|
3
|
Outbox
|
4
|
Sent Items
|
5
|
Inbox
|
6
|
Calendar
|
9
|
Contacts
|
10
|
Journal
|
11
|
Notes
|
12
|
Tasks
|
13
|
Drafts
|
16
|
Dialing a Phone Number
The Dial method is new to Outlook 2002. If you supply a ContactItem as the argument to the Dial method, you will display the Outlook automatic phone dialer for that contact. The following code example uses the Dial method for the first ContactItem in your Contacts folder:
Sub DialPhone_Click()
On Error Resume Next
Dim objContactsFolder, objContactItem
Const olFolderContacts = 10
Set objContactsFolder = _
Application.GetNamespace("MAPI") _
.GetDefaultFolder(olFolderContacts)
Set objContactItem = objContactsFolder.Items(1)
If objContactItem Is Nothing Then
MsgBox "Could not find a contact to dial." _
, vbInformation
Else
Application.GetNamespace("MAPI").Dial (objContactItem)
End If
End Sub
Properties of the NameSpace Object
The NameSpace object provides two properties that you use quite often. These are the CurrentUser and Folders properties.
Returning the Name of the Current User
You can use the CurrentUser property of the NameSpace object to return the name of the currently logged-on user. This example shows the current user’s name in the message box when the CommandButton1 control is clicked:
Sub CommandButton1_Click
Set MyNameSpace = Application.GetNameSpace("MAPI")
MsgBox MyNameSpace.CurrentUser
End Sub
Referencing a Folder Collection
You can use the Folders property of the NameSpace object to reference the collection of folders in the MAPI NameSpace. The following example displays the number of subfolders in the Building Microsoft Outlook 2002 Applications .pst file:
Sub ReferenceAFolderCollection_Click
Set MyNameSpace = Application.GetNameSpace("MAPI")
set objFolder = _
MyNameSpace("Building Microsoft Outlook 2002 Applications")
Set colFolders = objFolder.Folders
MsgBox "There are " & colFolders.Count & " subfolders" _
& vbCr & "in " & objFolder.Name, vbInformation
End Sub
Selecting a Folder
You can use the PickFolder method of the NameSpace object to return a MAPIFolder object. The PickFolder method displays a dialog box for the user to select a folder from all available folders in the current profile. The following example displays the Select Folders dialog box and also displays an alert dialog box if the user clicks Cancel. If the user selects a folder, then the folder is displayed in an Explorer window.
Sub PickAFolder_Click()
On Error Resume Next
Set MyNameSpace = Application.GetNameSpace("MAPI")
Set objFolder = MyNameSpace.PickFolder
If objFolder Is Nothing then
MsgBox "User Pressed Cancel!", vbInformation
Else
objFolder.Display
End If
End Sub
Figure 11.4 - This Warning dialog box appears when you attempt to access the CurrentUser property of the NameSpace object.
No comments:
Post a Comment