ここのページの通りやれば拡大鏡はできたけどprinceさんのやりたいことができるかは不明です。
http://www.orangemaker.sakura.ne.jp/labo/memo/sdk-mfc/magwin.html
拡大鏡の画像を取得できるのか不明なので
単純に拡大鏡のウインドウハンドルからGetDC+Bitbltではできないみたいです。
デスクトップからのBitbltでは普通に写ってるけど
#include "user32.as"
#uselib "Magnification.dll"
#func MagInitialize "MagInitialize"
#func MagSetWindowTransform "MagSetWindowTransform" sptr,sptr
#func MagSetWindowSource "MagSetWindowSource" sptr,sptr,sptr,sptr,sptr
#func MagUninitialize "MagUninitialize"
#define WS_EX_LAYERED 0x00080000
#define LWA_COLORKEY 1
#define LWA_ALPHA 2
#define GWL_EXSTYLE -20
#define WC_MAGNIFIER "Magnifier"
#define WS_CHILD $40000000
#define MS_CLIPAROUNDCURSOR 0x0002
#define WS_VISIBLE $10000000
#module //float作成モジュール。http://sprocket.babyblue.jp/html/hsp_koneta3.htmから拝借
#defcfunc tofloat double p1
temp = p1
return lpeek(temp)>>29&7|(p1<0)<<31|lpeek(temp,4)-(p1!0)*0x38000000<<3
#global
onexit *exit
MagInitialize
GetWindowLong hwnd , GWL_EXSTYLE
SetWindowLong hwnd , GWL_EXSTYLE , stat | WS_EX_LAYERED
SetLayeredWindowAttributes hwnd, 0, 255, LWA_ALPHA
winobj WC_MAGNIFIER,"MagnifierWindow",0,WS_CHILD | MS_CLIPAROUNDCURSOR | WS_VISIBLE,ginfo_winx,ginfo_winy,0,0
hmag=objinfo_hwnd(stat)
dim matrix,3,3
factor=2.0//拡大率
matrix(0,0)=tofloat(factor)
matrix(1,1)=tofloat(factor)
matrix(2,2)=tofloat(1.0)
MagSetWindowTransform hmag,varptr(matrix)
sx=int(double(ginfo_winx)/factor)
sy=int(double(ginfo_winy)/factor)
repeat
rect=ginfo_mx-sx/2,ginfo_my-sy/2,ginfo_mx+sx/2,ginfo_my+sy/2
if rect(0)<0:rect(0)=0:rect(2)=sx
if rect(1)<0:rect(1)=0:rect(3)=sy
if rect(2)>ginfo_dispx:rect(0)=ginfo_dispx-sx:rect(2)=ginfo_dispx
if rect(3)>ginfo_dispy:rect(1)=ginfo_dispy-sy:rect(3)=ginfo_dispy
MagSetWindowSource hmag,rect(0),rect(1),rect(2),rect(3)
InvalidateRect hmag,0,1
wait 10
loop
*exit
clrobj
MagUninitialize
end