关于vista 下的编程问题,望各位高手关注下,附原代码。也请袁大哥进来帮忙看下,Thanks

kingstar568 2006-10-30 09:47:29
是这样的,我们想给一种新得文件格式给予缩略图,原先在vista之前一般用IExtractImage 来实现,在vista下出现新得结构IThumbnailProvider. 我们想用新接口来实现这一功能,但是程序中的Initialize始终不被调用。想问下
1,是否与原来的IExtractImage实现方式有所不同?
2,注册表修改的信息是否与原来的有所不同?
代码如下:

///////////////////////////////////NewThumbnail.cpp////////////////////////////////////
HRESULT CCNewThumbnail::Initialize( IStream *pStream,DWORD grfMode)
{
//这个函数没有被调用。导致GetThumbnail没被初始化。
return S_OK;
}
HRESULT CCNewThumbnail::GetThumbnail(UINT cx,HBITMAP *phbmp,WTS_ALPHATYPE *pdwAlpha)
{

*phbmp = ::LoadBitmap(NULL,MAKEINTRESOURCE(IDB_BITMAP));
*pdwAlpha = WTSAT_ARGB;

return S_OK;
}
HRESULT CCNewThumbnail::SetFocus(VOID)
{
return S_OK;
}
HRESULT CCNewThumbnail::QueryFocus(HWND *phwnd)
{
return S_OK;
}
HRESULT CCNewThumbnail::SetRect(const RECT *prc)
{
return S_OK;
}
HRESULT CCNewThumbnail::DoPreview()
{
return S_OK;
}
HRESULT CCNewThumbnail::Unload()
{
return S_OK;
}
HRESULT CCNewThumbnail::SetWindow(HWND hwnd,const RECT *prc)
{
return S_OK;
}
////////////////////////NewThumbnail.rgs////////////////////////////
HKCR
{
NewThumbnailTest.CNewThumbnail.1 = s 'CNewThumbnail Class'
{
CLSID = s '{F39D9D33-85D5-4AAA-9486-347B51B3792D}'
}
NewThumbnailTest.CNewThumbnail = s 'CNewThumbnail Class'
{
CLSID = s '{F39D9D33-85D5-4AAA-9486-347B51B3792D}'
CurVer = s 'NewThumbnailTest.CNewThumbnail.1'
}
NoRemove CLSID
{
ForceRemove {F39D9D33-85D5-4AAA-9486-347B51B3792D} = s 'CNewThumbnail Class'
{
ProgID = s 'NewThumbnailTest.CNewThumbnail.1'
VersionIndependentProgID = s 'NewThumbnailTest.CNewThumbnail'
ForceRemove 'Programmable'
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment'
}
val AppID = s '%APPID%'
'TypeLib' = s '{63B30B71-B44B-4265-B20F-7872A5F1D148}'
}
}
NoRemove .mm
{
PersistentHandler = s '{98DE59A0-D175-11CD-A7BD-00006B827D94}'

shellex
{
{8895b1c6-b41f-4c1c-a562-0d564250836f} = s '{F39D9D33-85D5-4AAA-9486-347B51B3792D}'
}
}
}
////////////////////////////////////////////////////////////////////////////////
问的地方不是很精确,往斑竹高抬贵手。只是这个问题比较急,跟microsoft联系也是象踢球一样踢来踢去的。有资料的提供点资料。
谢谢!
...全文
871 51 打赏 收藏 转发到动态 举报
写回复
用AI写文章
51 条回复
切换为时间正序
请发表友善的回复…
发表回复
fellowcheng 2006-11-07
  • 打赏
  • 举报
回复
解决就好
kingstar568 2006-11-07
  • 打赏
  • 举报
回复
问题解决了,我们下了vista RC2的sdk 上面的例子程序可以通过测试了。谢谢各位,下班前揭帖。
kingstar568 2006-11-02
  • 打赏
  • 举报
回复
上午试了下,还是不行。还是IInitializeWithStream 调不起来
lonerdo 2006-11-02
  • 打赏
  • 举报
回复
_V_ 2006-11-02
  • 打赏
  • 举报
回复
.........
kingstar568 2006-11-02
  • 打赏
  • 举报
回复
马山回来报告结果

----------
更正: 马上回来报告结果
kingstar568 2006-11-02
  • 打赏
  • 举报
回复
非常感谢crystal_heart(笑看风云) 提供的资料,我正在试。
马山回来报告结果
OracleRoob 2006-11-02
  • 打赏
  • 举报
回复
接分
kingstar568 2006-11-02
  • 打赏
  • 举报
回复
是的,的确如此。
谢谢你crystal_heart(笑看风云) 的关注跟提供的帮助
crystal_heart 2006-11-02
  • 打赏
  • 举报
回复
http://windowssdk.msdn.microsoft.com/en-us/library/aa361575.aspx

Registering Your Thumbnail Provider
Registration of a thumbnail provider is based on standard file associations.

The GUID for the thumbnail handler Shell extension is E357FCCD-A995-4576-B01F-234630154E96.


看起来应该是在Shell extension做的东西,不是HKCR/.mm/shellex
Shell extension之前没有做过,你自己找多些资料吧。

Creating Shell Extension Handlers在这里有说明
http://windowssdk.msdn.microsoft.com/en-us/library/ms649575.aspx
ccccffff 2006-11-01
  • 打赏
  • 举报
回复
不懂
kingsang 2006-11-01
  • 打赏
  • 举报
回复
ding
icehouse 2006-11-01
  • 打赏
  • 举报
回复
up!
Bennyatt 2006-11-01
  • 打赏
  • 举报
回复
那个。。。。。。

vista 是个啥子东西呀??

现在开发工具太多了,我都没见过,摸都没摸过。。。

谁让我摸摸呀。。
zhenghaibingood 2006-11-01
  • 打赏
  • 举报
回复
xuexi学习
LinZhongBao 2006-11-01
  • 打赏
  • 举报
回复
o
zjysky 2006-11-01
  • 打赏
  • 举报
回复
这是什么东西啊,我怎么没见过
crystal_heart 2006-11-01
  • 打赏
  • 举报
回复
http://windowssdk.msdn.microsoft.com/en-us/library/aa361575.aspx


There are cases where initialization with streams is not possible. In scenarios where your thumbnail provider does not implement IInitializeWithStream, it must opt out of running in the isolated process where the system indexer places it by default when there is a change to the stream. To opt out of the process isolation feature, set the following registry value.


HKEY_CLASSES_ROOT
CLSID
{66742402-F9B9-11D1-A202-0000F81FEDEE}
DisableProcessIsolation= 1
If you implement IInitializeWithStream and do a stream-based initialization, your provider is more secure and reliable. Typically, disabling process isolation is only intended for legacy handlers; avoid disabling this feature for any new code. IInitializeWithStream should be the first choice whenever possible.
冰宇枫 2006-11-01
  • 打赏
  • 举报
回复
up
kingstar568 2006-11-01
  • 打赏
  • 举报
回复
头文件
// CCNewThumbnail

class ATL_NO_VTABLE CCNewThumbnail :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CCNewThumbnail, &CLSID_CNewThumbnail>,
public IDispatchImpl<ICNewThumbnail, &IID_ICNewThumbnail, &LIBID_NewThumbnailTestLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
public IInitializeWithStream,
//public IThumbnailProvider,
public IPreviewHandler
{
public:
CCNewThumbnail()
{
}

DECLARE_REGISTRY_RESOURCEID(IDR_CNEWTHUMBNAIL)


BEGIN_COM_MAP(CCNewThumbnail)
COM_INTERFACE_ENTRY(ICNewThumbnail)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IInitializeWithStream)
//COM_INTERFACE_ENTRY(IThumbnailProvider)
COM_INTERFACE_ENTRY(IPreviewHandler)
END_COM_MAP()



DECLARE_PROTECT_FINAL_CONSTRUCT()

HRESULT FinalConstruct()
{
return S_OK;
}

void FinalRelease()
{
}

public:
STDMETHOD (Initialize) ( IStream *pStream,DWORD grfMode);
//STDMETHOD (GetThumbnail) (UINT cx,HBITMAP *phbmp,WTS_ALPHATYPE *pdwAlpha);

STDMETHOD (DoPreview) (VOID);
STDMETHOD (QueryFocus) (HWND *phwnd);
STDMETHOD (SetFocus) (VOID);
STDMETHOD (SetRect) (const RECT *prc);
STDMETHOD (TranslateAccelerator) (MSG *pmsg) {return E_NOTIMPL;}
STDMETHOD (Unload) (void);
STDMETHOD (SetWindow) (HWND hwnd,const RECT *prc);
};

OBJECT_ENTRY_AUTO(__uuidof(CNewThumbnail), CCNewThumbnail)
加载更多回复(31)
内容概要:本文围绕“考虑电能交互的冷热电区域多微网系统双层多场景协同优化配置”的Matlab代码实现展开,提出一种结合电能交互机制的双层优化模型,用于解决冷、热、电多能耦合背景下多微网系统的协同规划与运行问题。研究采用多场景分析方法应对可再生能源出力与负荷需求的不确定性,通过上层规划设备容量配置与下层优化多时段运行策略的联动,提升系统在复杂环境下的经济性、鲁棒性与能源利用效率。所提供的Matlab代码集成了建模、求解(如YALMIP+CPLEX)与结果可视化全流程,涵盖场景生成与削减、双层优化结构设计及多能流协同调度等关键技术环节,为综合能源系统优化提供了完整的算法实现与技术参考。; 适合人群:具备电力系统、综合能源系统或优化建模背景,熟悉Matlab编程与数学规划方法,正在从事相关领域科研或工程设计工作的研究生、高校研究人员及能源行业技术人员。; 使用场景及目标:①开展冷热电联供(CCHP)多微网系统的容量规划与运行优化研究;②支撑含分布式能源、储能及多能转换设备的综合能源系统多目标、多场景优化建模;③学习与复现双层优化、分布鲁棒优化及场景分析等先进优化方法在能源系统中的实际应用。; 阅读建议:建议结合配套文献与代码同步研读,重点理解双层模型的构建逻辑、变量耦合关系与求解技巧,关注场景生成方法与YALMIP调用细节,通过调整参数、修改目标函数等方式进行仿真实验,以深化对系统优化机理的掌握。

699

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧