Click here to Skip to main content
15,884,836 members
Articles / Programming Languages / C++

Customized Visual Studio .NET package: your fully integrated document window inside the IDE

Rate me:
Please Sign up or sign in to vote.
4.72/5 (20 votes)
20 Dec 200313 min read 63.7K   1.1K   39  
Create a fully integrated document window inside the Visual Studio IDE.
<!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&amp;hl=en&amp;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:&nbsp;</FONT></TD>
                <TD bgColor=#ffff66><B><FONT face=arial,sans-serif color=black 
                  size=-1>ivsregistereditors&nbsp;</FONT></B></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<HR>
</META>&nbsp;<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>&nbsp;<BR></P></UL>
<P><FONT face=Arial color=#660066 size=7>Visual Studio Environment 
Extensibility&nbsp;<BR></FONT><FONT face=Arial color=#c7c7df size=7>Basic 
VsPackages</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Presentation 
Outline</FONT>&nbsp;<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>&nbsp;<BR></P></UL>
<UL>
  <P><FONT face=Arial color=#545472 size=7>Projects 
(BscPrj)</FONT>&nbsp;<BR></P></UL>&nbsp;<BR>
<P><FONT face=Arial size=7>VSPackage Architecture</FONT>&nbsp;<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>&nbsp;<BR>&nbsp;<BR>
<P><FONT face=Arial size=7>Services</FONT></P>&nbsp;<BR>
<P><FONT face=Arial size=7>IServiceProvider </FONT>&nbsp;<BR></P>
<UL>
  <P><FONT face=Arial size=6>interface IServiceProvider : IUnknown&nbsp; 
  </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>&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial size=6>[in] REFGUID sid, 
  </FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial size=6>[in] REFIID iid, 
</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial size=6>[out] void ** ppvObj) 
  </FONT></P></UL>
<UL>
  <P><FONT face=Arial size=6>}</FONT>&nbsp;<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>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff 
size=6>VSPackage</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#070709 
size=6>IServiceProvider</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#070709 
size=6>IVsPackage</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Samples</FONT>&nbsp;<BR></P>
<UL>
  <P><FONT face=Arial color=#545472 size=6>Basic</FONT>&nbsp;<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>&nbsp;<BR>&nbsp;<BR>&nbsp;<BR></P></UL>
<P align=center><FONT face="Times New Roman" color=#545472 
size=6>Advanced</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>ToolWn Sample</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>ToolWn Sample</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#070709 
size=6>CVsPackage</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsPackage</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IOleCommandTarget</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<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>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#070709 size=5>(VB 
DocObject)</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IOleObject</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IOleInPlaceObject</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IOleInPlaceActiveObject</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IOleDocument</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IOleView</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IPersistStorage</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<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>&nbsp;<BR>&nbsp;<BR></P>
<P align=right><FONT face="Times New Roman" color=#545472 
size=5>SVsUIShell</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Registering a Tool 
Window</FONT>&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#545472 
  size=5>ForceRemove {...guidToolWindow...} = s 
'{…guidVsPackage...}'</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#545472 
  size=5>{</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>val Name = s 'Hello World'</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>val Float = s '100,100,300,400'</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>val Orientation = s 'Right'</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>val Style = s 'Float'</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>val Window = s 
  '{...guidOtherToolWindow...}'</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial size=7>CommandBars</FONT>&nbsp;<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>&nbsp;<BR></P></UL>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>CommandBar Metadata (CTC 
file)</FONT>&nbsp;<BR></P>
<UL>
  <P><FONT face=Arial color=#545472 size=6>CMDS_SECTION 
guidToolWnPkg</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#545472 
size=6>...</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#545472 
  size=6>BUTTONS_BEGIN</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>guidCmdSet:icmdHelloWorld, 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Command ID </FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>guidSHLMainMenu:IDG_VS_VIEW_BROWSER, // Menu 
  Group </FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>0x0100, 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Priority</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>guidOfficeIcon:msotcidNoIcon, 
  &nbsp;&nbsp;&nbsp;&nbsp; // Icon </FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>BUTTON, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  // Type </FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>DEFAULTINVISIBLE | DYNAMICVISIBILITY, // Flags 
  </FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>"&amp;Hello World 
  Tool";&nbsp;&nbsp;&nbsp;&nbsp; // Menu label</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#545472 
  size=6>BUTTONS_END</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial size=7>Command Routing</FONT>&nbsp;<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 &amp; VSPackages 
</FONT></P></UL>&nbsp;<BR>
<P><FONT face=Arial size=7>Window Architecture</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" size=6>Window Frame</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" size=6>Client Area</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#cccc00 
size=6>Frame</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff 
size=6>View</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" size=6>ActiveX Control&nbsp;<BR>ActiveX 
Document&nbsp;<BR>IVsWindowPane</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>Build a VsPackage</FONT>&nbsp;<BR></P>
<UL>
  <P align=center><FONT face=Arial color=#003366 size=7>Simple VsPackage with a 
  Tool Window</FONT></P></UL>&nbsp;<BR>
<P><FONT face=Arial size=7>Types of Windows</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>Persistence Models</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>Documents</FONT>&nbsp;<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>&nbsp;<BR></P></UL>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>BscEdt Sample</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>BscEdt Sample</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#070709 
size=6>CVsPackage</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsPackage</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<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>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsPersistDocData</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IPersistFileFormat</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsWindowPane</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IOleCommandTarget</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsFileChangeEvents</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsStatusBar</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<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>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsEditorFactory</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<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>&nbsp;<BR>&nbsp;<BR></P>
<P align=right><FONT face="Times New Roman" color=#545472 
size=5>SVsRegisterEditors</FONT>&nbsp;<BR></P>
<P align=right><FONT face="Times New Roman" color=#545472 
size=5>SVsUIShell</FONT>&nbsp;<BR>&nbsp;<BR></P>
<P align=right><FONT face="Times New Roman" color=#545472 
size=5>STrackSelection</FONT>&nbsp;<BR></P>
<P align=right><FONT face="Times New Roman" color=#545472 
size=5>SVsFileChange</FONT>&nbsp;<BR></P>
<P align=right><FONT face="Times New Roman" color=#545472 
size=5>SVsStatusbar</FONT>&nbsp;<BR>&nbsp;<BR></P>
<P align=right><FONT face="Times New Roman" color=#545472 
size=5>SVsWindowFrame</FONT>&nbsp;<BR></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Registering an 
Editor</FONT>&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#545472 
  size=5>ForceRemove {...guidEditor...} = s 'RTF Editor'</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#545472 
  size=5>{</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>val Package = s 
  '{…guidVsPackage...}'</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>ForceRemove Extensions</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>{</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>val rtf = d 50</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>}</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial size=7>Editor Architecture</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff 
size=6>View</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#cccc00 
size=6>Frame</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#070709 
size=6>Document&nbsp;<BR>Data</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" size=6>RDT</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#cccc00 
size=6>Frame</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff 
size=6>View</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Model of a Public 
Editor</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#070709 
size=6>VsPackage</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsPackage</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#070709 
size=6>DocData</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsPersistDocData</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IPersistFileFormat</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#070709 
size=6>EditorFactory</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsEditorFactory</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#070709 
size=6>DocView</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsWindowPane</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IOleCommandTarget</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>ISelectionContainer</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IDispatch</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IDispatch</FONT></P>&nbsp;<BR>
<P><FONT face=Arial size=7>Editor Types&nbsp;</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>BscEdt Code 
Walkthrough</FONT>&nbsp;<BR></P>
<UL>
  <P align=center><FONT face=Arial color=#003366 size=7>Click to add 
  text</FONT></P></UL>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>Break</FONT>&nbsp;<BR></P>
<UL>
  <P><FONT face=Arial color=#003366 size=7>Click to add 
text</FONT></P></UL>&nbsp;<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>&nbsp;<BR></P></UL>
<P><FONT face=Arial color=#660066 size=7>Visual Studio Environment 
Extensibility&nbsp;<BR></FONT><FONT face=Arial color=#c7c7df size=7>Advanced 
Topics</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Presentation 
Outline</FONT>&nbsp;<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>&nbsp;<BR></P></UL>
<UL>
  <P><FONT face=Arial color=#c8c8d6 size=7>Projects 
(BscPrj)</FONT>&nbsp;<BR></P></UL>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>.NET Designers</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>.NET Designer 
Architecture</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 
size=6>Report</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 
size=6>Header</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 
size=6>Body</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 size=6>Report 
Designer</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 size=6>Header 
Designer</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 size=6>Body 
Designer</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 
size=6>Host</FONT>&nbsp;<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>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=6>Services</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 
size=6>VSIP</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=6>Report1.cs</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>.NET Designer 
Sample</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>.NET Designers and 
VSIP</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>.NET Designer 
Persistence</FONT>&nbsp;<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\&lt;language&gt;\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>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>FigLgSvc Sample</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>FigLgSvc Sample 
(Colorizer)</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#070709 
size=6>CVsPackage</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsPackage</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#070709 
size=6>CFigColorizer</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsColorizer</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<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>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsLanguageInfo</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IServiceProvider</FONT>&nbsp;<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>&nbsp;<BR>&nbsp;<BR></P>
<P align=right><FONT face="Times New Roman" color=#545472 
size=5>SProfferService</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Registering a Language 
Service</FONT>&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#545472 
  size=5>NoRemove 'File Extensions'</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#545472 
  size=5>{</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>ForceRemove '.fig' = s 
  '{…guidLanugageService...}'</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#545472 
  size=5>}</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#545472 
  size=5>NoRemove 'Language Services'</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#545472 
  size=5>{</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>ForceRemove 'Figure' = s ' 
  {…guidLanugageService...} '</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>{</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>val LangResID = d 0</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>val ShowCompletion = d 0</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=3>...</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
  face=Arial color=#545472 size=5>}</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Text Editor</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#660066 
size=6>CodeWindow</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#cccc00 
size=6>WindowFrame</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#660066 
size=6>TextView</FONT>&nbsp;<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>&nbsp;<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>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=6>View</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=6>Colorizer</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Customizing the Text 
Editor</FONT>&nbsp;<BR></P>
<UL>
  <P><FONT face=Arial color=#545472 size=7>File extension --&gt; 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 (&amp; context 
  menus)</FONT></P></UL>
<UL>
  <P><FONT face=Arial color=#545472 size=6>Hidden Text (concealed &amp; 
  expand/collapse)</FONT></P></UL>
<UL>
  <P><FONT face=Arial color=#545472 size=6>CodeWindow dropdown 
bar</FONT></P></UL>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Model of Text Editor 
Extensions</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff 
size=6>CodeWindow</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#cccc00 
size=6>WindowFrame</FONT>&nbsp;<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>&nbsp;<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>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 
size=6>Colorizer</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff 
size=6>TextView</FONT>&nbsp;<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>&nbsp;<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>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 
size=6>MarkerClient</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#9797b7 
size=6>MarkerClient</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#660066 
size=6>Markers</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Click to add title</FONT>&nbsp;<BR></P>
<UL>
  <P><FONT face=Arial color=#545472 size=7>Click to add 
text</FONT></P></UL>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>SlnExt Sample</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>SlnExt Sample</FONT>&nbsp;<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>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsPackage</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IOleCommandTarget</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsPersistSolutionProps</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsPersistSolutionOpts</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#070709 
size=6>CNote-&nbsp;<BR>ToolWin</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsWindowPane</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IOleCommandTarget</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsSolutionEvents</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>ISelectionContainer</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 size=5>IDispatch 
(ISolutionNotes)</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IConnectionPointContainer</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IConnectionPoint</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IProvideClassInfo2</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#070709 
size=6>CSlnNote</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IVsWindowFrameNotify</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 
size=5>IProvideClassInfo</FONT>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#545472 size=5>IDispatch 
(ISolutionNote)</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#545472 
size=5>IUnknown</FONT>&nbsp;<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>&nbsp;<BR>&nbsp;<BR></P>
<P align=right><FONT face="Times New Roman" color=#545472 
size=5>SVsUIShell</FONT>&nbsp;<BR></P>
<P align=right><FONT face="Times New Roman" color=#545472 
size=5>SLocalRegistry</FONT>&nbsp;<BR>&nbsp;<BR></P>
<P align=right><FONT face="Times New Roman" color=#545472 
size=5>SVsSolution</FONT>&nbsp;<BR></P>
<P align=right><FONT face="Times New Roman" color=#545472 
size=5>STrackSelection</FONT></P>&nbsp;<BR>&nbsp;<BR>
<P><FONT face=Arial size=7>Extending the Solution (SlnExt)</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#070709 
size=6>Solution1.sln</FONT>&nbsp;<BR>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" size=6>SlnExt</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" size=6>RDT</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" 
size=5>Solution1.sln</FONT>&nbsp;<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>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#070709 
size=6>CSlnExt-&nbsp;<BR>Pkg</FONT>&nbsp;<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>&nbsp;<BR></P>
<P><FONT face="Times New Roman" color=#ffffff size=2>Note1</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#33ccff size=6>Code 
Window</FONT>&nbsp;<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>&nbsp;<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>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#070709 
size=6>CNote-&nbsp;<BR>ToolWin</FONT></P>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Features of SlnExt</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Click to add title</FONT>&nbsp;<BR></P>
<UL>
  <P><FONT face=Arial color=#545472 size=7>Click to add 
text</FONT></P></UL>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Backup</FONT>&nbsp;<BR></P>
<UL>
  <P><FONT face=Arial color=#545472 size=7>Click to add 
text</FONT></P></UL>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>IDE Concepts</FONT>&nbsp;<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 &amp; 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>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>Opening a File – Project 
Side</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Opening a File – Editor 
Side</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>Documents</FONT>&nbsp;<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>&nbsp;<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>&nbsp;<BR></P></UL>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>Projects</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial size=7>Projects (cont.)</FONT>&nbsp;<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” 
&nbsp;</FONT></P></UL>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>Solutions</FONT>&nbsp;<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>&nbsp;<BR></P></UL>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Extensibility 
Interfaces</FONT>&nbsp;<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>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>Developer’s Tasks</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Project Concept</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial size=7>Project</FONT>&nbsp;<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>&nbsp;<BR></P></UL>&nbsp;<BR>
<P><FONT face=Arial size=7>Selection Architecture</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" size=6>Window 
1</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" size=4>Selection 
Context</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" size=4>Selection 
Context</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" size=6>Window 
2</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#060ac0 size=4>Global 
&nbsp;<BR>Selection Context</FONT></P>&nbsp;<BR>
<P><FONT face=Arial size=7>Selection Architecture</FONT>&nbsp;<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>&nbsp;<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>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#808080 size=4>Selection 
Context</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#808080 size=6>Window 
2</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#060ac0 size=4>Global 
&nbsp;<BR>Selection Context</FONT></P>&nbsp;<BR>
<P><FONT face=Arial size=7>Selection Architecture</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" size=6>Window 
1</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" size=4>Selection 
Context</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" size=4>Selection 
Context</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" size=6>Window 
2</FONT>&nbsp;<BR></P>
<P align=center><FONT face="Times New Roman" color=#060ac0 size=4>Global 
&nbsp;<BR>Selection Context</FONT></P>&nbsp;<BR>
<P><FONT face=Arial size=7>VSPackage Architecture</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>IDE Concepts</FONT>&nbsp;<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 &amp; Language 
  Services</FONT></P></UL>
<UL>
  <P><FONT face=Arial color=#545472 size=6>CommandBars/Command 
Routing</FONT></P></UL>&nbsp;<BR>
<P><FONT face=Arial size=7>Services</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial size=7>Project</FONT>&nbsp;<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”&nbsp;&nbsp;</FONT></P></UL>&nbsp;<BR>
<P><FONT face=Arial size=7>VSHierarchies</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Common Features of 
Projects</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Optional Features of 
Projects</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#003366 size=7>CTC File Sections</FONT>&nbsp;<BR></P>
<UL>
  <P><FONT face=Arial color=#003366 size=6>CMDS_END</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#003366 size=6>MENUS_BEGIN …&nbsp; 
  MENUS_END</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#003366 size=6>NEWGROUPS_BEGIN 
  …&nbsp; NEWGROUPS_END</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;<FONT face=Arial color=#003366 size=6>BUTTONS_BEGIN … 
  BUTTONS_END</FONT></P></UL>
<UL>
  <P>&nbsp;&nbsp;&nbsp;<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>&nbsp;<BR></P></UL>
<UL>
  <P><FONT face=Arial color=#003366 size=6>CMDPLACEMENT_SECTION … 
  CMDPLACEMENT_END</FONT>&nbsp;<BR></P></UL>
<UL>
  <P><FONT face=Arial color=#003366 size=6>VISIBILITY_SECTION … 
  VISIBILITY_END</FONT>&nbsp;<BR></P></UL>
<UL>
  <P><FONT face=Arial color=#003366 size=6>KEYBINDINGS_SECTION … 
  KEYBINDINGS_END</FONT></P></UL>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Opening a File</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Opening .fig text 
file</FONT>&nbsp;<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>&nbsp;<BR>
<P><FONT face=Arial color=#660066 size=7>Click to add title</FONT>&nbsp;<BR></P>
<UL>
  <P><FONT face=Arial color=#545472 size=7>Click to add 
text</FONT></P></UL></BODY></HTML>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

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


Written By
Web Developer
United States United States
For the last 7 years I have developed software in real-time/embedded and MS-Windows environments for military and civil markets. I hold B.Sc. degree in computer engineering. Living in Ontario, Canada, I like hiking and traveling in general. Currently, I'm looking for employment opportunity inside the GTA.

Comments and Discussions