2008-09-24 13 views
6

MS ATL kitaplığı kullanılarak yazılmış bir COM nesnesine sahibim. IDL'de bir dizi numaralandırma beyan ettim ancak MS COM Nesne Görüntüleyici aracını kullanarak tür kitaplığını görüntülerken görünmüyorlar. Sorun şu ki eksik enumlar aslında COM yöntemlerinin herhangi biri tarafından parametre olarak kullanılmamaktadır - bu enumları nasıl görünmeye zorlayabilirim? IDL ÖrneğinIDL numaralandırma tür kitaplığında görüntülenmiyor

,: söz konusu çeteleler doğrudan herhangi yöntemlerle kullanılmaz halde

// 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); 

, hala nesne kullanan herkes için yararlı olacağını, ama ben alamıyorum onları ihraç etmek için.

Bunu daha önce gören oldu mu?

cevap

13

IDL'nin library bölümüne koydunuz mu? Sadece library bölümünde belirtilen türler TLB'ye gider.

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

Bu hile yaptı! Teşekkür ederim. – Rob

+0

Duymak güzel. Ne biliyorsun, StackOverflow aslında insanların yardım bulmasına yardım ediyor! : o) – Motti

+0

Sadece aynı harika görünüyor – thatsalok