public void SetPreviewItem(ShellItem shellItem) { // Create a stream for the item. using (var managedStream = new FileStream(shellItem.Path, FileMode.Open, FileAccess.Read)) { var stream = new StreamWrapper(managedStream); ((IInitializeWithStream) sharpThumbnailHandler).Initialize(stream, 0); IntPtr bitmapHandle; WTS_ALPHATYPE alphaType; ((IThumbnailProvider) sharpThumbnailHandler).GetThumbnail((uint)pictureBox1.Width, out bitmapHandle, out alphaType); pictureBox1.Image = Image.FromHbitmap(bitmapHandle); /* var bitmap = (Bitmap) sharpThumbnailHandler.GetType().GetMethod("GetThumbnailImage", BindingFlags.Instance | BindingFlags.NonPublic) .Invoke(sharpThumbnailHandler, new object[] { (uint)pictureBox1.Width }); var hbmp = bitmap.GetHbitmap(); var converted = Image.FromHbitmap(hbmp); pictureBox1.Image = converted;*/ } }
public void SetPreviewItem(string path) { if (previewHandler is IInitializeWithFile) { ((IInitializeWithFile)previewHandler).Initialize(path, 0); } else if (previewHandler is IInitializeWithStream) { var managedStream = File.Open(path, FileMode.Open); var stream = new StreamWrapper(managedStream); ((IInitializeWithStream)previewHandler).Initialize(stream, 0); } if (previewHandler is IPreviewHandler) { RECT rect = new RECT() {bottom = ClientRectangle.Bottom, left = ClientRectangle.Left, right = ClientRectangle.Right, top = ClientRectangle.Top}; ((IPreviewHandler)previewHandler).SetWindow(Handle, rect); ((IPreviewHandler)previewHandler).DoPreview(); } }