Ž»ö±â ½ºÅ¸ÀÏ ÈÄÅ© ÇÁ·Î½ÃÀú

Ž»ö±â ½ºÅ¸ÀÏ ¿­±â ¶Ç´Â ´Ù¸¥ À̸§À¸·Î ÀúÀå ´ëÈ­ »óÀÚ ÈÄÅ© ÇÁ·Î½ÃÀú, »ç¿ëÀÚ ÁöÁ¤ ¼­½Ä ÆÄÀÏ, ¶Ç´Â µÑ ¸ðµÎ¸¦ Á¦°ø ÇÏ ¿© »ç¿ëÀÚ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Ž»ö±â ½ºÅ¸ÀÏ ´ëÈ­ »óÀÚÀÇ ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ Á¦°ø ÇÏ´Â °æ¿ì ½Ã½ºÅÛ ±âº» ´ëÈ­ »óÀÚÀÇ ÀÚ½ÄÀÎ ´ëÈ­ »óÀÚ¸¦ ¸¸µì´Ï´Ù. ÈÄÅ© ÇÁ·Î½ÃÀú ´ëÈ­ ÇÁ·Î½ÃÀú ÀÚ½Ä ´ëÈ­ »óÀÚ¿¡ ´ë ÇÑ ¿ªÇÒÀ» ÇÕ´Ï´Ù. ÀÌ ÀÚ½Ä ´ëÈ­ »óÀÚ´Â ¾øÀ½ Á¦°ø ÇÏ´Â °æ¿ì »ç¿ëÀÚ ÁöÁ¤ ¼­½Ä ÆÄÀÏ ¶Ç´Â ±âº» ¼­½Ä ÆÄÀÏ¿¡ ±â¹Ý ÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ À¥ »çÀÌÆ®¸¦ ÂüÁ¶ ÇϽʽÿÀ. Ž»ö±â ½ºÅ¸ÀÏ »ç¿ëÀÚ ÁöÁ¤ ¼­½Ä ÆÄÀÏ.

Ž»ö±â ½ºÅ¸ÀÏ ¿­±â ¶Ç´Â ´Ù¸¥ À̸§À¸·Î ÀúÀå ´ëÈ­ »óÀÚ ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ »ç¿ë ÇÏ·Á¸é ´ëÈ­ »óÀÚ¸¦ ¸¸µé ¶§ OPENFILENAME ±¸Á¶¸¦ »ç¿ë ÇÕ´Ï´Ù. Ç÷¡±× ±¸¼º¿ø¿¡¼­ OFN_ENABLEHOOK ¹× OFN_EXPLORER Ç÷¡±×°¡ ¼³Á¤ ÇÏ °í lpfnHook ¸â¹ö¿¡¼­ OFNHookProc ÈÄÅ© ÇÁ·Î½ÃÀúÀÇ ÁÖ¼Ò¸¦ ÁöÁ¤ ÇÕ´Ï´Ù. ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ Á¦°ø OFN_EXPLORER Ç÷¡±×¸¦ »ý·« ÇÏ´Â °æ¿ì OFNHookProcOldStyle ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ »ç¿ë ÇØ¾ß ÇÏ °í ¿À·¡ µÈ-½ºÅ¸ÀÏÀÇ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ¾òÀ» °Í ÀÌ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ À¥ »çÀÌÆ®¸¦ ÂüÁ¶ ÇϽʽÿÀ. ¿À·¡ µÈ-½ºÅ¸ÀÏ ´ëÈ­ »óÀÚ »ç¿ëÀÚ ÁöÁ¤.

Ž»ö±â ½ºÅ¸ÀÏ ÈÄÅ© ÇÁ·Î½ÃÀú ´ëÈ­ »óÀÚ°¡ ¿­·Á ÀÖ´Â µ¿¾È ´Ù¾ç ÇÑ ¸Þ½ÃÁö¸¦ ¹Þ½À´Ï´Ù. ÀÌ·¯ÇÑ ´ÙÀ½°ú °°½À´Ï´Ù.:

¶ÇÇÑ, °Å±â¿¡ Á¤º¸¸¦ ¾ò±â À§ÇØ ¶Ç´Â ´ëÈ­ »óÀÚÀÇ ¸ð¾ç°ú µ¿ÀÛÀ» Á¦¾î ÇÏ·Á¸é Ž»ö±â ½ºÅ¸ÀÏ ´ëÈ­ »óÀÚ¿¡ º¸³¾ ¼ö ÀÖ´Â ¸Þ½ÃÁöÀÇ ÁýÇÕ.

Ž»ö±â ½ºÅ¸ÀÏ ´ëÈ­ »óÀÚÀÇ ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ Á¦°ø ÇÏ´Â °æ¿ì ±âº» ´ëÈ­ »óÀÚ ÇÁ·Î½ÃÀú°¡ ±âº» ´ëÈ­ »óÀÚ ÇÁ·Î½ÃÀú´Â WM_INITDIALOG ¸Þ½ÃÁö¸¦ ó¸® ÇÏ´Â °æ¿ì ÀÚ½Ä ´ëÈ­ »óÀÚ¸¦ ¸¸µì´Ï´Ù. ÈÄÅ© ÇÁ·Î½ÃÀú ´ëÈ­ ÇÁ·Î½ÃÀú ÀÚ½Ä ´ëÈ­ »óÀÚ¿¡ ´ë ÇÑ ¿ªÇÒÀ» ÇÕ´Ï´Ù. ÀÌ ½ÃÁ¡¿¡¼­ ÈÄÅ© ÇÁ·Î½ÃÀú´Â lParam ¸Å°³ º¯¼ö ´ëÈ­ »óÀÚ¸¦ ÃʱâÈ­ ÇÏ´Â µ¥ »ç¿ë ÇÏ´Â OPENFILENAME ±¸Á¶Ã¼ÀÇ ÁÖ¼Ò¸¦ ¼³Á¤ ÀÚü WM_INITDIALOG ¸Þ½ÃÁö¸¦ ¹Þ½À´Ï´Ù. ÀÚ½Ä ´ëÈ­ ÀÚü WM_INITDIALOG ¸Þ½ÃÁö¸¦ ó¸® ¿Ï·á ÈÄ ±âº» ´ëÈ­ »óÀÚ ÇÁ·Î½ÃÀú ÀÚ½Ä ´ëÈ­ »óÀÚÀÇ Ãß°¡ ÄÁÆ®·Ñ À§ÇÑ °ø°£À» ¸¸µé±â À§ÇØ ÇÊ¿äÇÑ °æ¿ì Ç¥ÁØ ÄÁÆ®·ÑÀ» À̵¿ ÇÕ´Ï´Ù. ±âº» ´ëÈ­ »óÀÚ ÇÁ·Î½ÃÀú´Â ´ÙÀ½ ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ CDN_INITDONE ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù.

ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ ¼ö½Å WM_NOTIFY ¾Ë¸² ¸Þ½ÃÁö ´ëÈ­ »óÀÚ¿¡¼­ »ç¿ëÀÚ°¡ ¼öÇàÇÑ ÀÛ¾÷À» Ç¥½Ã ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ½ÃÁö Áß ÀϺθ¦ »ç¿ë ÇÏ ¿© ´ëÈ­ »óÀÚ µ¿ÀÛÀ» Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ÈÄÅ© ÇÁ·Î½ÃÀú´Â »ç¿ëÀÚ ÆÄÀÏ À̸§À» ¼±Åà ÇÏ °í È®ÀÎ ´ÜÃ߸¦ Ŭ¸¯ÇÒ ¶§ CDN_FILEOK ¸Þ½ÃÁö¸¦ ¹Þ½À´Ï´Ù. ÀÌ ¸Þ½ÃÁö¿¡ ÀÀ´ä, ÈÄÅ© ÇÁ·Î½ÃÀú ¼ö SetWindowLong ÇÔ¼ö »ç¿ë ÇÏ ¿© ¼±ÅÃÇÑ À̸§À» °ÅºÎ ÇÏ °í ´ëÈ­ »óÀÚ¸¦ ¿­¾î.

°¢ WM_NOTIFY ¸Þ½ÃÁöÀÇ lParam ¸Å°³ º¯¼ö´Â ÀÛ¾÷À» Á¤ÀÇ ÇÏ´Â OFNOTIFY ±¸Á¶¿¡ ´ë ÇÑ Æ÷ÀÎÅÍÀÔ´Ï´Ù. OFNOTIFY ±¸Á¶¿¡ ´ë ÇÑ Çì´õ¿¡ ÄÚµå ¸â¹ö ´ÙÀ½ ¾Ë¸² ÄÚµå Áß Çϳª¸¦ Æ÷ÇÔ.

CDN_FILEOK »ç¿ëÀÚ°¡ Ŭ¸¯ ÇÑ È®ÀÎ ´ÜÃß; ´ëÈ­ »óÀÚ¸¦ ´Ý½À´Ï´Ù.
CDN_FOLDERCHANGE »ç¿ëÀÚ´Â »õ Æú´õ ¶Ç´Â µð·ºÅ͸®¸¦ ¿­.
CDN_HELP »ç¿ëÀÚ°¡ µµ¿ò¸» ´ÜÃ߸¦ Ŭ¸¯ ÇÑ.
CDN_INITDONE ½Ã½ºÅÛ ÃʱâÈ­ ´ëÈ­ »óÀÚ¸¦ ¿Ï·á ÇÏ °í ´ëÈ­ »óÀÚ WM_INITDIALOG ¸Þ½ÃÁö¸¦ ó¸® ¿Ï·á. ¶ÇÇÑ, ½Ã½ºÅÛ ¿Ï·á (ÇØ´ç µÇ´Â °æ¿ì) ÀÚ½Ä ´ëÈ­ »óÀÚÀÇ ÄÁÆ®·Ñ¿¡ ´ë ÇÑ °ø°£À» ¸¸µé±â À§ÇØ ÀÏ¹Ý ´ëÈ­ »óÀÚ¿¡ ÄÁÆ®·Ñ Á¤·Ä.
CDN_SELCHANGE »ç¿ëÀÚ ÆÄÀÏ ¸ñ·Ï¿¡¼­ »õ ÆÄÀÏÀÌ ³ª Æú´õ ¼±ÅÃ.
CDN_SHAREVIOLATION ÀÏ¹Ý ´ëÈ­ »óÀÚ¿¡ ´ëÇØ ¹Ýȯ µÉ ÆÄÀÏ °øÀ¯ À§¹ÝÀÌ ¹ß»ý Çß½À´Ï´Ù.
CDN_TYPECHANGE »ç¿ëÀÚ´Â »õ ÆÄÀÏ Çü½ÄÀ» ÆÄÀÏ Çü½Ä ¸ñ·Ï¿¡¼­ ¼±ÅÃ.

ÀÌ·¯ÇÑ WM_NOTIFY ¸Þ½ÃÁö ´ëü FILEOKSTRING, LBSELCHSTRING, SHAREVISTRING¹× HELPMSGSTRING µî·Ï ¿­±â ¹× ´Ù¸¥ À̸§À¸·Î ÀúÀå ´ëÈ­ »óÀÚÀÇ ÀÌÀü ¹öÀü¿¡¼­ »ç¿ë µÇ´Â ¸Þ½ÃÁö. ±×·¯³ª ÈÄÅ© ÇÁ·Î½ÃÀú ¶ÇÇÑ ¸Þ½ÃÁö°¡ ´ëü WM_NOTIFY ¸Þ½ÃÁö ÈÄ WM_NOTIFY ó¸® ¾Æ´Ñ DWL_MSGRESULT °ªÀ» ¼³Á¤ ÇÏ·Á¸é SetWindowLong »ç¿ë ÇÏÁö ¾Ê´Â °æ¿ì.

ÈÄÅ© ÇÁ·Î½ÃÀú ´ëÈ­ »óÀÚ¿¡ ´ÙÀ½ ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ÀÖ½À´Ï´Ù ´ëÈ­ »óÀÚÀÇ »óÅ¿¡ ´ë ÇÑ Á¤º¸¸¦ °Ë»ö Çϰųª ´ëÈ­ »óÀÚÀÇ ¸ð¾ç°ú µ¿ÀÛÀ» Á¦¾î ÇÏ·Á¸é.

CDM_GETFILEPATH °æ·Î ¹× ¼±ÅÃÇÑ ÆÄÀÏÀÇ ÆÄÀÏ À̸§ °Ë»ö.
CDM_GETFOLDERIDLIST ´ëÈ­ »óÀÚ¿¡ ¿­±â´Â ÇöÀç Æú´õ¿¡ ÇØ´ç Ç׸ñ ½Äº°ÀÚ ¸ñ·ÏÀ» °Ë»ö ÇÕ´Ï´Ù. Ç׸ñ ½Äº°ÀÚ ¸ñ·Ï¿¡ ´ë ÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ÂüÁ¶ Ç׸ñ ½Äº°ÀÚ ¹× ½Äº°ÀÚ ¸ñ·Ï.
CDM_GETFOLDERPATH ÇöÀç Æú´õ ¶Ç´Â ´ëÈ­ »óÀÚ¿¡ ´ë ÇÑ µð·ºÅ͸® °æ·Î °Ë»öÇÕ´Ï´Ù.
CDM_GETSPEC °Ë»ö ´ëÈ­ »óÀÚ¿¡¼­ ÇöÀç ¼±ÅÃÇÑ ÆÄÀÏÀÇ ÆÄÀÏ À̸§ (°æ·Î Á¦¿Ü).
CDM_HIDECONTROL ÁöÁ¤µÈ µÈ ÄÁÆ®·ÑÀ» ¼û±é´Ï´Ù.
CDM_SETCONTROLTEXT ÁöÁ¤µÈ µÈ ÄÁÆ®·ÑÀÇ ÅؽºÆ® ¼³Á¤.
CDM_SETDEFEXT ´ëÈ­ »óÀÚ¿¡ ´ë ÇÑ ±âº» ÆÄÀÏ È®Àå¸í ¼³Á¤.

 

Index