>> Has anyone looked into SetDDIHook? It is part of the Active Accessibility
>
>I asked Microsoft about why a header file for this was missing and they
>said that it is a mistake in the SDK docs - there is no such API.
It isn't part of the Win32 API. It is part of the Active Accessibility
SDK, like I said. You can download that SDK at:
http://www.microsoft.com/enable/msaa/download.htm#SDK
The gdi.lib included there has such a function. The gdi32.lib does not.
This functionality was not in the original 95, and would require that the
redistributable parts of Active Accessibility be installed.
You can write your own header from the documentation given, and then link
against gdi.lib to gain linkage to the actual function.
DWORD CALLBACK DDIHookProc(
HDDI hddi,
LONG lPrivateData,
DDITYPE ddiType,
LPDDIPARAMS lpDDIStruct
);
WINDDIAPI HDDI WINAPI SetDDIHook(
HDC hdcHook,
HMODULE hModCode,
LONG lPrivateData,
UINT hookClass,
DDIHOOKPROC lpfnDdiHook
);
WINDDIAPI DWORD WINAPI CallNextDDI(
HDDI hddi,
DDITYPE ddiType,
LPDDIPARAMS lpDdiParams
);
WINDDIAPI BOOL WINAPI UnhookDDIHook(
HDDI hddi
);
You'll probably also need the 95/98 DDK (Driver Development Kit) to get
access and documentation for the actual calls that get passed through this
interface.
Since it does not exist in gdi32.lib, I wonder exactly how it works, and if
it actually catches everything. I bet it catches all GDI calls, but
doesn't catch any of the DirectDraw or WinG calls. However, the
documentation specifically states that it works in 95 AND 98, so if it was
a "typo" it was the biggest bloody typo I've ever seen. 2000 has a
different system, which I will report as soon as I find the name of it
again, which does the same thing, but in an incompatible way (of course...
They couldn't do the 16 bit DLL thing in 2000).
This system is also available in NT 4, SP4 or higher.
I *strongly* suspect that this interface is what RAdmin uses to gain its
considerable speed. If you've ever used it, it is frequently hard to tell
that you are at a remote terminal at all. Of course, it only works for
Win32 to Win32 remoting, and it does cost some money. But if we could use
this SetDDIHook interface in VNC, we could laugh maniacally as we have
blazing fast remote control of Windows servers from Linux machines.
Mac
---------------------------------------------------------------------
To unsubscribe, send a message with the line: unsubscribe vnc-list
to [EMAIL PROTECTED]
See also: http://www.uk.research.att.com/vnc/intouch.html
---------------------------------------------------------------------