Aqui pongo un poco de codigo, por si alguien sabe que estoy haciendo mal que por cierto casi estoy seguro que es por que pongo a null la estructura docinfo, pero pues no supe llenarla.
LOCAL pdc:HDC
LOCAL mempdc:HDC
LOCAL region:HRGN
.ELSEIF eax==104 // se selecciono el menu imprimir
invoke CreateDC,NULL,addr printername,NULL,NULL
mov pdc,eax
invoke CreateCompatibleDC,pdc
mov mempdc,eax
invoke CreateRectRgn,0,0,300,300
mov region,eax
invoke SelectObject,mempdc,region
invoke BitBlt,pdc,0,0,300,300,mempdc,0,0,SRCCOPY
invoke StartDoc,pdc,NULL
invoke EndDoc,pdc
invoke DeleteDC,mempdc
Si se ve que mande a imprimir a la impresora seleccionada pero me cancela la impresion. Bueno hasta luego y gracias