gpt4 book ai didi

c++ - 缩略图提供程序不工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:40:44 30 4
gpt4 key购买 nike

我正在尝试为我们的自定义文件类型编写一个 Windows 资源管理器缩略图处理程序。我在预览面板上运行良好,但在缩略图上运行时遇到了问题。

Windows 似乎甚至没有尝试调用 DllGetClassObject 入口点。

在我继续之前,请注意我使用的是 Windows 7 和非托管 C++。

我在注册表中注册了以下值:

HKCR\CLSID\<my guid>
HKCR\CLSID\<my guid>\InprocServer32 (default value = path to my DLL)
HKCR\CLSID\<my guid>\InprocServer32\ThreadingModel (value = "Apartment")
HKCR\.<my ext>\shellex\{E357FCCD-A995-4576-B01F-234630154E96} (value = my guid)

我也尝试过使用 Win SDK 示例,但它不起作用。还有本文中的示例项目 ( http://www.codemonkeycodes.com/2010/01/11/ithumbnailprovider-re-visited/ ),但这不起作用。

我是 shell 编程的新手,所以不太确定调试它的最佳方法。我已经尝试将调试器附加到 explorer.exe,但这似乎不起作用(断点被禁用,并且我的 OutputDebugStrings 都没有显示在输出窗口中)。请注意,我尝试按照 WinSDK 文档中的描述在注册表中设置“DesktopProcess”以调试 shell,但我仍然只在任务管理器中看到一个 explorer.exe - 所以“可能”是我不能的原因调试它??

如有任何帮助,我们将不胜感激!

问候,丹.

最佳答案

自从您提到我的博客 (codemonkeycodes.com) 后,我偶然发现了这一点。

你对我的 sample 有什么问题?您是否使用 regsvr32 注册了 DLL?您使用的是什么版本的 Windows 7,32 位还是 64 位?


更新:

我不能说什么适合或不适合你。我刚刚从我的站点下载了示例,按照说明更改了功能STDMETHODIMP CThumbnailProvider::GetThumbnail... 看起来像

{
*phbmp = NULL;
*pdwAlpha = WTSAT_UNKNOWN;

ULONG_PTR token;
GdiplusStartupInput input;
if (Ok == GdiplusStartup(&token, &input, NULL))
{
//gcImage.LogBuffer();
Bitmap * pBitmap = new Bitmap(188, 141);
if( pBitmap )
{
Color color(0, 0, 0);
pBitmap->GetHBITMAP(color, phbmp);
}
}

GdiplusShutdown(token);

if( *phbmp != NULL )
return NOERROR;

return E_NOTIMPL;
}

我注册了 DLL,然后创建了一个具有适当扩展名的新文件,然后,我有了一个漂亮的黑色缩略图。

希望能帮到你。也许您想通过电子邮件将您的代码发送给我?

关于c++ - 缩略图提供程序不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2737921/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com