windows – SysAllocString / SysFreeString COM函数需要调用CoI
是否需要初始化COM才能使用SysAllocString,SysFreeString和其他BSTR处理函数?
MSDN说
在我看来,BSTR分配函数使用IMalloc,因此不需要COM init? 解决方法
我找不到官方文档,说你可以在不初始化COM的情况下调用这些函数,但是我可以带你去记忆里行进一些可爱的观察.
因为Windows 95在具有4 MB RAM的计算机上运行,??所以Explorer很难尝试不加载ole32.dll.事实上,shell团队编写了自己的迷你版本的COM,编写shell扩展的人应该只调用SH *函数,而不是Co *函数,以避免在可能的情况下加载真正的COM / OLE内容. This blog post表示mini-COM在Windows XP及更高版本中已经100%消失,但我不确定它在理论上可以在多大程度上使shell处于mini-COM模式. 当您意识到Windows 2000具有名为IShellFolder2的shell接口并且其中一个方法(GetDetailsEx)返回VARIANT时,事情变得有趣.而且VARIANT可以包含BSTR! IColumnProvider :: GetItemData也返回VARIANT. 有了这些信息,您可以推断Windows 2000可以在不必调用CoInitialize的情况下分配BSTR,只需调用SHGetDesktopFolder获取IShellFolder并请求以字符串形式返回的属性. 然而,这里有两个未知数: > Windows 2000是否可以使用mini-COM? 我知道当资源管理器窗口处于详细模式时(或者如果它需要工具提示?),IShellFolder2和IColumnProvider都会参与其中,因此shell似乎不太愿意为此加载真正的COM. 即使我能确认所有这一切也不会对你有所帮助,因为我认为你的主要目标不是Windows 2000. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何确定dll文件是使用Delphi还是Lazarus编译为x64或x86位
- MinGW没有定义WIN32,预处理器指令中的错误
- 用批处理修复 win10 无法升级的问题
- windows – 使用单字节指令开始x64函数是否合法?
- 双重身份验证——加强Windows安全性
- windows-server-2008 – 将Hyper V图像转换为虚拟框
- .net – 是否可以将Windows程序集转换为单声道?
- azure – 使用Service Fabric模板时出现Bad dll文件异常
- windows-xp – 远程监控Windows框,如果发生故障则发送电子邮
- 如何将Window从另一个应用程序嵌入到WPF窗口中作为用户控件
- windows-phone-8-emulator – Visual Studio 201
- windows – 连接到HyperV Server时出错
- 在Windows中使用TUN驱动程序
- Windows上的.ctags文件在哪里?
- 在windows下使用mysqlbinlog实现数据库增量导出
- windows-7 – 在Windows 7中是否有完全支持Torto
- powershell – 如何在Add-AzureAccount中使用Mic
- Windows Admin希望从Linux(ubuntu)文件服务器开始
- windows – 如何使用当前文件夹的管理员权限运行
- windows-phone-7 – 是否可以在Windows Phone应用