Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ta klasa stanowi podstawę dla inteligentnych klas wskaźników przy użyciu procedur pamięci opartych na modelu COM.
Składnia
template <class T>
class CComPtrBase
Parametry
T
Typ obiektu, do do którym ma odwoływać się inteligentny wskaźnik.
Elementy członkowskie
Konstruktory publiczne
| Nazwa/nazwisko | opis |
|---|---|
CComPtrBase::~CComPtrBase |
Destruktora. |
Metody publiczne
| Nazwa/nazwisko | opis |
|---|---|
CComPtrBase::Advise |
Wywołaj tę metodę, aby utworzyć połączenie między CComPtrBasepunktem połączenia a ujściem klienta. |
CComPtrBase::Attach |
Wywołaj tę metodę, aby przejąć własność istniejącego wskaźnika. |
CComPtrBase::CoCreateInstance |
Wywołaj tę metodę, aby utworzyć obiekt klasy skojarzonej z określonym identyfikatorem klasy lub identyfikatorem programu. |
CComPtrBase::CopyTo |
Wywołaj tę metodę, aby skopiować CComPtrBase wskaźnik do innej zmiennej wskaźnika. |
CComPtrBase::Detach |
Wywołaj tę metodę, aby zwolnić własność wskaźnika. |
CComPtrBase::IsEqualObject |
Wywołaj tę metodę, aby sprawdzić, czy określone IUnknown punkty do tego samego obiektu skojarzonego z obiektem CComPtrBase . |
CComPtrBase::QueryInterface |
Wywołaj tę metodę, aby zwrócić wskaźnik do określonego interfejsu. |
CComPtrBase::Release |
Wywołaj tę metodę, aby zwolnić interfejs. |
CComPtrBase::SetSite |
Wywołaj tę metodę, aby ustawić lokację CComPtrBase obiektu na IUnknown obiekt nadrzędny. |
Operatory publiczne
| Nazwa/nazwisko | opis |
|---|---|
CComPtrBase::operator T* |
Operator rzutowania. |
CComPtrBase::operator ! |
Operator NOT. |
CComPtrBase::operator & |
Operator address-of & . |
CComPtrBase::operator * |
Operator wskaźnika do * . |
CComPtrBase::operator < |
Operator less-than. |
CComPtrBase::operator == |
Operator równości. |
CComPtrBase::operator -> |
Operator wskaźnik-składowy. |
Elementy członkowskie danych publicznych
| Nazwa/nazwisko | opis |
|---|---|
CComPtrBase::p |
Zmienna składowa danych wskaźnika. |
Uwagi
Ta klasa stanowi podstawę dla innych inteligentnych wskaźników korzystających z procedur zarządzania pamięcią COM, takich jak CComQIPtr i CComPtr. Klasy pochodne dodają własne konstruktory i operatory, ale polegają na metodach dostarczonych przez CComPtrBaseprogram .
Wymagania
Nagłówek: atlcomcli.h
CComPtrBase::Advise
Wywołaj tę metodę, aby utworzyć połączenie między CComPtrBasepunktem połączenia a ujściem klienta.
HRESULT Advise(
IUnknown* pUnk,
const IID& iid,
LPDWORD pdw) throw();
Parametry
pUnk
Wskaźnik do klienta IUnknown.
iid
Identyfikator GUID punktu połączenia. Zazwyczaj ten identyfikator GUID jest taki sam jak interfejs wychodzący zarządzany przez punkt połączenia.
pdw
Wskaźnik do pliku cookie, który jednoznacznie identyfikuje połączenie.
Wartość zwracana
Zwraca wartość S_OK powodzenia lub błąd HRESULT po niepowodzeniu.
Uwagi
Aby uzyskać więcej informacji, zobacz AtlAdvise.
CComPtrBase::Attach
Wywołaj tę metodę, aby przejąć własność istniejącego wskaźnika.
void Attach(T* p2) throw();
Parametry
p2
Obiekt CComPtrBase przejmie na własność ten wskaźnik.
Uwagi
Attach wywołuje CComPtrBase::Release istniejącą CComPtrBase::p zmienną składową, a następnie przypisuje p2 do CComPtrBase::p. CComPtrBase Gdy obiekt przejmuje własność wskaźnika, automatycznie wywoła Release wskaźnik, co spowoduje usunięcie wskaźnika i wszelkich przydzielonych danych, jeśli liczba odwołań względem obiektu przekroczy wartość 0.
CComPtrBase::~CComPtrBase
Destruktora.
~CComPtrBase() throw();
Uwagi
Zwalnia interfejs wskazywany przez CComPtrBase.
CComPtrBase::CoCreateInstance
Wywołaj tę metodę, aby utworzyć obiekt klasy skojarzonej z określonym identyfikatorem klasy lub identyfikatorem programu.
HRESULT CoCreateInstance(
LPCOLESTR szProgID,
LPUNKNOWN pUnkOuter = NULL,
DWORD dwClsContext = CLSCTX_ALL) throw();
HRESULT CoCreateInstance(
REFCLSID rclsid,
LPUNKNOWN pUnkOuter = NULL,
DWORD dwClsContext = CLSCTX_ALL) throw();
Parametry
szProgID
Wskaźnik do identyfikatora ProgID używanego do odzyskania identyfikatora CLSID.
pUnkOuter
Jeśli wartość NULL oznacza, że obiekt nie jest tworzony w ramach agregacji. Jeśli wartość nie ma wartości NULL, jest wskaźnikiem do interfejsu obiektu IUnknown agregacji (kontrolka IUnknown).
dwClsContext
Kontekst, w którym zostanie uruchomiony kod zarządzający nowo utworzonym obiektem.
rclsid
IDENTYFIKATOR CLSID skojarzony z danymi i kodem, który zostanie użyty do utworzenia obiektu.
Wartość zwracana
Zwraca wartość S_OK powodzenia lub REGDB_E_CLASSNOTREG, CLASS_E_NOAGGREGATION, CO_E_CLASSSTRINGlub E_NOINTERFACE w przypadku niepowodzenia. Zobacz CoCreateClassInstance i CLSIDFromProgID , aby zapoznać się z opisem tych błędów.
Uwagi
Jeśli wywoływana jest pierwsza forma metody, CLSIDFromProgID jest używana do odzyskania identyfikatora CLSID. Obie formularze następnie wywołają metodę CoCreateClassInstance.
W kompilacjach debugowania wystąpi błąd asercji, jeśli CComPtrBase::p nie jest równy wartości NULL.
CComPtrBase::CopyTo
Wywołaj tę metodę, aby skopiować CComPtrBase wskaźnik do innej zmiennej wskaźnika.
HRESULT CopyTo(T** ppT) throw();
Parametry
ppT
Adres zmiennej do odbierania CComPtrBase wskaźnika.
Wartość zwracana
Zwraca powodzenie S_OK po E_POINTER niepowodzeniu.
Uwagi
Kopiuje CComPtrBase wskaźnik do ppT. Liczba odwołań dla zmiennej składowej CComPtrBase::p jest zwiększana.
Jeśli wartość null jest równa null, zostanie zwrócony ppT błądHRESULT. W kompilacjach debugowania wystąpi błąd asercji, jeśli ppT jest równy wartości NULL.
CComPtrBase::Detach
Wywołaj tę metodę, aby zwolnić własność wskaźnika.
T* Detach() throw();
Wartość zwracana
Zwraca kopię wskaźnika.
Uwagi
Zwalnia własność wskaźnika, ustawia CComPtrBase::p zmienną składową danych na wartość NULL i zwraca kopię wskaźnika.
CComPtrBase::IsEqualObject
Wywołaj tę metodę, aby sprawdzić, czy określone IUnknown punkty do tego samego obiektu skojarzonego z obiektem CComPtrBase .
bool IsEqualObject(IUnknown* pOther) throw();
Parametry
pOther
Element IUnknown * do porównania.
Wartość zwracana
Zwraca wartość true, jeśli obiekty są identyczne, w przeciwnym razie wartość false.
CComPtrBase::operator !
Operator NOT.
bool operator!() const throw();
Wartość zwracana
Zwraca wartość true, jeśli CComHeapPtr wskaźnik ma wartość NULL, w przeciwnym razie wartość false.
CComPtrBase::operator &
Operator address-of & .
T** operator&() throw();
Wartość zwracana
Zwraca adres obiektu wskazywanego CComPtrBase przez obiekt.
CComPtrBase::operator *
Operator wskaźnika do * .
T& operator*() const throw();
Wartość zwracana
Zwraca wartość CComPtrBase::p, czyli wskaźnik do obiektu, do którego odwołuje CComPtrBase się obiekt.
W przypadku kompilacji debugowania wystąpi błąd asercji, jeśli CComPtrBase::p nie jest równy wartości NULL.
CComPtrBase::operator ==
Operator równości.
bool operator== (T* pT) const throw();
Parametry
pT
Wskaźnik do obiektu.
Wartość zwracana
Zwraca wartość true, jeśli CComPtrBase i pT wskazuje ten sam obiekt, w przeciwnym razie wartość false.
CComPtrBase::operator ->
Operator wskaźnika do elementu członkowskiego.
_NoAddRefReleaseOnCComPtr<T>* operator->() const throw();
Wartość zwracana
Zwraca wartość zmiennej składowej CComPtrBase::p danych.
Uwagi
Użyj tego operatora, aby wywołać metodę w klasie wskazywanej CComPtrBase przez obiekt. W kompilacjach debugowania wystąpi błąd asercji, jeśli CComPtrBase element członkowski danych wskazuje wartość NULL.
CComPtrBase::operator <
Operator less-than.
bool operator<(T* pT) const throw();
Parametry
pT
Wskaźnik do obiektu.
Wartość zwracana
Zwraca wartość true, jeśli wskaźnik zarządzany przez bieżący obiekt jest mniejszy niż wskaźnik, do którego jest porównywany.
CComPtrBase::operator T*
Operator rzutowania.
operator T*() const throw();
Uwagi
Zwraca wskaźnik do typu danych obiektu zdefiniowanego w szablonie klasy.
CComPtrBase::p
Zmienna składowa danych wskaźnika.
T* p;
Uwagi
Ta zmienna składowa przechowuje informacje o wskaźniku.
CComPtrBase::QueryInterface
Wywołaj tę metodę, aby zwrócić wskaźnik do określonego interfejsu.
template <class Q> HRESULT QueryInterface(Q
** pp) const throw();
Parametry
Q
Typ obiektu, którego wskaźnik interfejsu jest wymagany.
pp
Adres zmiennej wyjściowej, która odbiera żądany wskaźnik interfejsu.
Wartość zwracana
Zwraca wartość S_OK powodzenia lub E_NOINTERFACE niepowodzenia.
Uwagi
Ta metoda wywołuje metodę IUnknown::QueryInterface.
W kompilacjach debugowania wystąpi błąd asercji, jeśli pp nie jest równy wartości NULL.
CComPtrBase::Release
Wywołaj tę metodę, aby zwolnić interfejs.
void Release() throw();
Uwagi
Interfejs jest zwalniany i CComPtrBase::p jest ustawiony na wartość NULL.
CComPtrBase::SetSite
Wywołaj tę metodę, aby ustawić lokację CComPtrBase obiektu na IUnknown obiekt nadrzędny.
HRESULT SetSite(IUnknown* punkParent) throw();
Parametry
punkParent
Wskaźnik do IUnknown interfejsu elementu nadrzędnego.
Wartość zwracana
Zwraca wartość S_OK powodzenia lub błąd HRESULT po niepowodzeniu.
Uwagi
Ta metoda wywołuje metodę AtlSetChildSite.