Funkcja QueryInterface

Chociaż mechanizmy, które obiekt można wyrazić funkcjonalność zapewnia statycznie (zanim zostanie uruchomiony), jest użycie mechanizmu podstawowych COM IUnknown metodę o nazwie QueryInterface.

Każdy interfejs jest pochodną IUnknown, więc każdy interfejs ma implementację QueryInterface.Niezależnie od implementacji ta metoda kwerendy obiektu przy użyciu IID interfejsu, do którego wywołujący chce wskaźnika.Jeśli obiekt obsługuje interfejsu, QueryInterface pobiera wskaźnika do interfejsu, podczas wywoływania również AddRef.W przeciwnym razie zwraca E_NOINTERFACE kod błędu.

Należy zauważyć, że muszą przestrzegać Zliczania odniesienia zasady przez cały czas.Jeśli zadzwonisz wersji na wskaźnika interfejsu, aby zmniejszyć liczbę odwołań do zera, nie należy używać tego wskaźnika ponownie.Czasami może być konieczne uzyskanie słabe odwołanie do obiektu (to znaczy, możesz uzyskać wskaźnik do jednego z interfejsów bez zwiększania licznika odwołań), ale nie jest dopuszczalne, aby to zrobić, wywołując QueryInterface następuje wersji.Wskaźnik uzyskanych w taki sposób jest nieprawidłowy i nie powinny być używane.To bardziej jasnym staje się podczas _ATL_DEBUG_INTERFACES , jest zdefiniowana, definiowanie to makro jest przydatny sposób odniesienia znajdowanie błędów zliczania.

Zobacz też

Informacje

Wprowadzenie do modelu COM

QueryInterface: Navigating in an Object