The printer.devicename gives you the same as ActivePrinter does in VBA. I guess this is OK for locally-attached printers but for network ones it gives you somethine like
\\server\printer on NE01:
What I was after was the actual model of the printer, something like:
HP LaserJet 5M
(I have my reasons!)
Anyway, I think I've found a solution - and it was to use the registry keys for the printers, found within CurrentControlSet.
The attached Word (97) file should explain all this. It is an amalgam of a lot of different idea that I have tried, so it is very poorly commented, and there may be a lot of redundant code!!! A lot of it has come from other sample code - for example MSDN article Q143274 and Jonathan West's series on controlling printers within VB. Thank you for your help!!!