Chapter 1:Introduction
How the Win32 Library Is Structured
How the Win32 Library Is Designed
Chapter 2:What’s In This Volume?
Chapter 3:Using Microsoft Reference Resources
The Microsoft Developer Network(MSDN)
Comparing MSDN and MSDN Online
MSDN Subscriptions
MSDN Library Subscription
MSDN Professional Subscription
MSDN Universal Subscription
Purchasing an MSDN Subscription
Using MSDN
Navigating MSDN
Quick Tips
Using MSDN Online
Navigating MSDN Online
MSDN Online Features
MSDN Online Registered Users
The Windows Programming Reference Series
Chapter 4:Finding the Developer Resources You Need
Developer Support
Online Resources
Learning Products
Conferences
Other Resources
Chapter 5:Getting the Most out of Win32 Library Technologies:Part 5
Memory Abuse
Allocation failures
Uninitialized memory
Avoiding leaks
Don’t use freed resources
Resource attacks
Miscalculations
Division by zero
Signed versus unsigned variables
Floating-point variables
Solution Summary
Part 2 Introduction
Commonly Asked Shell Questions
Shell and Common Controls Versions
DLL Version Numbers
Using DllGet Version to Determine the Version Number
Using DllGetVersion
Project Versions
Chapter 6:Shell Programmer’s Guide
Programming the Shell
Integrating an Application with the Shell
The Shell Namespace
Introduction
Identifying Namespace Objects
Getting a Folder’s ID
The SHBrowseForFolder Dialog Box
Special Folders and CSIDLs
An Example of How to Use CSIDLs and SHBrowseForFolder
Getting Information About the Contents of a Folder
Using the IShellFolder Interface
Enumerating the Contents of a Folder
Determining Display Names and Other Properties
Getting a Pointer to a Subfolder’s IShellFolder Interface
Determining an Object’s Parent Folder
Navigating the Namespace
An Example of How to Use ShellExecuteEx
Managing the File System
Per-User File Management
The My Documents and My Pictures Folders
Connected Files
Moving,Copying,Renaming,and Deleting Files
An Example of Managing Files with SHFileOperation
Adding Files to the Shell’s List of Recent Documents
Managing Printers
Printer Management
Printing Files with ShellExecuteEx
Transferring Shell Objects with Drag-Drop and the Clipboard
How Drag-Drop Works with Shell Objects
Clipboard Data Transfers
Drag-Drop Data Transfers
The Shell Data Objects Work
How a Source Creates a Data Object
How a Target Handles a Data Object
Using the Drag-Drop Helper Object
Shell Clipboard Formats
Formats for Transferring File System Objects
Formats for Transferring Virtual Objcets
Formats for Communication Between Source and Target
Handling Shell Data Transfer Scenarios
General Guidelines
Copying File Names from the Clipboard to an Application
Copying the Contents of a Dropped File into an Application
Handling Optimized Move Operations
Handling Delete-on-Paste Operations
Transfering Data to and from Virtual Folders
Dropping Files on the Recycle Bin
Creating and Importing Scrap Files
Dragging and Dropping Shell Objects Asynchronously
Extending the Shell
Creating a File Association
Defining a File Class
Defining Attributes for a File Class
Excluding an Application from the Open With Dialog Box
Customizing Icons
Assigning a Custom Icon to a File Class
Assigning a Custom Icon and Label to a Drive Letter
Extending Context Menus
Context Menus for File System Objects
Verbs
Extending the Context Menu for a File Class
Extending the New Submenu
Customizing Folders with Desktop.ini
Using Desktop.ini Files
Creating a Desktop.ini Files
Creating an AutoPlay-Enabled CD-ROM Application
Creating an AutoPlay-Enabled Application
Creating an Autorun.inf File
Tips for Writing AutoPlay Startup Applications
Autorun.inf Commands
Enabling and Disabling AutoPlay
Suppressing AutoPlay Programmatically
Using the Registry to Disable AutoPlay
AutoPlay for Other Types of Storage Media
Chapter 7:Shell Interfaces
Shell Interface Overview
Shell Interfaces
IACList
IACList2
IActiveDesktop Interface
IAsyncOperation
IAutoComplete
IAutoComplete2
IColumnProvider
ICommDlgBrowser
ICommDlgBrowser2
IContextMenu
IContextMenu2
IContextMenu3
ICopyHook
ICurrentWorkingDirectory
IDeskBand
IDockingWindow
IDockingWindowFrame
IDragSourceHelper
IDockingWindowSite
IEmptyVolumeCache
IEmptyVolumeCache2
IEmptyVolumeCacheCallBack
IEnumExtraSearch
IEnumIDList
IExtractIcon
IExtractImage
IExtractImage2
IFileViewer
IFileViewerSite
IInputObject
IInputObjectSite
INewShortcutHook
INotifyReplica
IObjMgr
IPersistFolder
IPersistFolder2
IPersistFolder3
IProgressDialog
IQueryAssociations
IQueryInfo
IPeconcilableObject
IReconcileInitiator
IRemoteComputer
IResolveShellLink
IRunnableTask
IShellBrowser
IShellDetails
IShellExecuteHook
IShellExtInit
IShellFolder
IShellFolder2
IShellIcon
IShellIconOverlay
IShellIconOverlayIdentifier
IShellLink
IShellLinkDataList
IShellPropSheetExt
IShellView
IShellView2
ITaskbarList
IUniformResourceLocator
IURLSearchHook
Chapter 8:Shell Functions
Shell Functions
Shell Callback Functions
Chapter 9:Shell Structures
Shell Structures
Chapter 10:Shell Enumerations and Macros
Shell Enumerations
Shell Macros
Chapter 11:Shell Lightweight Utility APIs
String Functions
Path Functions
Registry Data Types
Registry Functions
Color Palette Functions
Miscellaneous
Chapter 12:Shell Messages and Notifications
Shell Messages and Notifications
Apendix A
Apendix B