Mastering Windows 8 C++ App Development

Mastering Windows 8 C++ App Development
eBook: $29.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $79.98    Print cover: $49.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Details the most important features of C++, XAML, and WinRT for building fantastic Windows Store apps
  • Full of detailed and engaging code samples that can be used as a basis for your own projects
  • Provides a clear overview of Windows Runtime and C++/CX

Book Details

Language : English
Paperback : 304 pages [ 235mm x 191mm ]
Release Date : April 2013
ISBN : 1849695024
ISBN 13 : 9781849695022
Author(s) : Pavel Yosifovich
Topics and Technologies : All Books, Application Development

Table of Contents

Chapter 1: Introduction to Windows 8 Apps
Chapter 2: COM and C++ for Windows 8 Store Apps
Chapter 3: Building UI with XAML
Chapter 4: Layout, Elements, and Controls
Chapter 5: Data Binding
Chapter 6: Components, Templates, and Custom Elements
Chapter 7: Applications, Tiles, Tasks, and Notifications
Chapter 8: Contracts and Extensions
Chapter 9: Packaging and the Windows Store
  • Chapter 1: Introduction to Windows 8 Apps
    • Introducing Windows 8
      • Touch everywhere
      • The Start (Home) screen
      • The AppBar
      • The Charms bar
    • Desktop apps versus Store apps
    • The Windows Runtime
    • Language projections
      • Building the user interface
    • Creating your first Store application
      • Closing an application
      • Application deployment
      • Where did int.ToString come from?
      • Project structure
    • Summary
    • Chapter 2: COM and C++ for Windows 8 Store Apps
      • Welcome to C++11
        • New features in C++11
          • nullptr
          • auto
          • Lambdas
          • Smart pointers
        • Conclusion
      • COM and WinRT
        • The IUnknown interface
        • IInspectable interface
        • Creating a WinRT object
      • WinRT metadata
      • The Windows Runtime Library
      • C++/CX
        • Creating and managing objects
        • Accessing members
          • Methods and properties
          • Delegates
          • Events
        • Defining types and members
          • A WinRT component project
          • Adding properties and methods
          • Adding an event
        • Consuming a WinRT component
          • Building a C++ client
          • Building a C# client
      • The Application Binary Interface
      • Asynchronous operations
        • Using tasks for asynchronous operations
        • Cancelling asynchronous operations
        • Error handling
      • Using existing libraries
        • STL
        • MFC
        • ATL
        • Win32 API
        • CRT
        • DirectX
        • C++ AMP
      • The Windows Runtime class library
        • Strings
        • Collections
        • Exceptions
      • Summary
      • Chapter 3: Building UI with XAML
        • XAML
          • XAML basics
          • Type converters
          • Complex properties
          • Dependency properties and attached properties
          • Content properties
          • Collection properties
          • Markup extensions
          • Naming elements
          • Connecting events to handlers
          • XAML rules summary
          • Introducing the Blend for Visual Studio 2012 tool
          • XAML compilation and execution
          • Connecting XAML, H, and CPP files to the build process
        • Resources
          • Binary resources
          • Logical resources
            • Managing logical resources
            • Duplicate keys
        • Styles
          • Implicit (automatic) styles
          • Style inheritance
          • Store application styles
        • Summary
        • Chapter 4: Layout, Elements, and Controls
          • Introducing layout
          • Layout panels
            • StackPanel
            • Grid
            • Canvas
              • Adding children to a panel dynamically
            • VariableSizedWrapGrid
            • Panel virtualization
              • Virtualizing panels
          • Working with elements and controls
            • Content controls
              • Buttons
              • ScrollViewer
              • Other content controls to note
            • Collection-based controls
              • ListBox and ComboBox
              • ListView and GridView
              • FlipView
            • Text-based elements
              • Using custom fonts
              • TextBlock
              • TextBox
              • PasswordBox
              • RichTextBlock and RichEditBox
            • Images
            • The SemanticZoom control
          • Summary
          • Chapter 5: Data Binding
            • Understanding data binding
              • Data binding concepts
            • Element-to-element binding
            • Object-to-element binding
            • Binding failures
            • Change notifications
            • Binding to collections
            • Customizing a data view
              • Value converters
                • Other parameters for Convert and ConvertBack
              • Data template selectors
            • Commands
            • Introduction to MVVM
              • MVVM constituents
              • Building an MVVM framework
              • More on MVVM
            • Summary
            • Chapter 6: Components, Templates, and Custom Elements
              • Windows Runtime Components
                • Converting C++ to WinRT
                • Crossing the ABI
                • Consuming Windows Runtime Components
                • Other C++ library projects
              • Custom control templates
                • Building a control template
                  • Using the control's properties
                  • Handling state changes
                  • Customizing using attached properties
              • Custom elements
                • User controls
                  • Creating a color picker user control
                  • Dependency properties
                  • Defining dependency properties
                  • Building the UI
                  • Adding events
                  • Using the ColorPicker
                • Custom controls
                  • Creating a ColorPicker custom control
                  • Binding in code
              • Custom panels
              • Custom drawn elements
              • Summary
              • Chapter 7: Applications, Tiles, Tasks, and Notifications
                • Application lifecycle
                  • Saving and restoring the state
                    • Determining application execution states
                    • State store options
                    • Helper classes
                • Live tiles
                  • Setting application tile defaults
                  • Updating the tile's contents
                    • Enabling cycle updates
                    • Tile expiration
                    • Badge updates
                  • Creating secondary tiles
                    • Activating a secondary tile
                • Using toast notifications
                  • Toast options
                • Push notifications
                  • Push notification architecture
                  • Building a push notification application
                    • The application server
                    • Registering for push notifications
                    • Issuing the push notification
                  • Push notifications for secondary tiles
                • Background tasks
                  • What is a task?
                  • Creating and registering a task
                  • Implementing a task
                  • Task debugging
                  • Task progress and cancellation
                  • Playing background audio
                    • Playing audio
                    • Maintaining background audio
                    • Sound-level notifications
                  • Lock screen apps
                  • Requesting to set a lock screen app
                  • Other common operations for lock screen apps
                  • Background tasks limits
                • Background transfers
                  • Example – downloading a file
                • Summary
                • Chapter 8: Contracts and Extensions
                  • Capabilities
                  • Contracts
                    • Share contract
                      • Share source
                      • Share target
                      • Sharing files
                      • Sharing page UI generation
                    • FileOpenPicker contract
                      • Implementing a FileOpenPicker contract
                    • Debugging contracts
                  • Extensions
                    • Settings extension
                  • Other contracts and extensions
                  • Summary

                    Pavel Yosifovich

                    Pavel Yosifovich is the CTO of CodeValue (, a software development, consulting, and training company, based in Israel. He writes, develops, consults, and trains developers on various software development topics, from Windows internals to .NET enterprise systems, and almost everything in between. He's a Microsoft MVP and a frequent speaker at national events. In the past, he co-founded the startup company Quiksee that was acquired by Google in September 2010.
                    Sorry, we don't have any reviews for this title yet.

                    Code Downloads

                    Download the code and support files for this book.

                    Submit Errata

                    Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

                    Sample chapters

                    You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                    Frequently bought together

                    Mastering Windows 8 C++ App Development +    Microsoft Application Virtualization Advanced Guide =
                    50% Off
                    the second eBook
                    Price for both: €34.10

                    Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                    What you will learn from this book

                    • Leverage your existing C++ skills with this new and exciting platform
                    • Discover how to effectively use C++/CX to call Windows Runtime APIs
                    • Integrate XAML for fast and fluid user interfaces
                    • Create custom controls for special UI scenarios
                    • Learn how to integrate your application with Windows 8 by implementing contracts
                    • Build data-driven apps with XAML, data binding, and MVVM

                    In Detail

                    Windows 8 provides an unprecedented opportunity for developers to create applications for a new and exciting platform, for an entirely new market. Leveraging modern C++ and the new Windows Runtime, this book guides you through the many facets of WinRT whilst using modern C++ features for ultimate power and performance.

                    "Mastering Windows 8 C++ App Development" shows you how to create Windows Store apps that use many of the new features and functionality available for Windows 8. You'll discover how you can harness the power of the new Windows Runtime with C++ combined with XAML for the creation of fantastic user experiences.

                    Starting with coverage of C++/CX (a set of extensions that make working with WinRT easier) and user interface design with XAML, this book shows you how to use major Windows 8 features, including Live Tiles and Contracts, while leveraging common patterns such as data binding and the Model View ViewModel (MVVM). You'll discover how WinRT works, its various capabilities, and how it can best be leveraged using C++11 and Visual Studio 2012.


                    Specifically designed to be an engaging and practical tutorial, Mastering Windows 8 C++ App Development will augment your skills and help you create high quality Windows Store apps.

                    Who this book is for

                    If you are a C++ developer who wants to utilize the combined power of COM, WinRT, C++/CX, and XAML to build Store apps for the new Windows 8 platform, then this book is for you. Prior experience with XAML-based technologies is not required.

                    Code Download and Errata
                    Packt Anytime, Anywhere
                    Register Books
                    Print Upgrades
                    eBook Downloads
                    Video Support
                    Contact Us
                    Awards Voting Nominations Previous Winners
                    Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                    Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software