³ª. Æ÷¸Ëº¯È¯

´Ù¾çÇÑ Æ÷¸ËÀ» Áö¿øÇÏ·Á¸é ¿ÜºÎ·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àü´Þ ¹ÞÀ» ¶§ ÀÌ µ¥ÀÌÅÍ°¡ °ú¿¬ ³»ºÎ Æ÷¸Ë°ú ÀÏÄ¡ÇÏ´ÂÁö Á¡°ËÇغ¸°í ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù¸é ÀÚ½ÅÀÌ °ü¸®ÇÒ ¼ö ÀÖ´Â Æ÷¸ËÀ¸·Î º¯È¯ÇØ¾ß ÇÑ´Ù. ¿ÜºÎ·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àü´Þ¹Þ´Â ½ÃÁ¡Àº SetText ÇÔ¼ö°¡ È£ÃâµÉ ¶§, Áï È£½ºÆ®°¡ ÆÄÀÏÀ» Àо ±× ³»¿ëÀ» ÄÁÆ®·Ñ¿¡°Ô ÁÙ ¶§ÀÌ´Ù. ¶ÇÇÑ Å¬¸³º¸µå¸¦ ÅëÇØ ´Ù¸¥ ÇÁ·Î±×·¥ÀÌ º¹»çÇسõÀº ÅؽºÆ®¸¦ °¡Á®¿Ã ¶§µµ Æ÷¸ËÀ» Á¡°ËÇØ¾ß ÇÑ´Ù. ´ÙÀ½ ÇÔ¼ö´Â Àμö·Î ÁÖ¾îÁø Text ¹®ÀÚ¿­ÀÇ Æ÷¸ËÀ» ÆǺ°ÇÑ´Ù.

 

DWORD CApiEdit::AnalyzeFormat(TCHAR *Text, int dwSize)

{

     int result;

     TCHAR *p;

 

     result=IS_TEXT_UNICODE_UNICODE_MASK | IS_TEXT_UNICODE_REVERSE_MASK;

     if (IsTextUnicode(Text,lstrlen(Text),&result)) {

          return AE_FORMAT_UNICODE;

     }

 

     if (dwSize != -1) {

          if (lstrlen(Text) != dwSize) {

              return AE_FORMAT_BINARY;

          }

     }

 

     p=strchr(Text,¡¯\r¡¯);

     if (p==NULL) {

          if (strchr(Text,¡¯\n¡¯)) {

              return AE_FORMAT_UNIX;

          } else {

              return AE_FORMAT_WIN;

          }

     } else {

          if (*(p+1)==¡®\n¡¯) {

              return AE_FORMAT_WIN;

          } else {

              return AE_FORMAT_MAC;

          }

     }

}

 

¸ÕÀú IsTextUnicode ÇÔ¼ö¸¦ È£ÃâÇÏ¿© À¯´ÏÄÚµå Æ÷¸ËÀÎÁö º»´Ù. IsTextUnicode ÇÔ¼ö´Â È®·ü¿¡ ±Ù°ÅÇÏ¿© ¹®ÀÚ¿­ Æ÷¸ËÀ» Á¡°ËÇϴµ¥ ³Ê¹« ªÀº ¹®ÀÚ¿­ÀÌ ¾Æ´Ñ ÇÑ °ÅÀÇ Á¤È®ÇÏ°Ô ºÐ¼®ÇÑ´Ù. ¾îµð±îÁö³ª È®·ü¿¡ ±Ù°ÅÇÏ¿© ÆÇ´ÜÇϱ⠶§¹®¿¡ Ʋ¸± ¼öµµ Àִµ¥ ¸¸¾à ÀÌ ÇÔ¼ö°¡ Ʋ¸° °á°ú¸¦ ¸®ÅÏÇÑ´Ù¸é ApiEdit´Â Ʋ¸° °á°ú´ë·Î µ¿ÀÛÇÒ ¼ö¹Û¿¡ ¾ø´Ù. ÀÌ ÇÔ¼ö°¡ TRUE¸¦ ¸®ÅÏÇÏ¸é ´õ ÀÌ»ó ´Ù¸¥ Æ÷¸ËÀ» Á¡°ËÇØ º¼ ÇÊ¿ä¾øÀÌ AE_FORMAT_UNICODE¸¦ ¸®ÅÏÇÏ¸é µÈ´Ù.

À¯´ÏÄڵ尡 ¾Æ´Ï¶ó¸é ÀÌÁø Æ÷¸ËÀÎÁö º»´Ù. Text ¹öÆÛ¿¡ µé¾î ÀÖ´Â ¹®ÀÚ¿­ÀÇ ±æÀÌ°¡ ¹öÆÛ Å©±â¿Í ´Ù¸£¸é Áß°£¿¡ ³Î Á¾·á¹®ÀÚ(0)°¡ ÀÖ´Ù´Â ¶æÀ̹ǷΠÀÌÁø Æ÷¸ËÀ¸·Î ÆÇ´ÜÇÑ´Ù. À¯´ÏÄÚµå ¹®¼­´Â µÎ °³ÀÇ 0À¸·Î ¹®¼­ ³¡À» Ç¥ÇöÇϸç Áß°£¿¡ 0ÀÌ ÀÖÀ» ¼ö ÀÖÀ¸¹Ç·Î ÀÌÁø Æ÷¸Ëº¸´Ù ¸ÕÀú Á¡°ËÇÏ¿´´Ù. ÀÌÁø Æ÷¸ËÀº ÀÏÁ¤ÇÑ ±ÔÄ¢ÀÌ ¾øÀ¸¸ç ÀÓÀÇÀÇ Äڵ尡 ¹«ÀÛÀ§·Î ³ªÅ¸³¯ ¼ö ÀÖ´Â Æ÷¸ËÀε¥ ºñÇØ ¹®ÀÚ¿­ Æ÷¸ËÀº Áß°£¿¡ ³Î Á¾·á¹®ÀÚ°¡ ³ªÅ¸³¯ ¼ö ¾ø´Ù´Â Ư¡ÀÌ ÀÖÀ¸¹Ç·Î ÀÌ Â÷ÀÌÁ¡À» ÀÌ¿ëÇß´Ù. ÀÌÁø Æ÷¸Ë ÆǺ°µµ ¾îµð±îÁö³ª È®·ü¿¡ ±Ù°ÅÇϱ⠶§¹®¿¡ ÀÌ ÆÇ´ÜÀÇ °á°ú°¡ ¹Ýµå½Ã Á¤È®ÇÏ´Ù°í ÇÒ ¼ö´Â ¾ø´Ù.

ÆÄÀÏ Æ÷¸ËÀÇ Æ¯Â¡ ÀÚü°¡ ¾Ö¸ÅÇϱ⠶§¹®¿¡ Ʋ·Áµµ ¾î¿ ¼ö ¾ø´Ù. À©µµ¿ìÁîÀÇ ÆÄÀÏ ½Ã½ºÅÛÀº È®ÀåÀÚ¿¡ ÀÇÇØ ÆÄÀÏÀÇ Á¾·ù¸¦ ±¸ºÐÇÏÁö¸¸ À̰͵µ Àý´ëÀûÀÎ ±âÁØÀÌ ¾Æ´Ï±â ¶§¹®¿¡ ¿øÄ¢ÀûÀ¸·Î ÆÄÀÏÀÇ ³»¿ëÀ¸·Î Á¾·ù¸¦ Á¤È®ÇÏ°Ô ÆǺ°ÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù. È®·üÀûÀ¸·Î °¡±ÞÀû À¯»çÇÑ Æ÷¸ËÀ» ã¾Æ³¾ ¼ö ÀÖÀ» »ÓÀÌ´Ù. ¸¸¾à Æ÷¸ËÀ» À߸ø ÆǺ°Çϸé È­¸é¿¡ ÀÌ»óÇÑ ¹®ÀÚµéÀÌ Ãâ·ÂµÇ´Âµ¥ ´ÙÀ½Àº ¸Þ¸ðÀåÀ¸·Î BMPÆÄÀÏÀ» ¿­¾î º» °ÍÀÌ´Ù.

Á» º¸±â¿¡ ¾È ÁÁ±â´Â ÇÏÁö¸¸ ÀÌ°ÍÀº ¸Þ¸ðÀåÀÌ ¸ÛûÇؼ­ ±×·± °ÍÀÌ ¾Æ´Ï´Ù. ¸Þ¸ðÀå»Ó¸¸ ¾Æ´Ï¶ó ¿öµå³ª ºñÁÖ¾ó ½ºÆ©µð¿Àµµ µ¿ÀÏÇÑ Áõ»óÀ» º¸ÀδÙ. ´ÙÇàÈ÷ Æ÷¸ËÀ» À߸ø ÆÇ´ÜÇß´Ù°í Çؼ­ ÇÁ·Î±×·¥ÀÌ Áװųª ÇÏÁö´Â ¾ÊÀ¸¹Ç·Î °ÆÁ¤ÇÒ ÇÊ¿ä´Â ¾øÀ¸¸ç ÆǺ°µÈ Æ÷¸Ë´ë·Î º¸¿©ÁÖ¸é µÈ´Ù.

À¯´ÏÄڵ嵵 ¾Æ´Ï°í ÀÌÁø Æ÷¸Ëµµ ¾Æ´Ï¶ó¸é ANSI Æ÷¸Ë Áß ÇϳªÀε¥ °³ÇàÄڵ带 º¸°í ¾î¶² ¿î¿µÃ¼Á¦¿¡¼­ ¸¸µé¾îÁø ÆÄÀÏÀΰ¡¸¸ ÆÇ´ÜÇÏ¸é µÈ´Ù. ¿î¿µÃ¼Á¦¿¡ µû¸¥ Æ÷¸ËÀº CR/LF Á¶ÇÕÀ¸·Î ÆÇ´ÜÇÒ ¼ö Àִµ¥ ¸ÕÀú CRÀ» ã¾Æ º»´Ù. ¸¸¾à CRÀÌ ¹ß°ßµÇÁö ¾Ê´Â´Ù¸é LF¸¦ ã¾Æº¸°í LF¸¸ ÀÖÀ¸¸é À¯´Ð½º Æ÷¸ËÀÌ´Ù. CRÀÌ ÀÖÀ¸¸é ¹Ù·Î µÞÀÚ¸®¿¡ LFµµ ÀÖ´ÂÁö È®ÀÎÇØ º»´Ù. LF°¡ ÀÖ´Ù¸é À©µµ¿ìÁî Æ÷¸ËÀÌ°í LF°¡ ¾øÀ¸¸é CR¸¸À¸·Î °³ÇàÀ» ÇÏ´Â ¸ÅŲÅä½Ã Æ÷¸ËÀÌ´Ù.

¸¸¾à CRµµ ¾ø°í LFµµ ¾ø´Ù¸é ¾î¶² Æ÷¸ËÀ¸·Î ÆÇ´ÜÇØ¾ß ÇÒ±î? CR, LF°¡ Çϳªµµ ¾ø´Â ÅؽºÆ®´Â µÎ¸»ÇÒ °Íµµ ¾øÀÌ ÇÑ ÁÙÂ¥¸® ¹®¼­(¶Ç´Â ºó ¹®¼­)ÀÌ¸ç °³ÇàÄڵ尡 ¾ø±â ¶§¹®¿¡ ¸ðµç Æ÷¸Ë Á¶°ÇÀ» ´Ù ¸¸Á·ÇÑ´Ù°í ÇÒ ¼ö ÀÖ´Ù. À̶§´Â ÀÓÀÇÀÇ Æ÷¸ËÀ¸·Î ºÐ¼®Çصµ µÇÁö¸¸ µðÆúÆ® Æ÷¸ËÀÎ À©µµ¿ìÁî Æ÷¸ËÀ¸·Î ÆǺ°ÇÏ´Â °ÍÀÌ À¯¸®ÇÏ´Ù. ±×·¡¾ß º¯È¯ °úÁ¤À» »ý·«ÇÒ ¼ö ÀÖ´Ù.

TextÀÇ Æ÷¸ËÀ» ÆǺ°ÇØ º» ÈÄ ¸¸¾à À©µµ¿ìÁî Æ÷¸ËÀÌ ¾Æ´Ï¶ó¸é, Áï ApiEdit°¡ Á÷Á¢ ÆíÁýÇÒ ¼ö ÀÖ´Â Æ÷¸Ë°ú ´Ù¸£´Ù¸é Æ÷¸Ëº¯È¯À» ÇØ¾ß ÇÑ´Ù. ±×·¡¾ß ApiEdit°¡ ÀÌ ÅؽºÆ®¸¦ ´Ù·ê ¼ö ÀÖ´Ù. º¯È¯µÈ ÅؽºÆ®¸¦ ´Ù½Ã ÀúÀåÇÒ ¶§´Â ¿ø·¡ Æ÷¸Ë´ë·Î ´Ù½Ã º¯È¯ÇØ¾ß ÇÑ´Ù. ´ÙÀ½ ÇÔ¼ö´Â ÀÓÀÇÀÇ Æ÷¸ËÀ» ´Ù¸¥ Æ÷¸ËÀ¸·Î º¯È¯ÇÑ´Ù.

 

int CApiEdit::ConvertFormat(DWORD from, DWORD to, TCHAR *src, TCHAR *&dest)

{

     int need;

     TCHAR *s,*d;

     TCHAR Find;

 

     if (from==AE_FORMAT_UNICODE) {

          need=WideCharToMultiByte(CP_ACP,0,(LPCWSTR)src+1,-1,NULL,0,0,0);

          dest=(TCHAR *)malloc(need);

          WideCharToMultiByte(CP_ACP,0,(LPCWSTR)src+1,-1,dest,need,0,0);

          return need;

     }

 

     if (to==AE_FORMAT_UNICODE) {

          need=MultiByteToWideChar(CP_ACP,0,src,-1,NULL,0);

          need=need*2+2;

          dest=(TCHAR *)malloc(need);

          dest[0]=(TCHAR)0xFF;

          dest[1]=(TCHAR)0xFE;

          MultiByteToWideChar(CP_ACP,0,src,-1,(LPWSTR)dest+1,need);

          return need;

     }

 

     dest=(TCHAR *)malloc(lstrlen(src)*2);

     s=src;

     d=dest;

 

     if (to==AE_FORMAT_WIN) {

          switch (from) {

          case AE_FORMAT_UNIX:

              Find=¡®\n¡¯;

              break;

          case AE_FORMAT_MAC:

              Find=¡®\r¡¯;

              break;

          }

          while (*s) {

              if (*s==Find) {

                   *d++=¡®\r¡¯;

                   *d++=¡®\n¡¯;

                   s++;

              } else {

                   *d++=*s++;

              }

          }

          *d=*s;

     } else {

          switch (to) {

          case AE_FORMAT_UNIX:

              Find=¡®\n¡¯;

              break;

          case AE_FORMAT_MAC:

              Find=¡®\r¡¯;

              break;

          }

          while (*s) {

              if (*s==¡®\r¡¯) {

                   *d++=Find;

                   s++;

                   s++;

              } else {

                   *d++=*s++;

              }

          }

          *d=*s;

     }

     return lstrlen(dest);

}

 

from Æ÷¸ËÀ» to Æ÷¸ËÀ¸·Î ¹Ù²Û °á°ú¸¦ dest ¹øÁö¿¡ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ¿© ÀúÀåÇÑ´Ù. º¯È¯ ÈÄÀÇ ±æÀ̸¦ ¹Ì¸® ¿¹ÃøÇÒ ¼ö ¾ø±â ¶§¹®¿¡ È£ÃâÃø¿¡¼­ °á°ú ¹®ÀÚ¿­À» µ¹·Á¹Þ±â À§ÇÑ ¹öÆÛ¸¦ ¹Ì¸® ÇÒ´çÇÒ ¼ö ¾ø´Ù. ±×·¡¼­ ÀÌ ÇÔ¼ö°¡ ¸Þ¸ð¸®¸¦ ÇÒ´çÇؼ­ ³Ñ°ÜÁÖ°í È£ÃâÃø¿¡¼­ ¸Þ¸ð¸®¸¦ ÇØÁ¦Çϵµ·Ï µÇ¾î ÀÖÀ¸¸ç dest Àμö´Â Æ÷ÀÎÅÍÀÇ ·¹ÆÛ·±½ºÇüÀÌ´Ù. ¸®ÅÏ°ªÀº º¯È¯ ÈÄÀÇ °á°ú ¹®ÀÚ¿­ÀÇ ±æÀÌÀÌ´Ù.

ÀÌ ÇÔ¼ö´Â ÀÓÀÇÀÇ Æ÷¸ËÀ» À©µµ¿ìÁî Æ÷¸ËÀ¸·Î ¹Ù²Ù°Å³ª ¹Ý´ë·Î À©µµ¿ìÁî Æ÷¸ËÀ» ÀÓÀÇÀÇ Æ÷¸ËÀ¸·Î¸¸ ¹Ù²Ü ¼ö ÀÖ´Ù. ±×·¡¼­ from, to µÑ Áß Çϳª´Â ¹Ýµå½Ã AE_FORMAT_WINÀ̾î¾ß ÇÑ´Ù. Áï À¯´Ð½º Æ÷¸ËÀ» ¸ÅŲÅä½Ã Æ÷¸ËÀ¸·Î ¹Ù²Ù°Å³ª, À¯´ÏÄÚµå Æ÷¸ËÀ» °ð¹Ù·Î À¯´Ð½º Æ÷¸ËÀ¸·Î ¹Ù²Ù´Â °ÍÀº Áö¿øÇÏÁö ¾Ê´Â´Ù. ApiEdit°¡ À©µµ¿ìÁî Æ÷¸Ë¸¸ ÀνÄÇϹǷΠÀÌ Æ÷¸Ë°ú ´Ù¸¥ Æ÷¸Ë°úÀÇ º¯È¯¸¸ Á¦´ë·Î ÇÏ¸é µÉ »Ó ±× ÀÌ»óÀÇ ¼­ºñ½º¸¦ ÇÒ ÇÊ¿ä´Â ¾ø´Ù.

À¯´ÏÄÚµå Æ÷¸ËÀÇ ÆÄÀÏÀº ¼±µÎ 2¹ÙÀÌÆ®¿¡ ¹ÙÀÌÆ® ¼ø¼­¸¦ Ç¥½ÃÇÏ´Â ¹ÙÀÌÆ® ¿À´õ¸µ(Byte Ordering)À̶ó´Â Ãß°¡ Á¤º¸¸¦ °¡Áö°í ÀÖ´Ù. ÀÌ Á¤º¸´Â 16ºñÆ®ÀÇ °ªÀ» ¸Þ¸ð¸®¿¡ ¾î¶² ¼ø¼­·Î ÀúÀåÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤Çϴµ¥ Àß ¾Ë´Ù½ÃÇÇ x86°è¿­ÀÇ CPU´Â ¿ª¿öµå·Î ÀúÀåÇÑ´Ù. ÀÎÅÚ °è¿­ÀÇ CPU´Â 0xFEFF·Î, ¸ðÅä·Î¶ó °è¿­ÀÇ CPU´Â 0xFFFE·Î µÇ¾î Àִµ¥ ´ç±ÙÀº ÀÎÅÚ °è¿­¿¡¼­¸¸ µ¹¾Æ°¡¹Ç·Î 0xFEFF¸¦ ´Þ¾Æ ÁÖ¾ú´Ù.

¿î¿µÃ¼Á¦°£ÀÇ Æ÷¸Ëº¯È¯Àº CR/LFÀÇ Á¶ÇÕ¸¸ ¹Ù²Ù¸é µÈ´Ù. ¿¹¸¦ µé¾î À¯´Ð½º Æ÷¸ËÀ» À©µµ¿ìÁî Æ÷¸ËÀ¸·Î ¹Ù²Û´Ù¸é ¸ðµç CRÀ» CR/LF·Î ¹Ù²Ù¸é µÈ´Ù. ´Ü¼øÇÑ ¹ÙÀÌÆ® ġȯ µ¿ÀÛ¸¸À¸·Î Æ÷¸Ë°£ÀÇ º¯È¯À» ÇÒ ¼ö ÀÖ´Ù. ConvertFomat ÇÔ¼öÀÇ ³ª¸ÓÁö ÄÚµå´Â ¾ÕÀå¿¡¼­ ÀÛ¼ºÇÑ ÆíÁý ÇÔ¼öµé°ú ºñ½ÁÇϹǷΠ½±°Ô ºÐ¼®µÉ °ÍÀÌ´Ù.

Æ÷¸Ë ÆǺ° ÇÔ¼ö¿Í º¯È¯ ÇÔ¼ö°¡ ¿Ï¼ºµÇ¾úÀ¸¹Ç·Î ÀÌÁ¦ ApiEdit´Â Àû¾îµµ ÀÌ µÎ ÇÔ¼ö°¡ Áö¿øÇÏ´Â Æ÷¸ËÀº ´Ù ÀÐÀ» ¼ö ÀÖ´Ù. ¿ÜºÎ·ÎºÎÅÍ µ¥ÀÌÅ͸¦ ¹Þ¾ÆµéÀÌ´Â SetText ÇÔ¼ö¸¦ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù. ÀÌÁø ÆÄÀÏÀÎÁö ÆÇ´ÜÇϱâ À§Çؼ­´Â ¹öÆÛÀÇ ±æÀÌ°¡ ÇÊ¿äÇϹǷΠ¿øÇü¿¡ Àμö°¡ Çϳª ´õ Ãß°¡µÇ¾ú´Ù.

 

void CApiEdit::SetText(TCHAR *TextBuf, int dwSize)

{

     TCHAR *dest;

 

     InitDoc();

     dwFormat=AnalyzeFormat(TextBuf, dwSize);

     if (dwFormat != AE_FORMAT_WIN && dwFormat != AE_FORMAT_BINARY) {

          ConvertFormat(dwFormat,AE_FORMAT_WIN,TextBuf,dest);

          Insert(0,dest,FALSE);

          free(dest);

     } else {

          Insert(0,TextBuf,FALSE);

     }

}

 

Àü´ÞµÈ ÅؽºÆ®ÀÇ Æ÷¸ËÀ» AnalyzeFormat ÇÔ¼ö·Î ºÐ¼®Çغ¸°í À©µµ¿ìÁî Æ÷¸ËÀ̳ª ÀÌÁø Æ÷¸ËÀÌ ¾Æ´Ï¶ó¸é ConvertFormat ÇÔ¼ö¸¦ È£ÃâÇÏ¿© À©µµ¿ìÁî Æ÷¸ËÀ¸·Î ¸ÕÀú ¹Ù²Û´Ù. º¯È¯µÈ ¹®ÀÚ¿­À» Insert ÇÔ¼ö·Î »ðÀÔÇϸé ApiEdit°¡ º¯È¯µÈ Æ÷¸ËÀ» ÆíÁýÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. À©µµ¿ìÁî Æ÷¸ËÀ̶ó¸é º¯È¯¾øÀÌ ¹Ù·Î InsertÇÑ´Ù. SetText ÇÔ¼öÀÇ Àμö°¡ ´Ã¾î³µÀ¸¹Ç·Î È£½ºÆ®¿¡¼­ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ºÎºÐµµ ¼öÁ¤µÇ¾î¾ß ÇÑ´Ù.

 

BOOL OpenFileToChild(HWND hChild, TCHAR *Path)

{

     ....

    TextBuf=(TCHAR *)malloc(dwSize+2);

     ReadFile(hFile,TextBuf,dwSize,&dwRead,NULL);

     TextBuf[dwRead]=0;

    TextBuf[dwRead+1]=0;

    pSi->Ae.SetText(TextBuf,dwSize);  

     CloseHandle(hFile);

     ....

}

 

À¯´ÏÄÚµå´Â ³Î Á¾·á¹®ÀÚÀÇ ±æÀ̵µ 16ºñÆ®À̹ǷΠÆ÷¸Ë¿¡ »ó°ü¾øÀÌ ³Î Á¾·á¹®ÀÚ¸¦ 2¹ÙÀÌÆ®·Î ÀÛ¼ºÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é À¯´ÏÄÚµå ¹®¼­ÀÇ ³¡À» ãÁö ¸øÇÒ °ÍÀÌ´Ù. SetText ÇÔ¼ö°¡ ¹öÆÛÀÇ Å©±â¸¦ Àμö·Î ¿ä±¸ÇϹǷΠÆÄÀÏÀÇ Å©±âÀÎ dwSize¸¦ Àμö·Î Àü´ÞÇØ¾ß ÇÑ´Ù. ÀÌÁ¦ ½ÇÇàÇغ¸¸é Æ÷¸Ë¿¡ »ó°ü¾øÀÌ ¹®¼­¸¦ ÀÐÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.