You can do it a couple different ways. Probably the fastest would be using a custom dll. You could also probably use Windows GDI which is the main set of drawing functions for Windows (in the form of a DLL) but GDI is known to be slow - but it might be faster than DBC.
You can also use a memblock to capture areas of the screen (even single pixels if you like). I tried this method and I didn't get any real performance increase. I captured a pixel at a time, converted it to an image, then a memblock wherever the mouse pointer was and reported back the color from a memblock. This ran at about the same speed as POINT. Probably because of the constant conversions.
If your screen doesn't change then you can capture the whole screen once, convert it to a memblock and then report colors back based on position. That might be faster. I'll have to give that a try. But again, that method depens on your screen not changing.
Also, it depends on how you are using point. If you do it programitacally, one pixel at a time across the screen, it takes forever. But it seems to return a value pretty quickly if you report back the color under the mouse. You can see the fps stay pretty high with this example using the point command:
sync on
sync rate 0
set display mode 800,600,32
for n=1 to 10000
ink rgb(rnd(255),rnd(255),rnd(255)),0
`ink rnd(255),0
x1=rnd(screen width())
y1=rnd(screen height())
box x1,y1,x1+10,y1+10
next n
get image 2,0,0,screen width(),screen height()
sync
ink rgb(255,255,255),0
img=1
create bitmap 1,200,200
set current bitmap 0
do
clpoint=point(mousex(),mousey())
set current bitmap 1
cls
text 0,0,"FPS : "+str$(screen fps())
text 0,40,"Regular point command "+str$(clpoint)
get image 3,0,0,200,100
set current bitmap 0
paste image 3,0,0
sync
loop
Enjoy your day.