我正在编写一个用于Delphi应用程序的CS .net包装器,我想从“远程”.net lib加载图像,所以我不需要在Delphi中维护一个“复制”图像列表。
问我如何通过TLB获取图像列表?
我认为我有3个选项来实现这个
任何想法/建议都非常受欢迎。
这是包装方法
public bool LoadImageList(ref ImageList imagelist16, ref ImageList imagelist32, ref String ResMsg)
{
ResMsg = "Imagelist could be loaded: ";
try {
imagelist16 = null;
imagelist32 = null;
if (!_initialized) return false;
imagelist16 = VideoOS.Platform.UI.Util.ImageList;
imagelist32 = VideoOS.Platform.UI.Util.ImageList32;
ResMsg = "Images loaded";
return true;
}
catch (Exception e) {
ResMsg = ResMsg + e.Message;
return false;
}
}
这是Delphi TLB单元
function LoadImageList(var imagelist16: IUnknown; var imagelist32: IUnknown;
var ResMsg: WideString; out pRetVal: WordBool): HResult; stdcall;
答案 0 :(得分:0)
“stdole.IPictureDisp”接口作为参数类型应该可以解决问题。
COM Interop&图片转换(通过API):http://blogs.msdn.com/b/andreww/archive/2007/07/30/converting-between-ipicturedisp-and-system-drawing-image.aspx