+ Reply to Thread
Results 1 to 4 of 4

Thread: shell class problem

  1. #1
    craneium is offline VB.NET Forum Newbie craneium is on a distinguished programming path ahead
    .NET Framework
    .NET 3.5 (VS 2008)
    Join Date
    Jun 2009
    Age
    27
    Posts
    4
    Reputation
    0

    Default shell class problem

    I am unzipping a file on a XP machine.
    to do this i am using the Shell process

    For Each setfiles As String In My.Computer.FileSystem.GetFiles(mydesktop, FileIO.SearchOption.SearchTopLevelOnly, "*.zip")
    If setfiles.Count = 0 Then
    setfiles = Nothing
    Exit For
    Else
    Dim myshell As New Shell32.Shell
    Dim myzip As Shell32.Folder = myshell.NameSpace(setfiles)
    Dim mydrop As Shell32.Folder = myshell.NameSpace(mydesktop)
    For Each myzipfiles As Shell32.FolderItems In myzip.Items
    mydrop.CopyHere(myzipfiles)
    Next
    End If
    Next


    This was built on VS 2008 on a vista machine on this machine this process works perfectly when ported over to an XP (with new frameworks v3.5) i get this error

    System.InvalidCastException: Unable to cast COM object of type 'Shell32.ShellClass' to interface type 'Shell32.IShellDispatch5'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{866738B9-6CF2-4DE8-8767-F794EBE74F4E}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
    at Shell32.ShellClass.NameSpace(Object vDir)


    What would the reason behind this be, i have to be able to run this on a xp machine.

  2. #2
    MattP is offline VB.NET Forum All-Mighty MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute
    .NET Framework
    .NET 4.0
    Join Date
    Feb 2008
    Location
    USA
    Posts
    1,016
    Reputation
    533

    Default

    Shell32 Problems - creating Zip Files

    From the last post in the thread:

    I had the same problem. I got things working by using an interop (Interop.Shell32.dll) that was created on a XP machine. Build your project on XP and just grab the file “Interop.Shell32.dll” to include with your setup on Vista. I created my MSI on Vista with the XP version of “Interop.Shell32.dll” and now things work on both XP and Vista.

  3. #3
    craneium is offline VB.NET Forum Newbie craneium is on a distinguished programming path ahead
    .NET Framework
    .NET 3.5 (VS 2008)
    Join Date
    Jun 2009
    Age
    27
    Posts
    4
    Reputation
    0

    Default

    I looked through my files and i'm using a Interop.shell32.dll.deploy, its in the folder with the app would this be what you are speaking of or should i be calling out to that DLL in my code.

  4. #4
    MattP is offline VB.NET Forum All-Mighty MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute MattP has a reputation beyond repute
    .NET Framework
    .NET 4.0
    Join Date
    Feb 2008
    Location
    USA
    Posts
    1,016
    Reputation
    533

    Default

    From the thread I linked it looks like you need to grab the Interop.Shell32.dll from an XP machine.

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts