Click here to Skip to main content
12,294,635 members (69,718 online)
Click here to Skip to main content
Add your own
alternative version


362 bookmarked

The Complete Idiot's Guide to Writing Shell Extensions - Index

, 1 Jun 2002
Rate this:
Please Sign up or sign in to vote.
An index of all the articles in the Idiot's Guide

Since the Idiot's Guide series has become quite large, here is an index of all the articles that gives a quick blurb about each one, so you can quickly find the articles that interest you.

Some other dedicated folks are writing translations of the Guide. Here are the published translations:

Part I - A step-by-step tutorial on writing shell extensions

 [Part 1 screen shot - 9K]

Part I is a simple overview of shell extensions, and discusses how to debug them. The sample extension illustrates adding items to the context menu for text files.

Part II - A tutorial on writing a shell extension that operates on multiple files at once

 [Part 2 screen shot - 5K]

Part II demonstrates how to write a context menu extension that operates on all of the selected files at once. The sample project is a utility that adds registration and unregistration commands to the context menus for DLLs.

Part III - A tutorial on writing a shell extension that shows pop-up info for files

 [Part 3 screen shot - 6K]

Part III demonstrates the QueryInfo extension that customizes the infotip for text files. It also explains how to use MFC in a shell extension.

Part IV - A tutorial on writing a shell extension that provides custom drag and drop functionality

 [Part 4 screen shot - 12K]

Part IV shows how to add items to the menu displayed when the user drags and drops with the right mouse button in Explorer. The sample project is a utility that makes hard links for files. (Note: the extension is functional only on Windows 2000, but you can still compile and run the extension on previous versions of Windows. See the article for instructions.)

Part V - A tutorial on writing a shell extension that adds pages to the properties dialog of files

 [Part 5 screen shot - 23K]

Part V demonstrates how to add new pages to Explorer's Properties dialog. The sample project adds a page on which you can edit the created, modified, and last accessed times of files.

Part VI - A tutorial on writing a shell extension that can be used on the Send To menu

 [Part 6 screen shot - 9K]

Part VI discusses a drop handler extension that gets added to the SendTo menu. The sample project is a clone of the Send To Any Folder power toy.

Part VII - A tutorial on using owner-drawn menus in a context menu shell extensions, and on making a context menu extension that responds to a right-click in a directory background

 [Part 7 screen shot - 6K]

Part VII tackles two topics suggested by readers: owner-drawn menu items and the context menu for the background of directory windows. The sample project contains two extensions: a bitmap viewer (pictured above) that puts a thumbnail of BMP files in the context menu, and a simple extension that adds items to the context menu of directory backgrounds.

Part VIII - A tutorial on adding columns to Explorer's details view via a column handler shell extension

 [Part 8 screen shot - 6K]

Part VIII demonstrates how to add columns to the details view of Explorer on Windows 2000. The sample project adds a few columns that show ID3v1 tag data in MP3 files.. (This extension works only on Windows 2000.)

Part IX - A tutorial on writing an extension to customize the icons displayed for a file type.

 [Part 9 screen shot - 24K]

Part IX shows how to customize file icons on a file-by-file basis. The demo project is an extension that shows 4 different icons for text files, depending on the size of the file.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Michael Dunn
Software Developer (Senior) VMware
United States United States
Michael lives in sunny Mountain View, California. He started programming with an Apple //e in 4th grade, graduated from UCLA with a math degree in 1994, and immediately landed a job as a QA engineer at Symantec, working on the Norton AntiVirus team. He pretty much taught himself Windows and MFC programming, and in 1999 he designed and coded a new interface for Norton AntiVirus 2000.
Mike has been a a developer at Napster and at his own lil' startup, Zabersoft, a development company he co-founded with offices in Los Angeles and Odense, Denmark. Mike is now a senior engineer at VMware.

He also enjoys his hobbies of playing pinball, bike riding, photography, and Domion on Friday nights (current favorite combo: Village + double Pirate Ship). He would get his own snooker table too if they weren't so darn big! He is also sad that he's forgotten the languages he's studied: French, Mandarin Chinese, and Japanese.

Mike was a VC MVP from 2005 to 2009.

You may also be interested in...

Comments and Discussions

AnswerRe: How to write a service like "zipped folders" in windows Pin
Michael Dunn2-Aug-03 9:36
sitebuilderMichael Dunn2-Aug-03 9:36 
GeneralExtending Propetry Sheet Pin
slavonchik7-Jul-03 0:29
memberslavonchik7-Jul-03 0:29 
GeneralVirtual folder Pin
icemagno27-Jun-03 1:19
membericemagno27-Jun-03 1:19 
GeneralRe: Virtual folder Pin
Michael Dunn28-Jun-03 6:23
sitebuilderMichael Dunn28-Jun-03 6:23 
GeneralRe: Virtual folder Pin
icemagno30-Jun-03 0:40
membericemagno30-Jun-03 0:40 
Generaladding shell extensions globally Pin
paulfaunik13-May-03 11:03
memberpaulfaunik13-May-03 11:03 
GeneralRe: adding shell extensions globally Pin
Michael Dunn13-May-03 13:41
sitebuilderMichael Dunn13-May-03 13:41 
GeneralRe: adding shell extensions globally Pin
paulfaunik13-May-03 14:30
memberpaulfaunik13-May-03 14:30 
QuestionGet the IShellBrowser interface of a open file dialog? Pin
xbeta16-Apr-03 6:04
memberxbeta16-Apr-03 6:04 
GeneralInternet Explorer COM Object Pin
Anonymous9-Mar-03 0:44
sussAnonymous9-Mar-03 0:44 
Question.lnk extention, how? Pin
Sims4-Feb-03 19:26
memberSims4-Feb-03 19:26 
Generalassociate file extention patterns Pin
jens1965dk26-Jan-03 4:22
memberjens1965dk26-Jan-03 4:22 
GeneralRe: associate file extention patterns Pin
Michael Dunn26-Jan-03 7:27
sitebuilderMichael Dunn26-Jan-03 7:27 
GeneralRe: associate file extention patterns Pin
jens1965dk27-Jan-03 9:23
memberjens1965dk27-Jan-03 9:23 
GeneralNamespace Extension Pin
Miu-Baldu Adrian9-Dec-02 23:48
sussMiu-Baldu Adrian9-Dec-02 23:48 
GeneralRe: Namespace Extension Pin
Miu-Baldu Adrian17-Dec-02 21:15
sussMiu-Baldu Adrian17-Dec-02 21:15 
Generalcomment of a file Pin
Anonymous15-Nov-02 19:56
sussAnonymous15-Nov-02 19:56 
GeneralRe: comment of a file Pin
Michael Dunn15-Nov-02 20:13
sitebuilderMichael Dunn15-Nov-02 20:13 
GeneralRe: comment of a file Pin
Anonymous21-Nov-02 21:09
sussAnonymous21-Nov-02 21:09 
GeneralFile Properties dialog - contents Pin
Dick41430-Oct-02 4:55
memberDick41430-Oct-02 4:55 
GeneralRe: File Properties dialog - contents Pin
Michael Dunn15-Nov-02 20:11
sitebuilderMichael Dunn15-Nov-02 20:11 
General谢谢 Pin
Anonymous4-Oct-02 22:56
sussAnonymous4-Oct-02 22:56 
QuestionRegister File extension with .NET? Pin
Uwe Keim25-Sep-02 23:14
sitebuilderUwe Keim25-Sep-02 23:14 
AnswerRe: Register File extension with .NET? Pin
Michael Dunn26-Sep-02 5:25
sitebuilderMichael Dunn26-Sep-02 5:25 
GeneralRe: Register File extension with .NET? Pin
Uwe Keim26-Sep-02 5:32
sitebuilderUwe Keim26-Sep-02 5:32 
GeneralRe: Register File extension with .NET? Pin
Anonymous8-Mar-03 23:27
sussAnonymous8-Mar-03 23:27 
GeneralRe: Register File extension with .NET? Pin
Anonymous8-Mar-03 23:29
sussAnonymous8-Mar-03 23:29 
QuestionWhy get IShellDetails interface failed? Pin
Anonymous22-Aug-02 16:20
memberAnonymous22-Aug-02 16:20 
GeneralI've got a problem! Pin
Anonymous17-Aug-02 6:05
memberAnonymous17-Aug-02 6:05 
GeneralRe: I've got a problem! Pin
Michael Dunn18-Aug-02 4:50
sitebuilderMichael Dunn18-Aug-02 4:50 
GeneralRe: I've got a problem! Pin
kim-ryo18-Aug-02 22:43
memberkim-ryo18-Aug-02 22:43 
GeneralVery good work! Pin
klm31-Jul-02 22:22
memberklm31-Jul-02 22:22 
GeneralSysTray Pin
Jamie Nordmeyer19-Jul-02 8:16
memberJamie Nordmeyer19-Jul-02 8:16 
GeneralRe: SysTray Pin
Michael Dunn22-Jul-02 19:34
sitebuilderMichael Dunn22-Jul-02 19:34 
GeneralRe: SysTray Pin
Jamie Nordmeyer23-Jul-02 6:18
memberJamie Nordmeyer23-Jul-02 6:18 
GeneralRe: SysTray Pin
Michael Dunn23-Jul-02 15:30
sitebuilderMichael Dunn23-Jul-02 15:30 
GeneralRe: SysTray Pin
Jamie Nordmeyer24-Jul-02 5:00
memberJamie Nordmeyer24-Jul-02 5:00 
QuestionI want to get file name in Recycled Bin,How to do? Pin
Anonymous27-Jun-02 17:26
memberAnonymous27-Jun-02 17:26 
GeneralI'm just wanna say ... Pin
Joao Vaz6-Jun-02 23:26
memberJoao Vaz6-Jun-02 23:26 
GeneralRe: I'm just wanna say ... Pin
Michael Dunn7-Jun-02 13:24
sitebuilderMichael Dunn7-Jun-02 13:24 
Generala question. Pin
Anonymous17-May-02 22:51
memberAnonymous17-May-02 22:51 
GeneralSHFileOperation return 87... Pin
Anonymous26-Mar-02 5:20
memberAnonymous26-Mar-02 5:20 
QuestionCan I debug the program about shell? Pin
Anonymous6-Mar-02 18:43
memberAnonymous6-Mar-02 18:43 
General"Creating and updating shell extensions in Windows requires that the shell be restarted" Pin
Aaron Simmons22-Feb-02 6:40
memberAaron Simmons22-Feb-02 6:40 
GeneralRe: "Creating and updating shell extensions in Windows requires that the shell be restarted" Pin
dooDaddy7-Nov-02 17:59
memberdooDaddy7-Nov-02 17:59 
General高手!(chinese) Pin
nodman24-Dec-01 18:56
membernodman24-Dec-01 18:56 
GeneralRe: 高手!(chinese) Pin
GeniusQ18-May-02 1:20
memberGeniusQ18-May-02 1:20 
GeneralRe: 高手!(chinese) Pin
yymrhxf23-Jul-02 15:21
memberyymrhxf23-Jul-02 15:21 
GeneralRe: 高手!(chinese) Pin
Anonymous118-Aug-02 4:37
sussAnonymous118-Aug-02 4:37 
GeneralRe: 高手!(chinese) Pin
Michael Dunn18-Aug-02 4:54
sitebuilderMichael Dunn18-Aug-02 4:54 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.160525.2 | Last Updated 2 Jun 2002
Article Copyright 2000 by Michael Dunn
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid