Excellent Windows Programming Instruction
The author, Dino Esposito, does excellent work in an instructional manner dealing with the customization of the Windows shell. There is an abundance of information located between the covers that will augment the comprehension the reader has about the Windows operating system as a whole. Many of the things that are in this book are available in other locations, such as MSDN and other articles available for free; however having a concentrated reference is very convenient.Chapter 1-2: These chapters include a basic introduction to the way the Windows shell functions, and the various portions of the shell. It also introduces the Windows Application Programming Interface (API).
Chapter 3-6: Esposito explains how to work with files, including special folders, using the shell API functions SHFileOperation() and SHFileGetInfo(). Manipulating files, gathering information, and browsing for folders, it is all included. Certain Windows tasks such as working with shortcuts are explained programmatically.
Chapter 7-8: Chapter 7 introduces the concept of `invading' the shell using hooks and COM objects: using shell events or events within other processes to trigger your own events. Chapter 8 explains how to spawn processes programmatically.
Chapter 9-10: The first topic discussed deals with Windows icons, and then `invading' the Windows taskbar. This example can be used to take over any other process. Areas of the shell that are supposedly not very well known are covered; the recycling bin, formatting drives, etc.
Chapter 11-13: The Windows shell, `explorer.exe' is investigated. The author describes to the reader how explorer works, both the default actions taken and how to invoke certain behavior using the command line. Benefits and differences between using rundll() and rundll32.exe are covered; complete with examples of how to use them. Esposito spends a lot of time on scripting, first offering examples of scriptable shell objects then covering how to use the Windows Scripting Host, (WSH).
Chapter 14-16: Further levels of shell integration are presented as a conclusion to the book. Creating your own document types as well as many other features, like drag-and-drop support, give applications a native appearance in the shell. By creating new namespaces, the Windows operating system becomes even more customizable.
Visual C++ Windows Shell Programming
I am a semi-advanced self taught C++ programmer. I use Borland's C++ Builder programming IDE. I found this book to be extremely valuable. It has provided me with more information on the pride and pitfalls of Windows 98/NT's shell implementation and API than I would've imagined. This is not a beginner's book. It won't hold your hand to get you through it's content. You will need a firm grasp of the Windows messaging system. Knowledge of and experience with the Win32 API is also important. While I am weak on COM technology (does it really provide things that can't be done in simpler ways, or are we just stuck with it?) I found that I could understand what was going on by (loosely) relating the COM objects and namespace extensions to C++ classes. This book does contain some typos and mistakes. You will have to know enough to spot them or else spend time on the author's erratta web page (haven't been there yet myself). This leads me to believe that the source code download isn't comprised of exactly the same code that's in the book. All in all, I truly wish I'd have found this book sooner. It could've saved me a great deal of time searching through many different resources for the answers to some of my recently overcome programming frustrations. I'm only halfway through the book and am already writing more robust applications. Who knew that my system tray based application would've been left (past tense) memory resident but unreachable whenever the Windows Shell was restarted! If you're serious about living with Windows...if you need to register an application or file type...if you want to use SHBrowseForFolder() better...if you can't figure out why the damned thing won't work and it's 3:00 am...BUY THIS BOOK.
Excellent Book, Easy Reading, Good NSE information
Recently I was tasked to develop a name space extension. Not knowing that much about the topic, I scoured the web for relevant information. Unfortunately this is an area that, in my opinion, is rather poorly documented. All I could find was a couple of articles written several years ago. Fortunately for me, I found Mr. Esposito's book, and found it very enlightening, and easy to read. It's the only book that I found that has a complete chapter dedicated to this rather niche topic. Obviously the book also spends a great deal of time covering the larger scope of shell programming. All in all, I would highly recommend this book for anyone interested in learning more about shell programming, and personally, I consider it mandatory reading for anyone who is planning on developing a name space extension. Selfishly, I only wish the entire book was dedicated to name space extension, oh well, I'll have to wait for that book...
Very usefull & source does compile
I have found this book to be very usefull as a guide to shell programming. The information in msdn is a good reference, but there are often many ways to accomplish the same thing. This book presents the various ways to approach a task and also warns you of pitfalls including misleading documentation and implemenation bugs. Also, the source does compile in vc6 if you select the appropriate build setting (non unicode). The problem is related to unicode versions of macros being used in standard c functions such as fopen. Selecting the non-unicode build setting fixes this.
Source code doesn't compile
I wish Wrox Press would learn to edit books. They choose appealing subjects, but the books themselves just don't cut it. This is nothing against the authors, it is the editor(s), if any, that are causing the problems.The book content is fairly good. Much of the info is taken from articles that appeared in MSJ, or from Nancy Klut's book on shell programming, but it does add some useful new information.
Unfortunately, the source code (which is not included with the book, but is a free download) does not compile. I tried two of the projects (Shell hooks and Context menu) and neither would compile under a vanilla VC 6 installation. I know it is not my compiler, because the errors are in syntax. I suspect, despite the forward's statements otherwise, that the code was built with VC 5 and never recompiled under 6.
In any event, you may want to buy this book if you don't have access to Nancy Klut's (or MSDN, where it is included) and don't want to dig through the back issues of MSJ.