Building Context-Menu Shell Extensions in C++
This course is about building context-menu shell extensions for Windows, using the C++ programming language.
What you'll learn
This course will show you how to build context-menu shell extensions for Windows, using the C++ programming language. COM is not a prerequisite, since basic COM elements for shell extensions programming will be introduced in the first module. In this course I'll use both pure C++ (without the help of any framework), and C++ with ATL (which is a mature industry standard framework for doing COM development in C++ on Windows). I'll introduce a couple of different techniques for building context-menu shell extensions: one based on the IExecuteCommand COM interface, and another based on the IContextMenu COM interface.
Table of contents
- Introduction 3m
- Structure of This Course 2m
- Introduction to COM 1m
- Code Reuse at Source Level vs. Binary Level 4m
- Code Reuse in COM 3m
- In-Proc Extensions 1m
- Why C++? 2m
- COM Interfaces 3m
- COM Classes 1m
- COM Servers 0m
- GUID 1m
- HRESULT 1m
- IUnknown COM Interface 1m
- COM Interfaces in C++ 4m
- IUnknown Methods Samples in C++ 3m
- COM Registration 2m
- Debugging Tip: DesktopProcess 2m
- Summary 1m
- Introduction 2m
- Architecture 3m
- Context-Menu Shell Extension Object 3m
- COM Infrastructure 4m
- Demo: Creating Basic DLL Project Structure 8m
- Demo: Reference Counting 3m
- Demo: The Class Factory Object 5m
- Demo: DllGetClassObject and DllCanUnloadNow 4m
- Demo: The Context-Menu Shell Extension Main Object 6m
- Demo: Building, Registering and Testing the Shell Extension 7m
- Summary 2m
- Introduction 3m
- Introduction to ATL and ATL Advantages 8m
- ATL Smart Pointers 3m
- C++ Exceptions and COM 1m
- ATL COM Interface Maps 1m
- Context-menu Shell Extensions using IExecuteCommand Technique 7m
- Smart Pointers vs. Raw Pointers in user's Selection Enumeration 2m
- Shell Extension Registration 4m
- Demo: Creating an ATL DLL Project with Visual Studio 1m
- Demo: Creating The Basics of The Shell Extension COM Object 2m
- Demo: Building Shell Extension Code on top of Wizard's Code 8m
- Demo: Testing The Context-menu Shell Extension 2m
- Summary 1m
- Introduction 3m
- Demo: Creating Basic Code with Visual Studio Wizards 3m
- Demo: Initial Editing, and Removing of Type Library 3m
- IShellExtInit: The Initialization Interface 3m
- Getting file names from IDataObject 6m
- Demo: Implementing IShellExtInit 5m
- IContextMenu: The shell Extension's main Interface 5m
- Demo: Implementing IContextMenu 5m
- Shell Extension Registration 1m
- Demo: Building and Testing The shell Extension 3m
- Owner-drawing 4m
- Summary 1m