<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Chetan Chudasama's Weblog</title><link>http://blogs.msdn.com/chetanc/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Code to install Community Toolbox Controls</title><link>http://blogs.msdn.com/chetanc/archive/2006/01/19/515016.aspx</link><pubDate>Fri, 20 Jan 2006 07:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:515016</guid><dc:creator>ChetanC</dc:creator><slash:comments>11</slash:comments><comments>http://blogs.msdn.com/chetanc/comments/515016.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chetanc/commentrss.aspx?PostID=515016</wfw:commentRss><description>&lt;p&gt;&lt;font face=Verdana&gt;I have been able to get some code from one of my colleagues and Extensibility support specialist, Ed Dore,&amp;nbsp;that may help with the Toolbox control installation in Visual Studio 2005. I must remind you that the code that I post here comes with a &lt;a href="/admin/blogs/posteditor.aspx?App=chetanc&amp;amp;PostID=514424"&gt;Disclaimer&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;In the code below you need to replace the following with your values:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;&amp;lt;Path to the control dll&amp;gt;: Path to the dll that contains the toolbox control&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;&amp;lt;Toolbox Tabname&amp;gt;: Name of the Toolbox tab on which to add the controls.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;HTH,&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;Chetan&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font color=#0000ff size=2&gt;&lt;font face="Courier New" color=#0000ff size=2&gt;using&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; System;&lt;/font&gt;&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; System.Collections.Generic;&lt;/font&gt;&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; System.Text;&lt;/font&gt;&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; System.Runtime.InteropServices;&lt;/font&gt;&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; EnvDTE;&lt;/font&gt;&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; EnvDTE80;&lt;/font&gt;&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; System.IO;&lt;/font&gt;&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;namespace&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font face="Courier New"&gt;&lt;font color=#000000&gt; InstallToolboxControls&lt;/font&gt;&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#008000 size=2&gt;// Definition of the IMessageFilter interface which we need to implement and&amp;nbsp;&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#008000 size=2&gt;// register with the CoRegisterMessageFilter API.&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;/font&gt;&lt;font color=#008080 size=2&gt;ComImport&lt;/font&gt;&lt;font size=2&gt;(), &lt;/font&gt;&lt;font color=#008080 size=2&gt;Guid&lt;/font&gt;&lt;font size=2&gt;(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"00000016-0000-0000-C000-000000000046"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;InterfaceTypeAttribute&lt;/font&gt;&lt;font size=2&gt;(&lt;/font&gt;&lt;font color=#008080 size=2&gt;ComInterfaceType&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;.InterfaceIsIUnknown)]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;interface&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#008080 size=2&gt;IOleMessageFilter&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color=#008000 size=2&gt;// Renamed to avoid confusion w/ System.Windows.Forms.IMessageFilter&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;PreserveSig&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; HandleInComingCall(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; dwCallType, &lt;/font&gt;&lt;font color=#008080 size=2&gt;IntPtr&lt;/font&gt;&lt;font size=2&gt; hTaskCaller, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; dwTickCount, &lt;/font&gt;&lt;font color=#008080 size=2&gt;IntPtr&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; lpInterfaceInfo);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;[&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;PreserveSig&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; RetryRejectedCall(&lt;/font&gt;&lt;font color=#008080 size=2&gt;IntPtr&lt;/font&gt;&lt;font size=2&gt; hTaskCallee, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; dwTickCount, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; dwRejectType);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;[&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;PreserveSig&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; MessagePending(&lt;/font&gt;&lt;font color=#008080 size=2&gt;IntPtr&lt;/font&gt;&lt;font size=2&gt; hTaskCallee, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; dwTickCount, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; dwPendingType);&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;/br&gt;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#008080 size=2&gt;Program&lt;/font&gt;&lt;font size=2&gt; : &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color=#008080 size=2&gt;IOleMessageFilter&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;DllImport&lt;/font&gt;&lt;font size=2&gt;(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"ole32.dll"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;)]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;private&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;static&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;extern&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; CoRegisterMessageFilter(&lt;/font&gt;&lt;font color=#008080 size=2&gt;IOleMessageFilter&lt;/font&gt;&lt;font size=2&gt; newFilter, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;out&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#008080 size=2&gt;IOleMessageFilter&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; oldFilter);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&lt;font color=#0000ff size=2&gt;static&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; ctrlPath = &amp;lt;Path to the control dll&amp;gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;[&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;STAThread&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;static&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;void&lt;/font&gt;&lt;font size=2&gt; Main(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;[] args)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;Program&lt;/font&gt;&lt;font size=2&gt; program = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#008080 size=2&gt;Program&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;program.Register();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (args[0].Equals(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"-Install"&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#008080 size=2&gt;StringComparison&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;.CurrentCultureIgnoreCase))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; program.InstallControl();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;else&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (args[0].Equals(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"-UnInstall"&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#008080 size=2&gt;StringComparison&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size=2&gt;.CurrentCultureIgnoreCase))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;program.UninstallControl();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;program.Revoke();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#008000 size=2&gt;// to ensure the dte object is actually released, and the devenv.exe process terminates.&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/font&gt;&lt;font color=#008080 size=2&gt;GC&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;.Collect();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;GC&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;.WaitForPendingFinalizers();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;void&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size=2&gt; InstallControl()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#008000 size=2&gt;// Create an instance of the VS IDE,&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/font&gt;&lt;font color=#008080 size=2&gt;Type&lt;/font&gt;&lt;font size=2&gt; type = System.&lt;/font&gt;&lt;font color=#008080 size=2&gt;Type&lt;/font&gt;&lt;font size=2&gt;.GetTypeFromProgID(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"VisualStudio.DTE.8.0"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;DTE&lt;/font&gt;&lt;font size=2&gt; dte = (&lt;/font&gt;&lt;font color=#008080 size=2&gt;DTE&lt;/font&gt;&lt;font size=2&gt;)System.&lt;/font&gt;&lt;font color=#008080 size=2&gt;Activator&lt;/font&gt;&lt;font size=2&gt;.CreateInstance(type, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;true&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size=2&gt;);&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#008000 size=2&gt;// create a temporary winform project;&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;string&lt;/font&gt;&lt;font size=2&gt; tmpFile = &lt;/font&gt;&lt;font color=#008080 size=2&gt;Path&lt;/font&gt;&lt;font size=2&gt;.GetFileNameWithoutExtension(&lt;/font&gt;&lt;font color=#008080 size=2&gt;Path&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;.GetTempFileName());&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;string&lt;/font&gt;&lt;font size=2&gt; tmpDir = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;string&lt;/font&gt;&lt;font size=2&gt;.Format(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"{0}{1}"&lt;/font&gt;&lt;font size=2&gt;,&lt;/font&gt;&lt;font color=#008080 size=2&gt;Path&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;.GetTempPath(),tmpFile);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;Solution2&lt;/font&gt;&lt;font size=2&gt; solution = dte.Solution &lt;/font&gt;&lt;font color=#0000ff size=2&gt;as&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#008080 size=2&gt;Solution2&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;string&lt;/font&gt;&lt;font size=2&gt; templatePath = solution.GetProjectTemplate(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"WindowsApplication.zip"&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#800000 size=2&gt;"CSharp"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;Project&lt;/font&gt;&lt;font size=2&gt; proj = solution.AddFromTemplate(templatePath, tmpDir, &lt;/font&gt;&lt;font color=#800000 size=2&gt;"dummyproj"&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;false&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size=2&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#008000 size=2&gt;// add the control to the toolbox.&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;EnvDTE.&lt;/font&gt;&lt;font color=#008080 size=2&gt;Window&lt;/font&gt;&lt;font size=2&gt; window = dte.Windows.Item(EnvDTE.&lt;/font&gt;&lt;font color=#008080 size=2&gt;Constants&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;.vsWindowKindToolbox);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;EnvDTE.&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;ToolBox&lt;/font&gt;&lt;font size=2&gt; toolbox = (EnvDTE.&lt;/font&gt;&lt;font color=#008080 size=2&gt;ToolBox&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;)window.Object;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EnvDTE.&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;ToolBoxTab&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; myTab = toolbox.ToolBoxTabs.Add(&amp;lt;Toolbox TabName&amp;gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myTab.Activate();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myTab.ToolBoxItems.Add(&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;"MyUserControl"&lt;/font&gt;&lt;font size=2&gt;, ctrlPath, &lt;/font&gt;&lt;font color=#008080 size=2&gt;vsToolBoxItemFormat&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;.vsToolBoxItemFormatDotNETComponent);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;dte.Solution.Close(&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;false&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;Marshal&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;.ReleaseComObject(dte);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;Console&lt;/font&gt;&lt;font size=2&gt;.WriteLine(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"Control Installed!!!"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; UninstallControl()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;Type&lt;/font&gt;&lt;font size=2&gt; type = System.&lt;/font&gt;&lt;font color=#008080 size=2&gt;Type&lt;/font&gt;&lt;font size=2&gt;.GetTypeFromProgID(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"VisualStudio.DTE.8.0"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;DTE&lt;/font&gt;&lt;font size=2&gt; dte = (&lt;/font&gt;&lt;font color=#008080 size=2&gt;DTE&lt;/font&gt;&lt;font size=2&gt;)System.&lt;/font&gt;&lt;font color=#008080 size=2&gt;Activator&lt;/font&gt;&lt;font size=2&gt;.CreateInstance(type, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;true&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;);&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;EnvDTE.&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;Window&lt;/font&gt;&lt;font size=2&gt; window = dte.Windows.Item(EnvDTE.&lt;/font&gt;&lt;font color=#008080 size=2&gt;Constants&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;.vsWindowKindToolbox);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;EnvDTE.&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;ToolBox&lt;/font&gt;&lt;font size=2&gt; toolbox = (EnvDTE.&lt;/font&gt;&lt;font color=#008080 size=2&gt;ToolBox&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;)window.Object;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;EnvDTE.&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;ToolBoxTab&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; myTab = toolbox.ToolBoxTabs.Item(&amp;lt;Toolbox Tabname&amp;gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myTab.Activate();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myTab.Delete();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;Marshal&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;.ReleaseComObject(dte);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;Console&lt;/font&gt;&lt;font size=2&gt;.WriteLine(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"Control Uninstalled!!!"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;void&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; Register()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;IOleMessageFilter&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; oldFilter;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CoRegisterMessageFilter(&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;out&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; oldFilter);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;void&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; Revoke()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#008080 size=2&gt;IOleMessageFilter&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; oldFilter;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;CoRegisterMessageFilter(&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;null&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;out&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; oldFilter);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br&gt;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;#region&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; IOleMessageFilter Members&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;public&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; HandleInComingCall(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; dwCallType, &lt;/font&gt;&lt;font color=#008080 size=2&gt;IntPtr&lt;/font&gt;&lt;font size=2&gt; hTaskCaller, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; dwTickCount, &lt;/font&gt;&lt;font color=#008080 size=2&gt;IntPtr&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; lpInterfaceInfo)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; 0; &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color=#008000 size=2&gt;//SERVERCALL_ISHANDLED&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;public&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; RetryRejectedCall(&lt;/font&gt;&lt;font color=#008080 size=2&gt;IntPtr&lt;/font&gt;&lt;font size=2&gt; hTaskCallee, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; dwTickCount, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; dwRejectType)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (dwRejectType == 2) &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#008000 size=2&gt;// SERVERCALL_RETRYLATER&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/font&gt;&lt;font size=2&gt; 200; &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#008000 size=2&gt;// wait 2 seconds and try again&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; -1; &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color=#008000 size=2&gt;// cancel call&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; MessagePending(&lt;/font&gt;&lt;font color=#008080 size=2&gt;IntPtr&lt;/font&gt;&lt;font size=2&gt; hTaskCallee, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; dwTickCount, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt; dwPendingType)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; 2; &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color=#008000 size=2&gt;//PENDINGMSG_WAITDEFPROCESS&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font face="Courier New" color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;#endregion&lt;br&gt;&lt;/br&gt;&lt;/font&gt;&lt;font face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;/br&gt;&lt;/br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=515016" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chetanc/archive/tags/Extensibility+Tips/default.aspx">Extensibility Tips</category></item><item><title>Visual Studio 2005 Automation Samples now available</title><link>http://blogs.msdn.com/chetanc/archive/2006/01/06/510270.aspx</link><pubDate>Sat, 07 Jan 2006 02:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:510270</guid><dc:creator>ChetanC</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/chetanc/comments/510270.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chetanc/commentrss.aspx?PostID=510270</wfw:commentRss><description>&lt;P&gt;The Visual Studio 2005 Automation Samples are now available for download.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/vstudio/downloads/code/automation/default.aspx"&gt;http://msdn.microsoft.com/vstudio/downloads/code/automation/default.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Please feel free to download the samples and try them out. The samples consists of examples of how to use the Visual Studio Extensibility to do a whole bunch of things from Solution Explorer Context Menus, Tool Windows, Custom Tools Options pages etc.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=510270" width="1" height="1"&gt;</description></item><item><title>Failure to install Toolbox controls via ContentInstaller or Tools.InstallCommunityControls</title><link>http://blogs.msdn.com/chetanc/archive/2005/11/16/493495.aspx</link><pubDate>Wed, 16 Nov 2005 21:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:493495</guid><dc:creator>ChetanC</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/chetanc/comments/493495.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chetanc/commentrss.aspx?PostID=493495</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Arial&gt;If you have the &lt;FONT color=#000080&gt;SQL Server Management Studio Express CTP&lt;/FONT&gt;&amp;nbsp;or &lt;FONT color=#000080&gt;SQL Server 2005&lt;/FONT&gt;, then it is overwriting some registry key settings. The workaround for this is:&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;Under &lt;FONT color=#0000ff&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{36839529-3AF3-47fa-8194-F4A3FA9F0ED7}&lt;/FONT&gt;&lt;FONT color=#000000&gt;,&amp;nbsp;&lt;/FONT&gt;change the&amp;nbsp;&lt;FONT color=#0000ff&gt;CodeBase&lt;/FONT&gt; value to use the Visual Studio 8.0 location, for e.g. &lt;FONT color=#0000ff&gt;file:///D:\Program Files\Microsoft Visual Studio 8\Common7\IDE\Microsoft.VisualStudio.ToolBoxControlInstaller.dll&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial&gt;Under &lt;FONT color=#0000ff&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{36839529-3AF3-47fa-8194-F4A3FA9F0ED7}\SatelliteDll&lt;/FONT&gt;&lt;FONT color=#000000&gt;, c&lt;/FONT&gt;hange the &lt;FONT color=#0000ff&gt;Path&lt;/FONT&gt; value to point to the Common7\IDE folder for e.g. &lt;FONT color=#0000ff&gt;D:\Program Files\Microsoft Visual Studio 8\Common7\IDE\&lt;/FONT&gt; &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;Open the Visual Studio Command Prompt and run &lt;FONT color=#0000ff&gt;devenv /setup&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Arial color=#000000&gt;This should fix the issue.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Thanks,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Chetan&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=493495" width="1" height="1"&gt;</description></item><item><title>Automatically qualifying class names</title><link>http://blogs.msdn.com/chetanc/archive/2005/11/12/491986.aspx</link><pubDate>Sat, 12 Nov 2005 04:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:491986</guid><dc:creator>ChetanC</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/chetanc/comments/491986.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chetanc/commentrss.aspx?PostID=491986</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;Have you ever wondered if it was possible to just go on coding without having to always first go and write the using or the Imports statement in C# or VB or J# or how about just&amp;nbsp;fully qualifying&amp;nbsp;the class names in place by using a keyboard shortcut. Well Visual Studio 2005 currently provides a simple mechanism of&amp;nbsp;doing exactly this. For your example, if you had the statement without having the required using statement,&lt;/SPAN&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;private&amp;nbsp;StringBuilder sb;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;&lt;BR&gt;&lt;BR&gt;then with the cursor on '&lt;FONT color=#0000ff&gt;StringBuilder&lt;/FONT&gt;', the keyboard shortcut &lt;STRONG&gt;Shift+Alt+F10&lt;/STRONG&gt; will provide you the options of either adding a '&lt;EM&gt;using&lt;/EM&gt;' statement or fully qualifying the class in place. &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;In addition, the code editor also provides a hint that you need to qualify the class by showing a small red rectangle at the end of the class name. If you hover over that rectangle you will see a small drop down. This drop down also provides you with the same options as the keyboard shortcut.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=491986" width="1" height="1"&gt;</description></item><item><title>Programmatically setting TaskList view</title><link>http://blogs.msdn.com/chetanc/archive/2005/11/08/490233.aspx</link><pubDate>Tue, 08 Nov 2005 17:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:490233</guid><dc:creator>ChetanC</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/chetanc/comments/490233.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chetanc/commentrss.aspx?PostID=490233</wfw:commentRss><description>&lt;p&gt;&lt;font face=Arial&gt;In Visual Studio 2005, any Task that is added from an Add-in or a Macro using the TaskList automation object appears under the ‘Add-ins and Macros’ provider drop down in the TaskList. Currently there is no direct way, using the Automation Object Model, of selecting that provider to make the tasks added visible. To do this the best way is to call &lt;font color=#0000ff&gt;Commands.Raise&lt;/font&gt; using the following parameters:&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;font face=Arial&gt;&lt;font size=2&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font face="Courier New" size=3&gt;&lt;strong&gt;DTE.Commands.Raise(&lt;font color=#800000&gt;"{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}"&lt;/font&gt;, 2200, &lt;font color=#800000&gt;"Add-ins and Macros"&lt;/font&gt;, Customout)&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face=Arial&gt;This method can also be used to bring to front other providers such as the&lt;font color=#0000ff&gt; Comments&lt;/font&gt; or &lt;font color=#0000ff&gt;Shortcuts&lt;/font&gt; by just replacing the string ‘&lt;font color=#0000ff&gt;Add-ins and Macros&lt;/font&gt;’ with the provider names.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=490233" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chetanc/archive/tags/Extensibility+Tips/default.aspx">Extensibility Tips</category></item><item><title>Recompiling Add-in resources with every build</title><link>http://blogs.msdn.com/chetanc/archive/2005/10/17/481875.aspx</link><pubDate>Tue, 18 Oct 2005 03:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:481875</guid><dc:creator>ChetanC</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/chetanc/comments/481875.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chetanc/commentrss.aspx?PostID=481875</wfw:commentRss><description>&lt;p&gt;&lt;font face=Arial&gt;In the &lt;a href="/hlong/archive/2005/09/27/474522.aspx"&gt;Displaying custom bitmap for VS add-in command button from satellite DLL&lt;/a&gt;, Huizhong showed how to create a Managed Satellite dll. The steps for creating the Satellite dll need to be performed everytime your make a change to the resources. And it would need to be repeated for every language/culture that your add-in supports. Wouldn’t it be great if the resources were built with every compile? To do this is very simple. You follow all the steps mentioned above for creating the resources file. Then follow the steps below:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Arial&gt;1. Select the project and right click to open the Project Properties.&lt;br/&gt;2. Open the Build Events dialog (Click on Build Events for C#, Compile-&amp;gt;Build Events for VB)&lt;br/&gt;3. Then in the Post Build Events type the following. Make sure to replace the &amp;lt;yourresourcename&amp;gt; with your resource name.&lt;br/&gt;&lt;/font&gt;&lt;font face="Courier New" color=#000080&gt;"$(DevEnvDir)\..\..\SDK\v2.0\Bin\resgen.exe" "$(ProjectDir)&lt;strong&gt;&amp;lt;YourResourceName&amp;gt;&lt;/strong&gt;.resx" "$(TargetDir)&lt;strong&gt;&amp;lt;YourResourceName&amp;gt;&lt;/strong&gt;.resources"&lt;br/&gt;mkdir "$(TargetDir)en-US"&lt;br/&gt;%windir%\Microsoft.NET\Framework\v2.0.50727\Al.exe /embed:"$(TargetDir)&amp;lt;&lt;strong&gt;YourResourceName&amp;gt;&lt;/strong&gt;.resources" /culture:en-US /out:"$(TargetDir)en-US\$(TargetName).resources.dll"&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Arial&gt;Repeat the commands for all the language resource files that you intend to provide for the Add-in.&lt;br/&gt;4. Click OK.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Arial&gt;Now whenever you do a build, the resources will also be compiled.&lt;br/&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=481875" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chetanc/archive/tags/Extensibility+Tips/default.aspx">Extensibility Tips</category></item><item><title>Community Content Installer PowerToys</title><link>http://blogs.msdn.com/chetanc/archive/2005/10/12/480281.aspx</link><pubDate>Thu, 13 Oct 2005 00:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:480281</guid><dc:creator>ChetanC</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/chetanc/comments/480281.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chetanc/commentrss.aspx?PostID=480281</wfw:commentRss><description>&lt;a href="http://blogs.msdn.com/craigskibo"&gt;&lt;FONT face=Arial&gt;Craig Skibo &lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial&gt;has just posted an updated version of the Community Content Installer Power Toys. These are tools that will help you build, uninstall community content. If you haven't yet then give it a try. The download is available at &lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;A href="http://workspaces.gotdotnet.com/CCIPowerToys"&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face=Arial&gt;http://workspaces.gotdotnet.com/CCIPowerToys&lt;/FONT&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=480281" width="1" height="1"&gt;</description></item><item><title>Packaging Add-ins and Toolbox Controls for use with Visual Studio Content Installer</title><link>http://blogs.msdn.com/chetanc/archive/2005/10/10/479000.aspx</link><pubDate>Mon, 10 Oct 2005 08:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:479000</guid><dc:creator>ChetanC</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/chetanc/comments/479000.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chetanc/commentrss.aspx?PostID=479000</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Arial&gt;The &lt;FONT color=#0000ff&gt;Visual Studio Content Installer&lt;/FONT&gt; allows users to install community content such as add-ins, toolbox controls etc. The Visual Studio Content Installer uses a &lt;FONT color=#0000ff&gt;Visual Studio Installer (VSI)&lt;/FONT&gt; file which contains the content to install. Each VSI file contains a .vscontent file and the content files. The .vscontent file describes the content to install. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Creating a VSI that will install add-ins is very easy as indicated by the following steps:&lt;BR&gt;1. Create the add-in(s)/toolbox controls you want to install.&lt;BR&gt;2. Create a folder such as MyContent and copy all the .addin(s) and .dll(s) files for your content to this folder. This folder is optional although it helps bring all the content you want to a single place.&lt;BR&gt;3. Create a .vscontent files such as the following in the folder:&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;BR&gt;&amp;lt;VSContent xmlns="&lt;/FONT&gt;&lt;A href="http://schemas.microsoft.com/developer/vscontent/2005"&gt;&lt;FONT face="Courier New"&gt;http://schemas.microsoft.com/developer/vscontent/2005&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New"&gt;"&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;Content&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FileName&amp;gt;MyAddin.dll&amp;lt;/FileName&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FileName&amp;gt;MyAddin.addin&amp;lt;/FileName&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DisplayName&amp;gt;My Addin&amp;lt;/DisplayName&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Description&amp;gt;This is my addin&amp;lt;/Description&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FileContentType&amp;gt;Addin&amp;lt;/FileContentType&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ContentVersion&amp;gt;1.0&amp;lt;/ContentVersion&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;/Content&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;!-- If you have more add-ins than you need to create multiple Content tags, one for each add-in --&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;Content&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FileName&amp;gt;MyToolboxControlLibrary.dll&amp;lt;/FileName&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DisplayName&amp;gt;My Toolbox Controls&amp;lt;/DisplayName&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Description&amp;gt;These are my toolbox controls&amp;lt;/Description&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FileContentType&amp;gt;Toolbox Control&amp;lt;/FileContentType&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ContentVersion&amp;gt;1.0&amp;lt;/ContentVersion&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;/Content&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;!-- If you have more controls than you need to create multiple Content tags, one for each control --&amp;gt;&lt;BR&gt;&amp;lt;/VSContent&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;4. Now create a zip file that contains all the files in the folder. Please note that the zip file should not contain the folder information as that is not needed. E.g. the files in the zip file will be something like the following without the path information:&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT face="Courier New"&gt;MyAddin.addin&lt;BR&gt;MyAddin.dll&lt;BR&gt;MyToolboxControlLibrary.dll&lt;BR&gt;MyContent.vscontent&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;FONT face=Arial&gt;&lt;FONT face="Courier New"&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;5. Rename the zip file to be .vsi.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;That's it. You have a VSI file that will install your add-in using the Visual Studio Content Installer.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=479000" width="1" height="1"&gt;</description></item><item><title>Installing Managed ToolBox Controls Programmatically</title><link>http://blogs.msdn.com/chetanc/archive/2005/10/05/477128.aspx</link><pubDate>Wed, 05 Oct 2005 02:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:477128</guid><dc:creator>ChetanC</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/chetanc/comments/477128.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chetanc/commentrss.aspx?PostID=477128</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Arial&gt;In the past with Visual Studio 2003, it was possible to programmatically add .Net or Managed toolbox controls using the DTE.&amp;nbsp;With Visual Studio 2005 this method of programmatically adding the controls has been deprecated in favor of using one of the following two methods:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;1. Visual Studio Content Installer&lt;BR&gt;2. Tools.InstallCommunityControls command.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;The difference between the two is that one is an external program that can install all kinds of community content such as addins, macros, snippets etc and the other is a built in command.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;Using Visual Studio Content Installer&lt;/STRONG&gt;&lt;BR&gt;This executable, &lt;FONT color=#0000ff&gt;VSContentInstaller.exe&lt;/FONT&gt;, is available under &lt;FONT color=#0000ff&gt;\Program Files\Common Files\Microsoft Shared\MSEnv&lt;/FONT&gt;. The input for this executable is a VSI file. More information on this is available here: &lt;A href="http://msdn2.microsoft.com/en-us/library/ms246580.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms246580.aspx&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;Using the Tools.InstallCommunityControls command&lt;/STRONG&gt;&lt;BR&gt;You can use this command to add custom toolbox controls either from within Visual Studio or from the command line. For either case you need to follow the steps outlined below to install the controls.&lt;BR&gt;Copy the controls to the &lt;FONT color=#0000ff&gt;My Documents\Visual Studio 2005\Controls\&amp;lt;companyname&amp;gt;\&lt;/FONT&gt; folder. The &lt;FONT color=#0000ff&gt;&amp;lt;companyname&amp;gt;&lt;/FONT&gt; is used as the name of the tab which will contain controls.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;For command line installation&lt;/STRONG&gt;&lt;/FONT&gt;:&lt;BR&gt;Open the Visual Studio Command prompt and execute the following command:&lt;BR&gt;&lt;FONT color=#0000ff&gt;devenv /command Tools.InstallCommunityControls&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;For installation from within Visual Studio&lt;/STRONG&gt;:&lt;BR&gt;Open the &lt;FONT color=#0000ff&gt;Command Window&lt;/FONT&gt; (&lt;STRONG&gt;View-&amp;gt;Other Windows-&amp;gt;Command Window&lt;/STRONG&gt;) and execute the following command: &lt;FONT color=#0000ff&gt;Tools.InstallCommunityControls&lt;/FONT&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Having the ability to execute a command from the command line can be very useful in creating install scripts and a batch file such as the one below can install the community controls.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT face="Courier New"&gt;@echo off&lt;BR&gt;set TabName=%1&lt;BR&gt;set DllName="%2"&lt;BR&gt;set ControlsFolder="%userprofile%\My Documents\Visual Studio 2005\Controls\%TabName%"&lt;BR&gt;%ControlsFolder%&lt;BR&gt;mkdir %ControlsFolder%&lt;BR&gt;copy %DllName% %ControlsFolder%&lt;BR&gt;"%VS80COMNTOOLS%\..\IDE\devenv.exe" /command Tools.InstallCommunityControls&lt;BR&gt;set TabName=&lt;BR&gt;set DllName=&lt;BR&gt;set ControlsFolder=&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Another way to do this using DTE is to use DTE.ExecuteCommand:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;DTE2 dte;&lt;BR&gt;dte = (DTE2)Activator.CreateInstance(Type.GetTypeFromProgID("VisualStudio.DTE.8.0"));&lt;BR&gt;dte.ExecuteCommand("Tools.InstallCommunityControls", "");&lt;BR&gt;dte.Quit();&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;One thing to note is that this mechanism does not fit well if you have folder redirection and some more work in terms of setting right permissions etc is required.&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face=Arial&gt; &lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;FONT color=#ffff00&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=477128" width="1" height="1"&gt;</description></item><item><title>About Me</title><link>http://blogs.msdn.com/chetanc/archive/2005/10/03/476542.aspx</link><pubDate>Mon, 03 Oct 2005 22:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:476542</guid><dc:creator>ChetanC</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/chetanc/comments/476542.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chetanc/commentrss.aspx?PostID=476542</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Arial&gt;I am a member of&amp;nbsp;the Visual Studio Extensibility Team and mainly responsible for the quality of the Automation Object Model in addition to Add-ins, Macros and anything else related to extensibility.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Other things that interest me and I help drive in the Visual Studio is Code Coverage and automating UI.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;I would use this blog to provide Visual Studio Extensibility tips, white papers, samples etc.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=476542" width="1" height="1"&gt;</description></item></channel></rss>