IShellFolder

IShellFolder

Post by SunFir » Fri, 06 Jun 2003 19:26:17



Hi
   is it any way to enumerating zip and cabs like normal file?

Robert

 
 
 

IShellFolder

Post by Nikos Bozini » Fri, 06 Jun 2003 22:36:31



> Hi
>    is it any way to enumerating zip and cabs like normal file?

this is the default for windows XP; you can access zip/cab contents like
normal folders, with IShellFolder. Anything older than XP and you're out
of luck though

---
www.netez.com/2xExplorer

 
 
 

IShellFolder

Post by SunFir » Fri, 06 Jun 2003 22:50:20


Hi

 >this is the default for windows XP; you can access zip/cab contents >like
 >normal folders, with IShellFolder. Anything older than XP and you're
 >out of luck though

i want to know how to avoid this indder WinXP/Me.
I dont want to enumerate contents of zip/cab using IShellFolder.
I want to pass some flags to enumerator to avoid treating zip/cabs like
folders.

how to do this?

Robert

 
 
 

IShellFolder

Post by David Lincol » Fri, 06 Jun 2003 23:00:45


Hi,

Try going to http://groups.google.com and entering the search "xp +zip +ishellfolder"

The first two threads you'll see listed have some good pointers previously posted by Jim Barry & others.

Cheers,
Dave.

 
 
 

IShellFolder

Post by Jim Barr » Sat, 07 Jun 2003 00:31:50



> this is the default for windows XP; you can access zip/cab
> contents like normal folders, with IShellFolder.

I must confess to being a little confused here. When I attempt to bind to a zip file to get an IShellFolder interface, I just get ERROR_FILE_NOT_FOUND. Also, zip files don't show up when doing a SHCONTF_FOLDERS enumeration. This is all on XP SP1.

--
Jim Barry, MVP for Windows SDK
"For bureaucratic reasons, we settled on one issue, weapons of mass
destruction, because it was the one reason everyone could agree on."
Paul Wolfowitz, US Deputy Defence Secretary

 
 
 

IShellFolder

Post by Nikos Bozini » Sat, 07 Jun 2003 19:34:15



> I must confess to being a little confused here. When I attempt to bind to a zip file to get
> an IShellFolder interface, I just get ERROR_FILE_NOT_FOUND.

can you normally get into zipfolders with your windows explorer?

i haven't tried binding from the desktop, but from the parent folder it
works fine:
pSFParent->BindToObject(lokal, NULL, IID_IShellFolder,
(void**)&pIFolder);

Quote:> zip files don't show up when doing a SHCONTF_FOLDERS enumeration

yes, that's a "feature"  :)
 
 
 

IShellFolder

Post by Jim Barr » Sat, 07 Jun 2003 20:00:22



> can you normally get into zipfolders with your windows explorer?

Yes. Well, I can after setting the .zip association back from 'WinZip' to 'CompressedFolder' :-)

Quote:> i haven't tried binding from the desktop, but from the parent folder it
> works fine:
> pSFParent->BindToObject(lokal, NULL, IID_IShellFolder,
> (void**)&pIFolder);

Nope, doesn't work for me. I guess something on my system is hosed.

Quote:> > zip files don't show up when doing a SHCONTF_FOLDERS enumeration

> yes, that's a "feature"  :)

So all you have to do to avoid unintentionally descending into zip folders is to enumerate folders with SHCONTF_FOLDERS, like you're supposed to - right?

--
Jim Barry, MVP for Windows SDK
"For bureaucratic reasons, we settled on one issue, weapons of mass
destruction, because it was the one reason everyone could agree on."
Paul Wolfowitz, US Deputy Defence Secretary

 
 
 

IShellFolder

Post by mike » Tue, 10 Jun 2003 05:40:53


Quote:> So all you have to do to avoid unintentionally
> descending into zip folders is to enumerate folders
> with SHCONTF_FOLDERS, like you're supposed to - right?

I have found that to distinguish folders from zip files
in XP is to test for SHGAO_FILESYSTEMANCESTOR. I am just
no seeing that SFGAO_BROWSABLE is not present with the
folder.

mike

C:\temp (empty directory)

SFGAO_CANCOPY
SFGAO_CANMOVE
SFGAO_CANLINK
SFGAO_CANRENAME
SFGAO_CANDELETE
SFGAO_HASPROPSHEET
SFGAO_DROPTARGET
SFGAO_FILESYSANCESTOR
SFGAO_FOLDER
SFGAO_FILESYSTEM

C:\vzx_cftpp3x.zip

SFGAO_CANCOPY
SFGAO_CANMOVE
SFGAO_CANLINK
SFGAO_CANRENAME
SFGAO_CANDELETE
SFGAO_HASPROPSHEET
SFGAO_DROPTARGET
SFGAO_CANMONIKER
SFGAO_BROWSABLE
SFGAO_FOLDER
SFGAO_FILESYSTEM

 
 
 

IShellFolder

Post by niko » Tue, 10 Jun 2003 21:17:31



Quote:>> pSFParent->BindToObject(lokal, NULL, IID_IShellFolder,
>> (void**)&pIFolder);

>Nope, doesn't work for me. I guess something on my system is hosed.

i had it the other way round once; i could read zipfolders but not windows
explorer!
if you download any of my (2x)-(x2)explorer you'll establish whether there's
something wrong with your zipfolder registration or not. Try regsvr32
zipfldr.dll

Quote:> > zip files don't show up when doing a SHCONTF_FOLDERS enumeration

>So all you have to do to avoid unintentionally descending into zip folders
is to
> enumerate folders with SHCONTF_FOLDERS, like you're supposed to - right?

yes, that works swell for trees

---
www.netez.com/2xExplorer

 
 
 

1. Caching IShellFolders for IShellFolder::BindToObject

Hi,
I have implemented a cache for storing IShellFolders that are created by
explorer calling IShellFolder::BindToObject() in my multi level foldering
NSE. Basically I have a hashtable that is keyed on a string representation
of the pidl of the IShellFolder. Each time BingToObject is called I try to
obtain an IShellFolder from the cache by the string representation of the
absolute pidl constructed from the pidl passed into BindToObject. If the
cache does not hold the requested IShellFolder then I create a new one, add
it to the cache and pass it back out of the function. Debugging this things
seem to work fine and IShellFolders are being taken from the cache and given
to explorer however when I try to go into a subfolder in the NSE explorer
does the work to bind to the new IShellFolder but never calls the
IShellFolder::CreateViewObject method, this means the namespace is still
sitting in the same folder view as before.

Anyone got any ideas?

Andy

2. Access to hash.web denied

3. IShellFolder::ParseDisplayName unknown

4. comp.par/comp.sys.super (16/28) FAQ

5. XP IShellFolder::EnumObjects bug

6. WANTED FAQ "comp.benchmarks", "SPEC"

7. How to register a object(DLL) implemented the IShellFolder interface?

8. Cannot Print Tiles v5.0

9. IShellFolder marshaling

10. IShellFolder::ParseDisplayName called with strange arguments

11. Win98 and IShellFolder

12. IShellFolder and NT4

13. How to differenciate ZIP files from the regular folders on XP using IShellFolder