MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager...

of 41 /41
MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation

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. (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.