>I guess if the type library changes then it will have to be tested in an app with the OLEPUBLIC statement in place and then removed for the exe build?
It's EXE build that you've to test. You can use preprocessor directives to automated that. Something like
#IF UPPER(STREXTRACT(SYS(0), "# ", "")) == "SERGEY"
#DEFINE ccDfClause OLEPUBLIC
#ELSE
#DEFINE ccDfClause
#ENDIF
...
DEFINE CLASS myclass AS session ccDfClause
...
--sb--