<?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>AllenD's WebLog : VSIP</title><link>http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx</link><description>Tags: VSIP</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>TechEd 2006 - Power To the Pros - Boston</title><link>http://blogs.msdn.com/allend/archive/2006/06/05/618464.aspx</link><pubDate>Tue, 06 Jun 2006 02:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:618464</guid><dc:creator>AllenD</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/allend/comments/618464.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=618464</wfw:commentRss><description>&lt;P&gt;I'll be at TechEd this year.&amp;nbsp; Please stop by the VS Extensibility booth for info on extending Visual Studio and the VSIP Partner Program.&lt;/P&gt;
&lt;P&gt;I'll try to blog often to give a perspective about the event and the activities that are planned.&amp;nbsp; I'm already tired just thinking about the calendar.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=618464" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category><category domain="http://blogs.msdn.com/allend/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/allend/archive/tags/VS+SDK/default.aspx">VS SDK</category></item><item><title>VS SDK V2 Has Been Released</title><link>http://blogs.msdn.com/allend/archive/2006/04/17/577855.aspx</link><pubDate>Tue, 18 Apr 2006 01:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:577855</guid><dc:creator>AllenD</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/allend/comments/577855.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=577855</wfw:commentRss><description>&lt;P&gt;I'm proud to announce the availability of the &lt;A href="http://www.vsipmembers.com"&gt;V2 VS SDK supporting VS 2005&lt;/A&gt;.&amp;nbsp; This SDK is awesome.&amp;nbsp; It has some incredible sample content including Iron Python language integration including WinForms Designer integration.&amp;nbsp; By examining the Iron Python source code (not included in the SDK, but free) you can see how a language can integration into VS in a rich deep way.&lt;/P&gt;
&lt;P&gt;If you noticed, we anticipated our release to be shipped on 4/7, but we held back the release for additional verification and examination to ensure it&amp;nbsp;was the best we could ship.&amp;nbsp; Some of the components were built with the VS 2005 RTM build and that raised a few flags with folks that wanted those components to be built with newer build rules.&amp;nbsp; In the end, we changed a few components and others remained the same.&amp;nbsp; The net result is that you have the best SDK we could ship.&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;
&lt;P&gt;(And please provide feedback for future SDK's.)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=577855" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category><category domain="http://blogs.msdn.com/allend/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/allend/archive/tags/VS+SDK/default.aspx">VS SDK</category></item><item><title>VS SDK (Oct 2005) for VS 2005 now posted</title><link>http://blogs.msdn.com/allend/archive/2005/11/02/488368.aspx</link><pubDate>Wed, 02 Nov 2005 22:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:488368</guid><dc:creator>AllenD</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/allend/comments/488368.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=488368</wfw:commentRss><description>&lt;P&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;I'm very pleased to announce the &lt;U&gt;availability&lt;/U&gt; of the Visual Studio&amp;nbsp;SDK for Visual Studio 2005.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;VSIP members can now &lt;A href="http://affiliate.vsipmembers.com/affiliate/downloadfiles.aspx"&gt;download the VS SDK&lt;/A&gt;&amp;nbsp;for the &lt;A href="http://lab.msdn.microsoft.com/vs2005/default.aspx"&gt;VS 2005 product (which was recently posted&amp;nbsp;for MSDN subscribers)&lt;/A&gt;. &amp;nbsp;This is the SDK necessary to build integrations into Visual Studio 2005.&lt;/P&gt;
&lt;P&gt;Please note that the &lt;A href="http://www.vsipdev.com"&gt;VSIPDev.com&lt;/A&gt;&amp;nbsp;redirects you to a new site which has been modified significantly from the original (it&amp;nbsp;uses Passport for identity management, for instance).&amp;nbsp; Don't be surprised by the changes.&amp;nbsp; Everything is still there,&amp;nbsp;it's just been&amp;nbsp;reorganized.&lt;/P&gt;
&lt;P&gt;We'll have updates to this SDK in the near future and they are intended to work side-by-side with released SDK's so you can look forward to new samples, tools and libraries in the future.&amp;nbsp; The SDK team put in a lot of work over the last several months to get this SDK ready for release.&amp;nbsp; We hope you like it.&amp;nbsp; If you see any problems or have suggestions, please visit the &lt;A href="http://lab.msdn.microsoft.com/productfeedback/"&gt;Product Feedback Center on MSDN&lt;/A&gt; to provide feedback.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=488368" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category><category domain="http://blogs.msdn.com/allend/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/allend/archive/tags/VS+SDK/default.aspx">VS SDK</category></item><item><title>PDC Day 3 - Domain Specific Languages - the future of Modeling</title><link>http://blogs.msdn.com/allend/archive/2005/09/15/467767.aspx</link><pubDate>Thu, 15 Sep 2005 21:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:467767</guid><dc:creator>AllenD</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/allend/comments/467767.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=467767</wfw:commentRss><description>&lt;P&gt;&lt;I&gt;&lt;B&gt;Bob Muglia's General Session - Windows Server...&lt;/B&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;I just got out of Bob Muglia's keynote and it was great to see so many cool things happening in the Windows Server product.&amp;nbsp; In particular I was impressed with IIS7 and it's capabilities.&amp;nbsp; They designed an extensibility mechanism in IIS that allows an admin to completely control the modules that are used/loaded for the website as well as capability for a developer to modify the default capabilities of the modules there.&amp;nbsp; What was shown was a different kind of directory listing that actually was a set of thumbnails for the images in the directory listing.&amp;nbsp; Very cool...&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;I&gt;Modeling and Visual Studio Team System...&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;As some of you know we have plans to include the team system modeling technologies API's in the VS SDK.&amp;nbsp; I wanted to attend Jochen Seemann's presentation here at PDC in order to gauge the level of excitement and need for extensibility in order to be certain we provide the best SDK possible.&amp;nbsp; By the size of the crowd (about 1500 people), I'd say that the modeling space is definitely huge and a lot of people are very excited/curious about what we're doing in this space.&amp;nbsp; DSL isn't something to do with broadband or cable-modems.&amp;nbsp; Domain Specific Languages is what we're talking about.&amp;nbsp; Jochen had a quote: "A picture is worth a thousand words...but it's often the case that one doesn't know what the thousand words are."&amp;nbsp; The vision for DSL tools is to instantiate the modeling tools exactly for a custom domain with our tools.&amp;nbsp; We want to give the customer the freedom to express their domain since they are the experts in their domain.&amp;nbsp; The DSL tools are on the web (as of Friday) on the MSDN site at Microsoft.com.&amp;nbsp; You can see some modeling tools today in VS 2005 in the class designer, web service designer and the deployment designer.&amp;nbsp; The DSL tools are designed to provide a toolkit for creating designers for Visual Studio.&amp;nbsp; The DSL tools allow one to use the drawing surface, toolbox, property browser, explorer and validation.&amp;nbsp; The modeling platform includes the following components: In-memory graph database (Domain Model), Drawing Surface (objects (shapes), connectors, auto-layout, routing, all customizable, etc.), Template Engine (for artifact generation), Shell Framework (Visual Studio UI integration - toolbox/menus), Validation Framework (checks constraints and guides user to resolve errors).&amp;nbsp; The roles involved in modeling for software are Architect, Developer and Business Analyst).&amp;nbsp; All of these roles can use MS provided designers, but there are several domains where MS won't provide designers and 3rd parties will provide them.&amp;nbsp; The cool thing is that all of the models based on the platform will be able to work together and link artifacts and designers together.&lt;/P&gt;
&lt;P&gt;During the session, Jochen designed a Simple Activity Language.&amp;nbsp; He took 3 steps: &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Define domain model (what do the shapes mean on the drawing surface, properties, states, inheritance relationships and behavior relationships, the meta-model)&lt;/LI&gt;
&lt;LI&gt;Define the notation (decompose the language to basic units) - describe the shapes and connectors physical properties (text position, icons, colors, etc)&lt;/LI&gt;
&lt;LI&gt;Define visualizations of the model via the notation elements&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;This works for really complex models as well as a simple one (like Jochen did on stage).&amp;nbsp; As a side effect of this process you get a real nice specification of the language.&amp;nbsp; To interact with the designer you write code for code/artifact generation, custom serialization, validation/constraints and custom behavior.&amp;nbsp; This code can take advantage of the DSL SDK (that's the thing we want to provide in the VS SDK in the future).&lt;/P&gt;
&lt;P&gt;The Toolkit generates a project that is actually a VS Package.&amp;nbsp; It allows the package to launch in the Experimental hive.&amp;nbsp; In the Exp hive we then create diagrams and manipulate the diagram with the design surface according to the model defined in the regular hive.&amp;nbsp; In the demo Jochen then added a property to one of the shapes, rebuilt the model designer and showed again the Exp hive manipulating the designer and see the property he added.&lt;/P&gt;
&lt;P&gt;One of the cool things is that the model database is able to be queried via a language and the API generated by the tool for the domain model.&lt;/P&gt;
&lt;P&gt;If one can generate a single designer, one can generate multiple designers.&amp;nbsp; What the modeling platform provides is a nice way to make multiple designers work together.&amp;nbsp; A 'software factory' can generate and link these multiple designers.&amp;nbsp; The DSL tools provide a tool window that allows one to create a table consisting of the rows and columns of shapes from two different designer surfaces.&amp;nbsp; The table is then used to add dependencies with a check mark to associate elements from one model to elements from another.&lt;/P&gt;
&lt;P&gt;Another cool feature of this toolkit is the linkage with the class diagram and code.&amp;nbsp; With just a couple of clicks one can go from a use case domain shape, to a class object in the class designer to the code.&lt;/P&gt;
&lt;P&gt;One of the final thing that Jochen did was to invite a partner (EDS) on stage to show their application which was driven with models during development.&amp;nbsp; The EDS application had a bunch of code generators and stuff from about 4 years ago that generates applications for a 3-tier application using business logic, front end and the database.&amp;nbsp; EDS wrote an add-in that generates a solution based on the models.&amp;nbsp; It uses the API's of the DSL tools and the model.&amp;nbsp; The solution generation add-in creates the front end code, unit tests (including a testing database with random data for testing), database scripts, stored procedures and links everything together using the business logic.&amp;nbsp; The unit tests, by the way, are run by Visual Studio Team System Test.&lt;/P&gt;
&lt;P&gt;For the future the DSL toolkit is planned for early 2006.&amp;nbsp; Version 2 will include even tighter VS integration in the next version of VS after VS 2005.&lt;/P&gt;
&lt;P&gt;Get more information at &lt;A href="http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools"&gt;http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Allen&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=467767" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category><category domain="http://blogs.msdn.com/allend/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/allend/archive/tags/PDC/default.aspx">PDC</category><category domain="http://blogs.msdn.com/allend/archive/tags/VS+SDK/default.aspx">VS SDK</category></item><item><title>Visual Studio and Windows Workflow Designer rocks! - PDC Day 2</title><link>http://blogs.msdn.com/allend/archive/2005/09/14/466232.aspx</link><pubDate>Wed, 14 Sep 2005 20:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:466232</guid><dc:creator>AllenD</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/allend/comments/466232.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=466232</wfw:commentRss><description>&lt;P&gt;At the morning keynote I saw a great integration with Visual Studio in the Windows Workflow Designer.&amp;nbsp; I'm sitting in the PDC general session this morning and during Eric Rudder's keynote he invited the Windows Workflow Foundation team to demonstrate their cool tools.&amp;nbsp; The really awesome thing that I saw was a great design surface for work flow objects in a graphical form.&amp;nbsp; To seal the deal the demo showed debugging the work flow directly in Visual Studio and seamlessly interacting with the usual C# debugger.&amp;nbsp; The workflow debugger was completely graphical with a little breakpoint glyph attached to the workflow object.&amp;nbsp; There were also 'callstacks' of the work flow objects and properties of the selected work flow objects showing current state to allow debugging the workflow and the code at the same time.&amp;nbsp; This is hugely powerful and really shows off how awesome the Visual Studio platform is.&lt;/P&gt;
&lt;P&gt;Another big deal at this session was the Microsoft Expression suite of applications that allow graphic design, web site design and interactive designers to work together.&amp;nbsp; They aren't hosted in Visual Studio (they do share some aspects via common project files), but one can easily see how lots of aspects of those tools can be integrated.&amp;nbsp; For now, they are separate tools.&lt;/P&gt;
&lt;P&gt;If you are at the PDC today, please stop by the Tools and Languages Track Lounge.&amp;nbsp; I'll be hanging out there most of the day.&amp;nbsp; At 2:00 pm those of us from the VS Extensibility team that are here are scheduled for a "meet the team" event.&amp;nbsp; Please stop by and say hello.&lt;/P&gt;
&lt;P&gt;Blog to you later...&lt;/P&gt;
&lt;P&gt;Allen&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=466232" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category><category domain="http://blogs.msdn.com/allend/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/allend/archive/tags/PDC/default.aspx">PDC</category></item><item><title>PDC Day 1 - Power Outages and Uploads</title><link>http://blogs.msdn.com/allend/archive/2005/09/13/465128.aspx</link><pubDate>Wed, 14 Sep 2005 01:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:465128</guid><dc:creator>AllenD</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/allend/comments/465128.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=465128</wfw:commentRss><description>&lt;P&gt;Well, yesterday was very eventful.&lt;/P&gt;
&lt;P&gt;Just after my previous post, we broke for lunch and just as we were starting to present our after-lunch information &lt;A href="http://www.msnbc.msn.com/id/9315974/"&gt;the power went out in Los Angeles&lt;/A&gt;.&amp;nbsp; Not just in the Convention Center, but all over the city.&amp;nbsp; According to &lt;A href="http://www.msnbc.msn.com/id/9315974/"&gt;reports&lt;/A&gt; 2 million people were affected.&amp;nbsp; It was an interesting 30-45 minutes as we sat around in the dark (a little bit of illumination from ambient light).&amp;nbsp; We finally got up on stage and did some general Q&amp;amp;A.&amp;nbsp; The power finally came back on and we were able to continue our preconference session without further incident.&lt;/P&gt;
&lt;P&gt;During my portion of the precon, I wrote a To Do Manager from scratch (ok, practically from scratch).&amp;nbsp; This is the same demo that I did at the Dev Lab in August on campus.&amp;nbsp; &lt;A href="http://workspaces.gotdotnet.com/VsToDoManager"&gt;The code for this demo has been posted on GotDotNet.&lt;/A&gt;&amp;nbsp; This code project requires the Sep 05 CTP of the VS SDK and is expected to work with Visual Studio 2005.&amp;nbsp; I wrote it using a recent VS 2005 release candidate (internal), but it should work with any VS 2005 RTM Release Candidate.&lt;/P&gt;
&lt;P&gt;After the precon our &lt;A href="http://msdn.microsoft.com/vstudio/extend"&gt;VS partner program &lt;/A&gt;hosted a little party at &lt;A href="http://losangeles.dodgers.mlb.com"&gt;Dodger Stadium &lt;/A&gt;for a few partners.&amp;nbsp; The Dodgers did very well and it was a nice treat to see a big league game in a beautiful stadium.&amp;nbsp; It was fun talking with partners and letting our hair down a little bit.&lt;/P&gt;
&lt;P&gt;This morning I attended BillG's and JimAll's keynotes.&amp;nbsp; They were both very good.&amp;nbsp; Don Box, Chris Andersen, Scott Guthrie and Anders Hejlsberg were very good as usual.&amp;nbsp; &lt;A href="http://msdn.microsoft.com/windowsvista/"&gt;Windows Vista &lt;/A&gt;is awesome, our programming model and frameworks are really powerful and it is truly a great time to be a software developer.&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;Fun facts: My pedometer is still going.&amp;nbsp; Totals for the week as of&amp;nbsp;Tue morning: 5.49 miles, 15136 steps&lt;/FONT&gt;&lt;FONT face=Tahoma&gt;.&amp;nbsp; Since the last report this represents 2.88 miles walked.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;More on the PDC later.&lt;/P&gt;
&lt;P&gt;Allen&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=465128" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category><category domain="http://blogs.msdn.com/allend/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/allend/archive/tags/PDC/default.aspx">PDC</category><category domain="http://blogs.msdn.com/allend/archive/tags/VS+SDK/default.aspx">VS SDK</category></item><item><title>What is IVsThreadPool?</title><link>http://blogs.msdn.com/allend/archive/2005/06/15/429596.aspx</link><pubDate>Thu, 16 Jun 2005 05:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:429596</guid><dc:creator>AllenD</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/allend/comments/429596.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=429596</wfw:commentRss><description>&lt;P&gt;Got a question from VSIP partner Patrick today and wanted to pass it along.&amp;nbsp; Before I do that though, let me once again apologize for not blogging like you want me to.&amp;nbsp; I will strive to do better.&amp;nbsp; I promise.&lt;/P&gt;
&lt;P&gt;So, here's the question: What's the deal with IVsThreadPool?&lt;/P&gt;
&lt;P&gt;Here's the answer:&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial color=navy size=2&gt;&lt;SPAN&gt;The SVsThreadPool service is available to schedule background tasks in a thread pool managed by VS.&amp;nbsp; This is useful for long running tasks that need to get done, but can be done without the user interacting.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial color=navy size=2&gt;&lt;SPAN&gt;First, this is for native code only. &amp;nbsp;If you want managed code then the .net framework’s thread pool is fine. &amp;nbsp;Second, you should make no assumptions about COM threading or CoInitialize settings. Be careful accessing data or calling methods on COM objects where the apartment may need to be switched away from the free thread that the thread pool gives you for your task. &amp;nbsp;This can cause race conditions or data corruption.&amp;nbsp; My recommendation is to have the background task avoid interaction with other threads and objects as much as possible. &amp;nbsp;Do nothing or as little as you can with other COM objects directly and try to use Win32 methods to access shared resources. &amp;nbsp;This is a conservative approach, but it simplifies things tremendously.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial color=navy size=2&gt;&lt;SPAN&gt;The service is designed to have two types of callbacks. &amp;nbsp;First is a callback whenever a thread is available. &amp;nbsp;This is useful for general background work.&amp;nbsp; Once your task exits, then it is done forever and you can reschedule it or another task if you need more background work done. &amp;nbsp;The second is a handle-activated callback where your task method is called whenever the handle you supply is signaled. &amp;nbsp;Once your task exits, the handle is checked again and you will be called again if/when it is signaled. &amp;nbsp;This is useful for Win32 WaitForSingleObject style background work.&amp;nbsp; You have to explicitly shutdown VS or unschedule your task for this type to go away. &amp;nbsp;Be careful to unschedule the task before closing the handle. &amp;nbsp;Once the task is scheduled the handle is used in a WaitForMultipleObjects call on the background thread so if you close it on another thread then that can cause problems (perhaps crashes).&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial color=navy size=2&gt;&lt;SPAN&gt;As for setting the event passed to you, you should not set it. &amp;nbsp;It is set by the thread pool service in order to inform you that the thread pool is shutting down. &amp;nbsp;It is meant as a ‘please exit the building now’ kind of signal. &amp;nbsp;If you set it yourself, then that might cause problem, but it is doubtful. &amp;nbsp;For long running tasks, the task should periodically check the state of the handle passed to you to determine if it is signaled. &amp;nbsp;If it is signaled, then the thread pool is terminating and all tasks should exit immediately (basic terminate early work should be done (like closing a file handle to get it to flush data to it, for instance, but no other work should be performed).&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial color=navy size=2&gt;&lt;SPAN&gt;You'll find some details in the VSSHELL80.IDL file in the EnvSDK part of the VSIP SKU.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial color=navy size=2&gt;&lt;SPAN&gt;Allen&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial color=navy size=2&gt;&lt;SPAN&gt;P.S.&amp;nbsp; Check out the &lt;A href="http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=57"&gt;MSDN Forum on VS Extensibility&lt;/A&gt;.&amp;nbsp; I’m trying to get myself and more folks to hang out there to answer questions just like this one: &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;P.P.S I can't wait to tell you all about some exciting changes to the VSIP SKU in the near future.&amp;nbsp; Watch for announcements on the &lt;A href="http://msdn.microsoft.com/vstudio/extend"&gt;VS Extensibility portal&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=429596" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category></item><item><title>Managed Package Framework Webcast</title><link>http://blogs.msdn.com/allend/archive/2005/01/13/352456.aspx</link><pubDate>Thu, 13 Jan 2005 21:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:352456</guid><dc:creator>AllenD</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/allend/comments/352456.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=352456</wfw:commentRss><description>&lt;p&gt;I forgot about this 'til now.&lt;/p&gt; &lt;p&gt;&lt;a href="http://msevents.microsoft.com/cui/eventdetail.aspx?EventID=1032258553&amp;amp;Culture=en-US"&gt;http://msevents.microsoft.com/cui/eventdetail.aspx?EventID=1032258553&amp;amp;Culture=en-US&lt;/a&gt;&amp;nbsp;is a link to a MSDN webcast I did describing the Managed Package Framework for the masses.&amp;nbsp; Enjoy.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=352456" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category><category domain="http://blogs.msdn.com/allend/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/allend/archive/tags/Interop/default.aspx">Interop</category></item><item><title>Back in the saddle again</title><link>http://blogs.msdn.com/allend/archive/2005/01/13/352446.aspx</link><pubDate>Thu, 13 Jan 2005 21:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:352446</guid><dc:creator>AllenD</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/allend/comments/352446.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=352446</wfw:commentRss><description>&lt;p&gt;Whew!&amp;nbsp; It's been a while hasn't it?&lt;/p&gt; &lt;p&gt;My new son was born 9/30 and I returned to work late October after infant care leave.&amp;nbsp; We're all hard at work here getting Whidbey Beta 2 ready to ship.&amp;nbsp; The holiday's hit and I spent a bunch of time on the road and on airplanes.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I'm back from vacation now and sitting in a rountable discussion with &lt;a title="MSDN VS Extensibility Center" href="http://msdn.microsoft.com/vstudio/extend" &gt;VSIP&lt;/a&gt; partners at the January &lt;a title="MSDN VS Extensibility Center" href="http://msdn.microsoft.com/vstudio/extend" &gt;VSIP&lt;/a&gt; Dev Lab here in Redmond.&amp;nbsp; Good suggestions and a lot of hard work getting partner products ready to run in Whidbey Beta 2.&amp;nbsp; Thank you to all the parnters in attendance.&lt;/p&gt; &lt;p&gt;Hey, I'm a video star!&amp;nbsp; Check out the latest installment on Microsoft's Channel 9 community site: &lt;a title="http" href="http://channel9.msdn.com/ShowPost.aspx?PostID=35379"&gt;&lt;font face="Arial" size="2"&gt;http://channel9.msdn.com/ShowPost.aspx?PostID=35379&lt;/font&gt;&lt;/a&gt;.&amp;nbsp; A bunch of interviews of hard-working computer geeks getting Visual Studio ready for release.&lt;/p&gt; &lt;p&gt;I certainly hope to post here more often and do some interesting posts now that things have finally settled down in my life.&amp;nbsp; Hope you are doing well.&lt;/p&gt; &lt;p&gt;Later,&lt;/p&gt; &lt;p&gt;Allen&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=352446" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category><category domain="http://blogs.msdn.com/allend/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Out for a while</title><link>http://blogs.msdn.com/allend/archive/2004/09/29/235745.aspx</link><pubDate>Wed, 29 Sep 2004 16:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:235745</guid><dc:creator>AllenD</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/allend/comments/235745.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=235745</wfw:commentRss><description>&lt;p&gt;I'm going on infant care leave either tomorrow or next week.&amp;nbsp; I'll most likely not blog anything during that time since I'll be enjoying my new son.&amp;nbsp; I'll return to work at the end of October.&lt;/p&gt; &lt;p&gt;The &lt;a title="MSDN VS Extensibility Center" href="http://msdn.microsoft.com/vstudio/extend" &gt;VSIP&lt;/a&gt;/Extensibility team is working hard to get Whidbey Beta&amp;nbsp;2 ready and everyone is heads down on that effort.&amp;nbsp; It's going to be great to get that beta shipped!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=235745" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category></item><item><title>IVsRunningDocumentTable.RenameDocument - how to call in managed code</title><link>http://blogs.msdn.com/allend/archive/2004/08/20/217958.aspx</link><pubDate>Fri, 20 Aug 2004 20:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:217958</guid><dc:creator>AllenD</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/allend/comments/217958.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=217958</wfw:commentRss><description>&lt;p&gt;&lt;font face="" size="2"&gt;Here's a little code to help managed packages call the Running Document Table to rename a document:&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="" size="2"&gt;Calling IVsRunningDocumenTable.RenameDocument is not entirely straighforward in managed code.&amp;nbsp; Here's some code the shows how to get the SVsRunningDocumentTable service, find a document therein and then rename it.&amp;nbsp; I've had one partner confused by the calling pattern so I figured I'd share the solution with you in case you ever need to employ it.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;IVsRunningDocumentTable pRDT = GetService(typeof(SVsRunningDocumentTable)) as IVsRunningDocumentTable;&lt;br /&gt;IVsUIShellOpenDocument doc = GetService(typeof(SVsUIShellOpenDocument)) as IVsUIShellOpenDocument;&lt;br /&gt;IVsUIShell uiShell = GetService(typeof(SVsUIShell)) as IVsUIShell;&lt;br /&gt;&lt;br /&gt;if (pRDT == null || doc == null) return;&lt;br /&gt;&lt;br /&gt;IVsHierarchy pIVsHierarchy;&lt;br /&gt;uint itemId;&lt;br /&gt;IntPtr docData;&lt;br /&gt;uint uiVsDocCookie;&lt;br /&gt;NativeMethods.ThrowOnFailure(pRDT.FindAndLockDocument((uint)_VSRDTFLAGS.RDT_NoLock, oldName, out pIVsHierarchy, out itemId, out docData, out uiVsDocCookie));&lt;br /&gt;&lt;br /&gt;if (docData != IntPtr.Zero) {&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#ff0000"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IntPtr pUnk = Marshal.GetIUnknownForObject(pIVsHierarchy);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Guid iid = typeof(IVsHierarchy).GUID;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IntPtr pHier;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.QueryInterface(pUnk, ref iid, out pHier);&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NativeMethods.ThrowOnFailure(pRDT.RenameDocument(oldName, newName, pHier, itemId));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } finally {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.Release(pHier);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.Release(pUnk);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.Release(docData);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;I hope this help!&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Allen&lt;/p&gt;&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=217958" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category><category domain="http://blogs.msdn.com/allend/archive/tags/Interop/default.aspx">Interop</category></item><item><title>Regular Expression Language Service</title><link>http://blogs.msdn.com/allend/archive/2004/07/26/197721.aspx</link><pubDate>Mon, 26 Jul 2004 23:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:197721</guid><dc:creator>AllenD</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/allend/comments/197721.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=197721</wfw:commentRss><description>&lt;P&gt;I've finally gotten around to posting the Regular Expression Language Service so you can get to it.&lt;/P&gt;
&lt;P&gt;This is the project that I wrote during the &lt;A title="Tech Ed Web Site" href="http://msdn.microsoft.com/vstudio/extend/"&gt;TechEd&lt;/A&gt; VS Extensibility Feature Cookoff where I had to write this in 45 minutes or so.&amp;nbsp; I tried the code with Whidbey Beta 1 and it worked for me.&lt;/P&gt;
&lt;P&gt;One major point to remember here is that this is all managed code and really fairly easy to implement compared to working with Babel (native abstraction for language services) or native interfaces directly.&lt;/P&gt;
&lt;P&gt;The project is on the workspaces on the GotDotNet site: &lt;A href="http://workspaces.gotdotnet.com/RegExLangService"&gt;http://workspaces.gotdotnet.com/RegExLangService&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.gotdotnet.com/Community/Workspaces/Images.aspx?FileID=80a83432-9e23-4c4d-8308-986270689155&amp;amp;id=2c0db3c9-a3bd-4116-bc1f-6c84a898e034"&gt;Here's a screen shot.&lt;/A&gt;&lt;/P&gt;&lt;SPAN style="WIDTH: 100%; TEXT-ALIGN: right"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=197721" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category></item><item><title>Extensibility makes MSDN TV</title><link>http://blogs.msdn.com/allend/archive/2004/07/15/184578.aspx</link><pubDate>Thu, 15 Jul 2004 23:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:184578</guid><dc:creator>AllenD</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/allend/comments/184578.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=184578</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Check out Ken Hardy, VS Core PM for Extensibility &lt;A href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20040715VSTUDIOKH/manifest.xml"&gt;share some info on MSDN TV&lt;/A&gt;. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;If you were at &lt;a title="Tech Ed Web Site" href="http://msdn.microsoft.com/vstudio/extend/" &gt;TechEd&lt;/a&gt; 2004 San Diego, you might catch yourself in the background...&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=184578" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category><category domain="http://blogs.msdn.com/allend/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Solution Options Persistence (Part 2)</title><link>http://blogs.msdn.com/allend/archive/2004/07/12/180942.aspx</link><pubDate>Mon, 12 Jul 2004 19:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:180942</guid><dc:creator>AllenD</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/allend/comments/180942.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=180942</wfw:commentRss><description>&lt;P&gt;It occured to me that I didn't discuss what the framework will do when the options you specified in the AddOptionsKey method are needed to be loaded or saved.&lt;/P&gt;
&lt;P&gt;The framework will eventually call one of two virtual methods that you need to override.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void OnLoadOptions(string key, Stream stream) {&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; // if key is a string this package cares about then&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; // stream can be used to read the data for&amp;nbsp;runtime use&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; if (key == MyOptionKey)&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; try {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BinaryReader reader = new BinaryReader(stream);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;// read the options here...&lt;/STRONG&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception) {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // no options, ok, no problem.&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; }&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; } else {&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; // If this isn't a key this package cares about, &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; // then call the base class implementation&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; base.OnLoadOptions(key, stream);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void OnSaveOptions(string key, Stream stream) {&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; // if key is a string this package cares about then&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; // stream can be used to write the data&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; if (key == MyOptionKey) {&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; try {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BinaryWriter writer = new BinaryWriter(stream);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;// write the options here...&lt;BR&gt;&lt;/STRONG&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.Flush();&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stream.Flush();&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; } catch (Exception) {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // no options, ok, no problem.&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; }&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; } else {&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; // if this isn't a key this package cares about,&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; // then call the base class implementation&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; base.OnSaveOptions(key, stream);&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Allen&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=180942" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category></item><item><title>Solution Options Persistence</title><link>http://blogs.msdn.com/allend/archive/2004/07/09/178849.aspx</link><pubDate>Fri, 09 Jul 2004 22:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:178849</guid><dc:creator>AllenD</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/allend/comments/178849.aspx</comments><wfw:commentRss>http://blogs.msdn.com/allend/commentrss.aspx?PostID=178849</wfw:commentRss><description>&lt;P&gt;I investigated this question earlier today for an internal&amp;nbsp;VS client&amp;nbsp;and wanted to share the results with the rest of the world...&lt;/P&gt;
&lt;P&gt;Your VS Package can place data into the solution file (.sln) or solution user options (.suo) file by implementing IVsPersistSolutionOpts (.suo affecting) or IVsPersistSolutionProps (.sln affecting).&amp;nbsp; These interfaces should be implemented by the same class which implements IVsPackage.&lt;/P&gt;
&lt;P&gt;The VS IDE will call these interfaces for each loaded package when a solution is opened/closed.&amp;nbsp; If your package is not loaded when the solution is opened, then you won't be called to load your solution options.&amp;nbsp; The remedy to this problem is to call the SVsSolutionPersistence service's IVsSoltionPersistence::LoadPackageUserOpts method yourself.&amp;nbsp; This will cause the VS IDE to eventually call your IVsPersisteSolutionsOpts::LoadUserOptions method.&amp;nbsp; The IVsSolutionPersistence::LoadPackageUserOpts method&amp;nbsp;takes a IVsPersistSolutionOpts interface parameter which should&amp;nbsp;be your package class pointer.&amp;nbsp; You also specify your unique&amp;nbsp;&amp;#8220;keyname&amp;#8221;&amp;nbsp;when calling the method.&lt;/P&gt;
&lt;P&gt;The above is true in VS7 and VS7.1.&lt;/P&gt;
&lt;P&gt;In Whidbey the &lt;a title="MSDN VS Extensibility Center" href="http://msdn.microsoft.com/vstudio/extend" &gt;VSIP&lt;/a&gt; Managed Package Framework provides a nice base class&amp;nbsp;(Package) implementing these interfaces and calling them for you.&amp;nbsp; You simply call Package.AddOptionKey to add your unique keyname to the list of option keys the package handles.&amp;nbsp; During the Package.Initialize() method the option keys are loaded using the above services/interfaces.&amp;nbsp; You should call AddOptionKey during your package class constructor or any other method that is called before the base class Initialize() method.&lt;/P&gt;
&lt;P&gt;The &lt;a title="MSDN VS Extensibility Center" href="http://msdn.microsoft.com/vstudio/extend" &gt;VSIP&lt;/a&gt; EnvSDK sample SlnExt is a great sample showing how to all of this in native code not using the managed package framework.&amp;nbsp; I have designs to rewrite that sample to use the managed package framework, but for now that is left as an exercise for the reader.&lt;/P&gt;
&lt;P&gt;Later,&lt;/P&gt;
&lt;P&gt;Allen&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=178849" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/allend/archive/tags/VSIP/default.aspx">VSIP</category><category domain="http://blogs.msdn.com/allend/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item></channel></rss>