>>Sorry, there were few things went wrong there, I was too tired that day (looking for an excuses <*g*>). It's not too critical, except for the one I pointed before. But wrong is wrong, right? <*vbg*>
>
>A bit of a perfectionist, are you? :)
Hehe..It's my old habits! (a bad habits <*sad*>)
>>Now, in the handle to DEVNAMES structure, there is one field (wDeviceOffset) that also pointed to the printer name. I haven't try this, but you may need to check from that offset, because the "printer name" return from the DEVMODE is limited to 32 chars. If the name is longer than 32 chars, it might be stored in the DEVNAMES. But, again, I haven't try this myself because I don't have any printer that has names longer than 32. So, please do some more checking.
>
>I have one printer with quite a long name (office document writer), and I saw this 32 limit - no big deal, as the actual printer name can be retrieved from the array returned by aPrinters(). A little aScan() does it.
>
What I meant is, it might be stored directly in the DEVNAMES instead of the DEVMODE. But, again I'm not sure about it.
>And despite all our best efforts, this whole thing was for nothing. The customer just said "we don't care about anyone printing to PDF, drop the matter". So... at least we have a nice trick for anyone who may want to use it in the future.
>
I'm sorry if I said something wrong, it's not my intention. As I mentioned before, it's ugly solution :(
But If you are in the need for older OS version, I'll make up a DLL/FLL. Just let me know, and mail it to you.
Regards
Herman