Win98 and IShellFolder

Win98 and IShellFolder

Post by lallo » Wed, 05 Mar 2003 22:10:40



Hello,

I have implemented IShellFolder::CreateViewObject and done as:

if (riid == IID_IShellView)
{
  CMyDialog dlg;
  dlg.DoModal();
  return E_NOTIMPL;

Quote:}

with attributes 0x20000110 (because I also implemented IDropTarget)

This was working fine on XP and 2k.
But on Win98 when I double click on that desktop icon, my dialog shows
but after that IE gets launched and says: "No page to display"

How can I solve this? Or at least attach a double click even to my
IShellFolder desktop item so that when clicked it shows a dialog.

Thanks.

 
 
 

Win98 and IShellFolder

Post by lallo » Thu, 06 Mar 2003 23:03:52


I have looked into OutLook's icon and checked its configuration...and
finally solved it.

I should not set attributes to 0x20000000 unless i really want to
implement IShellView ...

I have changed attributes only to 0x110 and added Shell\open\command
and put my application path!
Now I have the DrapDrop implemented and the double-click will launch
my exe instead!

 
 
 

Win98 and IShellFolder

Post by Henk Devo » Fri, 07 Mar 2003 04:06:40


Maybe it would help to return success instead of an error?


Quote:> Hello,

> I have implemented IShellFolder::CreateViewObject and done as:

> if (riid == IID_IShellView)
> {
>   CMyDialog dlg;
>   dlg.DoModal();
>   return E_NOTIMPL;
> }
> with attributes 0x20000110 (because I also implemented IDropTarget)

> This was working fine on XP and 2k.
> But on Win98 when I double click on that desktop icon, my dialog shows
> but after that IE gets launched and says: "No page to display"

> How can I solve this? Or at least attach a double click even to my
> IShellFolder desktop item so that when clicked it shows a dialog.

> Thanks.

 
 
 

Win98 and IShellFolder

Post by Paul Bake » Fri, 07 Mar 2003 07:45:46


Is this a shell namespace extension? You return E_NOTIMPL to
CreateViewObject and expect it to show an actual view?

Paul


> Maybe it would help to return success instead of an error?



> > Hello,

> > I have implemented IShellFolder::CreateViewObject and done as:

> > if (riid == IID_IShellView)
> > {
> >   CMyDialog dlg;
> >   dlg.DoModal();
> >   return E_NOTIMPL;
> > }
> > with attributes 0x20000110 (because I also implemented IDropTarget)

> > This was working fine on XP and 2k.
> > But on Win98 when I double click on that desktop icon, my dialog shows
> > but after that IE gets launched and says: "No page to display"

> > How can I solve this? Or at least attach a double click even to my
> > IShellFolder desktop item so that when clicked it shows a dialog.

> > Thanks.

 
 
 

Win98 and IShellFolder

Post by lallo » Sat, 08 Mar 2003 16:49:19


Quote:

> > > if (riid == IID_IShellView)
> > > {
> > >   CMyDialog dlg;
> > >   dlg.DoModal();
> > >   return E_NOTIMPL;
> > > }

as you see after showing my own dialog, I returned E_NOTIMPL ..because
I am not implementing or going to create a list view for that
request...

I never tried returning S_OK but I suspect it wouldn't help either...

But now I got that solved.

 
 
 

Win98 and IShellFolder

Post by Paul Bake » Sun, 09 Mar 2003 03:21:54


I am not sure I am understanding you correctly.

You said "I never tried returning S_OK but I suspect it wouldn't help
either..." Did you meant that you never tried returning S_OK because you
*suspected* that it would not work?

You said "But now I got that solved.". Did you mean that now you did try
returning S_OK and it did what you expected?

Although in general, it is reasonable to return E_NOTIMPL if a function is
not implemented, it seems like this particular function ought to be
required. It doesn't make any sense to me that you would have a folder that
has absolutely no view associated with it. It either represents *something*
or has *something* in it. Why is it there if it has no view?

Paul


Quote:

> > > > if (riid == IID_IShellView)
> > > > {
> > > >   CMyDialog dlg;
> > > >   dlg.DoModal();
> > > >   return E_NOTIMPL;
> > > > }

> as you see after showing my own dialog, I returned E_NOTIMPL ..because
> I am not implementing or going to create a list view for that
> request...

> I never tried returning S_OK but I suspect it wouldn't help either...

> But now I got that solved.

 
 
 

Win98 and IShellFolder

Post by lallo » Thu, 13 Mar 2003 23:14:54


Hello Paul,

Quote:> You said "I never tried returning S_OK but I suspect it wouldn't help
> either..." Did you meant that you never tried returning S_OK because you
> *suspected* that it would not work?

Yes, I never tried S_OK because I tried everything else and they
didn't work...So I never gave S_OK a chance.

Quote:> You said "But now I got that solved.". Did you mean that now you did try
> returning S_OK and it did what you expected?

No, I solved it as I previously outlined.
By changing my IShellfolder's attributes to 0x110 and adding a
"Shell\command\open" key and there I put a path to my executable...

Quote:> Although in general, it is reasonable to return E_NOTIMPL if a function is
> not implemented, it seems like this particular function ought to be
> required. It doesn't make any sense to me that you would have a folder that
> has absolutely no view associated with it. It either represents *something*
> or has *something* in it. Why is it there if it has no view?

My whole goal was to have a shellfolder that has no view, but one can
drag/drop files to it , and when dbl-clicked it should show a dialog.

Elias,

 
 
 

Win98 and IShellFolder

Post by Paul Bake » Fri, 14 Mar 2003 00:40:03


Okay, thanks, I understand now.

Paul


Quote:> Hello Paul,

> > You said "I never tried returning S_OK but I suspect it wouldn't help
> > either..." Did you meant that you never tried returning S_OK because you
> > *suspected* that it would not work?
> Yes, I never tried S_OK because I tried everything else and they
> didn't work...So I never gave S_OK a chance.

> > You said "But now I got that solved.". Did you mean that now you did try
> > returning S_OK and it did what you expected?
> No, I solved it as I previously outlined.
> By changing my IShellfolder's attributes to 0x110 and adding a
> "Shell\command\open" key and there I put a path to my executable...

> > Although in general, it is reasonable to return E_NOTIMPL if a function
is
> > not implemented, it seems like this particular function ought to be
> > required. It doesn't make any sense to me that you would have a folder
that
> > has absolutely no view associated with it. It either represents
*something*
> > or has *something* in it. Why is it there if it has no view?

> My whole goal was to have a shellfolder that has no view, but one can
> drag/drop files to it , and when dbl-clicked it should show a dialog.

> Elias,