¿·Á´Â ÆÄÀÏÀÇ À̸§, µð·ºÅ͸® ¹× µå¶óÀ̺긦 »ç¿ëÀÚ ÁöÁ¤ÇÒ ¼ö ÀÖµµ·Ï ¿±â ´ëÈ »óÀÚ¸¦ Ç¥½Ã ÇÏ´Â »ùÇà Äڵ忡 ¼³¸í ÇÕ´Ï´Ù. »ùÇà Äڵ带 ¸ÕÀú OPENFILENAME ±¸Á¶¸¦ ÃʱâÈ ÇÏ °í ´ëÈ »óÀÚ¸¦ Ç¥½Ã ÇÏ·Á¸é GetOpenFileName ÇÔ¼ö¸¦ È£Ãâ ÇÏ´Â ´ÙÀ½.
ÀÌ ¿¹Á¦¿¡¼´Â lpstrFilter ¸â¹ö »ç¿ëÀÚ Á¦ÇÑ Ç¥½Ã µÇ´Â ÆÄÀÏÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Â µÎ °³ÀÇ ÆÄÀÏ À̸§ ÇÊÅ͸¦ ÁöÁ¤ ÇÏ´Â ¹öÆÛ¸¦ °¡¸®Åµ´Ï´Ù. ¹öÆÛ ÀÌÁß null Á¾·á ¹è¿ ¹®ÀÚ¿ÀÇ °¢ ½Ö¿¡ ÇÊÅ͸¦ ÁöÁ¤ ÇÏ´Â ¹®ÀÚ¿À» Æ÷ÇÔ ÇÕ´Ï´Ù. ´ëÈ »óÀÚ¸¦ ¸¸µé ¶§ »ç¿ë Çϴ ù ¹ø° ÆÐÅÏÀ» ÁöÁ¤ ÇÏ´Â nFilterIndex ¸â¹ö.
Ç÷¡±× ±¸¼º¿ø¿¡¼ OFN_PATHMUSTEXIST ¹× OFN_FILEMUSTEXIST Ç÷¡±×¸¦ ¼³Á¤ ÇÏ´ÂÀÌ ¿¹Á¦. ÀÌ·¯ÇÑ Ç÷¡±×¸¦ ¹Ýȯ Çϱâ Àü¿¡ È®ÀÎ ´ëÈ »óÀÚ¸¦ °æ·Î ÆÄÀÏ À̸§À» »ç¿ëÀÚ°¡ ÁöÁ¤ÇÑ ½ÇÁ¦·Î Á¸Àç ÇÏ´Â ¿øÀÎ.
GetOpenFileName ÇÔ¼ö´Â È®ÀÎ ´ÜÃ߸¦ Ŭ¸¯ ÇÏ °í ÁöÁ¤ µÈ °æ·Î ÆÄÀÏ À̸§ÀÌ Á¸Àç ÇÏ´Â °æ¿ì TRUE¸¦ ¹Ýȯ ÇÕ´Ï´Ù. ÀÌ °æ¿ì lpstrFile ¸â¹ö¿¡¼ °¡¸®Å°´Â ¹öÆÛ´Â °æ·Î ÆÄÀÏ À̸§À» Æ÷ÇÔ ÇÕ´Ï´Ù. »ùÇà Äڵ忡¼ÀÌ Á¤º¸¸¦ »ç¿ë ÇÏ ¿© È£Ãâ ÇÏ´Â ÆÄÀÏÀ» ¿±´Ï´Ù CreateFile ÇÔ¼ö.
ÀÌ ¿¹Á¦´Â OFN_EXPLORER Ç÷¡±×¸¦ ¼³Á¤ ÇÏÁö ¾Ê½À´Ï´Ù, ÇÏÁö¸¸ ¿©ÀüÈ÷ ±âº» Ž»ö±â ½ºÅ¸ÀÏ ¿±â ´ëÈ »óÀÚ¸¦ Ç¥½Ã ÇÕ´Ï´Ù. ±×·¯³ª ÈÄÅ© ÇÁ·Î½ÃÀú ¶Ç´Â »ç¿ëÀÚ ÁöÁ¤ ¼½Ä ÆÄÀÏÀ» Á¦°ø ÇÏ·Á´Â °æ¿ì Ž»ö±â »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ¼³Á¤ ÇØ¾ß ÇÕ´Ï´Ù OFN_EXPLORER Ç÷¡±×.
OPENFILENAME ofn; / / ÀÏ¹Ý ´ëÈ »óÀÚ ±¸Á¶
char szFile [260]; / / ÆÄÀÏ À̸§ ¹öÆÛ
HWND hwnd; / / ¼ÒÀ¯ÀÚ Ã¢
ÇÚµé hf; / / ÆÄÀÏ ÇÚµé
/ / OPENFILENAME ÃʱâÈ
ZeroMemory (amp; ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0 ";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofnÀÔ´Ï´Ù.Ç÷¡±× = OFN_PATHMUSTEXIST (ko) | OFN_FILEMUSTEXIST;
/ / ¿±â ´ëÈ »óÀÚ¸¦ Ç¥½Ã ÇÕ´Ï´Ù.
°æ¿ì (GetOpenFileName(&ofn) = TRUE) hf CreateFile (ofn.lpstrFile, GENERIC_READ, =
0, NULL (LPSECURITY_ATTRIBUTES)
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
(ÇÚµé) NULL)