То, что вы описываете, является классическим приложением Аспектно-ориентированного программирования (AOP).В зависимости от того, какой язык и среду вы используете, существуют платформы и контейнеры AOP, единственной функцией которых является перехват вызовов DLL описанным вами способом, позволяющий вам выполнять некоторые операции до или после вызова DLL.
каноническим примером является логирование.Ведение журнала может происходить где угодно в вашей программе, и написание кода для каждого вызова DLL, чтобы его можно было записать, становится скучным в спешке.Но с помощью инфраструктуры AOP вы можете просто подключить все точки входа DLL одновременно, и каждая из них вызовет одну функцию ведения журнала.Это можно сделать несколькими различными способами.Некоторые платформы AOP делают это с помощью атрибутов метода.Другие вводят код в DLL.
Аспектно-ориентированное программирование - это работа с сквозными задачами .
См. Также :
http://en.wikipedia.org/wiki/Aspect-oriented_programming