Download - MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Transcript
Page 1: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

MBL200:

Next Generation Pocket PC and Smartphone Development Platform

Neil Enns

Program Manager

Mobiles Devices Product Group

Microsoft Corporation

Page 2: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Agenda

Overview of Development Platform

Key Changes in the Next GenerationChanges in the WinCE OS

Developer-focused features / improvements

Runtimes support

Tools and emulation

Q&A

Page 3: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Smartphone 2002Smartphone 2002

Page 4: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

TodayPPC 2002 SP 2002

WinCE OS 3.0 3.0

eVC 3.0 3.0

eVB 3.0 -

VS.NET 2003 -

.NETCF 1.0 -

MFC X -

ATL X -

eVB (runtime) X -

SQL CE X -

ADO.NET X -

MSMQ X -

Web Server X -

PPC 2002 SP 2002 PPC Ozone SP v.Next

WinCE OS 3.0 3.0 4.2 4.2

eVC 3.0 3.0 4.0 (SP2) 4.0 (SP2)

eVB 3.0 - - -

VS.NET 2003 - 2003 2003

.NETCF 1.0 - 1.0 1.0*

MFC X - X -

ATL X - X X

eVB (runtime) X - X (RAM) -

SQL CE X - X -

ADO.NET X - X X

MSMQ X - X X

Web Server X - X -

Next Gen

Page 5: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

2002 Development Platform

Base OS

GUI / Shell / Ink

Today/Home-Screen

Connection Manager

POOM

Messaging

.NET Compact Framework

Device Management

Telephony

pIE

ActiveSync

RAPI

GAPI

MIDI, Vibrate, Speech

Page 6: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Developer Features in the Next Generation

Pocket PC Ozone Platform

Next Generation Smartphone

Page 7: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Windows CE 4.2 (McKendric)

Increased stability and reliability

Resource utilization optimizations

Security review

IPv6

Layer 2 Tunneling Protocol (L2TP) / IP Security Protocol (IPSec)

Page 8: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

File System FiltersFile System Filters

Sit on top of the FS, intercept FS calls before FS handlingApply to any FSDMgr loaded file systemSupports multiple filters per file system

Useful for…Encrypt / DecryptCompress / UncompressVirus scan

Registration:[HKEY_LOCAL_MACHINE\System\StorageManager\Filters\FilterName]

"dll"="filter.dll""Order"=dword:x

Delta with FSDPVOLUME FSD_HookVolume( HDSK hdsk,PFILTERHOOK pFilterHook ); BOOL FSD_UnhookVolume ( PVOLUME pvol );

Page 9: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Device ManagementConfiguration Manager

Single point for configuration management

Parses configuration messages for CSPs

All operations transacted

Security role consistent across entire transaction

WAP Stack / WSP Push Source

User Interface

Configuration Manager

Configuration Service Provider

SMS Router

Control Panel Engine

Configuration Service Provider

Configuration Service Provider

Configuration Service Provider

Configuration Service Provider

Page 10: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Device Management

Configuration 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 API

RAPIConfig.exe from the desktop

Page 11: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Device Management CSPsActiveSyncConn

ActiveSyncPartner

BOOTSTRAP

BrowserFavorite

CertificateStore

Clock

Connection Manager

DeviceInformation

DeviceLock

EMail

FileOperation

Home

Install

LoaderRevocation

Locale

Metabase

Profiles

PXLOGICAL

Registry

SecurityPolicy

Sounds

Sync

Tapi

UnInstall

Page 12: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Remote Device Remote Device ConfigurationConfiguration

Page 13: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

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);

Page 14: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

ShellPPC File Explorer menu extensibility via IContextMenu

GetCommandString : 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

Page 15: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

ShellContextual property query/modification

SHSetInputContext(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 type

NULL (default)“email”“url”“phone”“name”

Page 16: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

pIE Re-Architecture

HTML 4.01

XHTML

CSS

JScript 5.5

WML 2.0

IPv6

Extensible imaging through GDI+

Page 17: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Messaging

E-mail services configuration CSPSimplifies programmatic configuration on Pocket PC

SMS message interceptionsSMS clients, Games, Command and Control

Custom Read/Compose forms MMS/EMS clients, LOB apps, Games

CEMAPI cross-process notificationsMAPI clients, Filters, Journaling

Page 18: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Messaging

Folder created

Folder moved

Folder deleted

Message created

Message modified

Message deleted

Message moved

Message copied

Message store created

Message store deleted

CEMAPI Cross-Process Notifications:

Page 19: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

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!

}

Page 20: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

SMS Interception and SMS Interception and ProcessingProcessing

Page 21: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Networking / CellCore

IPv6 workConnection Manager CSPs

CM_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

Page 22: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

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 );

Page 23: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

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 };

Page 24: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Virtual Radio Virtual Radio SimulationSimulation

Page 25: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Apps / ActiveSync

Menu extensibility in Contacts, Calendar and Tasks applications via IContextMenu interface

ActiveSync can be configured via CSP

Page 26: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Backwards CompatibilityGoal is for 100% back compat

But, be aware:New OS (major revision from 3.0)

Same MFC, rebuilt ATL

COM objects are now free-threaded

eVB/ADO runtimes have been rebuilt

Some CEMAPI constants no longer supported

Few APIs migrated from one .h to another

Test, test, test!

Page 27: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Runtimes and Tools

Pocket PC Ozone, Smartphone v.NextNative Code Development

eVC++ 4.0

eVC++ 4.0 Service Pack 2 required

PPC: eVB/ADO runtime supported, but no eVB SDK/Tools

Managed Code Development (C# / VB.Net).NETCF in ROM

Visual Studio .NET 2003

All native and managed code development requires PPC/SP SDKs

Page 28: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

eVC 4.0 (+SP2)Improved Debugging

JIT debugging (attach to dead process)

Attach to already running process

Multithreaded application debugging

Updated CompilersSEH and C++ exception handling

STL (Standard Template Library)

Intrinsics (generate in-line code)

Updated Remote Tools

Page 29: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

eVB for Pocket PC Ozone

eVB stub replaces eVB run-time to free up ROM space

Hardware partners can choose to include runtime in their ROM region

Developers can package and deploy eVB runtime with app (part of SDK)

End-Users can download from website when prompted by stub

Page 30: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Emulation

Drive mapping support

Game APIs (GAPI)

Network Virtual Switch driverActiveSync over Ethernet

New telephony imagesPocket PC Phone Edition

Virtual Radio

Page 31: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

ActiveSync over ActiveSync over Ethernet (Emulator)Ethernet (Emulator)

Page 32: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Managed Code DevelopmentVisual Studio .NET & .NET Compact Framework

Rich, deep API for smart devicesUser Interface: GDI+, Windows Forms

Connectivity: Web services, TCP/IP, IrDA

Data Access: ADO.NET, XML

Native code interoperability

JIT compiled, not interpretedBest of managed & native worlds

Visual Studio .NET IDESame skills as desktop and server

Page 33: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

.NET Compact Framework Smartphone v.Next Support

Most 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 2003

Smartphone x86 Emulation imagesAdapted Forms Designer Experience

Proper control set in toolboxAppropriate properties on controls (size/font/etc)

Page 34: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

.NET Compact Framework .NET Compact Framework and Web Services onand Web Services onNext Generation SmartphoneNext Generation Smartphone

demodemo

Page 35: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

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)MSMQ

Emulation imagesPocket PCPocket PC Phone EditionPocket PC Phone Edition Virtual Radio

Updated samples collectionDesign guideReference documentation

Page 36: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Smartphone Developer KitSmartphone pre-release Compal device

Null SIM

Mobile Development Toolkit(Resource CD)

eMbedded Visual C++ 3.0

Smartphone 2002 SDK

Whitepapers, Getting Started, etc.

Available for 425€ at www.microsoft.com/mobile/

Page 37: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Next StepsNext Steps

Page 38: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Ask The ExpertsGet Your Questions Answered

I will be available in the ATE area after this session and all day tomorrow!

Page 39: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

Community ResourcesCommunity ResourcesAsk your questions on our newsgroups:

microsoft.public.smartphone.developer

microsoft.public.pocketpc.developer

microsoft.public.dotnet.framework.compactframework

Check out our MVP sites for developers:www.smartphonedn.com

www.pocketpcdn.com

Download SDKs and eVCwww.microsoft.com/mobile/developer/

Visit the Windows Mobile™ Community:http://www.microsoft.com/windowsmobile/community/

Page 40: MBL200: Next Generation Pocket PC and Smartphone Development Platform Neil Enns Program Manager Mobiles Devices Product Group Microsoft Corporation.

evaluationsevaluations

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

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.