Integration with Outlook Mobile
In the past, integrating your application with the PIM functionality on your device was a hair-pulling experience. Windows Mobile 5.0 now exposes the functionality in Outlook Mobile through managed classes found in the Microsoft.WindowsMobile.PocketOutlook namespace. .NET Compact Framework developers can now easily integrate data from Outlook Mobile into their application using these managed classes.
As an example, let's build an application that allows a user to select a contact from Contacts and then send an e-mail to the selected contact.
First, add a reference to the Microsoft.WindowsMobile.Forms and Microsoft.WindowsMobile.PocketOutlook assemblies and import the required namespaces.
From a developer's viewpoint, Windows Mobile 5.0 exposes many of its APIs as managed classes, thereby allowing developers using the .NET Compact Framework to easily build compelling applications that were once only possible to native developers.
|
|
Imports Microsoft.WindowsMobile.Forms
Imports Microsoft.WindowsMobile. _
PocketOutlook
To select a contact, use the ChooseContactDialog class.
Private Sub btnSelectContact_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnSelectContact.Click
Dim contactPicker As New _
ChooseContactDialog
Dim result As DialogResult = _
contactPicker.ShowDialog
If result = Windows.Forms.DialogResult.OK Then
lblName.Text = contactPicker.SelectedContactName
lblEmail.Text = contactPicker.SelectedContact.Email1Address
PictureBox1.Image = contactPicker.SelectedContact.Picture
End If
End Sub
Figure 8 shows the flow of the application.
 | |
Figure 8: Selecting a contact from the Contact application |
To send an e-mail, you use the EmailMessage class.
Private Sub MenuItem1_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MenuItem1.Click
Dim message As New EmailMessage
message.Subject = "Generated Email"
message.BodyText = txtMessage.Text
Dim client As New Recipient(lblEmail.Text)
message.To.Add(client)
Dim currentSession As New OutlookSession
currentSession.EmailAccounts(0).Send(message)
MsgBox("Message sent!")
End Sub
Figure 9 shows the flow of the application. Once the e-mail is sent, you can go to Messaging (choose the Outbox folder) to verify that an e-mail has indeed been created.
Intercepting SMS Messages
For managed developers, Windows Mobile 5.0 can intercept incoming SMS messages. For example, you might write your own custom push-email solution by sending yourself an SMS message whenever a new e-mail is received. When your Windows Mobile 5 device receives the message, your application can intercept the message and then automatically fire up your Web browser to navigate to your Web e-mail.
You can use the MessageInterceptor class to intercept incoming messages and then perform a check on its content so that if it fulfills your criteria, you can perform a specific action.
Listing 1 shows how you can intercept incoming SMS messages by checking to see if the message body starts with the word "invoke". If it does, the code launches Pocket Internet Explorer to navigate to http://www.hotmail.com/. (For this example, you need to add a reference to the Microsoft.WindowsMobile and Microsoft.WindowsMobile.PocketOutlook assemblies.)
The MessageInterceptor class is useful for automation purposes. Suppose your device contains confidential information and you are worried that the information may fall into the wrong hands if you lose your device. You could write an application that will wipe out all the sensitive data on the device if it receives a specially-coded SMS message.
Integrating with Calendar
You can now easily integrate your application with the Calendar application. The following code segment shows how easy it is to create an appointment in Calendar. (This example requires you to add a reference to the Microsoft.WindowsMobile.PocketOutlook assembly.)
Imports Microsoft.WindowsMobile.PocketOutlook
...
Dim appt As New Appointment
appt.Subject = "Meeting with Jeff"
appt.Start = New DateTime(2006, 7, 15, 9, 0, 0)
appt.End = New DateTime(2006, 7, 15, 11, 0, 0)
'---vibrate the device as a reminder
appt.ReminderVibrate = True
'---repeat the reminder
appt.ReminderRepeat = True
Dim currentSession As New OutlookSession
currentSession.Appointments.Items.Add(appt)