UVNC MD SDK


Driver | MS-Logon | Encryption | Chat | File Transfer | Java Viewer

License for usage with ultravnc

1. GRANT OF LICENSE:


UVNC bvba hereby grants Ultr@VNC Team -non-exclusive, royalty-free, worldwide, perpetual license to distribute, use the
software product "Mirror driver" in binary form for their remote controle software. Ultr@VNC Team hereby grants the end-user the right to use and distribute the software product "Mirror Driver" with "Ultr@VNC".



2. LIMITED WARRANTY


NO WARRANTY. To the maximum extent permitted by applicable law, We expressly disclaims any warranty for the SOFTWARE PRODUCT
"Mirror Driver". The SOFTWARE PRODUCT "Mirror Driver" and any related documentation are provided "as is" without warranty of any kind, either express or implied, including, without limitation, the implied warranties of merchantability or
fitness for a particular purpose. NO LIABILITY FOR CONSEQUENTIAL DAMAGES. To the maximum extent permitted by applicable law, in no event shall we be liable for
any damages whatsoever (including, without limitation, damages for loss of business profit, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of, or inability to use, this product.

Commercial license

Binary license
Price: 1000EU
UVNC bvba hereby grants You a nonexclusive, nontransferable, perpetual, worldwide license to distribute, use the
software product "Mirror driver" in binary form for your software.

Source code:
Price: 4500EU
UVNC bvba grants Licensee a nonexclusive, nontransferable, perpetual, worldwide rightto use the Source Code for the mirror
driver. Licensee agrees and acknowledges that the Source Code is proprietary, valuable, and not generally known in the
industry. Licensee agrees that it will maintain, through reasonable means, the confidentiality of the Source Code, and
will not disseminate or allow unrestricted access. Licensee shall not distribute the Source Code to anyone other than
employees and software developers of Licensee's organization or third party contractors working on behalf of Licensee�s
organization with a need to know. Licensee may be held legally responsible for any infringement of intellectual property
rights that is caused or encouraged by Licensee's failure to abide by this Agreement.

If you optain a source code license after buying a binary license, the source code license Price is 3500EU.

info: rudi.de.vos@skynet.be

Download

Download MD SDK

Supported OS

The mirror driver is supported on

Windows 2000

Windows 2003

Windows XP

Windows 2008

Windows Vista

Windows 7

Installation

Setupdrv.exe install

UNINSTALL

Setupdrv.exe uninstall

 

You can also use the control panal and add new hardware, select video and point to the .inf file.

 

Files

Mv2.sys= miniport driver

Mv2.dll = display dll, the actual mirror driver stuff

Mv2.inf = installation file

Mv2.cat = catalog for signing driver

Samples

screenrecorder using bitblt

same screenrecorder with mirror driver

Get rectangle list of changed screen parts

The small samples help you to implement a mirror driver in your own application

VIDEODRIVER Class

 

VIDEODRIVER();

Initialize MD driver Class

Usage:

VIDEODRIVER *mydriver= new VIDEODRIVER;

Don�t forget to delete

delete mydriver;

 

 

 

void VIDEODRIVER_start(int x,int y,int w,int h,int depth);

Attach the mirror driver

position left top corner

x=left

y=top

w=screen width

h=screen height

depth= 8/16/32, special case 0=use current depth

Usage:

1)Mirror current desktop with same size and depth

HDC hDisplayDC = CreateDC("DISPLAY",NULL,NULL,NULL);

int cxWidth= GetDeviceCaps(hDisplayDC,HORZRES) ;

int cyHeight = GetDeviceCaps(hDisplayDC,VERTRES);

mydriver->VIDEODRIVER_start(0,0,cxWidth,cyHeight,0);

 

2)Mirror current desktop with same size and depth=32

HDC hDisplayDC = CreateDC("DISPLAY",NULL,NULL,NULL);

int cxWidth= GetDeviceCaps(hDisplayDC,HORZRES) ;

int cyHeight = GetDeviceCaps(hDisplayDC,VERTRES);

mydriver->VIDEODRIVER_start(0,0,cxWidth,cyHeight,32);

 

WARNING

If you mirror a part of the desktop, moving a window

in your clipped region is not proper updated.

Sample:

mydriver->VIDEODRIVER_start(10,10,320,320,32);

 

 

 

void VIDEODRIVER_Stop();

Detach the mirror driver

Usage:

mydriver->VIDEODRIVER_Stop();

 

 

 

BOOL HardwareCursor();

Mirror driver show cursor as blit

Usage:

mydriver->HardwareCursor();

see screentoavi_MD sample

 

 

BOOL NoHardwareCursor();

Mirror driver eliminate cursor as part of the blits

Usage:

mydriver->NoHardwareCursor();

 

 

 

 

char *myframebuffer;

This is a memory buffer that contain your screen in the format you specified

32 RGBARGBARGBARGBA

Instead of using bitblit you can now use memcpy to get access to the screen data.

Usage:

see screentoavi_MD sample

 

 

PCHANGES_BUF mypchangebuf;

This is a ringbuffer that contain the changed parts.

format:

typedef struct _CHANGES_RECORD

{

��������������� ULONG type;� //screen_to_screen, blit, newcache,oldcache

��������������� RECT rect;�����������

��������������� POINT point;

}CHANGES_RECORD;

typedef CHANGES_RECORD *PCHANGES_RECORD;

typedef struct _CHANGES_BUF

��������������� {

��������������� �ULONG counter;

��������������� �CHANGES_RECORD pointrect[MAXCHANGES_BUF];

��������������� }CHANGES_BUF;

typedef CHANGES_BUF *PCHANGES_BUF;

 

The driver record the rect changes, the application need to remember the old position

to extract the needed updates

Usage:

See changed_screen_parts sample