Download presentation
Presentation is loading. Please wait.
Published byLydia O’Brien’ Modified over 9 years ago
1
1 Windows Vista: Reaching Your Users When Their Machine Is Off, Using Auxiliary Display Devices Sriram Viji, Program Manager Dan Polivy, Software Design Engineer Session PRS308 Microsoft Corporation
2
2 Agenda Platform introduction Writing gadgets using C++ and COM Writing gadgets using C# Design considerations
3
3 Devices for Windows SideShow Laptop in-lid displays Connected and online displays Remote or detachable devices
4
4 Gadget Platforms Windows SideShow Extends data from the PC to devices COM and C++ APIs Windows Sidebar Shows information on the client DHTML scripting and libraries/WPF Start.com Web based with AJAX like architecture Integration with client platform
5
5 Platform Benefits Increase application reach and visibility Provide user value Easy to write gadgets
6
6 Windows SideShow Prototype
7
7 Sample Scenarios Cached/Offline scenarios: Calendar, driving directions, e-mail, weather, traffic Make use of data that is cached on a device User can interact when the PC is on or off Live/Online scenarios: Media control, presentation control, instant messaging, notifications Data and events sent during user interaction User can interact when the PC is on
8
8 User Control User selects gadgets to view on device InstalledGadgets Installed Devices
9
9 Software Architecture Auxiliary Display API Gadget Auxiliary Display Driver Display Device Inter-process communication Transport Channel
10
10 Conference Scheduler
11
11 Gadget Installation Friendly name IconEndpoint Specifies data format between gadget and device [HKCU\SOFTWARE\Microsoft\AuxiliaryDisplay\Applications\{APPLICATION_ID}] "FriendlyName"=“Application name”; User friendly name “Icon”=myapplication.dll,0; 16,32,48 px icons "OnlineOnly"=dword:00000000; Is it “Live” or “Cached”? "Endpoints"=MULTI_SZ:Endpoint GUID(s) ; Data format(s) supported Friendly Name Icon
12
12 Registering A Session Create an instance of the Registrar Register application ID and data format // Create the AuxiliaryDisplayRegistrar object that // enables us to talk to the platform. hr = ::CoCreateInstance(CLSID_AuxiliaryDisplayRegistrar, NULL, CLSCTX_INPROC_SERVER, CLSCTX_INPROC_SERVER, IID_IAuxiliaryDisplayRegistrar, IID_IAuxiliaryDisplayRegistrar, (LPVOID*)&m_pRegistrar); (LPVOID*)&m_pRegistrar); if (SUCCEEDED(hr)) { // Register application with the platform // Register application with the platform hr = m_pRegistrar->Register(MY_APPLICATION_ID, hr = m_pRegistrar->Register(MY_APPLICATION_ID, AUX_ENDPOINT_SIMPLE_CONTENT_FORMAT, AUX_ENDPOINT_SIMPLE_CONTENT_FORMAT, &m_pContentMgr); &m_pContentMgr);}
13
13 Content Management Startup: send initial content Update content User interacts with device (i.e. get details on a session) Gadget Device Response to action (i.e. send session details) User interaction (i.e. select session to attend) Periodic updates (i.e. update “next session”)
14
14 Creating Content Developer implements IAuxiliaryDisplayContent Returns a content ID (unsigned 32-bit value) Provides the content as an array of bytes (opaque) Allows developer to send different content to each device based on the device’s capabilities HRESULT get_ContentId( PCONTENT_ID out_pcontentId ); HRESULT get_DifferentiateContent( BOOL * out_pfDifferentiateContent ); HRESULT GetContent( IAuxiliaryDisplayCapabilities * in_pICapabilities, DWORD * out_pdwSize, BYTE ** out_ppbData );
15
15 Content Format Gadgets and devices need a common format to exchange data Simple Content Format New, Documented XML data format for which we are encouraging device support Provides simple layout and interaction for devices with varying capabilities Functions in both “PC on” (live/online) and “PC off” (cached) modes iCalendar Allows transfer of appointments in a standard format Presentation is determined by the device; thus the calendar display and interaction can be richer than by using the Simple Content Format
16
16 Glance Content Glance or Overview Content Content id of 0 reserved for overview content Simple text string Easy to support on all devices, regardless of actual content format used Glance Content
17
17 Simple Content Format Menu Page Provides a list of items Selection causes navigation Can be used as a context menu on menu items and content pages <body> Sunset Sunset Winter Winter Water lilies Water lilies Blue hills Blue hills </body>
18
18 <body> Sunset Sunset Driving on the coastal highway is fun Driving on the coastal highway is fun </body> Simple Content Format Layout Page Provides flow layout Support for text and images Simple text formatting (emphasis, color, alignment) Button mapping to override default navigation action
19
19 <body> Your image will lose some quality when rotated. Would you like to proceed? Your image will lose some quality when rotated. Would you like to proceed? Yes Yes No No </body> Simple Content Format Dialog Page Provides simple dialog box with icon, title, message, buttons User input on a decision Icon available for visual clue
20
20 Sending/Updating Content Content manager allows applications to Add/Update content on devices Remove content IAuxiliaryDisplayContent* pIContent; CMyContent pContent = new CMyContent(1 /* CONTENT_ID */, “Content”); hr = pContent->QueryInterface(IID_IAuxiliaryDisplayContent, &pIContent); &pIContent); // Add a content object that implements IAuxiliaryDisplayContent hr = m_pContentMgr->Add(pIContent); // Remove Content ID “1” from all devices hr = m_pContentMgr->Remove(1); // Remove all content from devices hr = m_pContentMgr->RemoveAll();
21
21 Platform Events ISV implements IAuxiliaryDisplayEvents interface Four events ContentMissing Occurs when the device requires a specific piece of content it does not have cached ApplicationEvent Generated due to user interaction with the device, i.e. User selection on a list item Navigation to a specific page of content Device Added/Device Removed Includes both PnP events, as well as “permission change” events generated from enabling/disabling a gadget in the CPL
22
22 Simple Content Format Events Events propagated to PC gadget (when on) as user navigates content on device NavigationEvent Triggered upon any navigation starting on a content or dialog page MenuEvent Triggered upon selection of an item off a menu page ContextMenuEvent Triggered upon any navigation off of a context menu
23
23 Device Capabilities Developer can retrieve a collection of IAuxiliaryDisplayCapabilities interfaces from the Content Manager Capabilities interface is external representation of a device Can query device properties, such as: Screen width/height Color depth Current language IHV extensible Interface also provided on some events to identify initiating device
24
24 Notifications IAuxiliaryDisplayNotificationManager interface mirrors the content manager Show/Revoke/RevokeAll IAuxiliaryDisplayNotification CoCreate’able by ISV PropertiesTitleMessageIcon Expiration time
25
25 Expedia.com
26
26 Managed Code Accessible through standard COM Interop Same functionality available Sample code provided for interop
27
27 Design Considerations Gadget lifetime management User expects device to be up to date Missing content needs to be provided Options Background process (as part of an existing system tray or any other process) Add on to an existing application
28
28 Design Considerations Device Support Support wide range of device capabilities Recommendations Provide useful glance content Ensure accurate data for text only displays If possible, differentiate content for displays Performance Mobile PCs are a big target – conserve battery Selectively update content
29
29 Summing Up New opportunities and new scenarios Value-add for existing applications Tools and samples to get started
30
30 Mobile PC and Tablet PC Breakout Sessions PRS308 - Windows Vista: Reaching Your Users When Their Machine Is Off, Using Auxiliary Display Devices Wednesday, 1:45 PM - 3:00 PM PRS315 - Windows Vista Tablet PC: Advances in Creating Tablet Enabled Applications Wednesday, 5:00 PM - 6:15 PM DAT317 - Windows Vista: Centralizing Data Synchronization with the New Sync Center Thursday, 11:30 AM - 12:45 PM FUN319 - Windows Vista: Developing Power-Aware Applications Thursday, 5:15 PM - 6:30 PM PNL12 - Future Directions in Mobile Device Hardware Friday, 1:00 PM- 2:30 PM
31
31 Get involved with Mobile PC and Tablet PC at PDC! Hands-On-Labs Use the Tablet PCs located in the Presentation Track Section PRSHOL26 - Mobile PC: Getting Started with Auxiliary Displays (C++ and C#) - Provide your users with instant access to data—even in powered-down states—with Auxiliary Display devices on Windows Vista. FUNHOL09 - Mobile PC: Building Energy Smart Windows Vista Applications (C#) - Learn how to be compatible with Windows Vista’s new Sleep behavior and learn how to integrate with the power policy engine to build a more robust application. FUNHOL09 - Mobile PC: Building Energy Smart Windows Vista Applications (C#) - Learn how to be compatible with Windows Vista’s new Sleep behavior and learn how to integrate with the power policy engine to build a more robust application. PRSHOL31 & PRSHOL32 - Tablet PC: Getting Started with the Tablet PC Platform (C# and Visual Basic.NET) - Create ink-enabled forms to empower your Tablet PC customers by using ink controls, the InkPicture object, and other APIs from the Windows XP Tablet PC Edition SDK 1.7. PRSHOL30 - Tablet PC: Advanced Development with Stylus Input APIs (C#) - Enhance performance and rendering by using the Tablet PC Stylus Input API to intercept and modify stylus data in real time. Get spotted with this button for a chance to win a Tablet PC!
32
32 Resources Windows SideShow at PDC Hands on Lab: PRSHOL26 Mobile PC: Getting started with Auxiliary Displays / Windows SideShow Booth: Prototype device and other concepts PRS Track lounge: Wed 3-5pm Related: PRS332 Developing Windows Sidebar Gadgets Thu 3:45pm – 5:00pm 402AB After PDC Gadgets: http://microsoftgadgets.com/sideshow.aspx http://microsoftgadgets.com/sideshow.aspx Mobile PC and Tablet PC Forum under Windows Vista Development : http://forums.microsoft.com/msdn/ http://forums.microsoft.com/msdn/ Business Contact: mobaux@microsoft.com mobaux@microsoft.com Windows Vista Beta and SDK: http://msdn.microsoft.com/windowsvista/ http://msdn.microsoft.com/windowsvista/
33
33 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.