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

Post on 11-Jan-2016

217 views 1 download

Tags:

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

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

Smartphone 2002Smartphone 2002

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

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

Developer Features in the Next Generation

Pocket PC Ozone Platform

Next Generation Smartphone

Windows CE 4.2 (McKendric)

Increased stability and reliability

Resource utilization optimizations

Security review

IPv6

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

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

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

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

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

Remote Device Remote Device ConfigurationConfiguration

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

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”

pIE Re-Architecture

HTML 4.01

XHTML

CSS

JScript 5.5

WML 2.0

IPv6

Extensible imaging through GDI+

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

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:

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 SMS Interception and ProcessingProcessing

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

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 Virtual Radio SimulationSimulation

Apps / ActiveSync

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

ActiveSync can be configured via CSP

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!

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

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

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

Emulation

Drive mapping support

Game APIs (GAPI)

Network Virtual Switch driverActiveSync over Ethernet

New telephony imagesPocket PC Phone Edition

Virtual Radio

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

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

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

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

demodemo

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

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/

Next StepsNext Steps

Ask The ExpertsGet Your Questions Answered

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

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/

evaluationsevaluations

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