Udostępnij za pośrednictwem


Dodawanie punktów połączeń do obiektu

Samouczek ATL demonstruje, jak utworzyć formant z obsługą punktów połączenia, jak dodać zdarzenia i sposób implementacji punktu połączenia.ATL implementuje punktów połączenia z IConnectionPointImpl klasy.

Aby zaimplementować punktu połączenia, masz dwie możliwości:

  • Wdrożenie własne źródło zdarzeń wychodzących, przez dodanie punktu połączenia do formantu lub obiektu.

  • Ponowne używanie interfejsu punktu połączenia, zdefiniowane w innej bibliotece typów.

W każdym przypadku kreatora punktu połączenia wdrożenie używa biblioteki typów do jego pracy.

Aby dodać punkt połączenia do formantu lub obiektu

  1. Definiowanie dispinterface bloku biblioteki w pliku .idl.Włączenie obsługi punktów połączenia podczas tworzenia formantu za pomocą Kreatora kontroli ATL dispinterface już zostanie utworzony.Jeśli nie została włączona obsługa punktów połączenia podczas tworzenia formantu, należy ręcznie dodać dispinterface do pliku .idl.Oto przykład dispinterface.Interfejsy wychodzące nie są wymagane interfejsy wysyłki, ale wiele języków skryptów, takich jak VBScript i JScript, wymagają, aby w tym przykładzie dwa dispinterfaces:

    [
       uuid(3233E37D-BCC0-4871-B277-48AE6B61224A),
       helpstring("Buddy Events")
    ]
    dispinterface DBuddyEvents
    {
       properties:
       methods:
    };
    

    Użyj narzędzia uuidgen.exe lub guidgen.exe do generowania identyfikatora GUID.

  2. Dodawanie dispinterface jako [default,source] interfejsu w coclass dla obiektu w pliku .idl projektu.Ponownie, jeśli została włączona obsługa punktów połączenia podczas tworzenia formantu, ATL kontroli Kreator utworzy [default,source] wpis.Aby ręcznie dodać ten wpis, należy dodać wiersz pogrubioną czcionką:

    coclass Buddy
    {
       [default] interface IBuddy;
       [default,source] dispinterface DBuddyEvents;
    };
    

    Zobacz plik .idl w okólnik próbki ATL przykład.

  3. Za pomocą widoku klasy dodać metod i właściwości interfejsu zdarzenia.Kliknij prawym przyciskiem myszy klasę, w widoku klasy, wskaż Dodaj w menu skrótów, a następnie kliknij DodajPunkt połączenia.

  4. W Źródło interfejsów pole listy wdrożenie kreatora punktu połączenia, zaznacz interfejsów projektu.Jeśli wybierzesz interfejsu sterowania i naciśnij OK, będą:

    • Generowanie pliku nagłówka z klasy proxy zdarzeń, który implementuje kod, aby wychodzące zdarzenia.

    • Dodawanie wpisu do mapy punktu połączenia.

    Na komputerze będzie także wyświetlić listę wszystkich bibliotek typów.Należy używać tylko jednego z tych bibliotek typów określenie punktu połączenia, jeśli chcesz zaimplementować dokładnie tego samego interfejsu wychodzących w innej biblioteki typów.

Ponowne używanie interfejsu punktu połączenia zdefiniowane w innej bibliotece typów

  1. W widoku klasy prawym przyciskiem myszy klasę, która implementuje BEGIN_COM_MAP makro, wskaż Dodaj w menu skrótów, a następnie kliknij DodajPunkt połączenia.

  2. Wdrożenie kreatora punktu połączenia, wybierz interfejs i biblioteki typów w bibliotece typów, a następnie kliknij przycisk Dodaj.

  3. Edytowanie pliku .idl albo:

    • Skopiuj dispinterface z pliku .idl dla obiektu, którego źródło zdarzeń jest używany.

    • Użyj importlib instrukcje dotyczące tej biblioteki typów.

Zobacz też

Informacje

Punkty połączenia ATL