OFNHookProc ÈÄÅ© ÇÁ·Î½ÃÀú´Â Ž»ö±â ½ºÅ¸ÀÏ ¿±â ¹× ´Ù¸¥ À̸§À¸·Î ÀúÀå °ø¿ë ´ëÈ »óÀÚ¿Í ÇÔ²² »ç¿ë µÇ´Â ÀÀ¿ë ÇÁ·Î±×·¥ Á¤ÀÇ ¶Ç´Â ¶óÀ̺귯¸® Á¤ÀÇ Äݹé ÇÔ¼öÀÔ´Ï´Ù. ÇÔ¼ö´Â ÀÏ¹Ý ´ëÈ »óÀÚ¿¡¼ º¸³½ ¾Ë¸² ¸Þ½ÃÁö¸¦ ¹Þ½À´Ï´Ù. ÇÔ¼ö´Â ¶ÇÇÑ ÀÚ½Ä ´ëÈ ¼½Ä ÆÄÀÏÀ» ÁöÁ¤ ÇÏ ¿© Á¤ÀÇ ÇÏ´Â ¸ðµç Ãß°¡ ÄÁÆ®·Ñ¿¡ ´ë ÇÑ ¸Þ½ÃÁö¸¦ ¼ö½Å.
LPOFNHOOKPROC Çü½ÄÀºÀÌ Äݹé ÇÔ¼ö¿¡ ´ë ÇÑ Æ÷ÀÎÅ͸¦ Á¤ÀÇÇÕ´Ï´Ù. OFNHookProc Àº ÀÀ¿ë ÇÁ·Î±×·¥ Á¤ÀÇ ¶Ç´Â ¶óÀ̺귯¸® Á¤ÀÇ ÇÔ¼ö À̸§¿¡ ´ë ÇÑ ÀÚ¸® Ç¥½ÃÀÚ.
°æ¿ì¿¡ ¿±â ¶Ç´Â ´Ù¸¥ À̸§À¸·Î ÀúÀå °ø¿ë ´ëÈ »óÀÚ¸¦ ¸¸µé ¶§ ¿øÇÏ´Â ÈÄÅ© ÇÁ·Î½ÃÀú OFN_EXPLORER Ç÷¡±×¸¦ ÁöÁ¤ ÇÏÁö ¾ÊÀ¸¸é ¿À·¡ µÈ-½ºÅ¸ÀÏ OFNHookProcOldStyle ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ »ç¿ë ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ °æ¿ì ´ëÈ »óÀÚ°¡ ¿À·¡ µÈ-½ºÅ¸ÀÏ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦°¡Áö°í °ÍÀÔ´Ï´Ù.
UINT Äݹé OFNHookProc ( HWND hdlg, / / ÀÚ½Ä ´ëÈ Ã¢ ÇÚµéUINTuiMsg, / / ¸Þ½ÃÁö ½Äº°ÀÚWPARAMwParam, / / ¸Þ½ÃÁö ¸Å°³ º¯¼öLPARAMlParam / / ¸Þ½ÃÁö ¸Å°³ º¯¼ö);
LParam °ª ÁöÁ¤ ´ëÈ »óÀÚ¸¦ ¸¸µé ¶§ Æ÷ÇÔ µÈ OPENFILENAME ±¸Á¶¿¡ ´ë ÇÑ Æ÷ÀÎÅÍ´Â uiMsg ¸Å°³ º¯¼ö WM_INITDIALOG ¸Þ½ÃÁö¸¦ ³ªÅ¸³»´Â °æ¿ì.
ÈÄÅ© ÇÁ·Î½ÃÀú 0À» ¹Ýȯ ÇÏ´Â °æ¿ì ±âº» ´ëÈ »óÀÚ ÇÁ·Î½ÃÀú°¡ ¸Þ½ÃÁö¸¦ ó¸® ÇÏ´Â.
ÈÄÅ© ÇÁ·Î½ÃÀú´Â 0ÀÌ ¾Æ´Ñ °ªÀ» ¹Ýȯ ÇÏ´Â °æ¿ì ±âº» ´ëÈ »óÀÚ ÇÁ·Î½ÃÀú¿¡¼ ¸Þ½ÃÁö¸¦ ¹«½Ã ÇÏ´Â.
CDN_SHAREVIOLATION ¹× CDN_FILEOK ¾Ë¸² ¸Þ½ÃÁö¿¡ ´ë ÇÑ ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ 0ÀÌ ¾Æ´Ñ DWL_MSGRESULT °ªÀ» ¼³Á¤ ÇÏ·Á¸é SetWindowLong ÇÔ¼ö¸¦ »ç¿ë ÇϰíÀÖ´Ù ±×°Í ³ªÅ¸³»´Â 0ÀÌ ¾Æ´Ñ °ªÀ» ¹Ýȯ ÇØ¾ß.
GetOpenFileName ¶Ç´Â GetSaveFileName ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© Ž»ö±â ½ºÅ¸ÀÏ ¿±â ¶Ç´Â ´Ù¸¥ À̸§À¸·Î ÀúÀå °ø¿ë ´ëÈ »óÀÚ¸¦ ¸¸µé ¶§ OFNHookProc ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ëÈ »óÀÚ »ý¼º ÇÔ¼ö¿¡ Àü´Þ µÈ OPENFILENAME ±¸Á¶¸¦ »ç¿ë ÇÏ ¿© ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ »ç¿ë ÇÕ´Ï´Ù. LpfnHook ¸â¹ö¿¡¼ ÈÄÅ© ÇÁ·Î½ÃÀú¿¡ ´ë ÇÑ Æ÷ÀÎÅ͸¦ ÁöÁ¤ ÇÏ °í Ç÷¡±× ±¸¼º¿ø¿¡¼ OFN_ENABLEHOOK Ç÷¡±×¸¦ ÁöÁ¤.
Ž»ö±â ½ºÅ¸ÀÏ ÀϹÝÀûÀÎ ´ëÈ »óÀÚ ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ Á¦°ø ÇÏ´Â °æ¿ì ½Ã½ºÅÛ ±âº» ´ëÈ »óÀÚÀÇ ÀÚ½ÄÀÎ ´ëÈ »óÀÚ¸¦ ¸¸µì´Ï´Ù. ÈÄÅ© ÇÁ·Î½ÃÀú ´ëÈ ÇÁ·Î½ÃÀú ÀÚ½Ä ´ëÈ »óÀÚ¿¡ ´ë ÇÑ ¿ªÇÒÀ» ÇÕ´Ï´Ù. ÀÌ ÀÚ½Ä ´ëÈ »óÀÚ OPENFILENAME ±¸Á¶¿¡ ÁöÁ¤ µÈ ¼½Ä ÆÄÀÏ¿¡ ±âÃÊÇÑ ¶Ç´Â ±×°ÍÀº ±âº» ÀÚ½Ä ´ëÈ »óÀÚ ¼½Ä ÆÄÀÏÀ» ÁöÁ¤ ÇÕ´Ï´Ù. ÀÚ½Ä ´ëÈ »óÀÚ´Â ±âº» ´ëÈ »óÀÚ ÇÁ·Î½ÃÀú´Â WM_INITDIALOG ¸Þ½ÃÁö¸¦ ó¸® ÇÏ´Â °æ¿ì »ý¼º µË´Ï´Ù. ÀÚ½Ä ´ëÈ ÀÚü WM_INITDIALOG ¸Þ½ÃÁö¸¦ ó¸® ÇÑ ÈÄ ±âº» ´ëÈ »óÀÚ ÇÁ·Î½ÃÀú ÀÚ½Ä ´ëÈ »óÀÚÀÇ Ãß°¡ ÄÁÆ®·Ñ À§ÇÑ °ø°£À» ¸¸µé±â À§ÇØ ÇÊ¿äÇÑ °æ¿ì Ç¥ÁØ ÄÁÆ®·ÑÀ» À̵¿ ÇÕ´Ï´Ù. ½Ã½ºÅÛ ÈÄÅ© ÇÁ·Î½ÃÀú¸¦ ´ÙÀ½ CDN_INITDONE ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù.
ÈÄÅ© ÇÁ·Î½ÃÀú´Â ±âº» ´ëÈ »óÀÚÀÇ Ç¥ÁØ ÄÁÆ®·Ñ À§ÇÑ ¸Þ½ÃÁö¸¦ ¼ö½Å ÇÏÁö ¾Ê½À´Ï´Ù. Ç¥ÁØ ÄÁÆ®·Ñ, ÇÏÁö¸¸ÀÌ ¶§¹®¿¡ ÀÌÈÄ ¹öÀüÀÇ ÀϹÝÀûÀÎ ´ëÈ »óÀÚ¿Í È£È¯ µÇÁö ¾Ê´Â ÀÀ¿ë ÇÁ·Î±×·¥ ¸¸µé ¼ö ÀÖ½À´Ï´Ù ³«Àº ÇÏÀ§¸¦ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, Ž»ö±â ½ºÅ¸ÀÏ °ø¿ë ´ëÈ »óÀÚ ÈÄÅ© ÇÁ·Î½ÃÀú¿¡¼ ¸ð´ÏÅ͸µ ÇÏ °í ´ëÈ »óÀÚ¸¦ Á¦¾î ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸Þ½ÃÁö ÁýÇÕÀ» Á¦°ø ÇÕ´Ï´Ù. ÀÌ ´ëÈ »óÀÚ¿¡¼ Á¤º¸¸¦ °Ë»öÀ» º¸³¾ ¼ö ÀÖ´Â ¸Þ½ÃÁö ´ëÈ »óÀÚ¿¡¼ º¸³»´Â ¾Ë¸² ¸Þ½ÃÁöÀÇ ÁýÇÕÀ» Æ÷ÇÔ ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ½ÃÁöÀÇ Àüü ¸ñ·ÏÀ» º¸·Á¸é Ž»ö±â ½ºÅ¸ÀÏ ÈÄÅ© ÇÁ·Î½ÃÀú.
ÈÄÅ© ÇÁ·Î½ÃÀú´Â WM_CTLCOLORDLG ¸Þ½ÃÁö¸¦ ó¸® ÇÏ´Â °æ¿ì ´ëÈ »óÀÚÀÇ ¹è°æ ±×¸²¿¡ ´ë ÇÑ À¯È¿ÇÑ ºê·¯½Ã ÇÚµéÀ» ¹Ýȯ ÇØ¾ß ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î, ¾î¶² WM_CTLCOLOR * ¸Þ½ÃÁö¸¦ ó¸® ÇÏ´Â °æ¿ì ±×°ÍÀº ÁöÁ¤µÈ µÈ ÄÁÆ®·ÑÀÇ ¹è°æ ±×¸²¿¡ ´ë ÇÑ À¯È¿ÇÑ ºê·¯½Ã ÇÚµéÀ» ¹Ýȯ ÇØ¾ß ÇÕ´Ï´Ù.
ÈÄÅ© ÇÁ·Î½ÃÀú¿¡¼ EndDialog ÇÔ¼ö¸¦ È£Ãâ ÇÏÁö ¸¶½Ê½Ã¿À. ´ë½Å, ÈÄÅ© ÇÁ·Î½ÃÀú ´ëÈ »óÀÚ ÇÁ·Î½ÃÀú¸¦ IDABORT °ª°ú ÇÔ²² WM_COMMAND ¸Þ½ÃÁö¸¦ °Ô½Ã ÇÏ·Á¸é postmessage ¸¦ ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. IDABORT °Ô½Ã ´ëÈ »óÀÚ°¡ ´ÝÈ÷°í ´ëÈ »óÀÚ ÇÔ¼ö´Â FALSE¸¦ ¹Ýȯ Çϸé. ÈÄÅ© ÇÁ·Î½ÃÀú ¹× ÀÀ¿ë ÇÁ·Î±×·¥ °£ÀÇ Åë½Å ¸ÞÄ¿´ÏÁòÀ» Á¦°ø ÇØ¾ß ÇÕ´Ï´Ù ÈÄÅ© ÇÁ·Î½ÃÀú ´ëÈ »óÀÚ¸¦ Á¾·á ÇÏ´Â ÀÌÀ¯¸¦ ¾Ë°í ÇØ¾ß ÇÏ´Â °æ¿ì.
nbsp;?Windows &NT: ¹öÀü 3.1 ÀÌ»óÀÌ ÇÊ¿ä ÇÕ´Ï´Ù.
Windows:Windows 95 ÀÌ»óÀÌ ÇÊ¿äÇÕ´Ï´Ù.
Windows CE:Áö¿ø µÇÁö ¾Ê½À´Ï´Ù.
Çì´õ:Commdlg.h¿¡ ¼±¾ð ÇÕ´Ï´Ù.
°¡Á®¿À±â ¶óÀ̺귯¸®:»ç¿ëÀÚ Á¤ÀÇ.
°ø¿ë ´ëÈ »óÀÚ ¶óÀ̺귯¸® °³¿ä, °øÅë ´ëÈ »óÀÚ ÇÔ¼ö GetOpenFileName, GetSaveFileName, OFNHookProcOldStyle, OPENFILENAME