I have been working on this for awhile so I thought I'd pass it on.
You won't have much luck detecting if the user has clicked cancel on the CR PrintSetup Dialogbox unless you apply 2 patches (for CR 8.5). The files can be downloaded from...

ftp://ftp.crystaldecisions.com/outgo...5DEVWIN_EN.ZIP
and
http://support.crystaldecisions.com/...win_en.zip.asp

Once the patches are installed, a PrinterSetupEx method will be added that allows the user to trap/catch the cancel event/action...

Code:
If crRep.PrinterSetupEx(Me.hWnd) = 1 Then
    UseDefault = False
    Exit Sub
End If
For further documentation go to Seagate's support site...
http://support.crystaldecisions.com/...s/c2008865.asp