Poiché non sono riuscito ad estrarre il code da un CommandSet (v. sopra suggerimento basato su GetCommandByDBCode()) ho utilizzato una via basata su GetCommandSets().
Per arrivare a trattare effettivamente i menù che desidero trattare, per discriminarli nel ciclo di scansione dell'IDArray ho confrontato tra loro le uniche proprietà comuni ad IDCommand e CommandSet che ho trovato ovvero la caption.
La mia parziale conclusione è che IDCommand e CommandSet sono diversi in quanto offrono caratteristiche (attributi e metodi) diversi.
Ad esempio abbiamo a disposizione IDCommand.code() ma NON IDCommand.getCommandCode() e, viceversa,
abbiamo a disposizione CommandSet.getCommandCode() ma NON CommandSet.code().
Nelle procedure originarie in cui si usano i CommandSet direttamente, si usa il loro command code
Questo attributo NON è accessibile tramite l'argomento attuale passato come IDCommand.
Intuisco che IDCommand sia una interfaccia per la classe C++ che implementa CommandSet indipendente da quest'ultima.
IntelliSense NON mi fa istanziare una variabile CommandSet, suppongo che ci sia qualche limite con essa.
Date le info a mia disposizione la mia conclusione è che se ho necessità di lavorare effettivamente su un CommandSet NON sia possibile parametrizzarlo e passarlo come IDCommand in quanto alcune caratteristiche di CommandSet non sono presenti in IDCommand.
In CaricaUnMenu() l'istruzione critica per la quale non ho al momento soluzione è
string lCommandCode =?? lIdCommand.code()
Non riesco ad ottenere un codice comando da un IDCommand.
Ho trovato una discussione sui cast in In.De (Cast oggetti di libreria,
http://forum.progamma.com/viewtopic.php?f=5&t=491&p=2125&hilit=cast#p2125) ma prima sarebbe interessante sapere
1 - perché non è possibile istanziare una variabile CommandSet (forse il tipo NON è un'interfaccia? non è pubblica?)
Avrei voluto verificare se fosse possibile scrivere
CommandSet cs = CommandSet.cast(lIDCommand);
2 - che relazioni ci sarebbero tra IDCommand e CommandSet (ovvero se ha senso pensare ad un cast).