Код: Выделить всё
http://mtgo.patch.daybreakgames.com/patch/mtg/live/client/MTGO.application#MTGO.application, Culture=neutral, PublicKeyToken=dbac2845cba5280e, processorArchitecture=msil
< /code>
Пробовали методы, которые до сих пор не удались: < /p>
[list]
[*]Icon.ExtractAssociatedIcon(filePath)
Код: Выделить всё
SHGetFileInfo()
[*]
Код: Выделить всё
IShellItemImageFactory::GetImage()
Добавление примера кода для ishellimagefactory:
Код: Выделить всё
private BitmapSource GetIcon(string filePath, int size, ThumbnailOptions options, double scaleFactor)
{
IShellItem nativeShellItem;
Guid shellItem2Guid = new Guid(IShellItem2Guid);
int retCode = SHCreateItemFromParsingName(filePath, IntPtr.Zero, ref shellItem2Guid, out nativeShellItem);
if (retCode != 0)
throw Marshal.GetExceptionForHR(retCode);
NativeSize nativeSize = new NativeSize();
nativeSize.Width = (int) (size * scaleFactor);
nativeSize.Height = (int) (size * scaleFactor);
IntPtr hBitmap;
HRESULT hr = ((IShellItemImageFactory)nativeShellItem).GetImage(nativeSize, options, out hBitmap);
Marshal.ReleaseComObject(nativeShellItem);
if (hBitmap == IntPtr.Zero)
{
DeleteObject(hBitmap);
return null;
}
BitmapSource img = Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
DeleteObject(hBitmap);
return img;
}
/п>
Подробнее здесь: https://stackoverflow.com/questions/793 ... -appref-ms