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