Table of Contents

Whirling Dervishes NSELib

Definitions

The Shell Namespace

Namespace Extensions

Junction Points

The Object Model

Folders

Items

UI Objects

Getting started

Creating a New Shell Namespace Extension Project

Namespace Extension Wizard Pages

NSE Type Page

System Folder Page

File Viewer Page

URL Protocol Handler Page

Features Page

Understanding the Files in a New Project

Getting Results

Getting the Current Folder

Populating Your Folders

Returning Correct Item Attributes

Adding Columns to the Details View

Sorting Items

Providing More Item Details

Supporting Data Transfer

Being a data source

Being a data target

Adding a data format

Supporting Renames

Extending Context Menus

Customizing Folder Tasks

Displaying your NSE in the Open/Save dialogs

Classes

CActionNameSpaceItem

CActionUIObject

CAutoNameSpaceExtension

CContextMenu

CEnterCriticalSection

CNameSpaceApp

CNameSpaceExtension

CNameSpaceFactory

CNameSpaceItem

COsVersionInfo

CRegKeyArray

CShellUIObject

CShortcutNameSpaceItem

CShortcutUIObject

CXPStyleActivator

Debugging functions

IsInterfaceSupported

PrintInterfaceName

PrintSupportedInterfaces

Dynamic linking of Shell32 functions

SafeCDefFolderMenu_Create2

SafeSHGetSettings

Misc. functions

NSECreateHGlobalOnStream

NSECreateStandardPreview

NSEFormatSize

NSEGetAttributesFromMenu

NSEGetPreferredDropEffect

NSERefreshAllExplorerWindows

NSELib general functions

DllCanUnloadNow

NSEAddRef

NSEGetApp

NSEInitialize

NSERelease

NSEUninitialize

PIDL functions

ILAppend

ILCloneAllExceptLast

ILCreate

ILFindLastUserData

ILGetCount

ILGetUserData

ILIsChild

Registering/Unregistering functions

NSEBackupKey

NSEExportFile

NSEIsKeyMarked

NSEMarkKey

NSERegisterInterface

NSERegisterUrlPrefix

NSERegisterWebPage

NSERestoreKey

NSEUnexportFile

NSEUnregisterInterface

NSEUnregisterUrlPrefix

NSEUnregisterWebPage

RegCopyKeyCompletely

RegDeleteKeyCompletely

RegKeyExists

Type Definitions

_DATACACHEENTRY

_MENUCACHEENTRY

_SUBITEMDATA

CPCATEGORY

JUNCTIONPOINT

REGKEYENTRY

sDATACACHEENTRY

sMENUCACHEENTRY

sSUBITEMDATA

URL helper functions

NSEUrlDecode

Interfaces

IDefMenuCallback

IGetNameSpaceExtensionPointer

Macros

CFSTR_NSELIB_CLSID

MENUTYPE_BACKGROUND

MENUTYPE_DEFMENU

MENUTYPE_FRAME

MENUTYPE_ROOT

MENUTYPE_SELECTION

MENUTYPE_TREE

Dynamic linking of Kernel32 functions

SafeActivateActCtx

SafeCreateActCtxA

SafeCreateActCtxW

SafeDeactivateActCtx

SafeReleaseActCtx

Class Hierarchy