When an application, let's say Word, loads a printer DLL, what exactly
is the app doing?
There's really no such thing as a "printer DLL". Printers have drivers. Those
drivers can range in size from one single small SYS file up to huge bloatware
that consists of not only a SYS file but many EXE, DLL, INI and other files.
The Lexmark all-in-ones are notorious for polluting your system with tons of
crapware files, many of which can NOT be uninstalled through the normal
method.
What does a printer DLL do? Do simpler apps, like
Notepad, load printer DLLs too? Do all printers have DLLs associated
with them?
Again, there's no such thing as a "printer DLL" and neither Notepad nor Word
has the ability to load one. Typically a program that wants to print something
acquires a "device context" for a printer and then creates a document and then
fills individual pages of that document with text, graphics, and images. The
settings that define this device context like paper size, margin size,
resolution, are set up by the user through the Print Properties window. You
might have noticed that no matter what program you print from, the Print
Properties window for your printer always looks the same even though the Page
Setup window is different. The Print Properties window is generated by your
printer driver, while the Page Setup window is generated by your program. This
is why the Page Setup window in Word is much more complicated than the one in
Notepad while the Print Properties window is identical in both.
There are exceptions to this rule however. Canon's "Easy Photo Print" is a
good example of a program that does NOT let you access the Print Properties
window but instead controls the printer settings all by itself. This is a big
no-no from a Windows application design point of view, as applications should
never access the private part of the DEVMODE structure except for loading &
saving it (which very few programs do, with the notable exception of Qimage).
--Tom.