MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager...
-
Author
stephanie-pope -
Category
Documents
-
view
216 -
download
1
Embed Size (px)
Transcript of MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager...
-
MBL200: Next Generation Pocket PC and Smartphone Development PlatformNeil EnnsProgram ManagerMobiles Devices Product GroupMicrosoft Corporation
-
Agenda
Overview of Development PlatformKey Changes in the Next GenerationChanges in the WinCE OSDeveloper-focused features / improvementsRuntimes supportTools and emulationQ&A
-
Smartphone 2002
-
TodayNext Gen
PPC 2002SP 2002PPC OzoneSP v.NextWinCE OS3.03.04.24.2eVC3.03.04.0 (SP2)4.0 (SP2)eVB3.0---VS.NET2003-20032003.NETCF1.0-1.01.0*MFCX-X-ATLX-XXeVB (runtime)X-X (RAM)-SQL CEX-X-ADO.NETX-XXMSMQX-XXWeb ServerX-X-
-
2002 Development PlatformBase OSGUI / Shell / InkToday/Home-ScreenConnection ManagerPOOMMessaging.NET Compact Framework
Device ManagementTelephonypIEActiveSyncRAPIGAPIMIDI, Vibrate, Speech
-
Developer Features in the Next GenerationPocket PC Ozone PlatformNext Generation Smartphone
-
Windows CE 4.2 (McKendric)Increased stability and reliabilityResource utilization optimizationsSecurity reviewIPv6Layer 2 Tunneling Protocol (L2TP) / IP Security Protocol (IPSec)
-
File System FiltersFile System FiltersSit on top of the FS, intercept FS calls before FS handlingApply to any FSDMgr loaded file systemSupports multiple filters per file systemUseful forEncrypt / DecryptCompress / UncompressVirus scan Registration:[HKEY_LOCAL_MACHINE\System\StorageManager\Filters\FilterName]"dll"="filter.dll""Order"=dword:xDelta with FSDPVOLUME FSD_HookVolume( HDSK hdsk,PFILTERHOOK pFilterHook ); BOOL FSD_UnhookVolume ( PVOLUME pvol );
-
Device ManagementConfiguration ManagerSingle point for configuration managementParses configuration messages for CSPsAll operations transactedSecurity role consistent across entire transaction
-
Device ManagementConfiguration Manager Infrastructure now supported on Pocket PC Ozone (supports a subset of Smartphone CSPs)Provisioning supported via WAP push (OTA)CAB-based provisioning (.CPF)DMProcessConfigXML APIRAPIConfig.exe from the desktop
-
Device Management CSPsActiveSyncConnActiveSyncPartnerBOOTSTRAPBrowserFavoriteCertificateStoreClockConnection ManagerDeviceInformation DeviceLockEMailFileOperationHome
InstallLoaderRevocation LocaleMetabaseProfilesPXLOGICALRegistrySecurityPolicySoundsSyncTapiUnInstall
-
Remote Device Configuration
-
Device ManagementWAP Push Router interception (GSM only)PushRouter_RegisterClient(LPCTSTR szContentType, LPCTSTR szAppId, LPCTSTR szPath, LPCTSTR szParams);PushRouter_UnRegisterClient(LPCTSTR szContentType, LPCTSTR szAppId);PushRouter_Open(LPCTSTR szContentType, LPCTSTR szAppId, HANDLE *pMsgAvailableEvent, HPUSHROUTER *phPushRouter); PushRouter_Close(HPUSHROUTER hPushRouter);PushRouter_GetMessage(HPUSHROUTER hPushRouter, PUSHMSG *pPushMsg);PushRouter_FreeMessage(PUSHMSG *pPushMsg);
-
ShellPPC File Explorer menu extensibility via IContextMenuGetCommandString: Get info for the menu InvokeCommand : Execute commandQueryContextMenu : Adds commands to menu. Ability to ensure display is on when notifications fire (PPC Only)#define SHNF_DISPLAYON 0x00000010Activate process without turning on the displayAbility to debug Home/Today-Screen Plug-insSmartphone Home-Screen Plug-Ins:SHOnPluginDataChangeIHomePluginEnvironment2
-
ShellContextual property query/modificationSHSetInputContext(HWND hwnd, DWORD dwFeature, LPVOID pValue);SHGetInputContext(HWND hwnd, DWORD dwFeature, LPVOID pValue, DWORD dwSize);Features:SHIC_RESTOREDEFAULT : Restore original stateSHIC_AUTOCORRECT: Auto-correctSHIC_AUTOCOMPLETE: Suggest words from dictionarySHIC_HAVETRAILER : Append trailer charactersSHIC_CLASS: Control semantic typeNULL (default)emailurlphonename
-
pIE Re-Architecture
HTML 4.01XHTMLCSSJScript 5.5WML 2.0IPv6Extensible imaging through GDI+
-
MessagingE-mail services configuration CSPSimplifies programmatic configuration on Pocket PCSMS message interceptionsSMS clients, Games, Command and ControlCustom Read/Compose forms MMS/EMS clients, LOB apps, GamesCEMAPI cross-process notificationsMAPI clients, Filters, Journaling
-
MessagingFolder createdFolder movedFolder deleted
Message createdMessage modified Message deletedMessage moved Message copiedMessage store createdMessage store deletedCEMAPI Cross-Process Notifications:
-
SMS Message InterceptionImplement IMailRuleClient (COM Object)Register Rule Client DLL (\Software\Microsoft\Inbox\Svc\SMS\Rules)
Initialize and Set Access Rights:HRESULT MailRuleClient::Initialize (IMsgStore *pMsgStore, MRCACCESS *pmaDesired){ *pmaDesired = MRC_ACCESS_WRITE; return S_OK; }
Process MessageHRESULT CMailRuleClient::ProcessMessage (IMsgStore *pMsgStore, ULONG cbMsg, LPENTRYID lpMsg, ULONG cbDestFolder, LPENTRYID lpDestFolder, ULONG *pulEventType, MRCHANDLED *pHandled){...GetText(lpMsg, &lpszMsgText);Get Propertiesif (ParseAndDeleteMsg(lpszMsgText)) For us?{ *pulEventType = fnevObjectDeleted;Mark Deleted *pHandled = MRC_HANDLED_DONTCONTINUE;DoFunStuff( ... ); }Party! }
-
SMS Interception and Processing
-
Networking / CellCoreIPv6 workConnection Manager CSPsCM_Networks metanetworksCM_Planner preferred connectionsCM_Mappings URL mapping tableCM_GPRSEntries GPRS entry configurationCM_PPPEntries PPP entriesCM_ProxyEntries Proxy connectionsCM_VPNEntries VPN entry configurationCM_NetEntries Network entries
-
Networking / CellCoreWAP over SMS WapOpen (const WAP_LAYER wlLayer, const DWORD dwLocalPort, WAP_HANDLE* const pwhHandle, HANDLE* const phMessageAvailableEvent );
WapClose ( const WAP_HANDLE whHandle );
WapSend ( const WAP_HANDLE whHandle, WAP_PRIMITIVE_BASE* const pwpbPrimitive );
WapGetNextPrimitiveSize ( const WAP_HANDLE whHandle, DWORD* const pdwNextPrimitiveSize );
WapRead ( const WAP_HANDLE whHandle, WAP_PRIMITIVE_BASE* const pwpbPrimitiveBuffer, const DWORD dwPrimitiveBufferSize );
WapPing ( const WAP_ADDRESS* const pwaAddress, const WORD wIdentifier, const DWORD dwSendDataSize, DWORD* const pdwReceiveDataSize, const DWORD dwTimeout );
-
Networking / CellCoreWTLS for PPC (already on SP)Application wake-up via WAP (SMS)Bluetooth Control Panelint BthSetMode( DWORD dwMode ); int BthGetMode( DWORD* pdwMode );enum BTH_RADIO_MODE{ BTH_POWER_OFF, BTH_CONNECTABLE, BTH_DISCOVERABLE };
-
Virtual Radio Simulation
-
Apps / ActiveSyncMenu extensibility in Contacts, Calendar and Tasks applications via IContextMenu interfaceActiveSync can be configured via CSP
-
Backwards CompatibilityGoal is for 100% back compatBut, be aware:New OS (major revision from 3.0)Same MFC, rebuilt ATLCOM objects are now free-threadedeVB/ADO runtimes have been rebuiltSome CEMAPI constants no longer supportedFew APIs migrated from one .h to anotherTest, test, test!
-
Runtimes and ToolsPocket PC Ozone, Smartphone v.NextNative Code DevelopmenteVC++ 4.0 eVC++ 4.0 Service Pack 2 requiredPPC: eVB/ADO runtime supported, but no eVB SDK/ToolsManaged Code Development (C# / VB.Net).NETCF in ROMVisual Studio .NET 2003All native and managed code development requires PPC/SP SDKs
-
eVC 4.0 (+SP2)Improved DebuggingJIT debugging (attach to dead process)Attach to already running processMultithreaded application debuggingUpdated CompilersSEH and C++ exception handlingSTL (Standard Template Library)Intrinsics (generate in-line code)Updated Remote Tools
-
eVB for Pocket PC Ozone eVB stub replaces eVB run-time to free up ROM spaceHardware partners can choose to include runtime in their ROM regionDevelopers can package and deploy eVB runtime with app (part of SDK)End-Users can download from website when prompted by stub
-
EmulationDrive mapping supportGame APIs (GAPI)Network Virtual Switch driverActiveSync over EthernetNew telephony imagesPocket PC Phone EditionVirtual Radio
-
ActiveSync over Ethernet (Emulator)
-
Managed Code DevelopmentVisual Studio .NET & .NET Compact FrameworkRich, deep API for smart devicesUser Interface: GDI+, Windows FormsConnectivity: Web services, TCP/IP, IrDAData Access: ADO.NET, XMLNative code interoperabilityJIT compiled, not interpretedBest of managed & native worldsVisual Studio .NET IDESame skills as desktop and server
-
.NET Compact Framework Smartphone v.Next SupportMost PPC features fully supportedWindows Forms:Controls adapted to have Smartphone look & feelSmartphone navigation model supportedSupport for keypad navigation and keypad events.NET Compact Framework in ROMTools support as an add-on to VS.NET 2003Smartphone x86 Emulation imagesAdapted Forms Designer ExperienceProper control set in toolboxAppropriate properties on controls (size/font/etc)
-
.NET Compact Framework and Web Services on Next Generation Smartphone demo
-
Ozone SDK (Beta)Plug-ins for eVC++ 4.0 (SP2)Plug-ins for Visual Studio .NET 2003All required headers / libs / etc. (x86/ARM)Runtimes and components:eVB runtimeHTTPD (Web Server)MSMQEmulation imagesPocket PCPocket PC Phone EditionPocket PC Phone Edition Virtual RadioUpdated samples collectionDesign guideReference documentation
-
Smartphone Developer KitSmartphone pre-release Compal deviceNull SIMMobile Development Toolkit (Resource CD)eMbedded Visual C++ 3.0Smartphone 2002 SDKWhitepapers, Getting Started, etc.Available for 425 at www.microsoft.com/mobile/
-
Next Steps
-
Ask The ExpertsGet Your Questions AnsweredI will be available in the ATE area after this session and all day tomorrow!
-
Ask your questions on our newsgroups:microsoft.public.smartphone.developermicrosoft.public.pocketpc.developermicrosoft.public.dotnet.framework.compactframeworkCheck out our MVP sites for developers:www.smartphonedn.comwww.pocketpcdn.comDownload SDKs and eVCwww.microsoft.com/mobile/developer/Visit the Windows Mobile Community:http://www.microsoft.com/windowsmobile/community/Community Resources
-
evaluations
-
2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.