Thanks for the reply. I've registered the DLL and can even get another class to work but this is one that does not require objects to be passed e.g.
--------------------------
set objProduct = server.createobject("ConfiguratorDLL.clsProduct"

set objComponent = server.createobject("ConfiguratorDLL.clsComponent"

call objProduct.get_components (strProduct , language)
response.write(objProduct.count)
--------------------------
Works OK. I can even get at other classes created within this createobject i.e objComponent actually exists within objProduct so the following works
------------------------------
for each objComponent in ObjProduct
response.write(objComponent.Product & " - "

response.write(objComponent.FlowText & "<br>"

next
------------------------------
But when I try to add
------------------------------
set objText = server.createobject("ConfiguratorDLL.clsText"

call objText.GetText (objComponent, objProduct, Language, objProduct.count)
-------------------------------
I then get the error, as below
-----------------------------
Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch: 'GetText'
-----------------------------
This is probably hard to understand without knowing the DLL, but it's driving me mad as I'm nearly there. Any one any pointers?