CConnectionPoint

CConnectionPoint Ŭ·¡½º Á¤ÀÇ Æ¯¼ö ÇÑ À¯ÇüÀÇ "¿¬°á ÁöÁ¡ÀÔ´Ï´Ù." ¶ó´Â ´Ù¸¥ OLE °³Ã¼¿Í Åë½Å ÇÏ´Â µ¥ »ç¿ë ÇÏ´Â ÀÎÅÍÆäÀ̽º ¿¬°á ÁöÁ¡ À̺¥Æ®¸¦ ¹ß»ç ÇÏ´Â µîÀÇ ´Ù¸¥ °³Ã¼¿¡ ´ë ÇÑ ÀÛ¾÷À» ½ÃÀÛ ÇÏ °í º¯°æ ¾Ë¸² ¼ö ÀÖ´Â º¸³»´Â ÀÎÅÍÆäÀ̽º¸¦ ±¸Çö ÇÏ´Â ÀÏ¹Ý OLE ÀÎÅÍÆäÀ̽º¸¦ ±¸Çö ÇÏ °í OLE ÄÁÆ®·ÑÀÇ ±â´ÉÀ» »ç¿ë ÇÏ´Â ´Þ¸®¡£

¿¬°áÀÇ µÎ ºÎºÐÀ¸·Î ±¸¼º µË´Ï´Ù: "¼Ò½º" ¹× ÀÎÅÍÆäÀ̽º¸¦ ±¸Çö ÇÏ´Â °³Ã¼¸¦ È£Ãâ ÇÏ´Â ÀÎÅÍÆäÀ̽º¸¦ È£Ãâ ÇÏ´Â °³Ã¼ ¶ó´Â "½ÌÅ©"¸¦ ¼±Åà ÇÕ´Ï´Ù. ¿¬°á ÁöÁ¡À» ³ëÃâ ÇÔÀ¸·Î½á ¼Ò½º ÀÚü¿¡ ´ë ÇÑ ¿¬°áÀ» ¼³Á¤ ÇÏ´Â ½ÌÅ©¸¦ ¼ö ÀÖ½À´Ï´Ù. ¿¬°á ÁöÁ¡ ¸ÞÄ¿´ÏÁòÀ» ÅëÇØ ¿øº» °³Ã¼ ¸â¹ö ÇÔ¼ö ÁýÇÕÀÇ ½ÌÅ©ÀÇ ±¸Çö¿¡ ´ë ÇÑ Æ÷ÀÎÅ͸¦ °¡Á®¿É´Ï´Ù. ¼Ò½º À̺¥Æ® ½ÌÅ©¿¡ ÀÇÇØ ±¸Çö µÈ È­Àç´Â ½ÌÅ© ±¸ÇöÀÇ ÀûÀý ÇÑ ¸Þ¼­µå¸¦ È£ÃâÇÒ ¼ö ¿¹¸¦ µé¾î,¡£

±âº»ÀûÀ¸·Î COleControl-µÎ °³ÀÇ ¿¬°á ÁöÁ¡À» ±¸Çö ÇÏ´Â ÆÄ»ýµÈ Ŭ·¡½º: À̺¥Æ® ¹× ¼Ó¼º º¯°æ ¾Ë¸². ÀÌ·¯ÇÑ ¿¬°áÀº »ç¿ë, °¢°¢ ¶§ ½ÌÅ© (¿¹¸¦ µé¾î, ÄÁÆ®·ÑÀÇ ÄÁÅ×À̳Ê)¸¦ ¾Ë¸®´Â ¹× À̺¥Æ® ¹ß»ý¿¡ ´ë ÇÑ ¼Ó¼º °ª º¯°æ µÇ¾ú½À´Ï´Ù. Ãß°¡ ¿¬°á ÁöÁ¡À» ±¸Çö ÇÏ·Á¸é OLE ÄÁÆ®·Ñ¿¡ ´ë ÇÑ Áö¿øÀÌ Á¦°ø µË´Ï´Ù. ÄÁÆ®·Ñ Ŭ·¡½º¿¡¼­ ±¸Çö µÈ °¢ Ãß°¡ ¿¬°á ÁöÁ¡¿¡ ´ë ÇÑ ¿¬°á ÁöÁ¡À» ±¸Çö ÇÏ´Â "¿¬°á ºÎºÐ"¸¦ ¼±¾ð ÇØ¾ß ÇÕ´Ï´Ù. Çϳª ÀÌ»óÀÇ ¿¬°á ÁöÁ¡À» ±¸Çö ÇÏ´Â °æ¿ì ´ç½ÅÀº ¶ÇÇÑ ´ÜÀÏ ÄÁÆ®·Ñ Ŭ·¡½º¿¡¼­ "¿¬°á Áöµµ"¸¦ ¼±¾ðÇÒ Çʿ䰡¡£

´ÙÀ½ ¿¹Á¦¿¡¼­´Â ´Ü¼øÇÑ ¿¬°á ¸Ê°ú ´ë ÇÑ ¿¬°á ÁöÁ¡À» Sample ÄÚµåÀÇ µÎ ºÎºÐÀ¸·Î ±¸¼º µÈ OLE ÄÁÆ®·Ñ: ¿¬°á ¸Ê°ú Æ÷ÀÎÆ®¸¦ ¼±¾ð Çϴ ù ¹øÂ° ºÎºÐ,ÀÌ Áöµµ Æ÷ÀÎÆ®¸¦ ±¸Çö ÇÏ´Â µÎ ¹øÂ°. ù ¹øÂ° Á¶°¢ º¸È£ ±¸¿ªÀÇ ÄÁÆ®·Ñ Ŭ·¡½ºÀÇ ¼±¾ð¿¡ »ðÀÔ

 nbsp;???/ / ISample ÀÎÅÍÆäÀ̽º¿¡ ´ë ÇÑ ¿¬°á ÁöÁ¡
 ?? BEGIN_CONNECTION_PART (CSampleCtrl, SampleConnPt)
 ?????? CONNECTION_IID(IID_ISampleSink)
 ?? END_CONNECTION_PART(SampleConnPt)

DECLARE_CONNECTION_MAP()(&N)

Æ÷ÇÔµÈ Çϴ Ŭ·¡½º¸¦ ¼±¾ð ÇÏ´Â BEGIN_CONNECTION_PART ¹× END_CONNECTION_PART ¸ÅÅ©·Î XSampleConnPt ´ÂÀÌ Æ¯Á¤ ¿¬°á ÁöÁ¡ ±¸Çö ( CConnectionPoint¿¡¼­ ÆÄ»ý µÊ). ¸ðµç CConnectionPoint ¸â¹ö ÇÔ¼ö¸¦ ÀçÁ¤ÀÇ Çϰųª ÀڽŸ¸ÀÇ ¸â¹ö ÇÔ¼ö¸¦ Ãß°¡ ÇÏ·Á´Â °æ¿ì¿¡ ÀÌ·¯ÇÑ µÎ ¸ÅÅ©·Î »çÀÌ ¼±¾ð ÇÕ´Ï´Ù. CONNECTION_IID ¸ÅÅ©·Î ÀÌ·¯ÇÑ µÎ ¸ÅÅ©·Î »çÀÌ ¹èÄ¡ ÇÏ´Â °æ¿ì CConnectionPoint::GetIID ¸â¹ö ÇÔ¼ö¸¦ ÀçÁ¤ÀÇ ÇÏ´Â ¿¹¸¦ µé¾î,¡£

±¸Çö ÆÄÀÏ¿¡ µÎ ¹øÂ° ÄÚµå Á¶°¢ »ðÀÔ (.CPP) ÄÁÆ®·Ñ Ŭ·¡½ºÀÇ. ÀÌ ÄÚµå´Â Ãß°¡ ¿¬°á ÁöÁ¡À» Æ÷ÇÔ ÇÏ´Â ¿¬°á Áöµµ ±¸ÇöSampleConnPt:

BEGIN_CONNECTION_MAP (CSampleCtrl, COleControl)
 nbsp;? CONNECTION_PART (CSampleCtrl, IID_ISampleSink, SampleConnPt)
END_CONNECTION_MAP()(&N)

ÀÌ ÄÚµå Á¶°¢ÀÌ »ðÀÔ µÇ ¸é »ùÇà OLE ÄÁÆ®·Ñ ISampleSink ÀÎÅÍÆäÀ̽º¿¡ ´ë ÇÑ ¿¬°á ÁöÁ¡À» ³ëÃâÇÕ´Ï´Ù¡£

ÀϹÝÀûÀ¸·Î, ¿¬°á ÁöÁ¡À» Áö¿ø "ij½ºÆÃ"; ¿©·¯ ½ÌÅ©¸¦ ¹æ¼Û ÇÏ´Â ±â´É °°Àº ÀÎÅÍÆäÀ̽º¿¡ ¿¬°á ÇÕ´Ï´Ù. ´ÙÀ½ ÄÚµå Á¶°¢¿¡¼­´Â ¿¬°á ÁöÁ¡¿¡¼­ °¢ ½ÌÅ©¸¦ ¹Ýº¹ ÇÏ ¿© ¸ÖƼ ij½ºÆÃÀ» ¼öÇà ÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù.:

void CSampleCtrl::CallSinkFunc()
{
 nbsp;? const CPtrArray * pConnections = m_xSampleConnPt.GetConnections();
 ?? ASSERT (pConnections! = NULL);

int cConnections = pConnections-> GetSize();
 ?? ISampleSink * pSampleSink;
 ?? ¿¡ ´ë ÇÑ (int I = 0; ³­ < cConnections; i + +)
 ?? {
 ?????? pSampleSink = (ISampleSink *) (pConnections-> GetAt(i));
 ?????? ASSERT (pSampleSink! = NULL);
 ?????? pSampleSink-> SinkFunc();
 ?? }
}

¿¡ ¿¬°á ÇöÀç ÁýÇÕÀ» °Ë»ö ÇÏ´ÂÀÌ ¿¹Á¦¿¡¼­ SampleConnPt ¸¦ È£Ãâ ÇÏ ¿© ¿¬°á ÁöÁ¡ CConnectionPoint::GetConnections . ´ÙÀ½ ¹Ýº¹ ¿¬°á ¹× È£Ãâ ISampleSink::SinkFunc ¸ðµç Ȱ¼º ¿¬°á¿¡¡£

CConnectionPoint»ç¿ë¿¡ ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ À¥ »çÀÌÆ®¸¦ ÂüÁ¶ ÇϽʽÿÀ. ¹®¼­ Visual c + + ÇÁ·Î±×·¡¸Ó °¡À̵å ÀÇ ¿¬°áÁ¡¡£

# include lt;afxctl.h>

Ŭ·¡½º ¸â¹ö |nbsp; ±âº» Ŭ·¡½º (ko) | °èÃþ ±¸Á¶ Â÷Æ®(&N)

Index