Extending Print Dialog

  • Thread starter Thread starter John
  • Start date Start date
J

John

Hello,

Is it possible to modify the print dialog box that appears when a user
clicks File->Print?

Is it possible to make this modification so that all Windows programs
use the modified print dialog box?

What about just changing the print dialog box used by Internet
Explorer?

Is there an easy way to then easily port this to a Mac OS?

I have done some reading on extending the common dialog controls from
within a new program but I have not found anything about replacing a
common dialog box that all progams use. If this is doable then do you
have any thoughts on how hard this will be? Could this be something
that can be muddled through by someone with only a small amount of
Windows programming experience.

Thanks,
John
 
John said:
Hello,

Is it possible to modify the print dialog box that appears when a user
clicks File->Print?

Is it possible to make this modification so that all Windows programs
use the modified print dialog box?

What about just changing the print dialog box used by Internet
Explorer?

Is there an easy way to then easily port this to a Mac OS?

I have done some reading on extending the common dialog controls from
within a new program but I have not found anything about replacing a
common dialog box that all progams use. If this is doable then do you
have any thoughts on how hard this will be? Could this be something
that can be muddled through by someone with only a small amount of
Windows programming experience.

Probably not. getting a single program to use a modified version of a
common dialog is fairly simple; just inject a DLL into its address space
that pirates the import table and points to a version that extends the
dialog. It gets a little harder when you figure you have to go through
all DLL's the program has loaded (or will in the future load) and patch
their import tables as well. And then you have to retroactively go back
and do this for all programs that were already running when you kick off
the process... and you have to have some method of monitoring program
starts to get the process to happen as new programs start. On the NT
platforms we are talking drivers and /or services to fulfill all these
needs, which makes it non-trivial.

I'm open to suggestions if there is an easier way to do this...

David
 
Back
Top