Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How to capture screen with overlay surface?

1,876 views
Skip to first unread message

Taeyun Kim

unread,
Apr 26, 2005, 12:27:44 AM4/26/05
to
How to capture screen with overlay surface?
Normal printscreen does not capture overlay surface. But I must write
an application/module that captures overlay surface as well as normal
desktop area.
I know that disabling hardware acceleration will do the trick, but it
is not an option for me. The system must run normally.
I've also heared that DirectX(DirectX) API can be used for this
purpose(like Snagit?), but I don't know the details(I've searched
Google, but failed to find an article for it). Using a capture
application is not an option for me, since I must write it - or have
the source with low price and free distribution rights.
Capturing only the overlay surface (without blending normal desktop
screen) can be an option for me.

Thanks in advance.

The March Hare [MVP]

unread,
Apr 26, 2005, 12:55:20 AM4/26/05
to
On 25 Apr 2005 21:27:44 -0700, Taeyun Kim wrote:

> How to capture screen with overlay surface?

As you can see from the history of this newsgroup, this question has been
asked before:

http://groups-beta.google.com/groups?as_q=capture%20overlay%20surface&as_epq=&as_oq=&as_eq=&as_ugroup=microsoft.public.win32.programmer.directx.video&as_usubject=&as_uauthors=&as_umsgid=&ie=UTF-8

As you have observed SnagIt can do it. AFAIK, the technique TechSmith is
using is unknown by anyone who has posted here thus far on this issue. I
would have spent some time researching in the Windows source code for you
if your attitude in the other group you posted to had been better. Maybe
you will learn something from this for the future.

--
Please read this before replying:
1. Dshow & posting help: http://tmhare.mvps.org/help.htm
2. Trim & respond inline (please don't top post or snip everything)
3. Benefit others: follow up if you are helped or you found a solution

Alessandro Angeli [MVP::DigitalMedia]

unread,
Apr 26, 2005, 1:52:48 AM4/26/05
to
The March Hare [MVP] wrote:

> As you have observed SnagIt can do it. AFAIK, the
> technique TechSmith is using is unknown by anyone who has
> posted here thus far on this issue. I would have spent
> some time researching in the Windows source code for you
> if your attitude in the other group you posted to had
> been better. Maybe you will learn something from this
> for the future.

This means I should not share my theory on how SnagIt
captures overlays?


--

// Alessandro Angeli
// MVP :: Digital Media
// a dot angeli at psynet dot net


The March Hare [MVP]

unread,
Apr 26, 2005, 9:04:01 AM4/26/05
to
On Tue, 26 Apr 2005 07:52:48 +0200, Alessandro Angeli [MVP::DigitalMedia]
wrote:

> The March Hare [MVP] wrote:
>
>> As you have observed SnagIt can do it. AFAIK, the
>> technique TechSmith is using is unknown by anyone who has
>> posted here thus far on this issue. I would have spent
>> some time researching in the Windows source code for you
>> if your attitude in the other group you posted to had
>> been better. Maybe you will learn something from this
>> for the future.
>
> This means I should not share my theory on how SnagIt
> captures overlays?

Your call. Personally, I'm not going to slog through 4k lines of overlay
code in CCP for the OP who was rude when I pointed to a post that would
lead him to the most appropriate newsgroup for his question. The OP didn't
have the courtesy to acknowledge his mistake when he eventually figured it
out either. OTOH, I did go through the CCP code for the problem with the
VMR9 in exclusive mode at the end of a long day yesterday. That was for
someone who was polite and I brought up the potential issue I found with
the VMR9's author at MSFT as you saw on our private list. But that poster
has been polite in his exchanges.

Alessandro Angeli [MVP::DigitalMedia]

unread,
Apr 26, 2005, 3:29:12 PM4/26/05
to
The March Hare [MVP] wrote:

> Your call. Personally, I'm not going to slog through 4k
> lines of overlay code in CCP for the OP who was rude when

Then I'll save the answer for the next time this question
comes up. However, you can imagine what it is when I say
that it's not a hidden feature of DD and that it is the same
technique I would have used :-)

Taeyun Kim

unread,
Apr 26, 2005, 9:11:02 PM4/26/05
to
It's funny to see A to say that B is rude - when B was upset on A's
rude posting for the first time. Being productive is better than being
funny (or seeing A whining) for this case, but it may be impossible
with this thread.

"The March Hare [MVP]" <ph...@ndsm.maps> wrote in message news:<4p1j3j08jyxy$.vqpeuicass5$.d...@40tude.net>...

The March Hare [MVP]

unread,
Apr 26, 2005, 9:30:56 PM4/26/05
to
On 26 Apr 2005 18:11:02 -0700, Taeyun Kim wrote:

> It's funny to see A to say that B is rude - when B was upset on A's
> rude posting for the first time. Being productive is better than being
> funny (or seeing A whining) for this case, but it may be impossible
> with this thread.

What is rude about:

"Did you read the post titled "DO NOT POST HERE"?"

which is *exactly* what I posted? The post in question titled "DO NOT POST
HERE (Please read)" is listed right before yours in the newsgroup.

Your post however *is* rude:

"No. so what?

You can tell me the right place to post about the topic, rather than
meaningless ramblings."

If you had read the post I referenced rather than posting this you would
have seen that is *exactly* what it did and, if you were courteous, would
have thanked me for pointing you to the correct group.

Thread:

http://groups-beta.google.com/group/microsoft.public.multimedia.directx.dshow.programming/browse_frm/thread/28abdb1708e3065a/ba4de7e455080197?q=group:microsoft.public.multimedia.directx.dshow.programming+insubject:DO+insubject:NOT+insubject:POST+insubject:HERE&rnum=1#ba4de7e455080197

I recommend you think before you dig yourself into a deeper hole.

Taeyun Kim

unread,
Apr 26, 2005, 11:53:08 PM4/26/05
to
FYI(maybe you're not interested at all), SnagIt (version 7.2.2) failed
to capture the overlay screen on my PC. I've heared that SnagIt can do
it on newsgroup, but when I ran it on my PC today, it could not
capture the overlay screen. Of course I used DirectX option(i. e.,
Input: DirectX).

I think the viable solution for this is preventing applications from
using hardware overlay. I've read that recent DirectShow versions
(VMR7, VMR9) do not use hardware overlay for more flexible video
mixing (although it is not the default), so preventing the use of
hardware overlay is not very harsh option for the users nowadays, if
he/she want to capture the screenshot.

But forcing users to arrange the slidebar on the hardware acceleration
dialog is not very comportable option. But since the overlay screen is
very limited resource and application give up and use GDI or other
option when it cannot get an overlay screen, a screen capture
application can actually disable overlay screen by grabbing it itself
before any other application can get it.
This requires that screen capture application must run before the
movie player, it is acceptable for my situation.

"The March Hare [MVP]" <ph...@ndsm.maps> wrote in message news:<baq600eafm4k$.1nc1bn2s...@40tude.net>...

The March Hare [MVP]

unread,
Apr 27, 2005, 12:26:59 AM4/27/05
to
On 26 Apr 2005 20:53:08 -0700, Taeyun Kim wrote:

> SnagIt (version 7.2.2) failed
> to capture the overlay screen on my PC. I've heared that SnagIt can do
> it on newsgroup, but when I ran it on my PC today, it could not
> capture the overlay screen. Of course I used DirectX option(i. e.,
> Input: DirectX).

A regular SnagIt 7.2 region or window capture gets the overlay surface on
the XP SP2 machine I just tried it on.

Taeyun Kim

unread,
Apr 27, 2005, 12:36:29 AM4/27/05
to
Sorry for my 'so what?' posting and following ones.

I thought you are upset for some unknown (and not acceptable for me)
reason and release anger to me when you posted 'DO NOT POST HERE'.
It's because you wrote the keywords with all-capitals(which means
yelling), and deliberately omitted 'please' and simple guidance which
can be as short as your first reply.

Yes, I didn't read 'DO NOT POST HERE' article. I wondered through the
Google for information, and decided to post the question on a relevant
newsgroup which is not known to me since I didn't even know the
question is related to DirectShow. I used Google to post the
question. Google's interface is convenient enough to post an article
to some newsgroup without forcusing on the newsgroup specifically.

Anyways, sorry.
I hope that you didn't mean to offend me on your 'DO NOT POST HERE'
article.

"The March Hare [MVP]" <ph...@ndsm.maps> wrote in message news:<baq600eafm4k$.1nc1bn2s...@40tude.net>...

Alessandro Angeli [MVP::DigitalMedia]

unread,
Apr 27, 2005, 1:06:50 AM4/27/05
to
Taeyun Kim wrote:

> I think the viable solution for this is preventing
> applications from
> using hardware overlay. I've read that recent DirectShow
> versions (VMR7, VMR9) do not use hardware overlay for
> more flexible video
> mixing (although it is not the default), so preventing
> the use of
> hardware overlay is not very harsh option for the users
> nowadays, if
> he/she want to capture the screenshot.

VR: uses overlay if possible otherwise falls back to GDI
OM: always uses overlay
VMR7: always uses overlay (DD7)
VMR9: always uses D3D9

On XP/2003, default is VMR7, with fallback to VR. On all
previous Windows versions, default is VR.

> But forcing users to arrange the slidebar on the hardware
> acceleration
> dialog is not very comportable option. But since the
> overlay screen is
> very limited resource and application give up and use GDI
> or other
> option when it cannot get an overlay screen, a screen
> capture
> application can actually disable overlay screen by
> grabbing it itself
> before any other application can get it.
> This requires that screen capture application must run
> before the
> movie player, it is acceptable for my situation.

There are VGA cards that support 2 overlays (e.g. recent
Matrox cards) so, if you're going this way, create as many
overlays as you can until the creation fails to be sure the
other application will not use one.

However, screen grabbing is slow and you forced the other
application to use software rendering which usually degrades
quality and is far slower than overlay usage, so you may
have performance and quality issues.

In any case, this is not how I think SnagIt works.

The March Hare [MVP]

unread,
Apr 27, 2005, 1:36:27 AM4/27/05
to
On 26 Apr 2005 21:36:29 -0700, Taeyun Kim wrote:

> Sorry for my 'so what?' posting and following ones.

I appreciate and accept your apology. Not that we're perfect, but if you
see the MVP designation in the MS newsgroups it means we have been awarded
by MSFT for *helping* in the online community.

> I thought you are upset for some unknown (and not acceptable for me)
> reason and release anger to me when you posted 'DO NOT POST HERE'.
> It's because you wrote the keywords with all-capitals(which means
> yelling), and deliberately omitted 'please' and simple guidance which
> can be as short as your first reply.

The post's title is in all caps and I was quoting it. It is in all caps in
the hope that people will notice it not because I enjoy 'shouting'. I am
surprised you didn't see it before posting. I recommend you look at a few
posts and responses in a newsgroup before posting in it. Often there is a
FAQ or other announcement post like mine that may help you before you post.

I have tried a number of approaches to get people over to the active
newsgroups. I wish it were easy for MSFT to just delete the retired ones
but, from what I understand, there are a lot of steps to go through in a
large organization such as theirs.

> I hope that you didn't mean to offend me on your 'DO NOT POST HERE'
> article.

Why would I want to do that? :)

Alessandro Angeli [MVP::DigitalMedia]

unread,
Apr 27, 2005, 2:43:51 AM4/27/05
to
The March Hare [MVP] wrote:

> I have tried a number of approaches to get people over to
> the active newsgroups. I wish it were easy for MSFT to
> just delete the retired ones but, from what I understand,
> there are a lot of steps to go through in a large
> organization such as theirs.

Beside internal issues, the public MS NNTP servers are
linked to Usenet and, since MSFT does not own Usenet and has
no control over it, it can not delete a newsgroup once it
has been replicated on other NNTP servers. They can delete
it from their servers but it will still live on the rest of
the Usenet space.

Chris P. [MVP]

unread,
Apr 27, 2005, 9:21:11 AM4/27/05
to
On Wed, 27 Apr 2005 08:43:51 +0200, Alessandro Angeli [MVP::DigitalMedia]
wrote:

> The March Hare [MVP] wrote:


>
>> I have tried a number of approaches to get people over to
>> the active newsgroups. I wish it were easy for MSFT to
>> just delete the retired ones but, from what I understand,
>> there are a lot of steps to go through in a large
>> organization such as theirs.
>
> Beside internal issues, the public MS NNTP servers are
> linked to Usenet and, since MSFT does not own Usenet and has
> no control over it, it can not delete a newsgroup once it
> has been replicated on other NNTP servers. They can delete
> it from their servers but it will still live on the rest of
> the Usenet space.

There is an RFC procedure for requesting a global group deletion, but
AFAIK, no Usenet host is required to honour it. I still see the same
stupid dead groups that have existed since the dawn of usenet.

Alessandro Angeli [MVP::DigitalMedia]

unread,
Apr 27, 2005, 10:04:19 AM4/27/05
to
Chris P. [MVP] wrote:

> There is an RFC procedure for requesting a global group
> deletion, but AFAIK, no Usenet host is required to honour
> it. I still see the same stupid dead groups that have
> existed since the dawn of usenet.

There is no Usenet authority and no way to enforce rules
since NNTP servers do not need any special priviledge to
replicate the feed from other servers and there are really a
lot of servers in the Usenet space, which makes it
impossible to track them down and demand (with no real
authority) that they comply to some request. Unless a new
structured news space replaces Usenet, like it happened over
time with IRC networks, that's the way it is.

Taeyun Kim

unread,
Apr 27, 2005, 10:11:48 PM4/27/05
to
"The March Hare [MVP]" <ph...@ndsm.maps> wrote in message news:<1xi2lfaicaxme.w9cuot6nnqnl$.d...@40tude.net>...

> On 26 Apr 2005 20:53:08 -0700, Taeyun Kim wrote:
>
> > SnagIt (version 7.2.2) failed
> > to capture the overlay screen on my PC. I've heared that SnagIt can do
> > it on newsgroup, but when I ran it on my PC today, it could not
> > capture the overlay screen. Of course I used DirectX option(i. e.,
> > Input: DirectX).
>
> A regular SnagIt 7.2 region or window capture gets the overlay surface on
> the XP SP2 machine I just tried it on.

Then maybe you can use PrintScreen key and get the same result. That
is, there is possibility that overlay surface was not used at that
time.
I've seen in some cases a movie player don't use overlay surface by
some reason I don't know. The case varies on different video cards and
movie files.
On my PC(XP SP2), a very short and low-quality avi file is played on
GDI screen (or whatever else except for overlay surface), while a
game's teaser movie is played on overlay surface.

BTW, I experienced a better software for screen capture. It is named
'Hypersnap'(...or is it? I tested it some time ago and uninstalled
when evaluation period expired). It was required that it must be
started before the movie player.

Taeyun Kim

unread,
Apr 27, 2005, 10:20:12 PM4/27/05
to
"Alessandro Angeli [MVP::DigitalMedia]" <nob...@nowhere.in.the.net> wrote in message news:<e4iEXdu...@TK2MSFTNGP10.phx.gbl>...

It's true. but at least it's better than disabling hardware
excelleration as a whole.
What makes me difficult is that it's best to capture whole screen with
overlay screen normally merged to windowing system in my case.
I can capture overlay surface separately and show two images - the one
is normal fullscreen capture and the other is overlay surface to the
users. But then I must explain the reason why there are two separate
capture screens instead of one WYSIWYG capture screen to ordinary
housewives.

>
> In any case, this is not how I think SnagIt works.

I agree with you. (since SnagIt fails to capture the movie screen on
my machine...)

The March Hare [MVP]

unread,
Apr 27, 2005, 10:42:33 PM4/27/05
to
On 27 Apr 2005 19:11:48 -0700, Taeyun Kim wrote:

>> A regular SnagIt 7.2 region or window capture gets the overlay surface on
>> the XP SP2 machine I just tried it on.
>
> Then maybe you can use PrintScreen key and get the same result. That
> is, there is possibility that overlay surface was not used at that
> time.

The overlay surface was in use (no video was captured from PrintScreen).
As I wrote yesterday, I used the normal SnagIt window and region capture,
not the DirectX capture.

> I've seen in some cases a movie player don't use overlay surface by
> some reason I don't know. The case varies on different video cards and
> movie files.

I used Media Player Classic for my tests. It has a good options panel for
selecting which renderer to use including the old renderer and overlay
mixer. The latter always uses the overlay. IIRC, it will error out if the
overlay is not available.

> On my PC(XP SP2), a very short and low-quality avi file is played on
> GDI screen (or whatever else except for overlay surface), while a
> game's teaser movie is played on overlay surface.

Try Media Player Classic if you haven't already. It is a good app to have
around for testing and for playing multimedia. Plus Gabest sometimes hangs
around this newsgroup.

http://sourceforge.net/projects/guliverkli/

> BTW, I experienced a better software for screen capture. It is named
> 'Hypersnap'(...or is it? I tested it some time ago and uninstalled
> when evaluation period expired). It was required that it must be
> started before the movie player.

I haven't found anything I can't do with SnagIt. It has a ton of options.

Alessandro Angeli [MVP::DigitalMedia]

unread,
Apr 28, 2005, 2:00:35 AM4/28/05
to
Taeyun Kim wrote:

> I can capture overlay surface separately and show two
> images - the one
> is normal fullscreen capture and the other is overlay
> surface to the
> users. But then I must explain the reason why there are
> two separate
> capture screens instead of one WYSIWYG capture screen to
> ordinary housewives.

You can always capture the screen bitmap and overlay surface
separately then blit the captured overlay image onto the
captured screen image in the right position, maybe taking
into account the chromakey and clipping region it defines
(but with videos this is usually a rectangle, so there is no
need to worry).

I think this is what SnagIt does. I also think SnagIt must
be started before the application using the overlay for the
capture to work, just like HyperSnap and this is so because
of the hack SnagIt (and most likely HyperSnap) uses to
capture the overlay.

Kim@discussions.microsoft.com Taeyun Kim

unread,
Apr 28, 2005, 4:54:07 AM4/28/05
to
"The March Hare [MVP]" wrote:

> On 27 Apr 2005 19:11:48 -0700, Taeyun Kim wrote:
>
> >> A regular SnagIt 7.2 region or window capture gets the overlay surface on
> >> the XP SP2 machine I just tried it on.
> >
> > Then maybe you can use PrintScreen key and get the same result. That
> > is, there is possibility that overlay surface was not used at that
> > time.
>
> The overlay surface was in use (no video was captured from PrintScreen).
> As I wrote yesterday, I used the normal SnagIt window and region capture,
> not the DirectX capture.

I also used the normal SnagIt window and region capture.
But it failed to capture the content of overlay surface. (sigh)
I also tried Media Player Classic, but result was the same: SnagIt could not
capture the content od overlay surface.
I wish I knew why.

The March Hare [MVP]

unread,
Apr 28, 2005, 9:45:59 AM4/28/05
to
On Thu, 28 Apr 2005 01:54:07 -0700, Taeyun Kim wrote:
>> The overlay surface was in use (no video was captured from PrintScreen).
>> As I wrote yesterday, I used the normal SnagIt window and region capture,
>> not the DirectX capture.
>
> I also used the normal SnagIt window and region capture.
> But it failed to capture the content of overlay surface. (sigh)
> I also tried Media Player Classic, but result was the same: SnagIt could not
> capture the content od overlay surface.
> I wish I knew why.

I have SnagIt in my Windows start up programs. I don't know if that makes
any difference.

Alessandro Angeli [MVP::DigitalMedia]

unread,
Apr 28, 2005, 10:24:46 AM4/28/05
to
The March Hare [MVP] wrote:

> I have SnagIt in my Windows start up programs. I don't
> know if that makes any difference.

It may: if it works the way I think it works, its process
must be fully started before the processes whose graphics it
will capture are started.

Taeyun Kim

unread,
Apr 29, 2005, 4:32:02 AM4/29/05
to
Then, how can I grab the overlay surface?

I've read some part of DirectShow document without finding an acceptable
method.
Since I'm totally new to DirectShow(and DirectX), it is hard for me to know
which COM interface or API is for my situation.
Maybe the simplest solution is just calling IGraphBuilder::RenderFile() with
an adequate movie file, but it is not acceptable since it requires a movie
file and does more work than needed and thus over-consume system resource.

I will appreciate any advice.

"Alessandro Angeli [MVP::DigitalMedia]" wrote:

Alessandro Angeli [MVP::DigitalMedia]

unread,
Apr 29, 2005, 7:56:31 PM4/29/05
to
Taeyun Kim wrote:

> Then, how can I grab the overlay surface?

If by "grab the overlay surface" you mean create it so that
it is not available for orthers, see the "Using Overlay
Surfaces" tutorial in the DirectX 7.x SDK. The SDK is no
longer available for download from MSFT so you need to
either find a copy on the web or, if you have an MSDN
subscription since long enough, find it on an old MSDN CD.
Otherwise you can read it online:

http://msdn.microsoft.com/archive/en-us/ddraw7/directdraw7/ddtut_1nef.asp

The March Hare [MVP]

unread,
Apr 29, 2005, 8:10:43 PM4/29/05
to
On Sat, 30 Apr 2005 01:56:31 +0200, Alessandro Angeli [MVP::DigitalMedia]
wrote:

> Taeyun Kim wrote:


>
>> Then, how can I grab the overlay surface?
>
> If by "grab the overlay surface" you mean create it so that
> it is not available for orthers, see the "Using Overlay
> Surfaces" tutorial in the DirectX 7.x SDK.

I think the OP means get the contents of the overlay surface. I'm going to
guess your theory goes something like this:

- write a utility app that starts before the program that want to capture
from

- in the utility app use the Detours library (from MSR) to trace all calls
into the DirectDraw surface creation and manipulation methods

- examine these parameters to determine which is the overlay surface (will
require some sleuthing)

- once you determine which is the overlay surface cache its id and any
other required data (location, dimensions, bitdepth, etc.)

- for a commercial app you cannot use Detours so implement proprietary DLL
hooking

Am I anywhere near the mark, Master? <g>

Alessandro Angeli [MVP::DigitalMedia]

unread,
Apr 30, 2005, 1:50:07 AM4/30/05
to
The March Hare [MVP] wrote:

> Am I anywhere near the mark, Master? <g>

You see, and you thought you were never going to learn :-P

This is my (circumstantial) evidence that that's the way
SnagIt works:

SnagIt installs (SetWindowsHookEx()) 2 message hooks
(WH_CALLWNDPROC and WH_KEYBOARD) implemented in SNAGDX.DLL.
This DLL loads DDRAW.DLL and binds DirectDrawCreate(). Since
as a side effect of the hooks SnagIt's DLL is injected into
all running processes, I think the DLL hooks the
DirectDrawCreate() API so, whenever an application creates
a DirectDraw object, SnagIt has a handle on it and can hook
its methods to create an overlay surface and then hook the
methods to draw on the surface.

In fact SNAGDX.DLL also binds CreateFileMappingA() and
MapViewOfFile() (to set up a shared memory IPC),
GetModuleHandleA() and GetProcAddress() (to bind
DirectDrawCreate()) and VirtualProtect() (to hook
DirectDrawCreate()). This same DLL also uses
CreateCompatibleBitmap(), CreateCompatibleDC(),
SelectObject(), BitBlt() and GetDIBits(), all useful to
perform a blit-copy from a surface's DC to a bitmap DC.

Is that convincing?

I'll even throw in a tip on how to do easy API hooking
without Detours:

http://groups-beta.google.com/group/microsoft.public.win32.programmer.directx.audio/msg/71a4c49c2fbd714d

The injection part of the easy API hooking guide for dummies
using global message hooks for their side effects is already
explained above.

Taeyun Kim

unread,
May 2, 2005, 2:02:02 AM5/2/05
to
Thank you very much.
It works.

"Alessandro Angeli [MVP::DigitalMedia]" wrote:

Taeyun Kim

unread,
May 2, 2005, 2:40:01 AM5/2/05
to
Injecting DLL and hooking API may cause problems with online games that don't
like itself to be hacked. Nowadays, 'anti game hack' solutions that detects
injects and hooks to prevent any game hack are being applied to major online
games, and I had a few problems with that.
Some games even refuse to run at all if itself is hooked by some other
applications.

"Alessandro Angeli [MVP::DigitalMedia]" wrote:

Alessandro Angeli [MVP::DigitalMedia]

unread,
May 2, 2005, 4:15:02 AM5/2/05
to
Taeyun Kim wrote:

> Injecting DLL and hooking API may cause problems with
> online games that don't like itself to be hacked.
> Nowadays, 'anti game hack' solutions that detects injects
> and hooks to prevent any game hack are being applied to
> major online games, and I had a few problems with that.
> Some games even refuse to run at all if itself is hooked
> by some other applications.

That's another order of problems. In any case, there are
hooking techniques applied in-memory after the process has
started that are harder to notice and prevent and, as far as
I know, impossible to avoid without a kernel-mode driver to
spot them.

The technique I described has always worked so far for me
with any kind of applications, from hardware DVD players to
InternetExplorer and even the system loader. Games may
however be harder nuts to crack.

0 new messages