gpt4 book ai didi

.net - 在 .NET 4.0 中将图标转换为 IPicture?

转载 作者:行者123 更新时间:2023-12-02 02:35:10 28 4
gpt4 key购买 nike

其中一个标准且(在一定程度上)受支持的答案是使用 Microsoft.VisualBasic.Compatibility 程序集中的 Support.IconToIPicture。但是,在 .NET 4.0 中,“This API is now obsolete”。

是的,有各种solutions在那里,但我认为如果 Microsoft 废弃了这种方法,就会有另一种“受支持”的替代方法。

最佳答案

我相信,这个 API 已经过时了,因为 IPicture 是一个 OLE 接口(interface)。通过使用它,您可以进入 Microsoft 不希望您进入的不受管理的世界。您可以通过调用重现该行为IntPtr aHIcon = Icon.GetHicnFromIcon(yourIcon);

然后你需要将这个句柄传递给OleCreatePictureIndirect(代码在C++中):

PICTDESC aDesc;
aDesc.cbSizeofstruct = sizeof PICTDESC;
aDesc.picType = PICTYPE_ICON;
aDesc.icon.icon = aHIcon;

IPicture * aPict = 0;
OleCreatePictureIndirect(&aDesc, __uuidof(IPicture), TRUE, (void **) &aPict);

唯一的困难 -- 您需要提供 COM 互操作代码来包装 C++ 结构和函数调用。

关于.net - 在 .NET 4.0 中将图标转换为 IPicture?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2210594/

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