《高惠杰合作伙伴技术支工程师合作伙伴支持部微软全球技术支》由会员分享,可在线阅读,更多相关《高惠杰合作伙伴技术支工程师合作伙伴支持部微软全球技术支(57页珍藏版)》请在金锄头文库上搜索。
1、高惠杰高惠杰合作伙伴技术支工程师合作伙伴技术支工程师合作伙伴支持部合作伙伴支持部微软全球技术支持中心微软全球技术支持中心 大中华区大中华区Windows Mobile原生代码开发的新功能我们将会讨论的新功能SoftkeysSoftkeysSoftkeysSoftkeys - - - - 软键软键软键软键State and Notification Broker - State and Notification Broker - State and Notification Broker - State and Notification Broker - 状态提醒状态提醒状态提醒状态提醒Soun
2、d - Sound - Sound - Sound - 声音设置声音设置声音设置声音设置Imaging - Imaging - Imaging - Imaging - 图像操作图像操作图像操作图像操作POOM - Pocket Outlook POOM - Pocket Outlook POOM - Pocket Outlook POOM - Pocket Outlook 对象模型对象模型对象模型对象模型GPS GPS GPS GPS 全球定位系统全球定位系统全球定位系统全球定位系统Messaging Messaging Messaging Messaging 消息应用程序消息应用程序消息应用
3、程序消息应用程序ActiveSync ActiveSync ActiveSync ActiveSync 同步控制同步控制同步控制同步控制Picture Picker Picture Picker Picture Picker Picture Picker 图像选择器图像选择器图像选择器图像选择器Contact Picker Contact Picker Contact Picker Contact Picker 联系人选择器联系人选择器联系人选择器联系人选择器ExitWindowsExExitWindowsExExitWindowsExExitWindowsEx 重新启动重新启动重新启动重新启
4、动QueryPolicyQueryPolicyQueryPolicyQueryPolicy 安全策略查询安全策略查询安全策略查询安全策略查询GetDeviceUniqueIDGetDeviceUniqueIDGetDeviceUniqueIDGetDeviceUniqueID 得到设备标识得到设备标识得到设备标识得到设备标识我们不会讨论的新功能DirectDraw / Direct3DDirectDraw / Direct3DDirectDraw / Direct3DDirectDraw / Direct3D请参见请参见请参见请参见用用用用 DirectX DirectX DirectX Di
5、rectX 开发开发开发开发 Windows Mobile Windows Mobile Windows Mobile Windows Mobile 游戏游戏游戏游戏Windows Media PlayerWindows Media PlayerWindows Media PlayerWindows Media Player请参见请参见请参见请参见Windows CE 5.0 Windows CE 5.0 Windows CE 5.0 Windows CE 5.0 的多媒体技术的多媒体技术的多媒体技术的多媒体技术SQL Server CE / SQL Server MobileSQL Serv
6、er CE / SQL Server MobileSQL Server CE / SQL Server MobileSQL Server CE / SQL Server Mobile请参见请参见请参见请参见SQL CE SQL CE SQL CE SQL CE 的演进的演进的演进的演进 - SQL Server 2005 - SQL Server 2005 - SQL Server 2005 - SQL Server 2005 移动版移动版移动版移动版托管应用程序开发托管应用程序开发托管应用程序开发托管应用程序开发请参见请参见请参见请参见Windows Mobile 5.0 Windows M
7、obile 5.0 Windows Mobile 5.0 Windows Mobile 5.0 中新的托管代码中新的托管代码中新的托管代码中新的托管代码APIAPIAPIAPI以及控件以及控件以及控件以及控件 Visual Studio 2005, MFC, ATLVisual Studio 2005, MFC, ATLVisual Studio 2005, MFC, ATLVisual Studio 2005, MFC, ATL请参见请参见请参见请参见在在在在VS .NET 2005 VS .NET 2005 VS .NET 2005 VS .NET 2005 中移动智能设备开发中移动智能设
8、备开发中移动智能设备开发中移动智能设备开发 Pocket PC SoftKeys - 软键SHCreateMenuBarSHCreateMenuBar原有的 Command BarsIDR_MYAPP_CMDBAR RCDATAIDR_MYAPP_CMDBAR RCDATABEGINBEGIN IDR_MAIN_MENU, IDR_MAIN_MENU, 2, 2, I_IMAGENONE, IDM_DRAW, TBSTATE_ENABLED, I_IMAGENONE, IDM_DRAW, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, I
9、DS_DRAW, 0, NOMENU,TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, IDS_DRAW, 0, NOMENU, I_IMAGENONE, 0, TBSTATE_ENABLED, I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENU, 0, 0,TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENU, 0, 0,ENDEND原有的 Command BarsIDR_MYAPP_CMDBAR RCDATAIDR_MYAPP_
10、CMDBAR RCDATABEGINBEGIN IDR_MAIN_MENU, IDR_MAIN_MENU, 2, 2, I_IMAGENONE, IDM_DRAW, TBSTATE_ENABLED, I_IMAGENONE, IDM_DRAW, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, IDS_DRAW, 0, NOMENU,TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, IDS_DRAW, 0, NOMENU, I_IMAGENONE, 0, TBSTATE_ENABLED, I_IMAGENONE, 0,
11、TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENU, 0, 0,TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENU, 0, 0,ENDENDXSoftkeys 软键SHCMBF_HMENUSHCMBF_HMENUcbi.dwFlags = cbi.dwFlags = SHCMBF_HMENUSHCMBF_HMENU; ;cbi.nToolBarId = IDM_MYMENU;cbi.nToolBarId = IDM_MYMENU;SHCreateMenuBar(&cbi);SHCr
12、eateMenuBar(&cbi);Visual StudioIDR_MYAPP_CMDBAR RCDATAIDR_MYAPP_CMDBAR RCDATABEGINBEGIN IDR_MAIN_MENU, IDR_MAIN_MENU, 2, 2, I_IMAGENONE, IDM_DRAW, TBSTATE_ENABLED, I_IMAGENONE, IDM_DRAW, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, IDS_DRAW, 0, NOMENU,TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, IDS_DR
13、AW, 0, NOMENU, I_IMAGENONE, 0, TBSTATE_ENABLED, I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENU, 0, 0,TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENU, 0, 0,ENDENDVisual Studio启用/禁用软键SHEnableSoftkey(SHEnableSoftkey(HWND hwndMenuBar, HWND hwndMenuBar, UINT uid, / command i
14、d or index UINT uid, / command id or index BOOL bByIndex, BOOL bByIndex, BOOL bEnable); BOOL bEnable);SDKSDK中的例子中的例子中的例子中的例子: ShellApiDemo: ShellApiDemoSoftKeySoftKey 演示程序演示程序State And Notification Broker - 状态提醒通过统一的方式来提供设备状态的提醒功能通过统一的方式来提供设备状态的提醒功能典型的提醒功能电话电话未接来点未接来点未接来点未接来点电话状态电话状态电话状态电话状态 来电显示信息来
15、电显示信息来电显示信息来电显示信息网络连接状况网络连接状况WiFi, GPRS, WiFi, GPRS, WiFi, GPRS, WiFi, GPRS, 调制解调器,通过桌面电脑调制解调器,通过桌面电脑调制解调器,通过桌面电脑调制解调器,通过桌面电脑日程表日程表当前的约会当前的约会当前的约会当前的约会即将到来的约会即将到来的约会即将到来的约会即将到来的约会典型的提醒功能通信提醒通信提醒未阅读的未阅读的未阅读的未阅读的E-mailE-mailE-mailE-mail、短消息数量、短消息数量、短消息数量、短消息数量其他提醒其他提醒显示方向(横向、纵向)显示方向(横向、纵向)显示方向(横向、纵向)显
16、示方向(横向、纵向)放入同步架中放入同步架中放入同步架中放入同步架中可以由可以由ISVISV自定义扩展自定义扩展SnApi.h中的各种状态ActiveApplicationActiveApplicationActiveApplicationActiveApplicationDisplayRotationDisplayRotationDisplayRotationDisplayRotationKeyboardPresentKeyboardPresentKeyboardPresentKeyboardPresentCradlePresentCradlePresentCradlePresentCrad
17、lePresentCameraPresentCameraPresentCameraPresentCameraPresentMessagingSmsUnreadMessagingSmsUnreadMessagingSmsUnreadMessagingSmsUnreadMessagingMmsUnreadMessagingMmsUnreadMessagingMmsUnreadMessagingMmsUnreadMessagingVoiceMailTotalUnreadMessagingVoiceMailTotalUnreadMessagingVoiceMailTotalUnreadMessagin
18、gVoiceMailTotalUnreadMessagingVoiceMail1UnreadMessagingVoiceMail1UnreadMessagingVoiceMail1UnreadMessagingVoiceMail1UnreadMessagingVoiceMail2UnreadMessagingVoiceMail2UnreadMessagingVoiceMail2UnreadMessagingVoiceMail2UnreadMessagingActiveSyncEmailUnreadMessagingActiveSyncEmailUnreadMessagingActiveSync
19、EmailUnreadMessagingActiveSyncEmailUnreadMessagingTotalEmailUnreadMessagingTotalEmailUnreadMessagingTotalEmailUnreadMessagingTotalEmailUnreadMessagingOtherEmailUnreadMessagingOtherEmailUnreadMessagingOtherEmailUnreadMessagingOtherEmailUnreadMessagingLastEmailAccountNameMessagingLastEmailAccountNameM
20、essagingLastEmailAccountNameMessagingLastEmailAccountNameMessagingSmsAccountNameMessagingSmsAccountNameMessagingSmsAccountNameMessagingSmsAccountNameMessagingMmsAccountNameMessagingMmsAccountNameMessagingMmsAccountNameMessagingMmsAccountNameMessagingActiveSyncAccountNameMessagingActiveSyncAccountNam
21、eMessagingActiveSyncAccountNameMessagingActiveSyncAccountNameTasksActiveTasksActiveTasksActiveTasksActiveTasksHighPriorityTasksHighPriorityTasksHighPriorityTasksHighPriorityTasksDueTodayTasksDueTodayTasksDueTodayTasksDueTodayTasksOverdueTasksOverdueTasksOverdueTasksOverdueCalendarNextAppointmentSubj
22、ectCalendarNextAppointmentSubjectCalendarNextAppointmentSubjectCalendarNextAppointmentSubjectCalendarNextAppointmentLocationCalendarNextAppointmentLocationCalendarNextAppointmentLocationCalendarNextAppointmentLocationCalendarNextAppointmentStartCalendarNextAppointmentStartCalendarNextAppointmentStar
23、tCalendarNextAppointmentStartCalendarNextAppointmentEndCalendarNextAppointmentEndCalendarNextAppointmentEndCalendarNextAppointmentEndMediaPlayerAlbumArtistMediaPlayerAlbumArtistMediaPlayerAlbumArtistMediaPlayerAlbumArtistMediaPlayerTrackBitrateMediaPlayerTrackBitrateMediaPlayerTrackBitrateMediaPlaye
24、rTrackBitrateMediaPlayerTrackTitleMediaPlayerTrackTitleMediaPlayerTrackTitleMediaPlayerTrackTitleMediaPlayerAlbumTitleMediaPlayerAlbumTitleMediaPlayerAlbumTitleMediaPlayerAlbumTitleMediaPlayerTrackArtistMediaPlayerTrackArtistMediaPlayerTrackArtistMediaPlayerTrackArtistMediaPlayerTrackNumberMediaPlay
25、erTrackNumberMediaPlayerTrackNumberMediaPlayerTrackNumberMediaPlayerTrackGenreMediaPlayerTrackGenreMediaPlayerTrackGenreMediaPlayerTrackGenreMediaPlayerTrackTimeElapsedMediaPlayerTrackTimeElapsedMediaPlayerTrackTimeElapsedMediaPlayerTrackTimeElapsedPowerBatteryStrengthPowerBatteryStrengthPowerBatter
26、yStrengthPowerBatteryStrengthPowerBatteryStatePowerBatteryStatePowerBatteryStatePowerBatteryStatePowerBatteryBackupStrengthPowerBatteryBackupStrengthPowerBatteryBackupStrengthPowerBatteryBackupStrengthPowerBatteryBackupStatePowerBatteryBackupStatePowerBatteryBackupStatePowerBatteryBackupStateTimeTim
27、eTimeTimeDateDateDateDatePhoneSignalStrengthPhoneSignalStrengthPhoneSignalStrengthPhoneSignalStrengthPhoneOperatorNamePhoneOperatorNamePhoneOperatorNamePhoneOperatorNamePhoneTalkingCallerNamePhoneTalkingCallerNamePhoneTalkingCallerNamePhoneTalkingCallerNamePhoneActiveCallCountPhoneActiveCallCountPho
28、neActiveCallCountPhoneActiveCallCountPhoneProfileNamePhoneProfileNamePhoneProfileNamePhoneProfileNamePhoneProfilePhoneProfilePhoneProfilePhoneProfilePhoneCellBroadcastPhoneCellBroadcastPhoneCellBroadcastPhoneCellBroadcastCalendarNextAppointmentHasConflictCalendarNextAppointmentHasConflictCalendarNex
29、tAppointmentHasConflictCalendarNextAppointmentHasConflictOwnerNameOwnerNameOwnerNameOwnerNameOwnerPhoneNumberOwnerPhoneNumberOwnerPhoneNumberOwnerPhoneNumberOwnerEmailOwnerEmailOwnerEmailOwnerEmailOwnerNotesOwnerNotesOwnerNotesOwnerNotesActiveSyncStatusActiveSyncStatusActiveSyncStatusActiveSyncStatu
30、sPhoneMissedCallsPhoneMissedCallsPhoneMissedCallsPhoneMissedCallsHeadsetPresentHeadsetPresentHeadsetPresentHeadsetPresentCarKitPresentCarKitPresentCarKitPresentCarKitPresentSpeakerPhoneActiveSpeakerPhoneActiveSpeakerPhoneActiveSpeakerPhoneActivePhoneMultiLinePhoneMultiLinePhoneMultiLinePhoneMultiLin
31、ePhoneSimFullPhoneSimFullPhoneSimFullPhoneSimFullPhoneNoSimPhoneNoSimPhoneNoSimPhoneNoSimPhoneInvalidSimPhoneInvalidSimPhoneInvalidSimPhoneInvalidSimPhoneBlockedSimPhoneBlockedSimPhoneBlockedSimPhoneBlockedSimPhoneRadioOffPhoneRadioOffPhoneRadioOffPhoneRadioOffPhoneRadioPresentPhoneRadioPresentPhone
32、RadioPresentPhoneRadioPresentPhoneRingerOffPhoneRingerOffPhoneRingerOffPhoneRingerOffPhoneLine1SelectedPhoneLine1SelectedPhoneLine1SelectedPhoneLine1SelectedPhoneLine2SelectedPhoneLine2SelectedPhoneLine2SelectedPhoneLine2SelectedPhoneRoamingPhoneRoamingPhoneRoamingPhoneRoamingPhoneCallForwardingOnLi
33、ne1PhoneCallForwardingOnLine1PhoneCallForwardingOnLine1PhoneCallForwardingOnLine1PhoneMissedCallPhoneMissedCallPhoneMissedCallPhoneMissedCallPhoneActiveDataCallPhoneActiveDataCallPhoneActiveDataCallPhoneActiveDataCallPhoneCallBarringPhoneCallBarringPhoneCallBarringPhoneCallBarringPhoneCallOnHoldPhon
34、eCallOnHoldPhoneCallOnHoldPhoneCallOnHoldPhoneConferenceCallPhoneConferenceCallPhoneConferenceCallPhoneConferenceCallPhoneIncomingCallPhoneIncomingCallPhoneIncomingCallPhoneIncomingCallPhoneCallCallingPhoneCallCallingPhoneCallCallingPhoneCallCallingPhoneGprsCoveragePhoneGprsCoveragePhoneGprsCoverage
35、PhoneGprsCoveragePhoneNoServicePhoneNoServicePhoneNoServicePhoneNoServicePhoneSearchingForServicePhoneSearchingForServicePhoneSearchingForServicePhoneSearchingForServicePhoneHomeServicePhoneHomeServicePhoneHomeServicePhoneHomeServicePhone1xRttCoveragePhone1xRttCoveragePhone1xRttCoveragePhone1xRttCov
36、eragePhoneCallTalkingPhoneCallTalkingPhoneCallTalkingPhoneCallTalkingPhoneCallForwardingOnLine2PhoneCallForwardingOnLine2PhoneCallForwardingOnLine2PhoneCallForwardingOnLine2CalendarNextAppointmentCalendarNextAppointmentCalendarNextAppointmentCalendarNextAppointmentCalendarNextAppointmentBusyStatusCa
37、lendarNextAppointmentBusyStatusCalendarNextAppointmentBusyStatusCalendarNextAppointmentBusyStatusCalendarNextAppointmentCategoriesCalendarNextAppointmentCategoriesCalendarNextAppointmentCategoriesCalendarNextAppointmentCategoriesCalendarAppointmentCalendarAppointmentCalendarAppointmentCalendarAppoin
38、tmentCalendarAppointmentSubjectCalendarAppointmentSubjectCalendarAppointmentSubjectCalendarAppointmentSubjectCalendarAppointmentLocationCalendarAppointmentLocationCalendarAppointmentLocationCalendarAppointmentLocationCalendarAppointmentStartTimeCalendarAppointmentStartTimeCalendarAppointmentStartTim
39、eCalendarAppointmentStartTimeCalendarAppointmentEndTimeCalendarAppointmentEndTimeCalendarAppointmentEndTimeCalendarAppointmentEndTimeCalendarAppointmentHasConflictCalendarAppointmentHasConflictCalendarAppointmentHasConflictCalendarAppointmentHasConflictCalendarAppointmentBusyStatusCalendarAppointmen
40、tBusyStatusCalendarAppointmentBusyStatusCalendarAppointmentBusyStatusCalendarAppointmentCategoriesCalendarAppointmentCategoriesCalendarAppointmentCategoriesCalendarAppointmentCategoriesCalendarHomeScreenAppointmentCalendarHomeScreenAppointmentSubjectCalendarHomeScreenAppointmentLocationCalendarHomeS
41、creenAppointmentStartTimeCalendarHomeScreenAppointmentEndTimeCalendarHomeScreenAppointmentHasConflictCalendarHomeScreenAppointmentBusyStatusCalendarHomeScreenAppointmentCategoriesPhoneIncomingCallerNamePhoneLastIncomingCallerNamePhoneIncomingCallerNumberPhoneLastIncomingCallerNumberPhoneIncomingCall
42、erContactPropertyNamePhoneLastIncomingCallerContactPropertyNamePhoneIncomingCallerContactPropertyIDPhoneLastIncomingCallerContactPropertyIDPhoneIncomingCallerContactPhoneLastIncomingCallerContactPhoneTalkingCallerNumberPhoneTalkingCallerContactPropertyNamePhoneTalkingCallerContactPropertyIDPhoneTalk
43、ingCallerContactConnectionsCountConnectionsBluetoothCountConnectionsBluetoothDescriptionsConnectionsCellularCountConnectionsCellularDescriptionsConnectionsNetworkCountConnectionsNetworkDescriptionsConnectionsNetworkAdaptersConnectionsDesktopCountConnectionsDesktopDescriptionsConnectionsProxyCountCon
44、nectionsProxyDescriptionsConnectionsModemCountConnectionsModemDescriptionsConnectionsUnknownCountConnectionsUnknownDescriptionsConnectionsVpnCountConnectionsVpnDescriptionsCalendarEventCalendarEventSubjectCalendarEventLocationCalendarEventStartTimeCalendarEventEndTimeCalendarEventHasConflictCalendar
45、EventBusyStatusCalendarEventCategories如何与Broker进行交流注册表注册表标准的标准的标准的标准的Win32 Win32 Win32 Win32 注册表注册表注册表注册表APIAPIAPIAPIRegistryGetDWORD()RegistryGetDWORD()RegistryGetDWORD()RegistryGetDWORD()RegistrySetDWORD()RegistrySetDWORD()RegistrySetDWORD()RegistrySetDWORD()RegistrySetString()RegistrySetString()R
46、egistrySetString()RegistrySetString()RegistryGetString()RegistryGetString()RegistryGetString()RegistryGetString()SDKSDK中的例子中的例子中的例子中的例子: SyncManager: SyncManagerTransient Notifications瞬时提醒仅当应用程序运行时产生提醒仅当应用程序运行时产生提醒提醒方式提醒方式Window Message Window Message Window Message Window Message 窗口消息窗口消息窗口消息窗口消息CE
47、 Message Queue CECE Message Queue CECE Message Queue CECE Message Queue CE消息队列消息队列消息队列消息队列Callback Callback Callback Callback 函数回调函数回调函数回调函数回调Transient Notifications瞬时提醒#include #include #include #include / / 设置提醒句柄设置提醒句柄设置提醒句柄设置提醒句柄HREGNOTIFY hNotify = NULL;HREGNOTIFY hNotify = NULL;RegistryNotifyW
48、indow(RegistryNotifyWindow(SN_PHONESIGNALSTRENGTH_ROOT,SN_PHONESIGNALSTRENGTH_ROOT, SN_PHONESIGNALSTRENGTH_PATH,SN_PHONESIGNALSTRENGTH_PATH, SN_PHONESIGNALSTRENGTH_VALUE,SN_PHONESIGNALSTRENGTH_VALUE, hWnd, hWnd, WM_MY_WINDOW_MESSAGE,WM_MY_WINDOW_MESSAGE, dwUserDefinedValue,dwUserDefinedValue, NULL,N
49、ULL, &hNotify);&hNotify); Conditional Notifications条件提醒DWORD DWORD 条件运算符条件运算符=, !=, , =, , , =, , , =, , , =, , , =, , , =, , , =, , , =, , =, contains, starts with, ends withwith, ends withwith, ends withwith, ends with对于二进制数据不提供条件提醒对于二进制数据不提供条件提醒样例: Signal CreateImageFromFile( if (S_OK = pImgFacto
50、ry-CreateImageFromFile( Lflower.jpg, Lflower.jpg, &pImage) &pImage) pImage-Draw(hdc, &rc, NULL); pImage-Draw(hdc, &rc, NULL); pImage-Release(); pImage-Release(); pImgFactory-Release(); pImgFactory-Release(); SDKSDK中的例子中的例子中的例子中的例子: Imaging: Imaging图像操作图像操作POOMPocket Outlook对象模型Custom PropertiesCusto
51、m Properties自定义属性自定义属性Bulk Properties Bulk Properties 同时处理大量属性同时处理大量属性NotificationsNotificationsCategory listCategory listPOOM 自定义属性static const WCHAR * rgszPropNames = static const WCHAR * rgszPropNames = LHealthInsuranceProvider, LHealthInsuranceProvider, LBloodType, LBloodType, LBloodPressure, LB
52、loodPressure, LAllergies LAllergies; ;CEPROPID rgPropIDs4 = 0;CEPROPID rgPropIDs4 = 0;polApppolApp-GetIDsFromNames (4, -GetIDsFromNames (4, rgszPropNames, rgszPropNames, PIM_CREATE | CEVT_LPWSTR, PIM_CREATE | CEVT_LPWSTR, rgPropIDs); rgPropIDs);SDKSDK中的例子中的例子中的例子中的例子: MedicalHistory: MedicalHistoryP
53、OOM 同时处理大量属性CEPROPID rgPropIDs4 ;CEPROPVAL *pVals = NULL;pItem-GetProps(pItem-GetProps(rgPropIDs, rgPropIDs, CEDB_ALLOWREALLOC, CEDB_ALLOWREALLOC, 4, 4, &pVals, &pVals, &cbBuffer, &cbBuffer, heap);heap);SDKSDK中的例子中的例子中的例子中的例子: MedicalHistory: MedicalHistoryPOOM 状态提醒如何注册如何注册propval.propid = PIMPR_FOL
54、DERNOTIFICATIONS;propval.val.ulVal = PIMFOLDERNOTIFICATION_LOCAL | PIMFOLDERNOTIFICATION_REMOTE;pItemFolder-SetProps(0, 1, &propval);SDKSDK中的例子中的例子中的例子中的例子: CalendarView: CalendarView如何注册如何注册SDKSDK中的例子中的例子中的例子中的例子: CalendarView: CalendarViewPOOM 状态提醒IPOutlookApp2 *polApp;polApp-Logon(long)hWnd)LRESU
55、LT CALLBACK WndProc() switch (msg) case PIM_ITEM_CREATED_LOCAL:case PIM_ITEM_CREATED_LOCAL:case PIM_ITEM_DELETED_LOCAL:case PIM_ITEM_DELETED_LOCAL: case PIM_ITEM_CHANGED_LOCAL:case PIM_ITEM_CHANGED_LOCAL: case PIM_ITEM_CREATED_REMOTE:case PIM_ITEM_CREATED_REMOTE: case PIM_ITEM_DELETED_REMOTE:case PI
56、M_ITEM_DELETED_REMOTE: case PIM_ITEM_CHANGED_REMOTE:case PIM_ITEM_CHANGED_REMOTE:oid = wParam;oid = wParam;olFolder = lParam;olFolder = lParam;联系人自定义属性联系人自定义属性GPS 全球定位系统GpsApi.hGpsApi.h核心函数调用:核心函数调用:GPSOpenDeviceGPSOpenDevice()()GPSCloseDevice()GPSCloseDevice()GPSGetPosition()GPSGetPosition()GPSGetD
57、eviceState()GPSGetDeviceState()GPS 全球定位系统#include HANDLE h;GPS_POSITION pos;h = GPSOpenDevice (heventNewPos, heventDeviceStateChange, NULL, 0);GPSGetPosition(h, &pos, 60000, 0);/ 得到得到 pos.dblLongitude, pos.dblLatitudeMessaging Application消息应用程序控制用户界面控制用户界面MailComposeMessageMailComposeMessageMailComp
58、oseMessageMailComposeMessageMailDisplayMessageMailDisplayMessageMailDisplayMessageMailDisplayMessageMailSwitchToFolderMailSwitchToFolderMailSwitchToFolderMailSwitchToFolderMailSwitchToAccountMailSwitchToAccountMailSwitchToAccountMailSwitchToAccountMailSyncMessagesMailSyncMessagesMailSyncMessagesMail
59、SyncMessagesCeMapi.hCeMapi.hActiveSync - 同步控制ActiveSyncStart()ActiveSyncStart()ActiveSyncStop()ActiveSyncStop()State and Notification Broker: State and Notification Broker: HKLMSystemStateActiveSyncSynchronizingHKLMSystemStateActiveSyncSynchronizingHKLMSystemStateActiveSyncSynchronizingHKLMSystemSta
60、teActiveSyncSynchronizingNone = 0None = 0None = 0None = 0Synchronizing = 1Synchronizing = 1Synchronizing = 1Synchronizing = 1Error = 2Error = 2Error = 2Error = 2SDKSDK中的例子中的例子中的例子中的例子: SyncManager: SyncManagerPicture Picker 图像选择器同时也支持视频同时也支持视频同时也支持视频同时也支持视频Picture Picker 图像选择器OPENFILENAMEEX ofnex =
61、0;OPENFILENAMEEX ofnex = 0;ofnex.lStructSize = sizeof(ofnex);ofnex.lStructSize = sizeof(ofnex);ofnex.ExFlags = OFN_EXFLAG_THUMBNAILVIEW; ofnex.ExFlags = OFN_EXFLAG_THUMBNAILVIEW; ofnex.lpstrFile = new TCHAR MAX_PATH;ofnex.lpstrFile = new TCHAR MAX_PATH;ofnex.nMaxFile = MAX_PATH;ofnex.nMaxFile = MAX_
62、PATH;GetOpenFileNameEx(&ofnex);GetOpenFileNameEx(&ofnex);SDKSDK中的例子中的例子中的例子中的例子: AddContactPicture: AddContactPicturePicture Picker 图像选择器通过摄像头拍摄通过摄像头拍摄typedef struct typedef struct DWORD DWORD cbSize;cbSize; HWND HWND hwndOwner;hwndOwner; TCHAR TCHAR szFileMAX_PATH; szFileMAX_PATH; LPCTSTR LPCTSTR p
63、szInitialDir;pszInitialDir; LPCTSTR LPCTSTR pszDefaultFileName;pszDefaultFileName; LPCTSTR LPCTSTR pszTitle;pszTitle; CAMERACAPTURE_STILLQUALITY CAMERACAPTURE_STILLQUALITY StillQuality;StillQuality; CAMERACAPTURE_VIDEOTYPES CAMERACAPTURE_VIDEOTYPES VideoTypes;VideoTypes; DWORD DWORD nResolutionWidth
64、;nResolutionWidth; DWORD DWORD nResolutionHeight;nResolutionHeight; DWORD DWORD nVideoTimeLimit;nVideoTimeLimit; CAMERACAPTURE_MODE CAMERACAPTURE_MODE Mode;Mode; SHCAMERACAPTURE; SHCAMERACAPTURE;HRESULT SHCameraCapture (PSHCAMERACAPTURE *pshcc);HRESULT SHCameraCapture (PSHCAMERACAPTURE *pshcc);SDK S
65、ample: CECameraContact Picker 联系人选择器Contact Picker 联系人选择器IPOutlookApp2 pApp;IPOutlookApp2 pApp;IItem *pItem;IItem *pItem;CHOOSECONTACT cc = 0;CHOOSECONTACT cc = 0; cc.cbSize = sizeof (cc);cc.cbSize = sizeof (cc);cc.dwFlags = CCF_CHOOSECONTACTONLY;cc.dwFlags = CCF_CHOOSECONTACTONLY;cc.hwndOwner = NUL
66、L;cc.hwndOwner = NULL;ChooseContact (&cc); ChooseContact (&cc); pApp-GetItemFromOidEx(cc.oidContactID, pApp-GetItemFromOidEx(cc.oidContactID, 0, &pItem);0, &pItem);SDKSDK中的例子中的例子中的例子中的例子: AddContactPicture: AddContactPictureContact Picker 联系人选择器选取联系人选取联系人选取特定属性的联系人选取特定属性的联系人通过属性筛选通过属性筛选联系人图片联系人图片Exi
67、tWindowsEx 重新启动可以在非信任的环境中调用可以在非信任的环境中调用PocketPCPocketPC重新启动重新启动重新启动重新启动SmartphoneSmartphone重新启动重新启动重新启动重新启动, , , , 关闭关闭关闭关闭QueryPolicy安全策略查询 QueryPolicy(DWORD dwPolicyId, QueryPolicy(DWORD dwPolicyId, PDWORD pdwPolicyValue);PDWORD pdwPolicyValue);可以在非信任的环境中调用可以在非信任的环境中调用QueryPolicy(SECPOLICY_UNSIGNE
68、DAPPS, QueryPolicy(SECPOLICY_UNSIGNEDAPPS, &dwPolicyValue);&dwPolicyValue);if (dwPolicyValue = FALSE)if (dwPolicyValue = FALSE) GetDeviceUniqueID得到设备标识可以在非信任的环境中调用可以在非信任的环境中调用对于每个应用程序都会产生不同的对于每个应用程序都会产生不同的IDIDHRESULT GetDeviceUniqueID(HRESULT GetDeviceUniqueID(LPBYTE pbApplicationData, LPBYTE pbAppl
69、icationData, DWORD cbApplicationData, DWORD cbApplicationData, DWORD dwDeviceIDVersion,DWORD dwDeviceIDVersion, LPBYTE pbDeviceIDOutput, LPBYTE pbDeviceIDOutput, DWORD *pcbDeviceIDOutput);DWORD *pcbDeviceIDOutput);SDKSDK中的例子中的例子中的例子中的例子: GetDeviceID: GetDeviceID工具及资源 / embeddedembedded microsoft.pub
70、licmicrosoft.public. . windowsxp.embeddedwindowsxp.embedded windowsce.platbuilderwindowsce.platbuilder windowsce.embedded.vcwindowsce.embedded.vc / mikehallmikehall Windows CE 5.0 Windows CE 5.0 EvalEval Kit KitWindows XP Embedded Windows XP Embedded EvalEval Kit K / mobilitymobility microsoft.publicmicrosoft.public. . pocketpc.developerpocketpc.developer smartphone.developersmartphone.developer / windowsmobilewindowsmobile vsdteamvsdteam netcfteamnetcfteam Windows Mobile 5.0 Windows Mobile 5.0 EvalEval Kit KitWebsitesWebsitesNewsgroupsNewsgroupsBlogsBlogsToolsToolsBuildBuildDevelopDevelop