Adding Browse UI to BT'06 WSS adapter

The WssAdapterBrowseUI.dll modifies the default WSS Adapter UI so that instead of typing the names and URLs of SharePoint document libraries, lists, or columns you will be presented with a list view/tree view from where you can select the appropriate SharePoint object. The friendly names/titles of SharePoint objects are being shown but the UI is filled with the appropriate value (document library relative URL, document library title, column title, etc). This component does not validate that values entered manually are correct.

Left image above is the original WSS UI included in BizTalk 2006. Right image above, is the modified WSS UI that includes browse SharePoint site functionality. The dropdown box (circled in red in image above) is visible only when the cursor is positioned inside the text box.

This functionality is implemented by wrapping the WSS adapter management class (found in Microsoft.BizTalk.KwTpm.WssAdapter.StaticAdapterManagement.dll) and annotating the returned XSD schemas in order to instruct BizTalk what classes can be used to query and display the SharePoint information. WssAdapterBrowseUI.dll replaces the Microsoft.BizTalk.KwTpm.WssAdapter.StaticAdapterManagement.dll
assembly, forwards all calls to StaticAdapterManagement classes and it modifies the returned results.
Microsoft.BizTalk.KwTpm.WssAdapter.StaticAdapterManagement.dll is still needed since WssAdapterBrowseUI.dll uses it.

Setup steps:
 - backup registry information
 - copy WssAdapterBrowseUI.dll to BizTalk folder
 - modify registry information so that BizTalk uses WssAdapterBrowseUI.dll instead of Microsoft.BizTalk.KwTpm.WssAdapter.StaticAdapterManagement.dll

Disclaimer
Use this code at your own risk.  No support is provided and this code has NOT been tested.

Important
If you re-run BizTalk setup, configuration or if you need to apply a BizTalk QFE or future Service Pack, you will have to uninstall this component before doing so. This component is not supported!

Registry Backup
Run command below to make a copy of the default Wss Adapter registration. Open file in notepad to make sure backup worked.
    reg export "HKEY_CLASSES_ROOT\CLSID\{BA7DAD66-5FC8-4a24-A27E-D9F68FD67C3A}" OriginalWssAdapterRegistration.reg

Keep this backup since you will need to restore the original Wss Adapter registration before applying any BizTalk SP or QFE.

Copy WssAdapterBrowseUI.dll to BizTalk folder
Copy supplied WssAdapterBrowseUI.dll (or build your own, see How to build WssAdapterBrowseUI.dll) to C:\Program Files\Microsoft BizTalk Server 2006

Update registry
Update Wss Adapter registration to use the new adapter management class
 a) open "WssAdapterRegistration-Annotated.reg.RENAMEIT" in notepad and make sure that paths are correct
Notice - if you update any file paths in the registry file make sure you use \\ instead of \
 b) Rename "WssAdapterRegistration-Annotated.reg.RENAMEIT" (remove ".RENAMEIT" from the name)
 c) import registry settings by opening WssAdapterRegistration-Annotated.reg

How to build WssAdapterBrowseUI.dll
The sources and binaries are included in the attached zip file. Open WssAdapterBrowseUI.csproj in Visual Studio 2005. If references to assemblies
   Microsoft.BizTalk.Adapter.Framework.dll
   Microsoft.BizTalk.KwTpm.WssAdapter.StaticAdapterManagement.dll
are not correct update the references.

Referenced assembly Microsoft.BizTalk.Adapter.Framework.dll is found under \Program Files\Microsoft BizTalk Server 2006\Developer Tools
Referenced assembly Microsoft.BizTalk.KwTpm.WssAdapter.StaticAdapterManagement.dll is found under \Program Files\Microsoft BizTalk Server 2006
Build the project.

WssAdapterBrowseUI.zip