AllenD's WebLog




Accessing IServiceProvider with the Whidbey Managed Package Framework

In the Whidbey Managed Package Framework in VSIP there's a few different base classes that hold an IServiceProvider interface pointer.  This is usually stuffed into a ServiceProvider class and exposed via a protected GetService method on the class.

For WindowPane (or ToolWindowPane) this allows the internal implementation to get to VS services.  The problem is that most code would like to embed a standard .NET WinForm.  This is what the Package Wizard generates for you, but the user control doesn't have any mechanism to get to the Managed Package Framework itself.

There are two easy ways around this:

1) Send the IServiceProvider interface pointer to the user control.  (May sure you property dispose of the interface pointer in order to get the proper ref counting on the unmanaged side.)

2) Expose a GetVSService public/friend method which forwards the request directly to the protected GetService method.  The user control simply needs to have a refernce to the parent WindowPane (or ToolWindowPane).

I think #2 is the easiest to implement.

I hope this helps.

Published Monday, May 24, 2004 9:30 AM by AllenD
Filed under:

Comments

No Comments
Anonymous comments are disabled

This Blog

Syndication

News

> These postings are provided "as-is" and confer no rights or warranties.


© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker