|
|
|
date: Wed, 4 Jun 2008 13:23:28 +0300,
group: microsoft.public.platformsdk.shell
back
RE: Thumbnail view/NSE on Vista
Hello Andrew,
According to the description, your custom namespace extension works
correctly under Windows XP, and the previous, and we are in the process of
making it Vista-compatible. Under all operating systems except for Vista,
the IShellFolder.GetUIObjectOf() method is called for every item in the
namespace, requesting IID_IExtractImage. Under Vista, we do not receive any
requests for IID_IExtractImage. If I misunderstood your question, please
point it out.
Without you code snippets, it's not easy for me to quickly tell what goes
wrong with it. The default shell view (DefView) performs the following
steps when trying to obtain a thumbnail image for an item in the view
window:
1. QI the shell folder (IShellFolder) for its IThumbnailHandlerFactory.
2. If the shell folder supports IThumbnailHandlerFactory, DefView will
first call IThumbnailHandlerFactory::GetThumbnailHandler to obtain an
IThumbnailProvider (new) interface or an IExtractImage (legacy) interface
if IThumbnailProvider is not supported.
3. If the shell folder does not support IThumbnailHandlerFactory, DefView
will call IShellFolder::GetUIObjectOf to obtain an IExtractImage interface.
4. A stock image is generated if DefView cannot obtain an
IThumbnailProvoder or IExtractImage interface.
In conclusion, the folder needs to implement IThumbnailHandlerFactory and
return IThumbnailProvider from there. See the MSDN article:
http://msdn.microsoft.com/en-us/library/bb774616(VS.85).aspx
http://msdn.microsoft.com/en-us/library/bb774618(VS.85).aspx
Andrew, did you do it?
If it still does not help, my suggestion is we can start trouble-shooting
with some IThumbnailProvider sample codes, and compare the workable
examples with our codes to find out the differences. E.g. the
"IThumbnailProvider Sample" in
http://msdn.microsoft.com/en-us/library/ms716696.aspx. I am building
another sample project for you at the moment. I will get back to you as
soon as possible.
Regards,
Jialiang Ge (jialge@online.microsoft.com, remove 'online.')
Microsoft Online Community Support
Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
msdnmg@microsoft.com.
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
date: Thu, 05 Jun 2008 08:06:37 GMT
author: (Jialiang Ge [MSFT])
Re: Thumbnail view/NSE on Vista
Jialiang
Your assessment below is correct. The NSE works in XP, but doesn't work in
Vista - with respect to thumbnails.
My NSE's folder object supports IThumbnailHandlerFactory, and I have
confirmed this by coding a test app to call QI with this IID. However, when
my folder is viewed in DefView, I never get the QI for that interface. None
of the other steps happen in my NSE either, so I guess DefView is aborting
the thumbnail extraction earlier - probably because another interface that
I'm not supporting is being called for.
However, watching the QI and GetUIObjectOf calls go through, I can't work
out what this might be.
I've read the articles you quote - nothing there helps.
--
Andrew le Bihan
Robert McNeel and Associates
www.rhino3d.com
www.mcneel.com
"Jialiang Ge [MSFT]" wrote in message
news:GVZwbMuxIHA.4564@TK2MSFTNGHUB02.phx.gbl...
> Hello Andrew,
>
> According to the description, your custom namespace extension works
> correctly under Windows XP, and the previous, and we are in the process of
> making it Vista-compatible. Under all operating systems except for Vista,
> the IShellFolder.GetUIObjectOf() method is called for every item in the
> namespace, requesting IID_IExtractImage. Under Vista, we do not receive
> any
> requests for IID_IExtractImage. If I misunderstood your question, please
> point it out.
>
> Without you code snippets, it's not easy for me to quickly tell what goes
> wrong with it. The default shell view (DefView) performs the following
> steps when trying to obtain a thumbnail image for an item in the view
> window:
>
> 1. QI the shell folder (IShellFolder) for its IThumbnailHandlerFactory.
> 2. If the shell folder supports IThumbnailHandlerFactory, DefView will
> first call IThumbnailHandlerFactory::GetThumbnailHandler to obtain an
> IThumbnailProvider (new) interface or an IExtractImage (legacy) interface
> if IThumbnailProvider is not supported.
> 3. If the shell folder does not support IThumbnailHandlerFactory, DefView
> will call IShellFolder::GetUIObjectOf to obtain an IExtractImage
> interface.
> 4. A stock image is generated if DefView cannot obtain an
> IThumbnailProvoder or IExtractImage interface.
>
> In conclusion, the folder needs to implement IThumbnailHandlerFactory and
> return IThumbnailProvider from there. See the MSDN article:
> http://msdn.microsoft.com/en-us/library/bb774616(VS.85).aspx
> http://msdn.microsoft.com/en-us/library/bb774618(VS.85).aspx
> Andrew, did you do it?
>
> If it still does not help, my suggestion is we can start trouble-shooting
> with some IThumbnailProvider sample codes, and compare the workable
> examples with our codes to find out the differences. E.g. the
> "IThumbnailProvider Sample" in
> http://msdn.microsoft.com/en-us/library/ms716696.aspx. I am building
> another sample project for you at the moment. I will get back to you as
> soon as possible.
>
> Regards,
> Jialiang Ge (jialge@online.microsoft.com, remove 'online.')
> Microsoft Online Community Support
>
> Delighting our customers is our #1 priority. We welcome your comments and
> suggestions about how we can improve the support we provide to you. Please
> feel free to let my manager know what you think of the level of service
> provided. You can send feedback directly to my manager at:
> msdnmg@microsoft.com.
>
> ==================================================
> Get notification to my posts through email? Please refer to
> http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
> ications.
>
> Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
> where an initial response from the community or a Microsoft Support
> Engineer within 1 business day is acceptable. Please note that each follow
> up response may take approximately 2 business days as the support
> professional working with you may need further investigation to reach the
> most efficient resolution. The offering is not appropriate for situations
> that require urgent, real-time or phone-based interactions or complex
> project analysis and dump analysis issues. Issues of this nature are best
> handled working with a dedicated Microsoft Support Engineer by contacting
> Microsoft Customer Support Services (CSS) at
> http://msdn.microsoft.com/subscriptions/support/default.aspx.
> ==================================================
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
>
date: Thu, 5 Jun 2008 14:59:36 +0300
author: Andrew le Bihan am
Re: Thumbnail view/NSE on Vista
Hello Andrew,
> My NSE's folder object supports IThumbnailHandlerFactory, and I have
> confirmed this by coding a test app to call QI with this IID.
Would you please send this test project to my mailbox: jialge@microsoft.com?
I will check whether or not I can reproduce it on my side.
Thanks
Jialiang Ge (jialge@online.microsoft.com, remove 'online.')
Microsoft Online Community Support
=================================================
Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
msdnmg@microsoft.com.
This posting is provided "AS IS" with no warranties, and confers no rights.
=================================================
"Andrew le Bihan" <andylebihan@newsgroup.nospam> wrote in message
news:OEYpoOwxIHA.4864@TK2MSFTNGP06.phx.gbl...
> Jialiang
>
> Your assessment below is correct. The NSE works in XP, but doesn't work
> in Vista - with respect to thumbnails.
>
> My NSE's folder object supports IThumbnailHandlerFactory, and I have
> confirmed this by coding a test app to call QI with this IID. However,
> when my folder is viewed in DefView, I never get the QI for that
> interface. None of the other steps happen in my NSE either, so I guess
> DefView is aborting the thumbnail extraction earlier - probably because
> another interface that I'm not supporting is being called for.
>
> However, watching the QI and GetUIObjectOf calls go through, I can't work
> out what this might be.
>
> I've read the articles you quote - nothing there helps.
>
> --
> Andrew le Bihan
> Robert McNeel and Associates
> www.rhino3d.com
> www.mcneel.com
>
> "Jialiang Ge [MSFT]" wrote in message
> news:GVZwbMuxIHA.4564@TK2MSFTNGHUB02.phx.gbl...
>> Hello Andrew,
>>
>> According to the description, your custom namespace extension works
>> correctly under Windows XP, and the previous, and we are in the process
>> of
>> making it Vista-compatible. Under all operating systems except for Vista,
>> the IShellFolder.GetUIObjectOf() method is called for every item in the
>> namespace, requesting IID_IExtractImage. Under Vista, we do not receive
>> any
>> requests for IID_IExtractImage. If I misunderstood your question, please
>> point it out.
>>
>> Without you code snippets, it's not easy for me to quickly tell what goes
>> wrong with it. The default shell view (DefView) performs the following
>> steps when trying to obtain a thumbnail image for an item in the view
>> window:
>>
>> 1. QI the shell folder (IShellFolder) for its IThumbnailHandlerFactory.
>> 2. If the shell folder supports IThumbnailHandlerFactory, DefView will
>> first call IThumbnailHandlerFactory::GetThumbnailHandler to obtain an
>> IThumbnailProvider (new) interface or an IExtractImage (legacy) interface
>> if IThumbnailProvider is not supported.
>> 3. If the shell folder does not support IThumbnailHandlerFactory, DefView
>> will call IShellFolder::GetUIObjectOf to obtain an IExtractImage
>> interface.
>> 4. A stock image is generated if DefView cannot obtain an
>> IThumbnailProvoder or IExtractImage interface.
>>
>> In conclusion, the folder needs to implement IThumbnailHandlerFactory and
>> return IThumbnailProvider from there. See the MSDN article:
>> http://msdn.microsoft.com/en-us/library/bb774616(VS.85).aspx
>> http://msdn.microsoft.com/en-us/library/bb774618(VS.85).aspx
>> Andrew, did you do it?
>>
>> If it still does not help, my suggestion is we can start trouble-shooting
>> with some IThumbnailProvider sample codes, and compare the workable
>> examples with our codes to find out the differences. E.g. the
>> "IThumbnailProvider Sample" in
>> http://msdn.microsoft.com/en-us/library/ms716696.aspx. I am building
>> another sample project for you at the moment. I will get back to you as
>> soon as possible.
>>
>> Regards,
>> Jialiang Ge (jialge@online.microsoft.com, remove 'online.')
>> Microsoft Online Community Support
>>
>> Delighting our customers is our #1 priority. We welcome your comments and
>> suggestions about how we can improve the support we provide to you.
>> Please
>> feel free to let my manager know what you think of the level of service
>> provided. You can send feedback directly to my manager at:
>> msdnmg@microsoft.com.
>>
>> ==================================================
>> Get notification to my posts through email? Please refer to
>> http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
>> ications.
>>
>> Note: The MSDN Managed Newsgroup support offering is for non-urgent
>> issues
>> where an initial response from the community or a Microsoft Support
>> Engineer within 1 business day is acceptable. Please note that each
>> follow
>> up response may take approximately 2 business days as the support
>> professional working with you may need further investigation to reach the
>> most efficient resolution. The offering is not appropriate for situations
>> that require urgent, real-time or phone-based interactions or complex
>> project analysis and dump analysis issues. Issues of this nature are best
>> handled working with a dedicated Microsoft Support Engineer by contacting
>> Microsoft Customer Support Services (CSS) at
>> http://msdn.microsoft.com/subscriptions/support/default.aspx.
>> ==================================================
>> This posting is provided "AS IS" with no warranties, and confers no
>> rights.
>>
>
date: Fri, 6 Jun 2008 00:26:57 +0800
author: Jialiang Ge [MSFT]
Re: Thumbnail view/NSE on Vista
Jialiang
I can't really send the project because it tests my NSE's ShellFolder object
directly - in other words, it requires my NSE to be installed before
anything will work. If need be, we can organise to get you a working
version of the NSE on your side.
The test code to QI the ShellFolder for IThumbnailHandlerFactory is much as
you would expect:
wchar_t* wszPathToRoot =
L"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{C60E5934-92E5-4480-BC05-B1DA38AFDF49}";
IShellFolder* pDesktop;
if(SUCCEEDED(SHGetDesktopFolder(&pDesktop)))
{
DWORD dwEaten = 0;
DWORD dwAttr = 0;
LPITEMIDLIST pidl = NULL;
if(SUCCEEDED(pDesktop->ParseDisplayName(0, NULL, wszPathToRoot, &dwEaten,
&pidl, &dwAttr)))
{
IShellFolder* pSF;
if(SUCCEEDED(pDesktop->BindToObject(pidl, 0, IID_IShellFolder,
(LPVOID*)&pSF)))
{
IThumbnailHandlerFactory* pTHF;
if(SUCCEEDED(pSF->QueryInterface(IID_IThumbnailHandlerFactory,
(LPVOID*)&pTHF)))
{
pTHF->Release();
}
pSF->Release();
}
::ILFree(pidl);
}
pDesktop->Release();
}
--
Andrew le Bihan
Robert McNeel and Associates
www.rhino3d.com
www.mcneel.com
"Jialiang Ge [MSFT]" wrote in message
news:%23U7M$jyxIHA.4772@TK2MSFTNGP03.phx.gbl...
> Hello Andrew,
>
>> My NSE's folder object supports IThumbnailHandlerFactory, and I have
>> confirmed this by coding a test app to call QI with this IID.
> Would you please send this test project to my mailbox:
> jialge@microsoft.com? I will check whether or not I can reproduce it on my
> side.
>
> Thanks
> Jialiang Ge (jialge@online.microsoft.com, remove 'online.')
> Microsoft Online Community Support
>
> =================================================
> Delighting our customers is our #1 priority. We welcome your comments and
> suggestions about how we can improve the support we provide to you. Please
> feel free to let my manager know what you think of the level of service
> provided. You can send feedback directly to my manager at:
> msdnmg@microsoft.com.
>
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
> =================================================
>
> "Andrew le Bihan" <andylebihan@newsgroup.nospam> wrote in message
> news:OEYpoOwxIHA.4864@TK2MSFTNGP06.phx.gbl...
>> Jialiang
>>
>> Your assessment below is correct. The NSE works in XP, but doesn't work
>> in Vista - with respect to thumbnails.
>>
>> My NSE's folder object supports IThumbnailHandlerFactory, and I have
>> confirmed this by coding a test app to call QI with this IID. However,
>> when my folder is viewed in DefView, I never get the QI for that
>> interface. None of the other steps happen in my NSE either, so I guess
>> DefView is aborting the thumbnail extraction earlier - probably because
>> another interface that I'm not supporting is being called for.
>>
>> However, watching the QI and GetUIObjectOf calls go through, I can't work
>> out what this might be.
>>
>> I've read the articles you quote - nothing there helps.
>>
>> --
>> Andrew le Bihan
>> Robert McNeel and Associates
>> www.rhino3d.com
>> www.mcneel.com
>>
>> "Jialiang Ge [MSFT]" wrote in message
>> news:GVZwbMuxIHA.4564@TK2MSFTNGHUB02.phx.gbl...
>>> Hello Andrew,
>>>
>>> According to the description, your custom namespace extension works
>>> correctly under Windows XP, and the previous, and we are in the process
>>> of
>>> making it Vista-compatible. Under all operating systems except for
>>> Vista,
>>> the IShellFolder.GetUIObjectOf() method is called for every item in the
>>> namespace, requesting IID_IExtractImage. Under Vista, we do not receive
>>> any
>>> requests for IID_IExtractImage. If I misunderstood your question, please
>>> point it out.
>>>
>>> Without you code snippets, it's not easy for me to quickly tell what
>>> goes
>>> wrong with it. The default shell view (DefView) performs the following
>>> steps when trying to obtain a thumbnail image for an item in the view
>>> window:
>>>
>>> 1. QI the shell folder (IShellFolder) for its IThumbnailHandlerFactory.
>>> 2. If the shell folder supports IThumbnailHandlerFactory, DefView will
>>> first call IThumbnailHandlerFactory::GetThumbnailHandler to obtain an
>>> IThumbnailProvider (new) interface or an IExtractImage (legacy)
>>> interface
>>> if IThumbnailProvider is not supported.
>>> 3. If the shell folder does not support IThumbnailHandlerFactory,
>>> DefView
>>> will call IShellFolder::GetUIObjectOf to obtain an IExtractImage
>>> interface.
>>> 4. A stock image is generated if DefView cannot obtain an
>>> IThumbnailProvoder or IExtractImage interface.
>>>
>>> In conclusion, the folder needs to implement IThumbnailHandlerFactory
>>> and
>>> return IThumbnailProvider from there. See the MSDN article:
>>> http://msdn.microsoft.com/en-us/library/bb774616(VS.85).aspx
>>> http://msdn.microsoft.com/en-us/library/bb774618(VS.85).aspx
>>> Andrew, did you do it?
>>>
>>> If it still does not help, my suggestion is we can start
>>> trouble-shooting
>>> with some IThumbnailProvider sample codes, and compare the workable
>>> examples with our codes to find out the differences. E.g. the
>>> "IThumbnailProvider Sample" in
>>> http://msdn.microsoft.com/en-us/library/ms716696.aspx. I am building
>>> another sample project for you at the moment. I will get back to you as
>>> soon as possible.
>>>
>>> Regards,
>>> Jialiang Ge (jialge@online.microsoft.com, remove 'online.')
>>> Microsoft Online Community Support
>>>
>>> Delighting our customers is our #1 priority. We welcome your comments
>>> and
>>> suggestions about how we can improve the support we provide to you.
>>> Please
>>> feel free to let my manager know what you think of the level of service
>>> provided. You can send feedback directly to my manager at:
>>> msdnmg@microsoft.com.
>>>
>>> ==================================================
>>> Get notification to my posts through email? Please refer to
>>> http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
>>> ications.
>>>
>>> Note: The MSDN Managed Newsgroup support offering is for non-urgent
>>> issues
>>> where an initial response from the community or a Microsoft Support
>>> Engineer within 1 business day is acceptable. Please note that each
>>> follow
>>> up response may take approximately 2 business days as the support
>>> professional working with you may need further investigation to reach
>>> the
>>> most efficient resolution. The offering is not appropriate for
>>> situations
>>> that require urgent, real-time or phone-based interactions or complex
>>> project analysis and dump analysis issues. Issues of this nature are
>>> best
>>> handled working with a dedicated Microsoft Support Engineer by
>>> contacting
>>> Microsoft Customer Support Services (CSS) at
>>> http://msdn.microsoft.com/subscriptions/support/default.aspx.
>>> ==================================================
>>> This posting is provided "AS IS" with no warranties, and confers no
>>> rights.
>>>
>>
>
>
date: Fri, 6 Jun 2008 12:05:00 +0300
author: Andrew le Bihan am
Re: Thumbnail view/NSE on Vista
J
Nope...sorry...it doesn't make any difference. I'd already thought of that.
Incidently, I'm getting QIs for IObjectWithBackReferences,
IPropertyStoreFactory, and IPropertyStore (asking for the last modified date
and thumbnail id). I can see, using the symbols, that all of this is coming
from the thumbnailcache code, so clearly something's happening - but no sign
of any calls to the interfaces we're talking about.
--
Andrew le Bihan
Robert McNeel and Associates
www.rhino3d.com
www.mcneel.com
"Jialiang Ge [MSFT]" wrote in message
news:qqYUl$7xIHA.2252@TK2MSFTNGHUB02.phx.gbl...
> Hello Andrew,
>
> I think I am back with some good news. I find out a possible reason for
> your symptom: the thumbnail interfaces won't be queried if Vista caches
> them. When a thumbnail is needed, Windows first checks the thumbnail cache
> for the image. The thumbnail extractor is called if the image is not found
> in the cache. It is also called when the last modified time of the image
> is
> later than that of the copy in the cache.
> http://msdn.microsoft.com/en-us/library/cc144118.aspx#cache
>
> Therefore, Andrew, would you clear the cache of thumbnail in your Vista
> system with the Accessories->"Disk Cleanup" utility? Please also make sure
> "Preview Thumbnails" is turned on in Windows Explorer:
> http://www.vistax64.com/tutorials/73715-thumbnails-windows-explorer.html.
> After then, run your NSE and please let me know whether it works now.
>
> Regards,
> Jialiang Ge (jialge@online.microsoft.com, remove 'online.')
> Microsoft Online Community Support
>
> =================================================
> Delighting our customers is our #1 priority. We welcome your comments and
> suggestions about how we can improve the support we provide to you. Please
> feel free to let my manager know what you think of the level of service
> provided. You can send feedback directly to my manager at:
> msdnmg@microsoft.com.
>
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
> =================================================
>
date: Mon, 9 Jun 2008 14:44:30 +0300
author: Andrew le Bihan am
Re: Thumbnail view/NSE on Vista
Timo
Yup - IShellFolder2 is supported. In case it helps, here's my list of
supported interfaces:
COM_INTERFACE_ENTRY(IMyShellFolder)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY_IID(IID_IShellFolder2, IShellFolder2)
COM_INTERFACE_ENTRY_IID(IID_IShellFolder, IShellFolder)
COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2, IPersistFolder2)
COM_INTERFACE_ENTRY_IID(IID_IPersistFolder, IPersistFolder)
COM_INTERFACE_ENTRY_IID(IID_IPersistIDList, IPersistIDList)
COM_INTERFACE_ENTRY_IID(IID_IShellIcon, IShellIcon)
//COM_INTERFACE_ENTRY_IID(IID_ICategoryProvider, ICategoryProvider)
COM_INTERFACE_ENTRY_IID(IID_IShellDetails, IShellDetails)
COM_INTERFACE_ENTRY(IThumbnailHandlerFactory)
COM_INTERFACE_ENTRY(IPropertyStore)
//COM_INTERFACE_ENTRY(IPropertyStoreFactory)
(The commented-out ones are in-and-out during testing)
--
Andrew le Bihan
Robert McNeel and Associates
www.rhino3d.com
www.mcneel.com
"Timo Kunze" wrote in message
news:%23k3o8liyIHA.2184@TK2MSFTNGP02.phx.gbl...
> Do you implement IShellFolder2? I thought I've read somewhere that Vista
> won't query for thumbnails if you don't implement it, but I'm not sure.
>
> Timo
> --
> www.TimoSoft-Software.de - Unicode controls for VB6
> "Those who sacrifice freedom for safety deserve neither."
> "Demokratie ist per Definition unsicher. Ihr Schutz entsteht aus der
> Ãberzeugung, dass die demokratischen Kräfte überwiegen und sich â auf
> demokratischem Wege â durchsetzen."
date: Mon, 9 Jun 2008 16:01:37 +0300
author: Andrew le Bihan am
|
|