2008-09-24 10 views
6

Ho un oggetto COM scritto utilizzando la libreria MS ATL. Ho dichiarato una serie di enumerazioni nell'IDL ma NON appaiono quando si visualizza la libreria dei tipi utilizzando lo strumento Visualizzatore oggetti COM di MS. Il problema sembra essere che le enumerazioni mancanti non vengono effettivamente utilizzate come parametri da nessuno dei metodi COM - come posso forzare l'apparizione di queste enumerazioni?elenco IDL non visualizzato nella libreria dei tipi

Ad esempio, nel 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 le enumerazioni in questione non sono utilizzate direttamente con qualsiasi metodo, essi saranno ancora essere utile a chiunque utilizzi l'oggetto, ma non riesco a ottenere loro da esportare.

Qualcuno ha visto questo prima?

risposta

13

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

library MyLib { 
    // ... 
    enum BAR; 
+0

Questo ha fatto il trucco! Grazie. – Rob

+0

Buono a sapersi. Che cosa sai, StackOverflow aiuta effettivamente le persone a trovare aiuto! : o) – Motti

+0

Alla ricerca dello stesso solo – thatsalok

Problemi correlati