Domanda

Ho un oggetto COM scritto usando la libreria MS ATL. Ho dichiarato un sacco di enumerazioni nell'IDL ma NON vengono visualizzate quando si visualizza la libreria dei tipi utilizzando lo strumento Visualizzatore oggetti COM MS. Il problema sembra essere che gli enumeratori mancanti non vengono effettivamente utilizzati come parametri da nessuno dei metodi COM: come posso forzare la visualizzazione di questi enumeratori?

Ad esempio, nell'IDL:

// Used by Foo method, so appears in the type library
typedef enum FOO
{
    FOO_1,
    FOO_2,
} FOO;

// Not used by any method, so won't appear in the type library
typedef enum BAR
{
    BAR_1,
    BAR_2,
} BAR;

[id(1)] HRESULT Foo([in] FOO eFoo);

Anche se gli enum in questione non sono utilizzati direttamente da alcun metodo, saranno comunque utili a chiunque utilizzi l'oggetto, ma non riesco a farli esportare.

Qualcuno l'ha mai visto prima?

È stato utile?

Soluzione

Li hai inseriti nella sezione library dell'IDL? Solo i tipi menzionati nella sezione library vanno nel TLB.

library MyLib {
    // ...
    enum BAR;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top