<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0162)http://www.google.ca/search?q=cache:hSDncJpPLmUJ:www.vsipdev.com/techinfo/presentations/VsPackageArchWalkthrough3HourVersion.ppt+IVsRegisterEditors&hl=en&ie=UTF-8 -->
<HTML><HEAD><TITLE>Visual Studio 7.0 Extensibility</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META content="MSHTML 6.00.2800.1226" name=GENERATOR></HEAD>
<BODY>
<TABLE width="100%" border=1>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=#ffffff border=1
color="#ffffff">
<TBODY>
<TR>
<TD><FONT face=arial,sans-serif color=black size=-1>This is the html
version of the file <A
href="http://www.vsipdev.com/techinfo/presentations/VsPackageArchWalkthrough3HourVersion.ppt"><FONT
color=blue>http://www.vsipdev.com/techinfo/presentations/VsPackageArchWalkthrough3HourVersion.ppt</FONT></A>.<BR><B><FONT
color=#0039b6>G</FONT> <FONT color=#c41200>o</FONT> <FONT
color=#f3c518>o</FONT> <FONT color=#0039b6>g</FONT> <FONT
color=#30a72f>l</FONT> <FONT color=#c41200>e</FONT></B>
automatically generates html versions of documents as we crawl the
web.<BR>To link to or bookmark this page, use the following url:
<CODE>http://www.google.com/search?q=cache:hSDncJpPLmUJ:www.vsipdev.com/techinfo/presentations/VsPackageArchWalkthrough3HourVersion.ppt+IVsRegisterEditors&hl=en&ie=UTF-8</CODE></FONT><BR><BR>
<CENTER><FONT size=-2><I>Google is not affiliated with the authors
of this page nor responsible for its
content.</I></FONT></CENTER></TD></TR>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD><FONT face=arial,sans-serif color=black size=-1>These
search terms have been highlighted: </FONT></TD>
<TD bgColor=#ffff66><B><FONT face=arial,sans-serif color=black
size=-1>ivsregistereditors </FONT></B></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<HR>
</META> <BR>
<UL>
<P align=center><FONT face=Arial color=#545472 size=7>Douglas Hodges
</FONT></P></UL>
<UL>
<P align=center><FONT face=Arial color=#545472 size=7>Architect, Visual Studio
Environment</FONT></P></UL>
<UL>
<P align=center><FONT face=Arial color=#545472 size=7>Marc
Mirucki</FONT></P></UL>
<UL>
<P align=center><FONT face=Arial color=#545472 size=7>VSIP Technical Support
Lead, Summit</FONT> <BR></P></UL>
<P><FONT face=Arial color=#660066 size=7>Visual Studio Environment
Extensibility <BR></FONT><FONT face=Arial color=#c7c7df size=7>Basic
VsPackages</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>Presentation
Outline</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>Introduction to
Architecture</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>“Hello World” Tool Window
(ToolWn)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Simple Editor (BscEdt)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>(Break)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>.NET Designers</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Language Service
(FigLgSvc)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Extending Solution (SlnExt)
</FONT> <BR></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Projects
(BscPrj)</FONT> <BR></P></UL> <BR>
<P><FONT face=Arial size=7>VSPackage Architecture</FONT> <BR></P>
<UL>
<P><FONT face=Arial size=7>In-Process COM object - IVsPackage</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Initial object created and sited by
IDE</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Exposes registry info about functionality so IDE
knows when to load it </FONT></P></UL>
<UL>
<P><FONT face=Arial size=5>HKLM/Software/Microsoft/Visual
Studio/7.0</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Interactions between IDE and VSPackages abstracted
via COM interfaces </FONT></P></UL> <BR> <BR>
<P><FONT face=Arial size=7>Services</FONT></P> <BR>
<P><FONT face=Arial size=7>IServiceProvider </FONT> <BR></P>
<UL>
<P><FONT face=Arial size=6>interface IServiceProvider : IUnknown
</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>{</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>HRESULT QueryService (</FONT></P></UL>
<UL>
<P> <FONT face=Arial size=6>[in] REFGUID sid,
</FONT></P></UL>
<UL>
<P> <FONT face=Arial size=6>[in] REFIID iid,
</FONT></P></UL>
<UL>
<P> <FONT face=Arial size=6>[out] void ** ppvObj)
</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>}</FONT> <BR></P></UL>
<P align=center><FONT face="Times New Roman" color=#cccc00
size=6>VSPkg</FONT></P>
<P align=center><FONT face="Times New Roman" color=#cccc00
size=6>Site</FONT></P>
<P align=center><FONT face="Times New Roman" color=#cccc00
size=6>(IDE)</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff
size=6>VSPackage</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#070709
size=6>IServiceProvider</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#070709
size=6>IVsPackage</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>Samples</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=6>Basic</FONT> <BR></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>“Hello World” Tool Window
(ToolWn)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Simple Editor
(BscEdt)</FONT> <BR> <BR> <BR></P></UL>
<P align=center><FONT face="Times New Roman" color=#545472
size=6>Advanced</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472 size=6>Language Service
(FigLgSvc)</FONT></P>
<P><FONT face="Times New Roman" color=#545472 size=6>Extending Solution
(SlnExt)</FONT></P>
<P><FONT face="Times New Roman" color=#545472 size=6>Basic Project
(BscPrj)</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>ToolWn Sample</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>ToolWn Sample</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709
size=6>CVsPackage</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsPackage</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IOleCommandTarget</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709 size=6>HelloWorld.</FONT></P>
<P><FONT face="Times New Roman" color=#070709
size=6>UserDocument</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709 size=5>(VB
DocObject)</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IOleObject</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IOleInPlaceObject</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IOleInPlaceActiveObject</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IOleDocument</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IOleView</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IPersistStorage</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709 size=5>Shell Services</FONT></P>
<P><FONT face="Times New Roman" color=#070709 size=5>(Multiple </FONT></P>
<P><FONT face="Times New Roman" color=#070709
size=5>Objects)</FONT> <BR> <BR></P>
<P align=right><FONT face="Times New Roman" color=#545472
size=5>SVsUIShell</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>Registering a Tool
Window</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=5>NoRemove ToolWindows</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>{</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>ForceRemove {...guidToolWindow...} = s
'{…guidVsPackage...}'</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>{</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>val Name = s 'Hello World'</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>val Float = s '100,100,300,400'</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>val Orientation = s 'Right'</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>val Style = s 'Float'</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>val Window = s
'{...guidOtherToolWindow...}'</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>}</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>}</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>NoRemove Menus</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>{</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472 size=5>val
{…guidVsPackage...} = s ',203,11'</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>}</FONT></P></UL> <BR>
<P><FONT face=Arial size=7>CommandBars</FONT> <BR></P>
<UL>
<P><FONT face=Arial size=7>IDE uses Office CommandBars</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>The IDE defines the skeleton of the menus and menu
groups </FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Packages provide metadata to describe commands,
menus, and toolbars</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>IDE consumes and merges at install
time</FONT> <BR></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>CommandBar Metadata (CTC
file)</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=6>CMDS_SECTION
guidToolWnPkg</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=6>...</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=6>BUTTONS_BEGIN</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>guidCmdSet:icmdHelloWorld,
// Command ID </FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>guidSHLMainMenu:IDG_VS_VIEW_BROWSER, // Menu
Group </FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>0x0100,
// Priority</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>guidOfficeIcon:msotcidNoIcon,
// Icon </FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>BUTTON,
// Type </FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>DEFAULTINVISIBLE | DYNAMICVISIBILITY, // Flags
</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>"&Hello World
Tool"; // Menu label</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=6>BUTTONS_END</FONT> <BR></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>CMDS_END</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>...</FONT></P></UL> <BR>
<P><FONT face=Arial size=7>Command Routing</FONT> <BR></P>
<UL>
<P><FONT face=Arial size=7>Command routing determines what commands are
actually visible/enabled </FONT><FONT face=Arial color=#cccc00
size=7>(IOleCommandTarget)</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Command routing order </FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Add-ins</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Active window</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Active Project (VSHierarchy)</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Global Environment & VSPackages
</FONT></P></UL> <BR>
<P><FONT face=Arial size=7>Window Architecture</FONT> <BR></P>
<P><FONT face="Times New Roman" size=6>Window Frame</FONT> <BR></P>
<P><FONT face="Times New Roman" size=6>Client Area</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#cccc00
size=6>Frame</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff
size=6>View</FONT> <BR></P>
<P><FONT face="Times New Roman" size=6>ActiveX Control <BR>ActiveX
Document <BR>IVsWindowPane</FONT></P> <BR>
<P><FONT face=Arial color=#003366 size=7>Build a VsPackage</FONT> <BR></P>
<UL>
<P align=center><FONT face=Arial color=#003366 size=7>Simple VsPackage with a
Tool Window</FONT></P></UL> <BR>
<P><FONT face=Arial size=7>Types of Windows</FONT> <BR></P>
<UL>
<P><FONT face=Arial size=7>Tool Window</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Typically Single-Instanced</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Can be multi-instanced (e.g. web
browser)</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Can Float, Dock, Tab or be an MDI
child</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Document Window (aka Editor Window)</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Multi-Instanced</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>MDI child </FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Owned by a project (or VSHierarchy)</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Associated with a Document</FONT></P></UL> <BR>
<P><FONT face=Arial color=#003366 size=7>Persistence Models</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#003366 size=7>Tools</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>No persistence (e.g. Output
Window)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Persist per-user/per-machine (e.g.
Toolbox)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Persist with Solution (e.g. Class
View)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Files opened/created by
user</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Document files (e.g.
foo.cpp)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Project files (e.g.
foo.vcproj)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Solution files (e.g.
foo.sln)</FONT></P></UL> <BR>
<P><FONT face=Arial color=#003366 size=7>Documents</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#003366 size=7>Item in project</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Project.Add New/Existing Item
command</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Item in Solution Items </FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>File.Add New/Existing Solution Item
command</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Miscellaneous file</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>File.New/Open File
command</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Opened by an
Editor/Designer</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>External EXE editor (Windows file
association)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Internal editor</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=5>Simple, single-view document window
style</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=5>Multi-tabbed document window (“HTML
Editor”) style</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=5>Multiple document window views (“View
Form/View Code”) style</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=5>Advanced “VC Resource Editor”
style</FONT> <BR></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>BscEdt Sample</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>BscEdt Sample</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709
size=6>CVsPackage</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsPackage</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709 size=6>CBscEditor-</FONT></P>
<P><FONT face="Times New Roman" color=#070709
size=6>Document</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsPersistDocData</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IPersistFileFormat</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsWindowPane</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IOleCommandTarget</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsFileChangeEvents</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsStatusBar</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709 size=6>CBscEditor-</FONT></P>
<P><FONT face="Times New Roman" color=#070709
size=6>Factory</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsEditorFactory</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709 size=5>Shell Services</FONT></P>
<P><FONT face="Times New Roman" color=#070709 size=5>(Multiple </FONT></P>
<P><FONT face="Times New Roman" color=#070709
size=5>Objects)</FONT> <BR> <BR></P>
<P align=right><FONT face="Times New Roman" color=#545472
size=5>SVsRegisterEditors</FONT> <BR></P>
<P align=right><FONT face="Times New Roman" color=#545472
size=5>SVsUIShell</FONT> <BR> <BR></P>
<P align=right><FONT face="Times New Roman" color=#545472
size=5>STrackSelection</FONT> <BR></P>
<P align=right><FONT face="Times New Roman" color=#545472
size=5>SVsFileChange</FONT> <BR></P>
<P align=right><FONT face="Times New Roman" color=#545472
size=5>SVsStatusbar</FONT> <BR> <BR></P>
<P align=right><FONT face="Times New Roman" color=#545472
size=5>SVsWindowFrame</FONT> <BR></P> <BR>
<P><FONT face=Arial color=#660066 size=7>Registering an
Editor</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=5>NoRemove Editors</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>{</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>ForceRemove {...guidEditor...} = s 'RTF Editor'</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>{</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>val Package = s
'{…guidVsPackage...}'</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>ForceRemove Extensions</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>{</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>val rtf = d 50</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>}</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>}</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>}</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>NoRemove Menus</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>{</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472 size=5>val
{…guidVsPackage...} = s ',203,11'</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>}</FONT></P></UL> <BR>
<P><FONT face=Arial size=7>Editor Architecture</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff
size=6>View</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#cccc00
size=6>Frame</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#070709
size=6>Document <BR>Data</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" size=6>RDT</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#cccc00
size=6>Frame</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff
size=6>View</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>Model of a Public
Editor</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709
size=6>VsPackage</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsPackage</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709
size=6>DocData</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsPersistDocData</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IPersistFileFormat</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709
size=6>EditorFactory</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsEditorFactory</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709
size=6>DocView</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsWindowPane</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IOleCommandTarget</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>ISelectionContainer</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IDispatch</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IDispatch</FONT></P> <BR>
<P><FONT face=Arial size=7>Editor Types </FONT> <BR></P>
<UL>
<P><FONT face=Arial size=7>Public Editor</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>can be used by any project</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>implements standard interfaces, e.g.</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#cccc00 size=6>IVsEditorFactory,
IVsPersistDocData</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>examples: Text editor, HTML editor</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Project-specific Editor </FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>private contract between project and
editor</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>project controls how to launch, save and close
editor</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>examples: Database Schema Designer, VB
Forms</FONT></P></UL> <BR>
<P><FONT face=Arial color=#003366 size=7>BscEdt Code
Walkthrough</FONT> <BR></P>
<UL>
<P align=center><FONT face=Arial color=#003366 size=7>Click to add
text</FONT></P></UL> <BR>
<P><FONT face=Arial color=#003366 size=7>Break</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#003366 size=7>Click to add
text</FONT></P></UL> <BR>
<UL>
<P align=center><FONT face=Arial color=#545472 size=7>Brian
Pepin</FONT></P></UL>
<UL>
<P align=center><FONT face=Arial color=#545472 size=7>Development Lead, .NET
Client </FONT></P></UL>
<UL>
<P align=center><FONT face=Arial color=#545472 size=7>Douglas Hodges
</FONT></P></UL>
<UL>
<P align=center><FONT face=Arial color=#545472 size=7>Architect, Visual Studio
Environment</FONT></P></UL>
<UL>
<P align=center><FONT face=Arial color=#545472 size=7>Marc
Mirucki</FONT></P></UL>
<UL>
<P align=center><FONT face=Arial color=#545472 size=7>VSIP Technical Support
Lead, Summit</FONT> <BR></P></UL>
<P><FONT face=Arial color=#660066 size=7>Visual Studio Environment
Extensibility <BR></FONT><FONT face=Arial color=#c7c7df size=7>Advanced
Topics</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>Presentation
Outline</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#c8c8d6 size=7>Introduction to
Architecture</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#c8c8d6 size=7>“Hello World” Tool Window
(ToolWn)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#c8c8d6 size=7>Simple Editor (BscEdt)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#c8c8d6 size=7>(Break)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>.NET Designers</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Language Service
(FigLgSvc)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Extending Solution (SlnExt)
</FONT> <BR></P></UL>
<UL>
<P><FONT face=Arial color=#c8c8d6 size=7>Projects
(BscPrj)</FONT> <BR></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>.NET Designers</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>Sit on top of VS editor
architecture</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Doc/view interfacing already done for
you in most cases</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Written in Managed Code</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Use Windows Forms or any Visual
Studio supported interfaces as the document view</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Access to all of the .NET Framework
API, DTE and VSIP, although VSIP takes work</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Use existing code generator, or
connect to your own storage format</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>.NET Designer
Architecture</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>Report</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>Header</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>Body</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 size=6>Report
Designer</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 size=6>Header
Designer</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 size=6>Body
Designer</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>Host</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=6>Designer</FONT></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=6>Loader</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=6>Services</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>VSIP</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=6>Report1.cs</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>.NET Designer
Sample</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>Shape Library</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#9595ff
size=6>http://www.gotdotnet.com/userarea/filedetails.aspx?FileName=ShapeLibrary.zip</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Demonstrates creating a top level
designer</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Persistence through code
generation</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Doesn’t use VSIP</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>No custom menus</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>No default toolbox
items</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>No Tools Options
page</FONT></P></UL> <BR>
<P><FONT face=Arial color=#003366 size=7>.NET Designers and
VSIP</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#003366 size=7>You need VSIP:</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>When Code Gen isn’t
enough…</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>When you need to add custom
menus…</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>When you need tool
windows…</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>When you need default toolbox
items…</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Designers accessed via
vsmanaged.idl</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Create designer loaders</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Create
designers</FONT></P></UL> <BR>
<P><FONT face=Arial color=#003366 size=7>.NET Designer
Persistence</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#003366 size=7>Persistence handled through
DesignerLoader</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Creating a loader is
easy</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Inherit from
DesignerLoader</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>VSROOT\Languages\Language
Services\<language>\DesignerLoader=“class name”</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Implement doc data
interaction</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Creating a good loader is
harder</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Clipboard</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Undo</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>FigLgSvc Sample</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>FigLgSvc Sample
(Colorizer)</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709
size=6>CVsPackage</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsPackage</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709
size=6>CFigColorizer</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsColorizer</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709 size=6>CFigLanguage-</FONT></P>
<P><FONT face="Times New Roman" color=#070709
size=6>Service</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsLanguageInfo</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IServiceProvider</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709 size=5>Shell Services</FONT></P>
<P><FONT face="Times New Roman" color=#070709 size=5>(Multiple </FONT></P>
<P><FONT face="Times New Roman" color=#070709
size=5>Objects)</FONT> <BR> <BR></P>
<P align=right><FONT face="Times New Roman" color=#545472
size=5>SProfferService</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>Registering a Language
Service</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=5>NoRemove Languages</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>{</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>NoRemove 'File Extensions'</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>{</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>ForceRemove '.fig' = s
'{…guidLanugageService...}'</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>}</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>NoRemove 'Language Services'</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>{</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>ForceRemove 'Figure' = s '
{…guidLanugageService...} '</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>{</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>val LangResID = d 0</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>val ShowCompletion = d 0</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=3>...</FONT></P></UL>
<UL>
<P> <FONT
face=Arial color=#545472 size=5>}</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>}</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>}</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>NoRemove Services</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>{</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#545472
size=5>ForceRemove ' {…guidLanugageService...} ' = s
'{…guidVsPackage...}'</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=5>}</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>Text Editor</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#660066
size=6>CodeWindow</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#cccc00
size=6>WindowFrame</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#660066
size=6>TextView</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=6>TextBuffer</FONT></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=6>“foo.cpp”</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 size=6>“.cpp”
</FONT></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=6>LanguageSvc</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=6>View</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=6>Colorizer</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>Customizing the Text
Editor</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>File extension --> Language
Service</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Features </FONT><FONT face=Arial
color=#cccc00 size=7>(IVsLanguageInfo)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Text colorization</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Statement completion</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Method tips</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Special markers</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Red squigglies</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Custom commands (& context
menus)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Hidden Text (concealed &
expand/collapse)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>CodeWindow dropdown
bar</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>Model of Text Editor
Extensions</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff
size=6>CodeWindow</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#cccc00
size=6>WindowFrame</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>CodeWindow-</FONT></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>Manager</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>TextView-</FONT></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>Filter</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>Colorizer</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff
size=6>TextView</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff
size=6>TextBuffer</FONT></P>
<P align=center><FONT face="Times New Roman" color=#660066 size=6>“</FONT><FONT
face="Times New Roman" color=#33ccff size=6>foo.cpp</FONT><FONT
face="Times New Roman" color=#660066 size=6>”</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 size=6>“.cpp”
</FONT></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>LanguageSvc</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>MarkerClient</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7
size=6>MarkerClient</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#660066
size=6>Markers</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>Click to add title</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>Click to add
text</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>SlnExt Sample</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>SlnExt Sample</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709 size=6>CSlnExt-</FONT></P>
<P><FONT face="Times New Roman" color=#070709 size=6>Pkg</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsPackage</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IOleCommandTarget</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsPersistSolutionProps</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsPersistSolutionOpts</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709
size=6>CNote- <BR>ToolWin</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsWindowPane</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IOleCommandTarget</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsSolutionEvents</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>ISelectionContainer</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472 size=5>IDispatch
(ISolutionNotes)</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IConnectionPointContainer</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IConnectionPoint</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IProvideClassInfo2</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709
size=6>CSlnNote</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IVsWindowFrameNotify</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472
size=5>IProvideClassInfo</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#545472 size=5>IDispatch
(ISolutionNote)</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#545472
size=5>IUnknown</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#070709 size=5>Shell Services</FONT></P>
<P><FONT face="Times New Roman" color=#070709 size=5>(Multiple </FONT></P>
<P><FONT face="Times New Roman" color=#070709
size=5>Objects)</FONT> <BR> <BR></P>
<P align=right><FONT face="Times New Roman" color=#545472
size=5>SVsUIShell</FONT> <BR></P>
<P align=right><FONT face="Times New Roman" color=#545472
size=5>SLocalRegistry</FONT> <BR> <BR></P>
<P align=right><FONT face="Times New Roman" color=#545472
size=5>SVsSolution</FONT> <BR></P>
<P align=right><FONT face="Times New Roman" color=#545472
size=5>STrackSelection</FONT></P> <BR> <BR>
<P><FONT face=Arial size=7>Extending the Solution (SlnExt)</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#070709
size=6>Solution1.sln</FONT> <BR> <BR></P>
<P align=center><FONT face="Times New Roman" size=6>SlnExt</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" size=6>RDT</FONT> <BR></P>
<P align=center><FONT face="Times New Roman"
size=5>Solution1.sln</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#cccc00
size=6>CSolution</FONT></P>
<P align=center><FONT face="Times New Roman" color=#cccc00
size=5>IVsHierarchy</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#070709
size=6>CSlnExt- <BR>Pkg</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#070709
size=6>CSlnNote</FONT></P>
<P align=center><FONT face="Times New Roman" color=#070709
size=5>(ViewHelper)</FONT> <BR></P>
<P><FONT face="Times New Roman" color=#ffffff size=2>Note1</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff size=6>Code
Window</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#808080
size=6>Text</FONT><FONT face="Times New Roman" color=#33ccff
size=6> <BR></FONT><FONT face="Times New Roman" color=#808080
size=6>Buffer</FONT></P>
<P align=center><FONT face="Times New Roman" color=#808080
size=5>(AltDocData)</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#070709
size=6>CNote- <BR>ToolWin</FONT></P> <BR>
<P><FONT face=Arial color=#660066 size=7>Features of SlnExt</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=6>Adding Commands to
Solution</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Context menu on Solution
Node</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Dynamic visibility tied to existence
of the Solution</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Adding alternate view of
Solution</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Persisting into .SLN and .SUO
files</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Creating Document Window to edit a
piece of Solution State</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Extending DTE Automation
model</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>DTE.SolutionNotes</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472
size=6>DTE.Events.SolutionNotesEvents</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Adding properties to VB/C#/C++
Projects</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>Click to add title</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>Click to add
text</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>Backup</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>Click to add
text</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>IDE Concepts</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>Fundamental architectural concepts of
IDE</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Services</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472
size=6>Solutions/Projects/VSHierarchies</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Selection Context</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Tool Windows/Document
Windows</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Running Document Table</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Standard Editors/Custom
Editors</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Text Editor & Language
Services</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>CommandBars/Command
Routing</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>etc.</FONT></P></UL> <BR>
<P><FONT face=Arial color=#003366 size=7>Opening a File – Project
Side</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#003366 size=6>File having no special handling by
project</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366
size=6>IVsUIShellOpenDocument::OpenStandardEditor</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>IVsWindowFrame::Show</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>File with special handling by
project</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Project specific editor</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>View Form/View Code</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Non-file scenarios (special
persistence handling)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366
size=6>IVsUIShellOpenDocument::OpenSpecificEditor</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>Opening a File – Editor
Side</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>IVsPackage::SetSite</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>call <B
style="COLOR: black; BACKGROUND-COLOR: #ffff66">IVsRegisterEditors</B>::RegisterEditor</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472
size=7>IVsEditorFactory::CreateEditorInstance</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472
size=7>IVsPersistDocData::LoadDocData</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>delegate to own
IPersistFileFormat::Load</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472
size=7>IVsWindowPane::CreatePaneWindow</FONT></P></UL> <BR>
<P><FONT face=Arial color=#003366 size=7>Documents</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#003366 size=7>Item in project</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Project.Add New/Existing Item
command</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Item in Solution Items </FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>File.Add New/Existing Solution Item
command</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Miscellaneous file</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>File.New/Open File
command</FONT> <BR></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Opened by an
Editor/Designer</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>External EXE editor (Windows file
association)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Internal editor</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=5>Simple, single-view document window
style</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=5>Multi-tabbed document window (“HTML
Editor”) style</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=5>Multiple document window views (“View
Form/View Code”) style</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=5>Advanced “VC Resource Editor”
style</FONT> <BR></P></UL> <BR>
<P><FONT face=Arial color=#003366 size=7>Projects</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#003366 size=7>Traditional Projects coordinate
developer tasks</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Edit code</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Compile/build code</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Execute/debug code</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Container of items</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>File items</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Non-file items</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Displays its contents in Solution
Explorer</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Extremely flexible
notion</FONT></P></UL> <BR>
<P><FONT face=Arial size=7>Projects (cont.)</FONT> <BR></P>
<UL>
<P><FONT face=Arial size=7>Controls all semantics of its nodes </FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Controls persistence of its items</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Administers build, run/debug, outputs for
deployment, Source Code Control interaction</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Provides the context for editing
items</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>IDE tracks currently active project</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Separate from “Startup Project”
</FONT></P></UL> <BR>
<P><FONT face=Arial color=#003366 size=7>Solutions</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#003366 size=7>Container of zero or more
projects</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Projects are always opened inside a
Solution</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Coordinates build, deploy, debug of
projects</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Shared information saved in .SLN
file</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Added to SCC in team
scenario</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=7>Per-user private information saved in
.SUO file</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>NOT Added to SCC in team
scenario</FONT> <BR></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>Extensibility
Interfaces</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=6>Automation Model</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Add-ins</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Wizards</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Macros</FONT> <BR></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>VSPackage Interfaces</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Projects</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Designers/Editors</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Language
Services</FONT></P></UL> <BR>
<P><FONT face=Arial color=#003366 size=7>Developer’s Tasks</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#003366 size=6>Edit code</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Compile/build code</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>Execute/debug
code</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>Project Concept</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>Coordinates and manages these
developer tasks</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Extremely flexible
notion</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>One or more projects combine under a
Solution</FONT></P></UL> <BR>
<P><FONT face=Arial size=7>Project</FONT> <BR></P>
<UL>
<P><FONT face=Arial size=7>Displays its contents in Project
Explorer</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Controls all semantics of its nodes </FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Controls persistence of its items</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Administers build, run/debug, outputs for
deployment, Source Code Control interaction</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Provides the context for editing
items</FONT> <BR></P></UL> <BR>
<P><FONT face=Arial size=7>Selection Architecture</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" size=6>Window
1</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" size=4>Selection
Context</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" size=4>Selection
Context</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" size=6>Window
2</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#060ac0 size=4>Global
<BR>Selection Context</FONT></P> <BR>
<P><FONT face=Arial size=7>Selection Architecture</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#808080
size=6>Window</FONT><FONT face="Times New Roman" size=6> </FONT><FONT
face="Times New Roman" color=#808080 size=6>1</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#808080
size=4>Selection</FONT><FONT face="Times New Roman" size=4> </FONT><FONT
face="Times New Roman" color=#808080 size=4>Context</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#808080 size=4>Selection
Context</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#808080 size=6>Window
2</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#060ac0 size=4>Global
<BR>Selection Context</FONT></P> <BR>
<P><FONT face=Arial size=7>Selection Architecture</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" size=6>Window
1</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" size=4>Selection
Context</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" size=4>Selection
Context</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" size=6>Window
2</FONT> <BR></P>
<P align=center><FONT face="Times New Roman" color=#060ac0 size=4>Global
<BR>Selection Context</FONT></P> <BR>
<P><FONT face=Arial size=7>VSPackage Architecture</FONT> <BR></P>
<UL>
<P><FONT face=Arial size=7>In-Process COM object</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Exposes registry info about functionality so IDE
can dynamically load it </FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Local registry to support multiple
versions</FONT></P></UL>
<UL>
<P><FONT face=Arial size=5>HKLM/Software/Microsoft/Visual
Studio/6.0</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Interactions between IDE and VSPackages abstracted
via COM interfaces </FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>IDE Concepts</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>Fundamental architectural concepts of
IDE</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Services</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472
size=6>Solutions/Projects/VSHierarchies</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Selection Context</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Tool Windows/Document
Windows</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Running Document Table</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Standard Editors/Custom
Editors</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Text Editor & Language
Services</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>CommandBars/Command
Routing</FONT></P></UL> <BR>
<P><FONT face=Arial size=7>Services</FONT> <BR></P>
<UL>
<P><FONT face=Arial size=7>Interface contract implemented by a single COM
object</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>Functionality built into the Environment is exposed
through Services</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>VSPackages can expose new services</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>VSPackages can consume functionality from others
via Services</FONT></P></UL> <BR>
<P><FONT face=Arial size=7>Project</FONT> <BR></P>
<UL>
<P><FONT face=Arial size=7>Project in control of</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Displaying its contents in Project
Explorer</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>All semantics of its nodes in Project
Explorer</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Persistence of its items</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Project and item properties</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Build, run/debug, outputs for deployment, SCC
interaction</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Context for editing items</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>IDE tracks currently active project</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Separate from “Startup
Project” </FONT></P></UL> <BR>
<P><FONT face=Arial size=7>VSHierarchies</FONT> <BR></P>
<UL>
<P><FONT face=Arial size=7>Project is a special case of a more general concept
called a VSHierarchy</FONT></P></UL>
<UL>
<P><FONT face=Arial size=7>You can create concepts independent of a project
such as </FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Deployment targets displayed in Deployment
Explorer</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>Databases displayed in DataView</FONT></P></UL>
<UL>
<P><FONT face=Arial size=6>New abstract views of the
Solution</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>Common Features of
Projects</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>Container of items to be edited
</FONT><FONT face=Arial color=#cccc00 size=7>(IVsProject)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Display a hierarchy of nodes in
Project Win. </FONT><FONT face=Arial color=#cccc00
size=7>(IVsHierarchy)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Handle project/project item commands
</FONT><FONT face=Arial color=#cccc00 size=7>(IOleCommandTarget,
IVsUIHierarchy)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Coordinate storage of items
</FONT><FONT face=Arial color=#cccc00
size=7>(IVsPersistHierarchyItem)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>in files, database, repository,
web,…</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=7>Persist state of project </FONT><FONT
face=Arial color=#cccc00 size=7>(IPersistFileFormat)</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>Optional Features of
Projects</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=6>Expose properties in Property Browser
</FONT><FONT face=Arial color=#cccc00 size=6>(IDispatch,
ISpecifyPropertyPages)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Manage a project build system
</FONT><FONT face=Arial color=#cccc00 size=6>(IVsCfgProvider,
IVsBuildableProjectCfg)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Launch debugger (F5) </FONT><FONT
face=Arial color=#cccc00 size=6>(IVsDebuggableProjectCfg)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Expose outputs for deployment
</FONT><FONT face=Arial color=#cccc00 size=6>(IVsEnumOutputs,
IVsOutput)</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>Participate with Source Code Control
</FONT><FONT face=Arial color=#cccc00
size=6>(IVsSccProject)</FONT></P></UL> <BR>
<P><FONT face=Arial color=#003366 size=7>CTC File Sections</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#003366 size=6>CMDS_END</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#003366 size=6>MENUS_BEGIN …
MENUS_END</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#003366 size=6>NEWGROUPS_BEGIN
… NEWGROUPS_END</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#003366 size=6>BUTTONS_BEGIN …
BUTTONS_END</FONT></P></UL>
<UL>
<P> <FONT face=Arial color=#003366 size=6>BITMAPS_BEGIN …
BITMAPS_END</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>CMDS_END</FONT> <BR></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>CMDPLACEMENT_SECTION …
CMDPLACEMENT_END</FONT> <BR></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>VISIBILITY_SECTION …
VISIBILITY_END</FONT> <BR></P></UL>
<UL>
<P><FONT face=Arial color=#003366 size=6>KEYBINDINGS_SECTION …
KEYBINDINGS_END</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>Opening a File</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>IVsPackage::SetSite</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>call <B
style="COLOR: black; BACKGROUND-COLOR: #ffff66">IVsRegisterEditors</B>::RegisterEditor</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472
size=7>IVsEditorFactory::CreateEditorInstance</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472
size=7>IVsPersistDocData::LoadDocData</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>delegate to own
IPersistFileFormat::Load</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472
size=7>IVsWindowPane::CreatePaneWindow</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>Opening .fig text
file</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>IVsPackage::SetSite</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472 size=6>call
IProfferService::ProfferService</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472
size=7>IVsLanguageInfo::GetColorizer</FONT></P></UL>
<UL>
<P><FONT face=Arial color=#545472
size=7>IVsColorizer::ColorizeLine</FONT></P></UL> <BR>
<P><FONT face=Arial color=#660066 size=7>Click to add title</FONT> <BR></P>
<UL>
<P><FONT face=Arial color=#545472 size=7>Click to add
text</FONT></P></UL></BODY></HTML>