Windows Shell Programming

by
Format: Paperback
Pub. Date: 2000-12-01
Publisher(s): Prentice Hall Ptr
List Price: $49.99

Rent Book

Select for Price
There was a problem. Please try again later.

New Book

We're Sorry
Sold Out

Used Book

We're Sorry
Sold Out

eBook

We're Sorry
Not Available

How Marketplace Works:

  • This item is offered by an independent seller and not shipped from our warehouse
  • Item details like edition and cover design may differ from our description; see seller's comments before ordering.
  • Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
  • Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
  • Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.

Summary

Seely presents an authoritative guide to Windows shell programming for experienced Visual C++, C++, Visual Basic, and MFC developers. He shows how to connect the MFC and ATL frameworks to any part of the Windows API, graphical or not. The CD-ROM contains powerful Windows shell code libraries and wizards.

Table of Contents

Acknowledgments xix
Windows Shell Programming
1(11)
Goals of this Book
2(1)
What is the Windows Shell?
3(2)
Chapter Summaries
5(5)
The Taskbar
5(1)
Application Desktop Toolbars
6(1)
Control Panel Applets
6(1)
Screen Savers
6(1)
File Viewers
7(1)
Shell Extensions
7(1)
Disk Cleanup Handlers
8(1)
Namespace Extensions
8(1)
Tools to Build a Namespace Extension
9(1)
Namespace Extension Example: The Registry
9(1)
Explorer Bars and Desktop Bands
9(1)
Versions of the Shell
10(1)
Summary
11(1)
The Taskbar
12(29)
How to Get Taskbar Information
14(4)
Getting the Taskbar's State and Position
15(1)
Using CTaskBar
16(2)
How to Add and Remove Buttons From the Taskbar
18(3)
How to Add Items to the Start Menu
21(5)
How to Add Icons to the System Tray
26(14)
A Class for Animating the Tray
29(11)
Summary
40(1)
Application Desktop Toolbars
41(53)
Guidelines for Creating Application Desktop Toolbars
42(1)
How Appbars Work
43(10)
The SHAppBarMessageO API
43(7)
Positioning the Appbar
50(3)
An Application Desktop Toolbar Library
53(30)
An Application Desktop Toolbar Application
83(10)
Summary
93(1)
Control Panel Applets
94(24)
When to Use the Control Panel
95(1)
Applet Expectations
96(3)
CPIAppletO
96(1)
Messages
97(2)
A Control Panel Library and Wizard
99(10)
Design
99(7)
The Control Panel Library
106(1)
The Control Panel AppWizard
107(2)
Using the Tools
109(7)
Create the Base Project
110(2)
Implement the Applet
112(2)
Adding Another Applet
114(2)
Debugging Control Panel Applets
116(1)
Summary
116(2)
Screen Savers
118(19)
Screen Saver Responsibilities
119(1)
Screen Saver Internals
119(2)
Writing A Screen Saver
121(10)
Implementing an MFC Screen Saver AppWizard and Library
122(1)
CScreenSaverApp
123(4)
CScreenSaverWnd
127(4)
Example: The Bouncing Ball
131
Summary
36(101)
File Viewers
137(39)
File Viewer Basics
138(4)
File Viewer Internals
142(9)
IFileViewerSite
144(1)
IFileViewer
144(3)
FVSHOWINFO
147(2)
File Viewer User Interface Expectations
149(2)
Testing File Viewers
151(1)
Building a File Viewer
151(13)
File Viewer Library
153(11)
Address Book Example
164(10)
Summary
174(2)
Shell Extensions
176(67)
Common Features of Shell Extensions
177(5)
Context Menu Handlers
182(9)
Icon Handlers
191(6)
Data Handlers
197(17)
Drop Handlers
214(8)
Property Sheet Handlers
222(13)
Copy Hook Handler
235(6)
Drag-and-Drop Handler
241(1)
Summary
241(2)
Disk Cleanup Handlers
243(25)
The Disk Cleanup Utility and Handlers
245(9)
Address Book File Consolidation
254(12)
Debugging Disk Cleanup Handlers
254(3)
Address Book Disk Cleanup Handler
257(9)
Summary
266(2)
Namespace Extensions
268(20)
When to Build a Namespace Extension
271(1)
Types of Namespace Extensions
271(6)
Non-rooted Namespace Extensions
273(1)
Rooted Namespace Extensions
274(3)
What is in a PIDL?
277(3)
Folders and Other Items
280(2)
Displaying All the Contents of the Folder
282(3)
Testing and Debugging Namespace Extensions
285(2)
Summary
287(1)
Tools to Build a Namespace Extension
288(43)
The Namespace Extension Wizard Creates A Project
289(5)
The Implementation of IShellFolder (and its cohorts)
294(18)
The Implementation of IShellView (and its cohorts)
312(17)
Summary
329(2)
Namespace Extension Example: The Registry
331(30)
Requirements for the Registry Namespace Extension
332(2)
Defining the Registry ITEMIDLIST Structure
334(2)
Implementing the IEnumlDList Interface
336(7)
Implementing the IShellFolder Interface
343(6)
Displaying the Contents of the Folder: CWinRegListView
349(11)
Summary
360(1)
Explorer Bars and Desktop Bands
361(36)
Band Object Basics
362(7)
IDeskBand
362(4)
ICatRegister
366(2)
Communicating With the Container
368(1)
Creating a Band Object
369(13)
Registry Entries
371(2)
Registration/Unregistration Code
373(2)
Implementation Class Header File
375(2)
Implementation Class Source File
377(5)
Debugging Band Objects
382(4)
Desk Band Example
386(9)
Summary
395(2)
APPENDIX A COM Interfaces Used by the Shell 397(76)
A.1 ICatRegister
398(1)
A.2 IContextMenu
398(3)
A.3 IContextMenu2
401(1)
A.4 IContextMenu3
402(1)
A.5 ICopyHook
403(1)
A.6 IDataObject
403(1)
A.7 IDeskBand
403(1)
A.8 IDockingWindow
404(1)
A.9 IDropTarget
405(1)
A.10 IEmptyVolumeCacheCallBack
406(1)
A.11 IEmptyVolumeCache
406(1)
A.12 IEmptyVolumeCache2
406(1)
A.13 IEnumlDList
406(2)
A.14 IEnumExtraSearch
408(1)
A.15 IExtractlcon
409(1)
A.16 IFileViewer
410(1)
A.17 IFileViewerSite
410(1)
A.18 IlnputObject
410(1)
A.19 IlnputObjectSite
411(1)
A.20 IObjectWithSite
412(1)
A.21 IOleCommandTarget
413(2)
A.22 IOleInPlaceFrame
415(3)
A.23 IOleWindow
418(1)
A.24 IQueryInfo
419(1)
A.25 IPersist
420(1)
A.26 IPersistFile
421(2)
A.27 IPersistFolder
423(1)
A.28 IPersistStream
424(1)
A.29 IRemoteComputer
425(1)
A.30 ISequentialStream
426(2)
A.31 IShellBrowser
428(7)
A.32 IShellChangeNotify
435(1)
A.33 IShellDetails
435(2)
A.34 IShellExecuteHook
437(1)
A.35 IShellExtlnit
437(1)
A.36 IShellFolder
438(7)
A.37 IShellFolder2
445(2)
A.38 IShellIcon
447(1)
A.39 IShellLink
448(8)
A.40 IShellPropSheetExt
456(1)
A.41 IShellView
456(6)
A.42 IShellView2
462(2)
A.43 IStream
464(7)
A.44 IUnknown
471(2)
APPENDIX B Shell Functions, Structures, and Enumerations 473(76)
B.1 BrowseCallbackProc
474(1)
B.2 BROWSEINFO
475(2)
B.3 CSIDL_XXXX
477(2)
B.4 EXTRASEARCH
479(1)
B.5 FOLDERFLAGS
480(1)
B.6 FOLDERSETTINGS
481(1)
B.7 FOLDERVIEWMODE
481(1)
B.8 FORMATETC
482(1)
B.9 FVSHOWINFO
482(1)
B.10 CMINVOKECOMMANDINFO
482(2)
B.11 ITEMIDLIST
484(1)
B.12 NOTIFYICONDATA
484(1)
B.13 REGSAM
484(1)
B.14 SHAddToRecentDocs
485(1)
B.15 SHAppBarMessage
486(1)
B.16 SHAutoComplete
486(1)
B.17 SHBindToParent
487(1)
B.18 SHBrowseForFolder
488(1)
B.19 SHChangeNotify
488(3)
B.20 SHCONTF
491(1)
B.21 SHCopyKey
492(1)
B.22 SHCreateShellPalette
492(1)
B.23 SHDeleteEmptyKey
493(1)
B.24 SHDeleteKey
494(1)
B.25 SHDeleteValue
494(1)
B.26 SHDESCRIPTIONID
495(1)
B.27 Shell_Notifylcon
496(1)
B.28 ShellAbout
496(1)
B.29 SHELLDETAILS
497(1)
B.30 ShellExecute
497(3)
B.31 ShellExecuteEx
500(1)
B.32 SHELLEXECUTEINFO
500(3)
B.33 SHELLFLAGSTATE
503(1)
B.34 ShellProc
504(2)
B.35 SHEmptyRecycleBin
506(1)
B.36 SHEnumKeyEx
507(1)
B.37 SHEnumValue
508(1)
B.38 SHFILEINFO
509(1)
B.39 SHFileOperation
509(1)
B.40 SHFILEOPSTRUCT
510(2)
B.41 SHFreeNameMappings
512(1)
B.42 SHGetDataFromlDList
512(1)
B.43 SHGetDesktopFolder
513(1)
B.44 SHGetDiskFreeSpace
513(1)
B.45 SHGetFileInfo
514(2)
B.46 SHGetFolderLocation
516(1)
B.47 SHGetFolderPath
517(1)
B.48 SHGetInstanceExplorer
518(1)
B.49 SHGetMalloc
519(1)
B.50 SHGetNewLinkInfo
519(1)
B.51 SHGetPathFromlDList
520(1)
B.52 SHGetSettings
521(1)
B.53 SHGetSpecialFolderLocation
522(1)
B.54 SHGetSpecialFolderPath
522(1)
B.55 SHGetValue
523(1)
B.56 SHGNO
524(1)
B.57 SHlnvokePrinterCommand
525(1)
B.58 SHITEMID
526(1)
B.59 SHLoadlnProc
526(1)
B.60 SHNAMEMAPPING
527(1)
B.61 SHOpenRegStream
527(1)
B.62 SHQueryInfoKey
528(1)
B.63 SHQUERYRBINFO
529(1)
B.64 SHQueryRecycleBin
529(1)
B.65 SHQueryValueEx
530(1)
B.66 SHRegCloseUSKey
531(1)
B.67 SHRegCreateUSKey
531(1)
B.68 SHREGDEL FLAGS
532(1)
B.69 SHRegDeleteEmptyUSKey
533(1)
B.70 SHRegDeleteUSValue
533(1)
B.71 SHREGENUM_FLAGS
534(1)
B.72 SHRegEnumUSKey
534(1)
B.73 SHRegEnumUSValue
535(1)
B.74 SHRegGetBoolUSValue
536(1)
B.75 SHRegGetUSValue
537(1)
B.76 SHRegOpenUSKey
538(1)
B.77 SHRegQueryInfoUSKey
539(1)
B.78 SHRegQueryUSValue
539(1)
B.79 SHRegSetUSValue
540(1)
B.80 SHRegWriteUSValue
541(1)
B.81 SHSetValue
542(1)
B.82 SHStrDup
543(1)
B.83 STGMEDIUM
544(1)
B.84 STRRET
544(1)
B.85 StrRetToBuf
545(1)
B.86 StrRetToStr
545(1)
B.87 SV2CVW2_PARAMS
546(1)
B.88 WIN32_FIND_DATA
547(2)
Index 549(23)
About the CD 572

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

Digital License

You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.

More details can be found here.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.