SmartCode Web Forum

Thumbnail mode using ActiveX control

https://www.s-code.com/forum/Topic1830.aspx

By Carl916 - 20 Dec 2007

Hi

Is it possible to replicate the VNC manager thumbnail feature using the activeX control?

Regards, Carl Gilbert

By Yury Averkiev (s-code) - 20 Dec 2007

It's possible, in fact the VNC Manager uses ViewerX for the thumbnail view implementation.

There are several ways how it could be implemented. But just to give you a rough idea about our implementation.
We use native Windows listview control to show the thumbnail items. To each listview item corresponds a hidden instance of ViewerX control.
For this case, when ViewerX is hidden you would want to initialize the following properties:

//since you just want to show a remote screen
vncCtrl.ViewOnly = true;

//no need to transfer clipboard either
vncCtrl.DisableClipboard = true;

//tells ViewerX not to paint the remote screen (ViewerX is hidden, so there is no need to paint it)
vncCtrl.ThumbnailMode = true;

//allows ScreenUpdatedEvent to be fired for each screen update. By default this event is disabled for performance reasons
vncCtrl.AdvancedSettings.EnableScreenUpdatedEvent = true;

So we subscribe to ScreenUpdatedEvent and update an ImageList associated with thumbnails listview control for each screen update. Although in reality it's a bit more complicated than that.

Last but not least, here is how you could get access to the screen bitmap (C# code):
using (Bitmap bmp = Bitmap.FromHbitmap(new IntPtr(vncCtrl.ScreenBitmap)))
{
     //do something with bmp
}

I hope this helps.