SDK 目录下提供了丰富的例子,开发中各方面的内容都有涉及,是开发者可充分利用的宝库。以 Windows Mobile 5.0 Pocket PC SDK 和 Windows Mobile 5.0 Smarphone SDK 为例,简单介绍一下其提供的例子。需要说明的是,两者中有部分例子是相同的。
l AXSample
示例演示创建一个 ActiveX 控件以及如何在 web 页中访问该控件。
l DvorakSIP
示例演示如何基于 Pocket PC 创建一个 SIP 输入法。示例是一个实现了 IInputMethod 接口的 COM 组件。当用户选择输入面板开始点击按键时,将发生下列事件: 1) 系统调用 dll ,它实现了 IInputMethod 接口; 2) Select 方法被调用来创建输入窗口; 3) 系统调用 GetInfo 获取 IMINFO 结构的信息,包括尺寸和其他的上下文信息; 4) 改变输入法面板的尺寸,可使 用 IIMCallback::SetImInfo ,而 系 统调用 ReceiveSipInfo 来获取输入法尺寸、位置信息; 5) RegisterCallback 将被调用,赋给输入法一个 IMCallBack 接口的指针,这个接口通常用于给应用程序发送按键消息; 6 )示例给出了一个位置索引,当用户点击键盘时,会对应到一个键值; 7 ) IICallBack : SendVirtualKey 可发送虚拟键值,比如回车、空格、删除等,如果要发送字符串,则使用 IICallBack::SendString ; 8 ) Deselect 方法被调用来销毁窗口。
l MiniPIE
示例演示如何在应用程序中使用 IE Mobile Web browser 。示例使用了 ATL 。
l Piehelper
示例演示如何创建一个浏览帮助对象( BHO ),使用 BHO ,可实现上网监控。
l CmHelper
示例演示连接管理函数的用法。相关函数与接口:
ConnMgrEstablishConnection
ConnMgrConnectionStatus
ConnMgrReleaseConnection
ConnMgrMapURL
ConnMgrProviderMessage
l Notifymfc
示例演示了 Pocket PC 的通知提醒函数的能力和选项。相关函数与接口:
SHNotificationAdd
SHNotificationUpdate
SHNotificationRemove
l AddContactPicture
示例演示如何选择联系人和图片,并显示联系人的主题卡片。相关函数与接口:
ChooseContact
GetOpenFileNameEx
POOM IItem 接口
l Autorun
示例演示当扩展卡插入或拔出设备时如何管理自动运行通知。
l Basicapp
示例演示使用主要的 Shell API 来适配 Windows Mobile OS 。相关函数与接口:
RegisterClass
CreateWindow
SetForegroundWindow
SHCreateMenuBar
SHInitDialog
SHGetUIMetrics
SHHandleWMActivate
SHHandleWMSettingChange
SHLoadImageResource
WM_HIBERNATE
l Bluetooth
简单的蓝牙设备扫描程序。例子提供的列表框只列出发现的蓝牙设备名称,但也会检索设备的地址,地址可用于更多设备信息的查询。相关函数与接口:
Winsock
WSALookupServiceBegin
WSALookupServiceNext
WSALookupServiceEnd
l Browse
示例演示了如何使用 HTML Viewer 控件,包括使用 DTM_NABIGATE 消息来触发控件从 URL 地址下载和显示内容。
l Bthchat
示例演示如何基于蓝牙无线技术在两台设备之间创建 P2P 通信。
l Calendaranddtp
示例演示如何使用日历和日期时间选择器控件。
l Calendarview
示例演示如何在约会中使用 POOM IItem 接口。
l Callingcard
示例演示直接从联系人界面呼叫一个电话。相关函数与接口:
PhoneMakeCall
QueryContextMenu
l Cameracapture
示例提供了基础的视频截取功能,视频被截取并编码为 WMV 文件,图片被截取并编码为 jpg 文件。相关函数与接口:
ICaptureGraphBUilder2
l Cecamera
示例演示使用摄像头拍照或录制视频。相关函数与接口:
SHCameraCapture
l Ceinvoke
示例通过服务端和客户端两种方式演示如何使用 CEInvoke API 。
l CeDialer
示例演示 TAPI ( Microsoft Telephony API )的使用。相关函数与接口:
lineInitialize
lineNegotiateAPIVersion
lineGetDevCaps
lineDrop,
lineDeallocateCall,
lineClose
l Extapi
示例演示了 ExTAPI 的一些功能。注意:应用程序要使用 ExTAPI 需授权。相关函数与接口:
lineNegotiateAPIVersion
lineGetDevCaps
lineGetGeneralInfo
lineInitializeE
l Extapiasync
演示 ExTAPI 的一些异步功能。注意:应用程序要使用 ExTAPI 需授权。相关函数与接口 :
lineNegotiateAPIVersion
lineGetDevCaps
lineGetGeneralInfo
lineInitializeEx
lineNegotiateExtVersion
lineGetOperatorStatus
lineOpen
lineClose
lineShutdown
l HelloSMS
示例演示简单的短信发送。相关函数与接口:
SmsSendMessage
l HelloTAPI
示例演示简单的 TAPI 拨号。相关函数与接口:
tapiRequestMakeCall
l Wdp_sms
示例演示经由无线数据协议( WDP )收发数据。相关函数与接口:
WapOpen
WapSend
WapRead
WapClose
l Cfgclient
示例演示 DMProcessConfigXML 的调用。相关函数与接口:
DMProcessConfigXML
l Crossword
DPI(Dot Per Inch) 认知程序。相关函数与接口:
ChangeDisplaySettingsEx
WM_SETTINGCHANGE
WM_SIZE
GetDeviceCaps
GetSystemMetrics
SHGetUIMetric
l Ctxmenu
示例演示如何实现一个上下文菜单扩展处理器。相关函数与接口:
IContextMenu
l Customform
示例演示如何截取和处理 SMS/EMS ,并且在收件箱程序实现了一个自定义阅读格式。
l Deviceinfo
示例演示 IRAPI 接口的用法。相关函数与接口:
IRAPIDesktop
EnumDevices
IRAPIDevice
IRAPIDevice::GetConnectionInfo
IRAPIDevice::GetDeviceInfo
l Directx
示例演示 Directx 在 Mobile 上的用法。
l Dirtree
示例演示浏览文件系统,显示所有目录和文件的名称。相关函数与接口:
FindFirstFile
FindNextFile
Tree 控件
l Dynamenu
示例演示了一些使用菜单句柄的技巧。相关函数与接口:
SHGetSubMenu
SHSetSubMenu
CheckMenuRadioItem
CheckMenuItem
InsertMenu
DeleteMenu
l Filechangenotify
示例演示如何监听文件系统的改变。相关函数与接口:
SHChangeNotifyRegister
SHChangeNotifyDeregister
l Fileclient
示例演示接受 push 消息。
l FileDRM
示例演示文件 Drm 函数的调。 DRM ( Digital Rights Management ,内容数字版权加密保护技术)。相关函数与接口:
FileDrmIsDRM
FileDrmShowLicenseInfo
FileDrmVerifyRights
FileDrmCreateFile
FileDrmGetMetric
FileDrmCommitRights
l Gapiapp
示例演示 GAPI (游戏 API )的用法。
Getdeviceid
示例演示 GetDeviceUniqueID 的使用。
l Getphonenumber
示例获取电话号码。
l Handlesip
示例演示如何使用一些 SIP 函数。
l Htmlhose
示例演示 HTML 视图控件的使用。
l Hwnavigation
示例演示了当用户使用导航键时,对话框中焦点的移动。相关函数与接口:
WM_GETDLGCODE
DrawFocusRectColor
LVS_EX_DISJOINTFOCUS
l Imaging
示例演示使用 imaging.dll 加载和显示一副图片。相关函数与接口:
IImage
IImagingFactory
l Inboxmenuextensibility
示例演示为收件箱的菜单添加新项。该示例是一个 dll ,可被收件箱加载以扩展特定的菜单。相关函数与接口:
IContextMenu 接口
IObjectWithSite 接口
IMAPIFolder::DeleteMessages
IMAPIFolder::CopyMessages
l Ink2
示例演示 richink 控件对于 rtf 和 txt 数据的处理。相关函数与接口:
RichInk 控件
l Inky
示例演示 RichInk 控件的能力。相关函数与接口:
RichInk 控件
l ListView
示例演示使用 ListView 控件的一些技巧。相关函数与接口:
ListView 控件
l Mailset
使用 IMsgStore::GetProps 和 IMsgStore::SetProps 检索和设置消息存储。相关函数与接口:
IMAPISession
IMAPITable
IMsgStore::GetProps
IMsgStore::SetProps
l MapiRule
实现一个 MAPI Rule 客户端,能够处理过滤新短信。相关函数与接口:
IMailRuleClient
IMailRuleClient::ProcessMessage
IMailRuleClient::Initialize
IMsgStore
IMsgStore::OpenEntry
IMessage
IMessage::GetProps
l Medicalhistory
示例往联系人卡片添加菜单扩展项,允许添加医疗信息包括健康保险公司、血型、血压、过敏症状。相关函数与接口:
POOM 自定义属性
IPOutlookApp2 接口
IItem 接口
菜单扩展
IContextMenu 接口
IObjectWithSite 接口
l Memwatcher
创建一个自定义今日屏幕项。相关函数与接口:
今日插件
l Menu
示例演示添加、创建、插入菜单子项。
l VisAdm
示例演示如何使用消息队列( MSMQ )。
l Mybacklight
示例演示在 PPC 设备上创建一个简单的控制面板程序。相关函数与接口:
CPlApplet
l Owneralistview
示例演示如何实现一个自绘的 ListView 控件以及如何使用不同的 ListView 通知事件。
l Picturedialer
示例将电话号码和图片关联到网格中的数字,按下数字将拨打电话号码。
l Pimexprovider
联系人和日历。
l PoomMaster
演示使用 POOM API 。相关函数与接口:
IPOutlookApp
IPOutlookCollection
ITask
IContact
IAppointment
Listview 控件
Datetime 控件
l Powermanager
示例演示电源管理 API 的使用。相关函数与接口:
RequestPowerNotifications
StopPowerNotifications
SetPowerRequirement
ReleasePowerRequirement
GetSystemPowerState
SetSystemPowerState
l ProjectEnumeration
演示项目文档和文件操作的 API 。
l PViewCE
设备进程查看器。相关函数与接口:
CreateToolhelp32Snapshot
l Raip
PC 端程序例子,用于 ActiveSync 与终端同步。
l ReadViewMenuExt
使用默认的电子邮件账户回复邮件。相关函数与接口:
菜单扩展
IContextMenu
IObjectWithSite
MailComposeMessage
l Regviewer
一个 Pocket PC 注册表查看程序。相关函数与接口:
RegOpenKeyEx
RegQueryInfoKey
RegEnumValue
RegEnumKey
对于不同分辨率终端在程序安装过程中资源图片的处理,示例给出了方案。
l Resolve
示例演示如何将一个域名(类似 www.microsoft.com )解析成 IP 地址,或者 IP 地址解析成域名。相关函数与接口:
gethostbyaddr
gethostbyname
l Reversi
示例实现了掌上电脑黑白棋游戏。包括绘图,游戏逻辑和算法。
l SendMail
演示一些 CEMAP 函数的用法。通过使用这些函数,程序可实现多联系人发送邮件。相关函数与接口:
MapiLogonEx
SRowSet
IMapiSession::GetMsgStoresTable
IMapiSession::OpenMsgStore
IMapiTable::QueryRows
IMsgStore::OpenEntry
IMsgStore::GetProps
IMapiFolder::CreateMessage
IMessage::SubmitMessage
MAPIFreeBuffer
FreeProws
l Setupdll
在 CAB 包安装和写在过程中,用户可实现一些自定义操作, setupdll 将起到此作用。
l ShellApiDemo
演示了一些 Shell API 。比如,如何显示 / 隐藏任务栏、菜单和 Sip 按钮,以及 SHInitDialog 、 SHCreatemenuBar 的用法。相关函数与接口:
SHInitDialog
SHDoneButton
SHSetNavBarText
SHFullScreen
SHGetAutoRunPath
SHCreateMenuBar
SHEnableSoftkey
l SocketApp
SocClient 是一个 Win32 桌面组件,演示了使用套接字与 Windows Mobile 设备通信。第一步,应用程序使用 IRAPI 接口来获得通过 ActiveSync 连接的移动设备 IP ;第二步,它发送一个 Hello 字符串,并侦听设备返回。相关函数与接口:
IRAPIDesktop
EnumDevices
IRAPIDevice
IRAPIDevice::GetConnectionInfo
l Spintest
示例演示自定义控件( SpinCube )的使用。
l Syncmanager
演示 ActiveSync API 的用法。相关函数与接口:
ActiveSyncStart
ActiveSyncStop
IsCradled
IsSynchronizing
l Tasktree
在 tree 视图显示任务对象,允许用户添加新的任务项。
l Transportdemo
演示如何创建一个自定义的收件箱传输。此示例传输实际上并不使用任何协议同步电子邮件。它只是说明了如何构造一个收件箱的传输,通过该传输,开发人员可以实现其所需的协议。
l TrayApp
演示如何在今日页面上放置一个图标,以及如何点击图标弹出一个对话框。相关函数与接口:
Shell_NotifyIcon
l TrayTaskList
演示如何获取运行任务列表。相关函数与接口:
Shell_NotifyIcon
CreateToolhelp32Snapshot
Process32First
Process32Next
l Tty
示例演示如何打开,配置和关闭串行通信端口,并执行读 / 写一个 tty 终端仿真应用操作。
l Tv_inbox
实现一个新的邮件类别。相关函数与接口:
IFormProviderEx
IMailRuleClient
l VirtualListView
ListView 的使用。相关函数与接口:
ListView_SetItemCount
ListView_SetExtendedListViewStyle
ListView_GetExtendedListViewStyle
ListView_SetImageList
ListView_InsertColumn
l Back
演示如何检测返回按键被按下以及如何与之交互。相关函数与接口:
SHCMBM_OVERRIDEKEY
SHNavigateBack
l CloseWindow
演示如何销毁子窗口。
l Cmtime
演示如何与服务器同步时间。相关函数与接口:
ConnMgrReleaseConnection
ConnMgrEnumDestinations
ConnMgrEstablishConnection
TCP sockets
l Currency
演示如何把一个 PPC 程序转化为 Smartphone 程序。
l HomeScreen
该示例实现了 Home 插件和自定义 Home 插件的布局。相关函数与接口:
IHomePlugin
IPersistStream
IHomePluginEnvironment
l Menudemo
创建和操作软键菜单。相关函数与接口:
SHCreateMenuBar
SHMENUBARINFO
l Muihello
一个 hello world 示例的 MUI 版本。 MUI 是一种单独发行的 Windows 版本的代号。它的正式名字叫 Windows 多语种版( Windows Multilanguage Version )。在这个版本的 Windows 中,用户可以自己设定 Windows 界面中使用的语言。
l Phoneime
演示如何创建 Smartphone 上的 IME 输入法( Input Method Editor )。相关函数与接口:
SHImeSetCustomInputIcons
SHImeSetModeIcon
SHImeOnKeyPress
SHImeGetClearMessage
l Simmgr
演示如何添加和删除 SIM 卡的电话号码项。相关函数与接口:
SimInitialize,
SimGetDevCaps,
SimDeinitialize,
SimReadPhonebookEntry