关于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联系也是象踢球一样踢来踢去的。有资料的提供点资料。
谢谢!
...全文
876 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)
内容概要:本文系统研究了基于Wilcoxon Rank-Sum检验的多算法性能统计分析方法,重点对比Bonferroni与Benjamini–Hochberg(BH)两种多重检验校正策略在多目标优化算法性能评估中的表现。实验采用超体积(HV)指标衡量算法性能,先通过3种算法的小样本(5次重复)实验进行初步分析,再扩展至8种算法的大样本(100次重复)实验,全面比较原始p值、Bonferroni校正和BH校正下的显著性差异结果。结果显示,在小样本场景中两种校正方法结论一致,均表明算法A显著优于B和C;而在大规模两两对比(28组)场景中,BH校正因采用动态阈值策略,具有更高的统计功效,能有效识别被Bonferroni校正漏检的真实性能差异,更适合多算法性能对比的探索性研究。; 适合人群:从事智能优化算法、进化计算、机器学习等领域的科研人员及具备一定统计学基础的研究生或工程师。; 使用场景及目标:①解决多算法两两比较中的多重假设检验问题;②选择合适的统计校正方法以平衡假阳性控制与检验功效;③提升算法性能比较结果的可靠性与可复现性; 阅读建议:建议结合文中提供的具体计算过程与大样本实验数据表深入理解Wilcoxon检验及两类校正机制的差异,尤其关注BH校正在高维多重检验中的优势,实际应用中优先选用BH校正以获得更稳健、敏感的统计结论。
内容概要:本文针对含多微电网租赁共享储能的配电网系统,提出了一种基于博弈论的优化调度模型,并提供了完整的Matlab代码实现。研究聚焦于多个微电网主体在共享储能租赁机制下的竞争与协作关系,通过构建非合作博弈模型,刻画各微电网在能量调度、储能租用决策等方面的策略互动。模型充分考虑了分布式能源出力不确定性、负荷需求波动、储能运行约束及电网交互功率限制等多重因素,旨在实现各微电网个体运行成本最小化的同时,保障配电网整体运行的经济性与稳定性。通过算例仿真验证了所提博弈模型的良好收敛性与有效性,结果表明该方法能够有效激励微电网合理参与储能共享,提升系统整体资源利用效率与运行灵活性。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事微电网、分布式能源、共享储能或博弈论应用研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 学习和复现多微电网与共享储能协同优化调度的博弈模型;② 理解非合作博弈在电力系统分布式优化中的建模与求解方法;③ 获取可用于二次开发的Matlab代码框架,应用于相关领域的科研或项目开发。; 阅读建议:在学习过程中应结合博弈论基本概念理解模型构建逻辑,重点关注目标函数与约束条件的物理意义,并利用提供的Matlab代码进行仿真调试,通过修改参数观察博弈均衡过程,以深入掌握模型特性。
内容概要:本文围绕有限控制集模型预测控制(FCS-MPC)下三相并网逆变器的运行特性与并网性能展开深入研究,重点通过Simulink仿真实现对系统动态响应、稳态精度及抗扰能力的全面评估。研究构建了完整的并网逆变器数学模型与仿真系统,涵盖主电路拓扑、控制算法设计及电网交互模块,并在电网电压对称、不平衡及动态波动等多种典型工况下进行仿真验证。文中系统分析了FCS-MPC在电流跟踪精度、功率响应速度和系统稳定性方面的优异表现,阐明其通过滚动优化与有限候选电压矢量选择实现高性能控制的内在机制。相比传统PI控制等方法,FCS-MPC展现出无需调参、响应迅速、多目标灵活优化等优势,尤其在复杂电网环境下具有更强的适应性与鲁棒性,为高比例新能源接入背景下的高性能并网控制提供了有效的技术路径。; 适合人群:具备电力电子、自动控制或新能源并网等相关专业知识背景,从事科研工作、工程仿真开发或处于研究生及以上学习阶段的技术人员与研究人员。; 使用场景及目标:①掌握有限控制集模型预测控制在三相并网逆变器中的建模与实现方法;②理解FCS-MPC在电网扰动下的动态响应机制与性能优势;③应用于新能源发电系统仿真、逆变器先进控制策略设计与优化等科研或工程项目中。; 阅读建议:建议结合Simulink仿真平台动手复现模型,重点关注控制算法与主电路的接口逻辑,配合不同工况设置进行仿真测试,深入理解FCS-MPC的预测机制与性能表现。

701

社区成员

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

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