R – MSDAIPP broken on Vista by Update, missing in Win7Beta

adovb6vbscriptwebdav

I have some code I am working on that worked just fine until I installed Software Update for Web Folders (KB907306) into Vista SP1. I'm using ADO with the MSDAIPP.DSO provider for acess to WebDAV and FPSE/WEC servers.

The same code works fine in a clean XP SP3 install, and worked before this update (but I will re-verify on a clean Vista install).

A short test case (a WSH script named IPPTest.wsf) is:

<job>
  <reference object="ADODB.Connection"/>
  <object id="cnIPP" progId="ADODB.Connection"/>
  <object id="rec" progId="ADODB.Record"/>
  <object id="stm" progId="ADODB.Stream"/>
  <script language="VBScript">
  Option Explicit
  Const WEBROOT = "https://your.DAC-or-WEC.server"
  Const USER = "youruser"
  Const PW = "yourpw"
  Const TEXTFILE = "yourtextfile.txt"

  cnIPP.Open "Provider=MSDAIPP.DSO;Prompt=NoPrompt;" _
           & "Connect Timeout=10;" _
           & "Data Source=" & WEBROOT, _
             USER, PW, adConnectUnspecified

  rec.Open TEXTFILE, cnIPP, adModeRead
  stm.Open rec, , adOpenStreamFromRecord
  stm.Type = adTypeText
  stm.Charset = "ascii"
  MsgBox stm.ReadText(adReadLine)

  stm.Close
  rec.Close
  cnIPP.Close
  </script>
</job>

When it fails I get the exception:

---------------------------
Windows Script Host
---------------------------
Script: C:\Users\xxxxx\Desktop\IPPTest.wsf
Line:   19
Char:   8
Error:  No such interface supported 
Code:   80004002
Source:     (null)

Worse yet, I cannot even get that far when I run the same script on Win7 Beta (I haven't installed the RC yet). My Win7 Beta does not have MSDAIPP.DLL at all.

I've also tested using the funky sample Microsoft Office Web Folder Client Sample (for MSDAIPP) written in VC++ 6.0 just to remove ADO from the picture. The precompiled EXE will run and work (to some extent) on my messed up Vista SP1, and on the clean XP SP3, but not at all on a clean Windows 7 Beta ("can't create MSDAIPP.DSO" error). I say "to some extent" because for some odd reason the Microsoft demo app displays blank file and folder names, though it can upload/download files and traverse directories just fine.

So it seems that ADO is looking for an interface that the MSDAIPP.DSO no longer exposes.

The "broken" MSDAIPP.DLL is version 12.0.4518.1014 and is located in C:\Program Files\Common Files\System\Ole DB as one would expect. This Vista SP1 machine also has Office 2003 installed (and did prior to the "update").

So (finally) I have three questions:

  • Is there a way to back this "Software
    Update" out? It installs more than
    just the MSDAIPP.DLL, and as Microsoft
    says there is no uninstall for this
    "fix."
  • Is there any workaround or subsequent fix that fixes the fix?
  • What's the story on MSDAIPP and Win7?
    Is it present in Win7RC1? Or will
    users need to install Office to
    obtain it (previously it was part of
    Windows beginning with Win2K)?

More information!

I found the following after a lengthy (lengthy) search:

Webdav on IIS 6.0 Troubleshooting

Note: The Web Extender Client (codename
Rosebud) is not shipped with Windows
Vista, and WebDAV functionality in Vista
is limited to the capabilities of the Web
Client service (the WebDAV redirector.)

Applications written to leverage Rosebud and
previously working without issue on Windows
XP machines may fail in Windows Vista.

The additional WebDAV functionality of
the Web Extender Client had been
exposed previously in Windows 2000
and Windows XP as the Web Folders
component, MSDAIPP, and was accessed
in Windows 2000 via Windows Explorer
and in Windows XP via the Add Network
Place Wizard. Web Folders have been
not been included in Windows Vista,
but the Web Folders component is
still available as part of a Microsoft
Office installation. Installing
Office 2007 on a Windows Vista client
experiencing Web Extender
Client-dependent connectivity failure
resolves the issue.

At this point I suspect that by installing Office 2003 I added what was formerly a fundamental Windows capability to Vista. Subsequently installing the Software Update (which is Office 2007 oriented, though it was claimed to do no harm to previous Office installs) broke the functionality. I do not recall this being in any Vista release notes.

Even if the Update can be made to work, this will be a huge headache for any programs that expect a working MSDAIPP to be present in Vista or Windows 7.

It looks like Microsoft just broke another spoke off VB6's wheel with this one by breaking MDAC/DAC. That may be a premature assessment, and I'm awaiting any other suggestions or information.

I wonder how else Microsoft expects us to accomplish programmatic access via WebDAV and FPSE/WEC? Is there a new API we should know about instead of using ADO with MSDAIPP (a.k.a. Rosebud)?

Best Answer

It sounds like it's time to ask Microsoft about this.


UPDATE:
I'll see if I can find someone to get you a more definitive answer. If you don't hear back from me or someone else, "ping" me by adding another comment to this answer, in about a week.

Related Topic