les...
Call me crazy [Eek!] , but in my environment (WinXP Pro) your
code:
$CurDefPrnValDat = ReadValue($HKCUSMWNTCVW,"Device")  

returns the first device found, which may/may not be the default device. Comments?
_________________________
We all live in a Yellow Subroutine...