Che ne pensi della struttura della classe?
Te lo domando perchè anch'io avevo pensato a dei select case o flag che switchassero tra com a com poi sono arrivato alla soluzione di lasciare le implementazioni fuori con un file xml.
Il fatto che i comandi vengano parsati dall'xml permette di lasciare la struttura dei metodi della classe sempre uguale e implementare i com via comandi nei nodi
codice:
<component classid="CDonts.newMail">
<mailfrom><![CDATA[ .from="$mailfrom$" ]]></mailfrom>
......
</component>
<component classid="mycomponent.mymailer">
<mailfrom><![CDATA[ if .version="1" then .fromMail="$from$" else .from="$mailfrom$" ]]></mailfrom>
......
</component>
quindi il metodo
mailfrom ="pippo@pluto"
chiamera' con il select node
.from = "$from$"
sostituisce il valore con il parametro e lancia l'esecuzione
cosa ne pensi?