#pragma once #define PURPLE_OUTBOUND_INFORM 9 #define PURPLE_OUTBOUND_DOWNLOAD_PROGRESS 18 #define PURPLE_OUTBOUND_DOWNLOAD_SPEED 27 #define PURPLE_OUTBOUND_DOWNLOAD_RESTTIME 31 #define PURPLE_OUTBOUND_FILENAME 36 #define PURPLE_OUTBOUND_PATCH_PROGRESS 45 #define PURPLE_OUTBOUND_PATCH_FILE_NUMBER 54 #define PURPLE_OUTBOUND_ENDING 63 typedef struct PurpleCDS { TCHAR szString[160]; DWORD dwIndex; } PurpleCDS; /** * 1. ¿ÜºÎ¸ðµâ ±âµ¿ÇÒ ¶§ * ÆÛÇ÷±ÃÄ´Â ´ÙÀ½ ³»¿ëÀ» ½ÃÀÛÀÎÀÚ·Î Àü´ÞÇÑ´Ù. * (1) HWND : SendMessage¸¦ ¹ÞÀ» À©µµ¿ì ÇÚµé. 10Áø¼ö·Î Ç¥½ÃµÈ´Ù. * (2) argument : ±âŸ ¿ÜºÎ¸ðµâÀÌ ±âµ¿ÇÒ ¶§ ÇÊ¿äÇÑ ³»¿ëÀ» Àü´ÞÇÑ´Ù. * * 2. ÆÛÇ÷±ÃÄ/¿ÜºÎ¸ðµâ °£ÀÇ ¿¬µ¿ * (1) ÆÛÇ÷±ÃÄ => ¿ÜºÎ¸ðµâ·Î Åë½ÅÇÏ´Â °æ¿ì´Â ¾øÀ¸¸ç (ÃÖÃÊ¿¡ ÀÎÀÚ¸¦ Àü´ÞÇϱ⸸ ÇÑ´Ù), * ÀÌÈÄ¿¡´Â ¿ÜºÎ¸ðµâ => ÆÛÇ÷±ÃÄÀÇ Åë½Å¸¸À» ÇÑ´Ù. * (2) Åë½Å¹æ½ÄÀ» WM_COPYDATA¸¦ »ç¿ëÇÏ¸ç ¸Þ½ÃÁö¸¦ Àü´ÞÇÒ ¶§¿¡´Â ´ÙÀ½ÀÇ ÇüŸ¦ ÃëÇÑ´Ù. * ::SendMessage(HWND, WM_COPYDATA, HWND, PCOPYDATASTRUCT); * a. HWND : ÆÛÇ÷±ÃÄ À©µµ¿ì ÇÚµéÀÌ´Ù. ÀÌ °ªÀº ¿ÜºÎ¸ðµâÀÌ ÃÖÃÊ ±âµ¿ÇÒ ¶§ ÀÎÀÚ·Î Àü´ÞµÈ´Ù. * b. WM_COPYDATA : À©µµ¿ì ¸Þ½ÃÁö * c. HWND : ¸Þ½ÃÁö¸¦ ¸®ÅϹÞÀ» À©µµ¿ì ÇÚµéÀ» ±âÀÔÇÑ´Ù. (ÀÌ °ªÀº ¹Ì·¡¸¦ À§Çؼ­ ¼¼ÆÃÇÑ´Ù.) * d. PCOPYDATASTRUCT : WM_COPYDATA¸¦ ¾µ ¶§ Àü¼ÛÇÏ´Â ±¸Á¶Ã¼ÀÌ´Ù. »ç¿ë¹ýÀº MSDN Âü°í. * * typedef struct tagCOPYDATASTRUCT { * ULONG_PTR dwData; * DWORD cbData; * PVOID lpData; * } COPYDATASTRUCT, *PCOPYDATASTRUCT; * * 3. À妽º(dwData)¿¡ µû¸¥ ÀÇ¹Ì * (1) PURPLE_OUTBOUND_INFORM : Inform ½ºÅÂÆ½¿¡ ½ºÆ®¸µÀ» Ç¥½ÃÇÑ´Ù. * - szString : ½ºÅÂÆ½¿¡ Ç¥½ÃÇÒ ½ºÆ®¸µ * - dwIndex : N/A * * (2) PURPLE_OUTBOUND_DOWNLOAD_PROGRESS : ´Ù¿î·Îµå ÇÁ·Î±×·¡½º¸¦ Á¶Á¤ÇÑ´Ù. * - szString : N/A * - dwIndex : ÇÁ·Î±×·¡½º (0ºÎÅÍ 100±îÁö) * * (3) PURPLE_OUTBOUND_DOWNLOAD_SPEED : ´Ù¿î·Îµå ¼Óµµ¸¦ Ç¥½ÃÇÑ´Ù. * - szString : N/A * - dwIndex : ´Ù¿î·Îµå ½ºÇǵå (byte / millisecond) * * (3.1) PURPLE_OUTBOUND_DOWNLOAD_RESTTIME : ³²Àº½Ã°£À» Ç¥½ÃÇÑ´Ù. * - szString : N/A * - dwIndex : ³²Àº½Ã°£ (millisecond) * * (4) PURPLE_OUTBOUND_FILENAME : ÇöÀç ó¸®ÇÏ´Â ÆÄÀÏÀÇ À̸§À» Ç¥½ÃÇÑ´Ù. * - szString : ó¸®ÁßÀÎ ÆÄÀϸíĪ * - dwIndex : N/A * * (5) PURPLE_OUTBOUND_PATCH_PROGRESS : ÆÐÄ¡ ÇÁ·Î±×·¡½º¸¦ Á¶Á¤ÇÑ´Ù. ÆÐÄ¡ ÇÁ·Î±×·¡½º´Â Àüü¼³Ä¡°øÁ¤À» Ç¥½ÃÇÑ´Ù. * - szString : N/A * - dwIndex : ÇÁ·Î±×·¡½º (0ºÎÅÍ 100±îÁö) * * (6) PURPLE_OUTBOUND_PATCH_FILE_NUMBER : ÆÐÄ¡ÇÒ Àüü ÆÄÀÏ °³¼ö ¹× ÇöÀç±îÁö ó¸®ÇÑ ÆÄÀÏÀÇ °³¼ö¸¦ Ç¥½ÃÇÑ´Ù. * - szString : N/A * - dwIndex : HIWORD => ÀüüÆÄÀϰ³¼ö, LOWORD => ÇöÀç±îÁö ó¸®ÇÑ ÆÄÀÏ °³¼ö * * (7) PURPLE_OUTBOUND_ENDING : ¿ÜºÎ¸ðµâÀÌ Á¾·áµÊÀ» Àü´ÞÇÑ´Ù. * - szString : ¿À·ù½ºÆ®¸µ * - dwIndex : ¿À·ùÄÚµå * * a. ¿À·ùÄÚµå 0 : ÆÐÄ¡¿Ï·á ÈÄ Á¤»óÁ¾·áµÊ. ÆÛÇ÷±ÃÄ´Â ÀÌ ¸Þ½ÃÁö¸¦ ¹ÞÀ¸¸é °ÔÀÓ½ÃÀÛ stand by »óŰ¡ µÈ´Ù. * b. ¿À·ùÄÚµå 1 : ÀνºÅ罯µå¸¦ ´Ù½Ã ¹Þ¾Æ¾ß ÇÔÀ» ¶æÇÑ´Ù. szString¿¡ ´Ù¿î¹Þ¾Æ¾ß ÇÏ´Â ÆÄÀÏ URLÀ» ±â·ÏÇÑ´Ù. * c. ±âŸ ¿À·ùÄÚµå : Çϳª¾¿ ÁöÁ¤ÇÑ´Ù. (¿¹¸¦ µé¸é, dll ·Îµå¿¡ ½ÇÆÐÇÏ¿´´Ù. ÆÐÄ¡ÆÄÀÏ ´Ù¿î·Îµå¿¡ ½ÇÆÐÇÏ¿´´Ùµî..) **/