PC03  Reed Townsend Program Manager Microsoft Corporation  Anson Tsao Program Manager Microsoft Corporation   

Download Report

Transcript PC03  Reed Townsend Program Manager Microsoft Corporation  Anson Tsao Program Manager Microsoft Corporation   

PC03
 Reed Townsend
Program Manager
Microsoft Corporation
 Anson Tsao
Program Manager
Microsoft Corporation



 Reed Townsend
Program Manager
Windows










Developer Platform

UI Enhancements:

Gestures

Applications













Windows
NET
4.0 / 7Surface
Release2.0 Release
Multi-Touch
Surface
Controls
Multi-Touch
Controls & API
Multi-Touch API
Multi-Touch API and Controls
Multi-Touch API
Good
Better
Best
APIs
For Free!
• Panning/zoom
gestures
• Right click gesture
• Gesture notifications • Raw touch data
• Pan/zoom/rotate/etc • Manipulation and
Inertia processors
Native
Win32
• Controls with standard
scrollbars
• WM_GESTURE message
• WM_TOUCH
• COM based
Manipulation and Inertia
Processors
WPF
• WPF 4.0 pan support in
ScrollViewer
• Gesture events
• Inertia configuration
• Touch events
• Manipulation and Inertia
Processors
WinForms
• Controls with standard
scrollbars
• WM_GESTURE message
• P/Invoke
• Manipulation and Inertia
Processors in
Microsoft.Ink.DLL
• Real-time Stylus or Ink
Collector
 Reed Townsend
Program Manager
Windows








BOOL WINAPI GetGestureCommandInfo(
__in UINT uMsg,
__in WPARAM wParam,
__in LPARAM lParam,
__in LPARAM lExtraInfo,
__inout PGESTUREINFO pGestureInfo
);
typedef struct _GESTURECOMMANDINFO {
UINT cbSize;
DWORD dwFlags;
DWORD dwCommand;
DWORD dwArguments;
POINTS ptsLocation;
} GESTURECOMMANDINFO, *PGESTURECOMMANDINFO;
dwCommand
dwArguments
ptsLocation
Pan
Distance between
contacts
Current center of gesture
Zoom
Distance between
contacts
Current center of gesture
Rotate
Absolute angle on rotate
start, delta on updates
Current center of gesture
Two-finger tap
NA
Current center of gesture
Right click gesture
NA
First finger down
Future Windows 7 Build







Future Windows 7 Build








here
 Reed Townsend
Program Manager
Windows









BOOL WINAPI RegisterTouchWindow(
__in HWND hwnd,
__in ULONG ulFlags);
BOOL WINAPI GetTouchInputInfo(
__in HANDLE hTouchInput,
//
__in UINT cInputs,
//
__out_ecount(cInputs) PTOUCHINPUT pInputs, //
__in int cbSize);
//
input event handle
number of elts in the array
array of touch inputs
sizeof(TOUCHINPUT)
typedef struct tagTOUCHINPUT {
LONG x;
LONG y;
HANDLE hSource;
DWORD dwID;
DWORD dwFlags;
DWORD dwMask;
DWORD dwTime;
ULONG_PTR dwExtraInfo;
DWORD cxContact;
DWORD cyContact;
} TOUCHINPUT, *PTOUCHINPUT;
typedef TOUCHINPUT const * PCTOUCHINPUT;
BOOL WINAPI CloseTouchInputHandle(
__in HANDLE hTouchInput);
// input event handle
Future Windows 7 Build

 Reed Townsend
Program Manager
Windows



































 Anson Tsao
Senior Program Manager
WPF







 Anson Tsao
Senior Program Manager
WPF













 Anson Tsao
Senior Program Manager
WPF




ATOM m_atom = ::GlobalAddAtom(MICROSOFT_TABLETPENSERVICE_PROPERTY);
m_dwProperty = TABLET_ENABLE_MULTITOUCHDATA;
::SetProp(m_hwnd, (LPTSTR)m_atomPenService, (HANDLE)m_dwProperty);




























HP TouchSmart 2






Dell Latitude XT









[email protected]
www.microsoftpdc.com
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.




Seeing is believing
ISVs are investing in multi-touch









HP TouchSmart
Dell Latitude XT
All-in-one PC with 2-touch digitizer
from NextWindow
Laptop with multi-touch and pen
digitizer from N-Trig







Future Windows 7 Build
typedef struct tagGESTUREINFO {
UINT cbSize;
DWORD dwFlags;
DWORD dwID;
HWND hwndTarget;
POINTS ptsLocation;
DWORD dwInstanceID;
DWORD dwSequenceID;
ULONGLONG ullArguments;
UINT cbExtraArgs;
//
//
//
//
//
//
//
//
//
//
//
//
} GESTUREINFO, *PGESTUREINFO;
BOOL WINAPI GetGestureInfo(
__in HGESTUREINFO hGestureInfo,
__out PGESTUREINFO pGestureInfo);
size, in bytes, of this structure
(including variable length Args field)
see GF_* flags
gesture ID, see GID_* defines
handle to window targeted by this gesture
current location of this gesture
internally used
internally used
arguments for gestures whose arguments fit
in 8 BYTES
size, in bytes, of extra arguments, if
any, that accompany this gesture
Future Windows 7 Build
typedef struct tagGESTURECONFIG {
DWORD dwID;
DWORD dwWant;
DWORD dwBlock;
} GESTURECONFIG, *PGESTURECONFIG;
BOOL WINAPI SetGestureConfig(
__in HWND hwnd,
__in DWORD dwReserved,
__in UINT cIDs,
__in_ecount(cIDs) PGESTURECONFIG pGestureConfig,
__in UINT cbSize);
BOOL WINAPI GetGestureConfig(
__in HWND hwnd,
__in DWORD dwReserved,
__in DWORD dwFlags,
__in PUINT pcIDs,
__inout_ecount(*pcIDs) PGESTURECONFIG pGestureConfig,
__in UINT cbSize);
SBM_GETSCROLLINFO SBM_SETSCROLLINFO SBM_SETPOS
SBM_GETPOS
http://msdn.microsoft.com/enus/library/bb787583(VS.85).aspx




