Delphi DLL's for Excel?

   I am trying to create some delphi DLL's to be called from excel. The vb stuff
in Excel lacks some functionality, so I am using Delphi to expand on it.
I want to create a directory chooser, and a printer chooser, as I cannot script
either of those in Excel VBA. I created a very simple directory chooser;
drive combo box, tied to a directory list box, with "OK" and "Cancel" buttons on
a form. built a dll where there is a single exported function which takes no
arguments, and returns a word. In the function, I have a local variable which
is instantiated to the dialog  (MyDlg := TForm1.Create(application), set a local
variable to the result of MyDlg.ShowModal, then call MyDlg.Free, and set result
to 1. Unfortunately, this dialog causes excel to return an error of "error loading
DLL".  Even more unfortunate, is that it causes excel to semi-permanently refuse
to load any further DLL's. (from the microsoft solutions developer kit, there is
a sample VC++ dll, and spreadsheet which calls functions in the dll) a microsoft
supplied test dll and spreadsheet will fail in the same manner after the delphi
dll nukes excel. Rebooting does not cure the problem. Something does cure the
problem, as I have actually had the system screwed up, and then later (days later)
been able to load a dll in excel again, but I cannot seem to track down what
clears the problem. This problem manifests in both Win95, and in NT 4.0 beta 2.
Has anyone created DLL's with delphi which display dialogs, and called them from
Excel successfully? I am having a {*word*75} of a time tracking this, as I cannot
use any de{*word*81} to see where the problem is being caused, and triggering
the problem screws up my system so that I cannot reproduce the problem again.


=  Ross Becker        * Lead Programmer/Analyst  * =
=  793 Dreese Lab     * User Environment         *                            =
=  2015 Neil Ave.     * IICF Staff               *                            =
=  (614) 292-7325     * Ohio State University    *                            =