Mastering Windows 8 C++ App Development

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

A practical guide to developing Windows Store apps with C++ and XAML

Overview

  • 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

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.

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

Approach

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

Author(s): Pavel Yosifovich
Publisher: Packt Publishing
Year: 2013

Language: English
Pages: 304

Cover......Page 1
Copyright......Page 3
Credits......Page 4
About the Author......Page 5
About the Reviewers......Page 6
www.PacktPub.com......Page 8
Table of Contents......Page 10
Preface......Page 16
Introducing Windows 8......Page 22
The Start (Home) screen......Page 23
The AppBar......Page 24
The Charms bar......Page 25
Desktop apps versus Store apps......Page 26
The Windows Runtime......Page 27
Language projections......Page 29
Creating your first Store application......Page 30
Closing an application......Page 34
Application deployment......Page 35
Where did int.ToString come from?......Page 36
Project structure......Page 37
Summary......Page 40
COM and C++ for
Windows 8 Store Apps......Page 42
nullptr......Page 43
auto......Page 44
Lambdas......Page 45
Smart pointers......Page 48
Conclusion......Page 51
COM and WinRT......Page 52
The IUnknown interface......Page 56
IInspectable interface......Page 57
Creating a WinRT object......Page 58
WinRT metadata......Page 64
The Windows Runtime Library......Page 67
Creating and managing objects......Page 69
Accessing members......Page 71
Methods and properties......Page 72
Delegates......Page 73
Events......Page 75
Defining types and members......Page 76
A WinRT component project......Page 77
Adding properties and methods......Page 78
Adding an event......Page 81
Building a C++ client......Page 82
Building a C# client......Page 84
The Application Binary Interface......Page 85
Asynchronous operations......Page 86
Using tasks for asynchronous operations......Page 90
Cancelling asynchronous operations......Page 91
MFC......Page 92
Win32 API......Page 93
C++ AMP......Page 94
Strings......Page 95
Collections......Page 96
Exceptions......Page 97
Summary......Page 98
XAML......Page 100
XAML basics......Page 101
Complex properties......Page 103
Dependency properties and attached properties......Page 104
Content properties......Page 105
Collection properties......Page 107
Markup extensions......Page 108
Connecting events to handlers......Page 109
XAML rules summary......Page 110
Introducing the Blend for Visual Studio 2012 tool......Page 111
XAML compilation and execution......Page 112
Connecting XAML, H, and CPP files to the build process......Page 113
Binary resources......Page 115
Logical resources......Page 117
Managing logical resources......Page 119
Styles......Page 121
Implicit (automatic) styles......Page 123
Style inheritance......Page 124
Summary......Page 126
Introducing layout......Page 128
Layout panels......Page 130
Grid......Page 131
Canvas......Page 133
VariableSizedWrapGrid......Page 137
Panel virtualization......Page 139
Working with elements and controls......Page 140
Content controls......Page 141
Buttons......Page 145
Other content controls to note......Page 147
Collection-based controls......Page 149
ListBox and ComboBox......Page 150
FlipView......Page 151
Text-based elements......Page 152
TextBlock......Page 153
TextBox......Page 155
RichTextBlock and RichEditBox......Page 156
Images......Page 157
The SemanticZoom control......Page 159
Summary......Page 160
Understanding data binding......Page 162
Element-to-element binding......Page 163
Object-to-element binding......Page 165
Change notifications......Page 168
Binding to collections......Page 170
Value converters......Page 172
Data template selectors......Page 177
Commands......Page 178
MVVM constituents......Page 180
Building an MVVM framework......Page 181
Summary......Page 185
Windows Runtime Components......Page 186
Converting C++ to WinRT......Page 187
Crossing the ABI......Page 192
Consuming Windows Runtime Components......Page 193
Other C++ library projects......Page 196
Custom control templates......Page 197
Building a control template......Page 198
Using the control's properties......Page 200
Handling state changes......Page 201
Customizing using attached properties......Page 204
Custom elements......Page 206
Creating a color picker user control......Page 207
Defining dependency properties......Page 208
Building the UI......Page 211
Using the ColorPicker......Page 212
Custom controls......Page 213
Creating a ColorPicker custom control......Page 214
Binding in code......Page 216
Custom panels......Page 217
Custom drawn elements......Page 218
Summary......Page 219
Application lifecycle......Page 220
Saving and restoring the state......Page 223
State store options......Page 225
Live tiles......Page 226
Setting application tile defaults......Page 227
Updating the tile's contents......Page 228
Tile expiration......Page 229
Creating secondary tiles......Page 230
Using toast notifications......Page 232
Push notifications......Page 233
Push notification architecture......Page 234
The application server......Page 235
Registering for push notifications......Page 239
Issuing the push notification......Page 241
Push notifications for secondary tiles......Page 242
Creating and registering a task......Page 243
Implementing a task......Page 245
Task progress and cancellation......Page 247
Playing audio......Page 249
Maintaining background audio......Page 250
Lock screen apps......Page 253
Background tasks limits......Page 255
Example – downloading a file......Page 256
Summary......Page 259
Capabilities......Page 260
Contracts......Page 261
Share source......Page 262
Share target......Page 264
Sharing page UI generation......Page 269
FileOpenPicker contract......Page 270
Implementing a FileOpenPicker contract......Page 271
Extensions......Page 276
Settings extension......Page 277
Summary......Page 279
Packaging and
the Windows Store......Page 280
The application view state......Page 281
Implementing view state changes......Page 283
Packaging and validating......Page 286
Using the Windows App Certification Kit......Page 289
Summary......Page 291
Index......Page 292