Post Reply

Forums -> UltraMon™ SDK -> How to implement Mirror function?
LearHsieh   2004-11-01 20:46
If I get UltraMon development kit, how can I implement Mirror function in my application? I just try to find the description of object interface but still don't know how to do? Can anyone give me a suggection?
Thank you
Christian Studer   2004-11-02 03:00
Mirroring is currently not available in the Developer Edition.

If you just want to launch UltraMon mirroring from your own application, you can do this with the /start and /stop command-line arguments for UMMirrorClient.exe (see UltraMon Help for more information).

Christian Studer -
SDodman   2004-11-06 05:03
If I understand this correctly, its not possible at the moment to call mirror commands directly from code but using the example you have given could I do the following?? I wish to mirror a small section of the primary display and output this to another monitor. However I want the ability to be able to specify the portion of the display I want to mirror and the size and location of where it appears on the seconday monitor all in code during run time.
Christian Studer   2004-11-06 07:01
That's right, but because the Developer Edition doesn't include mirroring, your customer would need to have UltraMon installed if your application wanted to be able to start/stop mirroring.

MirrorMon, an UltraMon add-on, supports mirroring part of the desktop, see the Readme.txt file in the ZIP for details on command-line options.

Christian Studer -
SDodman   2004-11-06 23:18
And is it also possible to have three instances of the mirrormon utility running simulataneously, that is to have a primary monitor with three sections of it mirrored onto three additional monitors?
SDodman   2004-11-06 23:19
And is there any plan to introduce the mirror function in the development kit?
Christian Studer   2004-11-07 05:26
Running multiple instances of MirrorMon should work fine, but keep in mind that the system needs to have UltraMon installed in order for MirrorMon to run.

I'm considering a developer edition of mirroring, but haven't made any definitive plans yet.

Christian Studer -
SDodman   2004-11-07 05:35
I would certainly purchase the developer addition!!!!!

I realise you wouldnt give out source code but I need this feature in my application and havent yet found out how to make it work. I see there is an example in the Windows DDK for writing a driver that mirrors sections of the desktop. Is this the same principle your softweare works on?

Any help, pointers in the right direction would be greatly appreciated!!!

Many thanks
Christian Studer   2004-11-08 03:28
UltraMon mirroring uses a mirror driver for better performance, MirrorMon just copies the screen at a fixed frame rate using the blit functions (for example BitBlt).

Christian Studer -
SDodman   2004-11-08 22:57
Thanks for your prompt reply Christian, I look forward to a developer edition with Mirroring! Until then I think I need to hit the how to books again!
Von.Tao   2005-04-18 14:33
i have implemented mirror in my applcition by using the function bitblt().it work like this:
i create a new thread, whose main code is as following.
//add the terminating condition of the thread
bitblt(deshdc, 0,0,1024,768,srcdhc, 0,0,SRRCOPY);
i get a very low performance, would you tell me how to improve it,thanks!

Von.Tao   2005-04-18 14:37
another one!
the implementation by the function BltBit() can't mirror the mouse pointer, i like to know why and how to work.

Jeff   2005-08-04 02:14
I need to programmatically control the mirroring functionality (sometimes the application needs to be displayed on a second monitor but most of the time it should be blank for confidentiality). If I understand correctly, I need to call CreateProcess ( ..., "UMMirrorClient.exe /start", ... ) and CeateProcess (..., "UMMirrorClient.exe /stop", ... ) from my program to do this?

Has any more thought been given to adding this functionality to the Developer Addition?

Any thought about using the "Clone" mode of video cards that support this feature? Ideally, that's what the customer of the application wants to use.


Christian Studer   2005-08-04 07:46
That's correct, also see UltraMon Help > Scripting > Command-line arguments for more information on arguments supported by UMMirrorClient.exe.

I've made no decision yet regarding a developer edition of mirroring.

UltraMon currently can't enable/disable the video card's clone mode. This is something I'm going to look into for UltraMon 3, but I don't know yet if it can actually be done.

Christian Studer -
Jeff   2005-08-05 00:59
Thank-you! And thanks for providing this wonderful forum!

BTW - Regarding the programming sample for independent displays, I was able to create and draw on an independent display without having to use the Unicode versions of EnumDisplaySettings, CreateDC, etc. with Windows 2000. Nevertheless, I found the sample extremely helpful - Thank-you. As you suggest, I'm not finding this to be a very good solution to my problem...


Arnd   2005-08-12 01:52

the high cpu load is due to the fact that you always update the complete region. Although nothing has changed.

To reduce the cpu load you should use a mirror display driver.

This driver informs you about changed regions. And therefore gives you the possibility to blit only the needed regions.

An example driver is included in the windows ddk.
There is a lot to do.

As an alternative you can have a look at winvnc. They use this driver and winvnc is available in sourcecode. (But the mirror display driver not:-)).


Forums -> UltraMon™ SDK -> How to implement Mirror function?

Post Reply