<?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>VSX Team Blog : Dr. eX</title><link>http://blogs.msdn.com/vsxteam/archive/tags/Dr.+eX/default.aspx</link><description>Tags: Dr. eX</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Dr. eX: Why does GetService(typeof(EnvDTE.DTE)) return null?</title><link>http://blogs.msdn.com/vsxteam/archive/2008/06/09/dr-ex-why-does-getservice-typeof-envdte-dte-return-null.aspx</link><pubDate>Mon, 09 Jun 2008 18:47:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8586212</guid><dc:creator>vsxteam</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/vsxteam/comments/8586212.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vsxteam/commentrss.aspx?PostID=8586212</wfw:commentRss><wfw:comment>http://blogs.msdn.com/vsxteam/rsscomments.aspx?PostID=8586212</wfw:comment><description>&lt;font face="Verdana" size="2"&gt;Ever build a Visual Studio package with code that looks like the following?&lt;/font&gt;   &lt;br /&gt;  &lt;br /&gt;  &lt;table width="100%" bgcolor="#ffffff" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p style="margin-left: 0.5in"&gt;&lt;span style="color: blue; font-family: courier new"&gt;&lt;font size="2"&gt;p&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;span style="color: blue; font-family: courier new"&gt;rotected&lt;/span&gt;&lt;/font&gt;&lt;span style="color: black; font-family: courier new"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: courier new"&gt;&lt;font size="2"&gt;override&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-family: courier new"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: courier new"&gt;&lt;font size="2"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-family: courier new"&gt;&lt;font size="2"&gt; Initialize()&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p style="margin-left: 0.5in"&gt;&lt;span style="color: black; font-family: courier new"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p style="margin-left: 1in"&gt;&lt;span style="color: blue; font-family: courier new"&gt;&lt;font size="2"&gt;base&lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;&lt;span style="color: black"&gt;.Initialize&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: black"&gt;();&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;          &lt;p style="margin-left: 0.5in"&gt;&lt;span style="color: green; font-family: courier new"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: courier new"&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;&lt;span style="color: black"&gt;.dte&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: black"&gt; = GetService(&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: blue; font-family: courier new"&gt;&lt;font size="2"&gt;typeof&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-family: courier new"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: courier new"&gt;&lt;font size="2"&gt;DTE&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-family: courier new"&gt;&lt;font size="2"&gt;)) &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: courier new"&gt;&lt;font size="2"&gt;as&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-family: courier new"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: courier new"&gt;&lt;font size="2"&gt;DTE&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-family: courier new"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p style="margin-left: 0.5in; text-indent: 0.5in"&gt;&lt;span style="color: black; font-family: courier new"&gt;&lt;font size="2"&gt;&amp;#8230;&amp;#8230;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p style="margin-left: 0.5in"&gt;&lt;span style="color: black; font-family: courier new"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;And then realize later on that this.dte is &lt;b&gt;null&lt;/b&gt;?&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;A number of Visual Studio integrators have encountered just this problem in the past, and having recently seen this problem pop up again, it&amp;#8217;s definitely past due for Dr. eX to blog about this.&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;The reason the above GetService call can sometimes return null, is due to the environment not being fully loaded and initialized. When the IDE is in this state it&amp;#8217;s said to be in a &amp;#8220;zombie&amp;#8221; state. The IDE actually tracks this state with the VSPROPID_Zombie property.&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;To work around this problem, you simply need to defer the code in your Initialize method, until the VSPROPID_Zombie property has been set to false. To do this, your package should implement IVsShellPropertyChanges interface, and execute your initialization code from your IVsShellPropertyChanges.OnShellPropertyChange implementation. For example:&lt;/font&gt;&lt;/p&gt;  &lt;table height="1323" width="100%" bgcolor="#ffffff" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;public&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;class&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;MyPackage&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; : &lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;Package&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;IVsShellPropertyEvents&lt;/span&gt;           &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;{&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;&amp;#160;&amp;#160; DTE&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; dte;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;&amp;#160;&amp;#160; uint&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; cookie;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;&amp;#160;&amp;#160; protected&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;override&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;void&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; Initialize()&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;&amp;#160;&amp;#160; {&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;&lt;font face="Courier New"&gt;.Initialize&lt;/font&gt;&lt;font face="Courier New"&gt;();&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: green; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // set an eventlistener for shell property changes &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: green; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;IVsShell&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; shellService = GetService(&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;SVsShell&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;)) &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;as&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;IVsShell&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; (shellService != &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;null&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;)&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ErrorHandler&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;.ThrowOnFailure(shellService.AdviseShellPropertyChanges(&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;this&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;,&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;out&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; cookie));&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: green; font-family: courier new"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: green; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // code not depending on zombie state &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#8230;&amp;#8230;..&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;&amp;#160;&amp;#160; public&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;int&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; OnShellPropertyChange(&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;int&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; propid, &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;object&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; var)&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;&amp;#160;&amp;#160; {&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: green; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // when zombie state changes to false, finish package initialization&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; ((&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;int&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;)&lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;__VSSPROPID&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;&lt;font face="Courier New"&gt;.VSSPROPID_Zombie&lt;/font&gt;&lt;font face="Courier New"&gt; == propid)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; ((&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;bool&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;&lt;font face="Courier New"&gt;)var&lt;/font&gt;&lt;font face="Courier New"&gt; == &lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;false&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;)&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: green; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // zombie state dependent code&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;&lt;font face="Courier New"&gt;.dte&lt;/font&gt;&lt;font face="Courier New"&gt; = GetService(&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;(S&lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;DTE&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;)) &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;as&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;DTE&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: green; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // eventlistener no longer needed&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IVsShell&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; shellService = GetService(&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;SVsShell&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;)) &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;as&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;IVsShell&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; (shellService != &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;null&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;)&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ErrorHandler&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;.ThrowOnFailure(shellService.UnadviseShellPropertyChanges(&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;this&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span style="font-size: 10pt; color: black"&gt;.cookie&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="font-size: 10pt; color: black"&gt;));&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span style="font-size: 10pt; color: black"&gt;.cookie&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="font-size: 10pt; color: black"&gt; = 0;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; font-family: courier new"&gt;VSConstants&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span style="font-size: 10pt; color: black"&gt;.S_OK&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="font-size: 10pt; color: black"&gt;;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 10pt; color: black; font-family: courier new"&gt;}&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;Happy coding,     &lt;br /&gt;&lt;/font&gt;&lt;font face="Verdana" size="2"&gt;Dr. eX&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8586212" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vsxteam/archive/tags/Dr.+eX/default.aspx">Dr. eX</category></item><item><title>Dr. eX: How can I programmatically add a database connection to the server explorer toolwindow with my add-in?</title><link>http://blogs.msdn.com/vsxteam/archive/2008/01/15/Dr-eX-How-can-I-programmatically-add-a-database-connection-to-the-server-explorer-toolwindow-with-my-add-in.aspx</link><pubDate>Tue, 15 Jan 2008 13:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7117358</guid><dc:creator>vsxteam</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vsxteam/comments/7117358.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vsxteam/commentrss.aspx?PostID=7117358</wfw:commentRss><wfw:comment>http://blogs.msdn.com/vsxteam/rsscomments.aspx?PostID=7117358</wfw:comment><description>&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;For VS 2008, you can use the &lt;A href="http://msdn2.microsoft.com/en-us/library/microsoft.visualstudio.data.services.ivsdataexplorerconnectionmanager.addconnection.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/microsoft.visualstudio.data.services.ivsdataexplorerconnectionmanager.addconnection.aspx"&gt;IVsDataExplorerConnectionManager.AddConnection&lt;/A&gt; method.&lt;BR&gt;&lt;BR&gt;The easiest way to retrieve this interface is with the help of the &lt;A href="http://msdn.com/vsx/" mce_href="http://msdn.com/vsx/"&gt;Visual Studio SDK&lt;/A&gt;. You’ll need to install the VS SDK and add the following references to your add-in project.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P class=MsoListParagraph style="TEXT-INDENT: -0.25in"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;Microsoft.VisualStudio.OLE.Interop.dll&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P class=MsoListParagraph style="TEXT-INDENT: -0.25in"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;Microsoft.VisualStudio.Shell.9.0.dll&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P class=MsoListParagraph style="TEXT-INDENT: -0.25in"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;Microsoft.VisualStudio.Data.dll&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P class=MsoListParagraph style="TEXT-INDENT: -0.25in"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;Microsoft.VisualStudio.Data.Core.dll&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P class=MsoListParagraph style="TEXT-INDENT: -0.25in"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;Microsoft.VisualStudio.Data.Framework.dll&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P class=MsoListParagraph style="TEXT-INDENT: -0.25in"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;Microsoft.VisualStudio.Data.Services.dll&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;Add the following using statements to your connect.cs file:&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Verdana,sans-serif"&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #eeece1; BORDER-LEFT: medium none; WIDTH: 100%; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="100%" border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=Test style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 100%; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: #ffffff" vAlign=top width="100%" class="Test"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: Courier New"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt; &lt;FONT color=#333333&gt;Microsoft.VisualStudio.Shell;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt; &lt;FONT color=#333333&gt;Microsoft.VisualStudio.Data.Core;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt; &lt;FONT color=#333333&gt;Microsoft.VisualStudio.Data.Services;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt; &lt;SPAN style="COLOR: #2b91af"&gt;IOleServiceProvider&lt;/SPAN&gt; &lt;FONT color=#333333&gt;= &lt;/FONT&gt;&lt;FONT color=#333333&gt;Microsoft.VisualStudio.OLE.Interop.&lt;/FONT&gt;&lt;SPAN style="COLOR: #2b91af"&gt;IServiceProvider&lt;/SPAN&gt;&lt;FONT color=#333333&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #1f497d; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;&lt;BR&gt;The you can retrieve and use the IVsDataExplorerConnectionManager.AddConnection method as follows:&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Verdana,sans-serif"&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #eeece1; BORDER-LEFT: medium none; WIDTH: 100%; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="100%" border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 100%; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: #ffffff" vAlign=top width="100%"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: Courier New"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: green; FONT-FAMILY: Courier New"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;// Quick test to connect to my SQL Server Northwind DB.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; &lt;FONT color=#333333&gt;Test()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt" color=#333333&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&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;SPAN style="COLOR: green"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;// Create a ServiceProvider object off the DTE object.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;ServiceProvider&lt;/SPAN&gt; &lt;FONT color=#333333&gt;sp =&lt;/FONT&gt; &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;ServiceProvider&lt;/SPAN&gt;&lt;FONT color=#333333&gt;((&lt;/FONT&gt;&lt;SPAN style="COLOR: #2b91af"&gt;IOleServiceProvider&lt;/SPAN&gt;&lt;FONT color=#333333&gt;)_applicationObject);&lt;/FONT&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&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;SPAN style="COLOR: green"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;// Retrieve the IVsDataExplorerConnectionManager service&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;IVsDataExplorerConnectionManager&lt;/SPAN&gt; &lt;FONT color=#333333&gt;decMgr = (&lt;/FONT&gt;&lt;SPAN style="COLOR: #2b91af"&gt;IVsDataExplorerConnectionManager&lt;/SPAN&gt;&lt;FONT color=#333333&gt;)sp.GetService(&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;typeof&lt;/SPAN&gt;&lt;FONT color=#333333&gt;(&lt;/FONT&gt;&lt;SPAN style="COLOR: #2b91af"&gt;IVsDataExplorerConnectionManager&lt;/SPAN&gt;&lt;FONT color=#333333&gt;).GUID);&lt;/FONT&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;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&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;SPAN style="COLOR: green"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;// This is the guid that identifies the SQL Server Provider (see HKLM\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;Guid&lt;/SPAN&gt; &lt;FONT color=#333333&gt;guidProvider =&lt;/FONT&gt; &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;Guid&lt;/SPAN&gt;&lt;FONT color=#333333&gt;(&lt;/FONT&gt;&lt;SPAN style="COLOR: #a31515"&gt;"91510608-8809-4020-8897-fba057e22d54"&lt;/SPAN&gt;&lt;FONT color=#333333&gt;);&lt;/FONT&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&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;SPAN style="COLOR: green"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;// Add a connection node to the server explorer&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&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 color=#333333&gt;decMgr.AddConnection(&lt;/FONT&gt;&lt;SPAN style="COLOR: #a31515"&gt;"My Northwind DB"&lt;/SPAN&gt;&lt;FONT color=#333333&gt;, guidProvider,&lt;/FONT&gt; &lt;SPAN style="COLOR: #a31515"&gt;"Data Source=MyServer;Initial Catalog=Northwind;Integrated Security=True"&lt;/SPAN&gt;&lt;FONT color=#333333&gt;,&lt;/FONT&gt; &lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;&lt;FONT color=#333333&gt;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt" color=#333333&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #333333; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;&lt;BR&gt;For those of you still using Visual Studio 2005, you’ll have to use an undocumented class called Microsoft.VisualStudio.Data.DataExplorerConnectionManager.&amp;nbsp;&lt;BR&gt;&lt;BR&gt;Again the easiest way to retrieve this class is to use the Visual Studio SDK (version 4 for VS 2005).&amp;nbsp;&lt;BR&gt;&lt;BR&gt;You’ll need to add the following references to your add-in project:&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P class=MsoListParagraph style="TEXT-INDENT: -0.25in"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;Microsoft.VisualStudio.Shell.dll&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P class=MsoListParagraph style="TEXT-INDENT: -0.25in"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;Microsoft.VisualStudio.OLE.Interop.dll&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P class=MsoListParagraph style="TEXT-INDENT: -0.25in"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;Microsoft.VisualStudio.Data.dll&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;The following using statements to your connect.cs file:&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Verdana,sans-serif"&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #eeece1; BORDER-LEFT: medium none; WIDTH: 100%; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="100%" border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 100%; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: #ffffff" vAlign=top width="100%"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: Courier New"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt; &lt;FONT color=#333333&gt;Microsoft.VisualStudio.Shell;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Verdana,sans-serif"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt; &lt;FONT color=#333333&gt;Microsoft.VisualStudio.Data;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Verdana,sans-serif"&gt;&lt;SPAN style="COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt; &lt;SPAN style="COLOR: #2b91af"&gt;IOleServiceProvider&lt;/SPAN&gt; &lt;FONT color=#333333&gt;= &lt;/FONT&gt;&lt;FONT color=#333333&gt;Microsoft.VisualStudio.OLE.Interop.&lt;/FONT&gt;&lt;SPAN style="COLOR: #2b91af"&gt;IServiceProvider&lt;/SPAN&gt;&lt;FONT color=#333333&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #1f497d; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;&lt;BR&gt;Then retrieve the DataExplorerConnctionManager and invoke it’s AddConnection method similar to the following:&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Verdana,sans-serif"&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #eeece1; BORDER-LEFT: medium none; WIDTH: 100%; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="100%" border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 100%; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: #ffffff" vAlign=top width="100%"&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;private&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; &lt;FONT color=#333333&gt;Test()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt" color=#333333&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&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;SPAN style="COLOR: green"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;// Create a ServiceProvider object from the DTE object&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&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 color=#333333&gt;Microsoft.VisualStudio.Shell.&lt;/FONT&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ServiceProvider&lt;/SPAN&gt;&lt;FONT color=#333333&gt; sp =&lt;/FONT&gt; &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;FONT color=#333333&gt;Microsoft.VisualStudio.Shell.&lt;/FONT&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ServiceProvider&lt;/SPAN&gt;&lt;FONT color=#333333&gt;((&lt;/FONT&gt;&lt;SPAN style="COLOR: #2b91af"&gt;IOleServiceProvider&lt;/SPAN&gt;&lt;FONT color=#333333&gt;)_applicationObject);&lt;/FONT&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;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&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;SPAN style="COLOR: green"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;// Retrieve the DataExplorerConnectionManager Service&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;DataExplorerConnectionManager&lt;/SPAN&gt; &lt;FONT color=#333333&gt;dceMgr = (&lt;/FONT&gt;&lt;SPAN style="COLOR: #2b91af"&gt;DataExplorerConnectionManager&lt;/SPAN&gt;&lt;FONT color=#333333&gt;)sp.GetService(&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;typeof&lt;/SPAN&gt;&lt;FONT color=#333333&gt;(&lt;/FONT&gt;&lt;SPAN style="COLOR: #2b91af"&gt;DataExplorerConnectionManager&lt;/SPAN&gt;&lt;FONT color=#333333&gt;));&lt;/FONT&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;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&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;SPAN style="COLOR: green"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;// This is the guid that identifies the SQL Server Provider (see HKLM\SOFTWARE\Microsoft\VisualStudio\8.0\DataProviders&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;Guid&lt;/SPAN&gt; &lt;FONT color=#333333&gt;guidProvider =&lt;/FONT&gt; &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;Guid&lt;/SPAN&gt;&lt;FONT color=#333333&gt;(&lt;/FONT&gt;&lt;SPAN style="COLOR: #a31515"&gt;"91510608-8809-4020-8897-fba057e22d54"&lt;/SPAN&gt;&lt;FONT color=#333333&gt;);&lt;/FONT&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&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;SPAN style="COLOR: green"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;// Add a connection node to the server explorer&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&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 color=#333333&gt;dceMgr.AddConnection(&lt;/FONT&gt;&lt;SPAN style="COLOR: #a31515"&gt;"My Northwind DB"&lt;/SPAN&gt;&lt;FONT color=#333333&gt;, guidProvider,&lt;/FONT&gt; &lt;SPAN style="COLOR: #a31515"&gt;"Data Source=MyServer;Initial Catalog=Northwind;Integrated Security=True"&lt;/SPAN&gt;&lt;FONT color=#333333&gt;,&lt;/FONT&gt; &lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;&lt;FONT color=#333333&gt;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT style="FONT-SIZE: 9pt" color=#333333&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #333333; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #333333; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;&lt;FONT style="FONT-SIZE: 9pt"&gt;&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana'"&gt;&lt;FONT size=2&gt;&lt;BR&gt;Happy coding,&lt;BR&gt;Dr. eX&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7117358" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vsxteam/archive/tags/VS+SDK/default.aspx">VS SDK</category><category domain="http://blogs.msdn.com/vsxteam/archive/tags/Dr.+eX/default.aspx">Dr. eX</category></item></channel></rss>