atl eğitim de&netim bağlantı noktaları için destek nasıl oluşturulacağı gösterilmiştir olaylar ve ardından bağlantı point.nbsp; nasıl eklemek için IConnectionPointImpl nasıl bir bağlantı noktası atl uygulayan tartışıyor.
Bir bağlantı noktasını uygulamak için iki seçeneğiniz vardır.:
Kendi out-going olay kaynağı (bağlantı noktası) uygulanması.
Başka bir tür kitaplığında tanımlanmış bağlantı noktası arabirim yeniden.
Her iki durumda da a bağlantı noktası Sihirbazı'nı, işini yapmak için bir tür kitaplığı kullanır.
&Notnbsp; Zaten bir bağlantı noktası üzerinde geçirdik bir görüntüleme arabirimi için bir yöntem eklediğinizde, .idl dosyası yeniden derleyin ve denetim veya nesne için bir bağlantı noktası eklemek için yordamı izleyin.
Denetim veya nesne için bir bağlantı noktası eklemek için
Bir görüntüleme arabirimi .idl dosyayı kitaplığa bloğunda tanımlama. atl nesne sihirbaz öznitelikleri sekmesini Destek bağlantı noktaları onay kutusunu seçtiyseniz, görüntüleme arabirimi zaten oluşturulur. Destek bağlantı noktaları onay kutuyu değil, bir görüntüleme arabirimi .idl dosyasına el ile eklemeniz gerekir. Bir görüntüleme arabirimi örneği aşağıdadır. Giden arabirimleri gönderme arayüzleri için gerekli değildir ancak böylece iki dispinterfaces Bu örnek kullanır, bu, VBScript ve JavaScript gibi birçok komut dosyası dilleri gerektirir:
GUID üretmek için uuidgen.exe veya guidgen.exe yardımcı programlarını kullanma.
Görü&ntüleme arabirimi olarak ekleme [varsayılan, kaynak] arabirimi coclass için object.nbsp; Yine, atl nesne Sihirbazı'nı bu denetim için öznitelikler sekmesinde Destek bağlantı noktaları onay kutusunu seçtiyseniz, sihirbaz oluşturur [varsayılan, kaynak] girdi. Bu girdi el ile eklemek için satır eklemek kalın:
.İdl dosyasına bakın CIRC atl örnek bir örnek için.
ClassView olay arabirimi eklemek, yöntemlerini ve özelliklerini kullanın.
Görü&ntüleme arabirimi tam olarak tanımlandıktan sonra .idl dosyasını FileView .idl dosyayı sağ tıklatıp seçerek derleme option.nbsp derlemek; Bu tür kitaplığı üretecek.
ClassView sı&nıfta sağ tıklatın ve Uygulama bağlantı noktası...seçin. Bir veya daha fazla tür kitaplığı Sekmeler iletişim kutusu görüntülenir ve bu tür library.nbsp arabirimleri her sekme görüntülenir; Bir arabirim seçin ve oktuşuna basın, olacak:
Üstbilgi dosyası ile olay out-going çağrıları yapacak kodu uygulayan bir olay proxy sınıf oluşturmak.
Bağlantı noktası harita girdi ekleme.
Bir yorum ve görüntülenebilecek (null parametre DISPID adresiyle değiştirmek için söylüyorum) IProvideClassInfo2Impl parametre listesine ekle.
Tür kitaplığı hazırladığı&nız değil, sen-ecek görmek tüm typelibs listesi senin computer.nbsp; Bu diğer typelibs biri, başka bir tür kitaplığı içinde bulunan tam aynı giden arabirim uygulamak istiyorsanız, bağlantı noktası tanımlamak için sadece kullanmalısınız. Bir tür kitaplığı coclass hiçbir varsayılan kaynak arabirimiyle oluşturursanız, uygun (kaynak) arabirim türü kitaplığı bildirdiği bir uyarı iletisi iletişim kutusu görüntülenir.
Bir bağlantı noktası başka bir nesnenin türü Kitaplığı'ndan alınan uygulamak için
ClassView, BEGIN_COM_MAP makro uygulayan bir sınıf üzerinde sağ tıklatın ve kısayol menüsünden uygulama bağlantı noktası seçin.
Uygulama bağlantı noktası iletişim kutusunda, Eklemek Typelib... seçeneğini tıklatın.
Mevcut tip libraries.  birini seçin; Tür kitaplığını seçtikten sonra tür kitaplığı'ndaki kullanılabilir arabirimlerin listesini göreceksiniz.
Bir veya daha fazla kullanılabilir arabirimleri seçin ve Tamam ' ı tıklatın.
Ya da .idl dosyasını düzenleyin:
Görüntüleme arabirimi olan olay kaynağı kullanılmakta olan nesnenin IDL dosya kopyalama.
Kullanımı bu tür kitaplığı importlib yönerge.
.İdl dosyasından CIRC denetimi bağlantı noktası kullanan bir örnek.
[
uuid(38BBFD91-7575-11D1-8C3C-0060083E866C),
version(1.0),
HelpString ("16190 1.0 tür kitaplığı")
]
Kütüphane MY16190Lib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
importlib("D:\\ATL25\\samples\\circ\\circ.tlb"); / / **** eklemek bu hattı [
uuid(38BBFD9E-7575-11D1-8C3C-0060083E866C),
HelpString ("Atl16190Ctl Class")
]
coclass Atl16190Ctl
{
[varsayılan] arabirim IAtl16190Ctl;
[varsayılan, kaynak] görüntüleme arabirimi _CircEvents; / / **** ve bu
};
}