templatelt; Ŭ·¡½ºT (&L)gt;
CComPtr Ŭ·¡½º(&G)
¸Å°³ º¯¼ö
T
ÀúÀå Æ÷ÀÎÅÍÀÇ Çü½ÄÀ» ÁöÁ¤ ÇÏ´Â COM ÀÎÅÍÆäÀ̽º¡£
ATL CComPtr ¹× CComQIPtr »ç¿ë ÇÏ ¿© COM ÀÎÅÍÆäÀ̽º Æ÷ÀÎÅ͸¦ °ü¸® ÇÕ´Ï´Ù. µÎ Ŭ·¡½º ¸ðµÎ ÀÚµ¿ ÂüÁ¶ AddRef ¹× Release¿¡ ´ë ÇÑ È£ÃâÀ» ÅëÇØ °è»êÀ» ¼öÇà ÇÕ´Ï´Ù. ¿À¹ö ·Îµå µÈ ¿¬»êÀÚ´Â Æ÷ÀÎÅÍ ÀÛ¾÷À» ó¸® ÇÕ´Ï´Ù. CComQIPtr ¶ÇÇÑ ÀÚµ¿ Äõ¸® ÀÎÅÍÆäÀ̽ºÀÇ ºñ·Ï QueryInterface Áö¿ø¡£
´ÙÀ½ ÄÚµå´Â CFirePropNotifyEvent::FireOnRequestEdit ¿¡¼
Á¤Àû HRESULT FireOnRequestEdit(IUnknown* pUnk, DISPID dispID)
{
nbsp; < IConnectionPointContainer, & IID_IConnectionPointContainer > CComQIPtr pCPC(pUnk);
? °æ¿ì (! pCPC)
???? return S_OK;
CComPtr <IConnectionPoint> ÁÖÄ¡ÀÇ;
? pCPC-> FindConnectionPoint (IID_IPropertyNotifySink, & ÁÖÄ¡ÀÇ);
? °æ¿ì (! ÁÖÄ¡ÀÇ)
???? return S_OK;
...
}
ÀÌ ¿¹Á¦¿¡¼´Â ´ÙÀ½ º¸¿© ÁÝ´Ï´Ù.:
pCPC ¿¡ QueryInterface ¸¦ È£Ãâ pUnk IConnectionPointContainer Æ÷ÀÎÅ͸¦ ¾òÀ¸·Á°í ÇÕ´Ï´Ù. °Ë»öµÈ Æ÷ÀÎÅÍ¿¡ ÀúÀå µË´Ï´Ù.pCPC¡£pCP , IConnectionPoint Æ÷ÀÎÅÍ¡£pCPC ¸¦ ÅëÇØ IConnectionPoint Æ÷ÀÎÅ͸¦ °Ë»öpCP¡£# include lt;atlbase.h>
Âü°í Ç׸ñnbsp;CComPtr::CComPtr, CComQIPtr::CComQIPtr(&N)