Does this work with a timer?
I would have thought that the timer control was simply a wrapper for the SetTimer API call

Declare Function SetTimer Lib "user32" Alias "SetTimer" (byval hWnd as Long, byval nIDEvent as Long, byval uElapse as Long, byval lpTimerFunc as Long) as Long




Which requires a valid window handle in order to trigger the timer event.
It might be possible to create a window that is never shown in your DLL and put the timer on this using the CreateWindow api call:


'\\ Creating new windows.....
private Declare Function CreateWindowExApi Lib "user32" Alias "CreateWindowExA" (byval dwExStyle as Long, byval lpClassName as string, byval lpWindowName as string, byval dwStyle as Long, byval x as Long, byval y as Long, byval nWidth as Long, byval nHeight as Long, byval hwndParent as Long, byval hMenu as Long, byval hInstance as Long, lpParam as Any) as Long




HTH,
Duncan

-------------------------------------------------
Ex. Datis: Duncan Jones
Merrion Computing Ltd
http://www.merrioncomputing.com