<?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 : Extensibility Tips</title><link>http://blogs.msdn.com/chetanc/archive/tags/Extensibility+Tips/default.aspx</link><description>Tags: Extensibility Tips</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>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></channel></rss>