在1.NET 4.0应用(WPF)中,我们改用SHGetFileInfo
,以获得一个 director树的壳体。 由于有时需要相当一段时间(即网络驱动力无法达到,或用于喷气驱动力),我们希望这样做,然后在阅读时更新icon。
这一呼吁基本相同,现在刚刚在read子里执行。 因为有人说,read子必须是
<代码>SHGetFileInfo > 继承(第1条),但结构中的hIcon成员为零。
IntPtr GetIcon(string name)
{
Shell32.SHFILEINFO shfi = new Shell32.SHFILEINFO();
uint flags = Shell32.SHGFI_ICON | Shell32.SHGFI_USEFILEATTRIBUTES | Shell32.SHGFI_SMALLICON;
Shell32.SHGetFileInfo(
name, System.IO.Directory.Exists(name) ? Shell32.FILE_ATTRIBUTE_DIRECTORY : Shell32.FILE_ATTRIBUTE_NORMAL,
ref shfi,
(uint) System.Runtime.InteropServices.Marshal.SizeOf(shfi),
flags );
return shfi.hIcon;
}
同样的法典从德国马克的深层中操作。 必须做些什么,才能使职能从一个单独的侧面上发挥作用,或者使其发挥作用,同时又不阻挡全球倡议的透镜?
Update: The code around this is basically this:
var thread = new System.Threading.Thread(() => {
var result = GetIcon("C:\");
// ... do something with the result
});
thread.SetApartmentState(System.Threading.ApartmentState.STA);
thread.Start();
如果只剩下read子,则会做罚款(但根基深省当然是这样)。
最新情况:我们现在仅凭Invoke打电话到SHGetFileInfo
,以使之发挥作用。 这样做的好处是,原始问题(在所有电灯被装上之前,档案页面没有显示)已经解决,不过这意味着每个电灯的 page。 但至少用户现在至少看到一些事情在进行。 我们仍然寻求实际解决这一问题。