This is an average tutorial book. While this book is very comprehensive, and all of the appropriate topics are covered, the text is dull, at times overly meticulous, and uninspiring. There are many step-by-step exercises, 10-30 per chapter, with each using a simplest-case scenario for learning a component or procedure. This methodology has its pros and cons; it's great for reference or if you want to learn a particular thing, and it's good for route memorization by performing the same acts repeatedly (for example, creating a new project, or changing the start-up object), but after a while it becomes tedious and, well, repetitive.
There are too few "big picture" examples or case studies. The use of these would have made the entire learning process far more efficient. For example, starting with the goal of creating a data analysis application and learning how to make buttons in parallel with ADO is both more interesting and time-saving. But, this is not the approach of this book.
The book appears to be written for a C (or other structural-based) programmer who is not familiar with concepts such as objects, event delegation, exception handling, SQL, or Visual Studio. There are few, if any, references to anything being "like Java" or "like C++" or "(un)like MFC", nor are there appropriate warnings that say "skip this if you already have a basic understanding of " -- you are left to skim for yourself. This makes the book more helpful for the novice programmer, but tedious for the more experienced.That said, if you read this book and do the exercies then you will certainly learn the material. I would recommend reading a few of the pages, from multiple chapters if possible, before purchasing this book.