windows»·¾³ÏÂ32λ»ã±àÓïÑÔ³ÌÐòÉè¼Æ-µÚ41ÕÂ
°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
´ÑÝʾËüµÄʹÓá£
ͼ8¡£6¡¡¡¡ä¯ÀÀĿ¼¶Ô»°¿ò
Àý×Ó³ÌÐòµÄÔ´´úÂëλÓÚËù¸½¹âÅ̵ÄChapter08BrowseFolderĿ¼ÖУ¬Ä¿Â¼Öаüº¬ÁËBrowseFolder¡£asmÎļþºÍ_BrowseFolder¡£asmÎļþ¡£BrowseFolder¡£asmÎļþµÄÄÚÈݺܼòµ¥£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£386
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£model¡¡flat£»stdcall
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡option¡¡casemap£ºnone
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
£»¡¡Include¡¡Îļþ¶¨Òå
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
include¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡windows¡£inc
include¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡user32¡£inc
includelib¡¡¡¡¡¡¡¡¡¡user32¡£lib
include¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡kernel32¡£inc
includelib¡¡¡¡¡¡¡¡¡¡kernel32¡£lib
include¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡shell32¡£inc
includelib¡¡¡¡¡¡¡¡¡¡shell32¡£lib
include¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ole32¡£inc
includelib¡¡¡¡¡¡¡¡¡¡ole32¡£lib
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
£»¡¡Êý¾Ý¶Î
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£data£¿
szPath¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡db¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MAX_PATH¡¡dup¡¡£¨£¿£©
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£data
szSelect¡¡¡¡¡¡¡¡¡¡¡¡¡¡db¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡'ÄúÑ¡ÔñµÄĿ¼'£»0
szNoSelect¡¡¡¡¡¡¡¡¡¡db¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡'Äú°´ÏÂÁËÈ¡Ïû¼ü'£»0
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
£»¡¡´úÂë¶Î
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡de
¡¡
include¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_BrowseFolder¡£asm
start£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡GetCurrentDirectory£»sizeof¡¡szPath£»addr¡¡szPath
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡_BrowseFolder£»NULL£»addr¡¡szPath
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡MessageBox£»NULL£»offset¡¡szPath£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡offset¡¡szSelect£»MB_OK
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡MessageBox£»NULL£»offset¡¡szNoSelect£»NULL£»MB_OK
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡ExitProcess£»NULL
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end¡¡¡¡¡¡¡¡start
¸ÃÎļþ½ö°üº¬¼¸¾äµ÷ÓúÍÏÔʾ½á¹ûµÄ´úÂ룬ȫ²¿µÄ¹¦Äܼ¯ÖÐÔÚ_BrowseFolder¡£asmÖУ¬ÓÃincludeÓï¾ä°üº¬½øÖ÷ÎļþÖУ¬ÕâÑù°²ÅÅ´úÂëµÄÔÒòÊÇĿ¼ä¯ÀÀ¶Ô»°¿òµÄʵÏֱȽϸ´ÔÓ£¬°Ñ¹¦ÄÜÄ£¿éд³ÉÒ»¸öµ¥¶ÀµÄÎļþ¿ÉÒÔ±ãÓÚÔÚÆäËûÎļþÖÐÒýÓ㬶ÁÕßÒ²¿ÉÒÔÖ±½Ó°ÑÕâ¸öÔ´Îļþ²»¼ÓÐ޸ĵØÓÃÔÚÆäËûµØ·½¡£_BrowseFolder¡£asmÎļþµÄÄÚÈÝÈçÏ£º
¡¡
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
£»¡¡IUnknown¡¡½Ó¿Ú¶¨Òå
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
externdef¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IID_IUnknown£ºIID¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
LPUNKNOWN¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡DWORD
LPPUNKNOWN¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡ptr¡¡LPUNKNOWN
¡¡
IUnknown_QueryInterfaceProto¡¡¡¡typedef¡¡proto¡¡£ºDWORD£»¡¡£ºDWORD£»¡¡£ºDWORD
IUnknown_AddRefProto¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡proto¡¡£ºDWORD¡¡
IUnknown_ReleaseProto¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡proto¡¡£ºDWORD
IUnknown_QueryInterface¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡ptr¡¡IUnknown_QueryInterfaceProto
IUnknown_AddRef¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡ptr¡¡IUnknown_AddRefProto
IUnknown_Release¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡ptr¡¡IUnknown_ReleaseProto
¡¡¡¡¡¡¡¡¡¡¡¡
IUnknown¡¡struct¡¡DWORD
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡QueryInterface¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IUnknown_QueryInterface¡¡¡¡¡¡£¿
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡AddRef¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IUnknown_AddRef¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¿
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Release¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IUnknown_Release¡¡¡¡¡¡¡¡¡¡¡¡£¿
IUnknown¡¡ends
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
£»IMalloc¡¡½Ó¿Ú¶¨Òå
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
externdef¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IID_IMalloc£ºIID¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
LPMALLOC¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡DWORD
LPPMALLOC¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡ptr¡¡LPMALLOC
¡¡
IMalloc_AllocProto¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡proto¡¡£ºDWORD£»¡¡£ºDWORD
IMalloc_ReallocProto¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡proto¡¡£ºDWORD£»¡¡£ºDWORD£»£ºDWORD
IMalloc_FreeProto¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡proto¡¡£ºDWORD£»¡¡£ºDWORD
IMalloc_GetSizeProto¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡proto¡¡£ºDWORD£»¡¡£ºDWORD
IMalloc_DidAllocProto¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡proto¡¡£ºDWORD£»¡¡£ºDWORD
IMalloc_HeapMinimizeProto¡¡¡¡¡¡¡¡¡¡typedef¡¡proto¡¡£ºDWORD
¡¡
IMalloc_Alloc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡ptr¡¡IMalloc_AllocProto
IMalloc_Realloc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡ptr¡¡IMalloc_ReallocProto
IMalloc_Free¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡ptr¡¡IMalloc_FreeProto
IMalloc_GetSize¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡ptr¡¡IMalloc_GetSizeProto
IMalloc_DidAlloc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡ptr¡¡IMalloc_DidAllocProto
IMalloc_HeapMinimize¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡typedef¡¡ptr¡¡IMalloc_HeapMinimizeProto
¡¡
IMalloc¡¡struct¡¡DWORD
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡QueryInterface¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IUnknown_QueryInterface¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¿
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡AddRef¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IUnknown_AddRef¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¿
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Release¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IUnknown_Release¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¿
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ8Õ¡¡Í¨ÓöԻ°¿ò
8¡£3¡¡ä¯ÀÀĿ¼¶Ô»°¿ò£¨2£©
¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Alloc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IMalloc_Alloc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¿
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Realloc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IMalloc_Realloc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¿
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Free¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IMalloc_Free¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¿
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡GetSize¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IMalloc_GetSize¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¿
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DidAlloc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IMalloc_DidAlloc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¿
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡HeapMinimize¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IMalloc_HeapMinimize¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¿
IMalloc¡¡ends
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£data¡¡¡¡¡¡£¿
_BrowseFolderTmp¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd¡¡¡¡¡¡¡¡£¿
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡nst
_szDirInfo¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡db¡¡¡¡¡¡¡¡¡¡¡¡'ÇëÑ¡ÔñĿ¼£º'£»0
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡de
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
£»¡¡µ¯³öÑ¡ÔñĿ¼µÄ¶Ô»°¿ò
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
_BrowseFolderCallBack¡¡¡¡¡¡proc¡¡¡¡¡¡¡¡hWnd£»uMsg£»lParam£»lpData
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡@szBuffer£§260£§£ºbyte
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡eax£»uMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡¡¡BFFM_INITIALIZED
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡SendMessage£»hWnd£»BFFM_SETSELECTION£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡TRUE£»_BrowseFolderTmp
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡¡¡BFFM_SELCHANGED
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡SHGetPathFromIDList£»lParam£»addr¡¡@szBuffer
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡SendMessage£»hWnd£»BFFM_SETSTATUSTEXT£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡0£»addr¡¡@szBuffer
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xor¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡eax£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡
_BrowseFolderCallBack¡¡¡¡¡¡endp
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
_BrowseFolder¡¡¡¡¡¡¡¡¡¡¡¡¡¡proc¡¡¡¡¡¡¡¡¡¡¡¡¡¡_hWnd£»_lpszBuffer
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡¡¡¡¡¡¡@stBrowseInfo£ºBROWSEINFO
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡¡¡¡¡¡¡@stMalloc
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡¡¡¡¡¡¡@pidlParent£»@dwReturn
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pushad
¡¡
£»********************************************************************
£»¡¡³õʼ»¯¿â
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡CoInitialize£»NULL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡SHGetMalloc£»addr¡¡@stMalloc
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡E_FAIL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡@dwReturn£»FALSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jmp¡¡¡¡¡¡@F
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡¡¡RtlZeroMemory£»addr¡¡@stBrowseInfo£»sizeof¡¡@stBrowseInfo
£»********************************************************************
£»¡¡SHBrowseForFolder¡¡Ñ¡ÔñÒ»¸öĿ¼£¬°Ñ²»º¬Â·¾¶µÄĿ¼Ãû·ÅÈë
£»¡¡stBrowseInfo¡£pszDisplayName¡¡ÖУ¬SHGetPathFromIDList¡¡°Ñ
£»¡¡stBrowseInfo¡£pszDisplayName¡¡×ª»»³Éº¬È«²¿Â·¾¶µÄĿ¼Ãû
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push¡¡¡¡¡¡¡¡¡¡_hWnd
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pop¡¡¡¡¡¡¡¡¡¡¡¡@stBrowseInfo¡£hwndOwner
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push¡¡¡¡¡¡¡¡¡¡_lpszBuffer
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pop¡¡¡¡¡¡¡¡¡¡¡¡_BrowseFolderTmp
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@stBrowseInfo¡£lpfn£»offset¡¡_BrowseFolderCallBack
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@stBrowseInfo¡£lpszTitle£»offset¡¡_szDirInfo
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@stBrowseInfo¡£ulFlags£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡BIF_RETURNONLYFSDIRS¡¡or¡¡BIF_STATUSTEXT
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡SHBrowseForFolder£»addr¡¡@stBrowseInfo
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@pidlParent£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡¡¡eax¡¡£¡=¡¡¡¡NULL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡SHGetPathFromIDList£»eax£»_lpszBuffer
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡eax£»TRUE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡eax£»FALSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@dwReturn£»eax
£»********************************************************************
£»¡¡ÊÍ·Å¿â
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡eax£»@stMalloc
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡eax£»£§eax£§
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡£¨IMalloc¡¡PTR¡¡£§eax£§£©¡£Free£»@stMalloc£»@pidlParent¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡eax£»@stMalloc
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡eax£»£§eax£§
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡£¨IMalloc¡¡PTR¡¡£§eax£§£©¡£Release£»@stMalloc
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡@@£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡CoUninitialize
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡popad
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡eax£»@dwReturn
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡
_BrowseFolder¡¡¡¡¡¡endp
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
8¡£3¡£2¡¡¡¡Ê¹ÓÃä¯ÀÀĿ¼¶Ô»°¿ò
ä¯ÀÀĿ¼¶Ô»°¿òµÄʵÏÖ·ÖΪÁ½¸ö²¿·Ö£º³õʼ»¯²¿·ÖºÍ¶Ô»°¿ò¹¦Äܲ¿·Ö¡£
1¡£¡¡³õʼ»¯¿â
ä¯ÀÀĿ¼¶Ô»°¿òÒªÓõ½½Ó¿Ú£¬ËùÒÔ±ØÐëÊ×Ïȵ÷ÓÃCoInitializeº¯ÊýÀ´³õʼ»¯¿â²¢µ÷ÓÃSHGetMallocº¯ÊýÀ´»ñÈ¡Ò»¸öIMallocÀàÐ͵Ľӿڣ¬Õâ¸ö½Ó¿Úʵ¼ÊÉÏÊÇÒ»¸öÄÚ´æ¿é£¬Öмä°üº¬¸÷ÖÖ¹¦ÄÜÄ£¿éµÄÈë¿ÚµØÖ·¡£ÔÚ¶Ô»°¿ò·µ»ØµÄʱºò£¬ÔÙµ÷ÓýӿÚÖеÄFreeÄ£¿éÊͷŽӿڣ¬²¢µ÷ÓÃCoUninitializeº¯ÊýÊÍ·Å¿â¡£
±à³ÌÊÇÒ»¸öºÜ´óµÄ¿ÎÌ⣬ÓйØ×é¼þÖеÄIUnknown½Ó¿ÚºÍIMalloc½Ó¿ÚµÈ¹¤×÷»úÀíµÄÄÚÈݱ¾Éí¾ÍÊÇÒ»¸ö±È½ÏÉî°ÂµÄÎÊÌ⣬Õâ²»ÊDZ¾ÊéËùÒªÉæ¼°µÄÄÚÈÝ£¬¶ÁÕß¿ÉÒÔ²»±ØÉîÈëÑо¿_BrowseFolder¡£asmÎļþÖйØÓÚÕâÁ½ÖֽӿڵĶ¨Ò壬ֻҪ½«¶¨Ò岿·ÖºÍ´úÂëÖгõʼ»¯ºÍÊÍ·Å¿âµÄ´úÂëÖ±½ÓÄùýÀ´ÓþÍÊÇÁË£¬ÕâÒ²ÊDZ¾Ê齫Õâ¸öÄ£¿éµ¥¶À·ÅÈëÒ»¸öÎļþµÄÔÒò¡£Èç¹û¶ÁÕ߶Աà³ÌµÄÄÚÈݸÐÐËȤ£¬¿ÉÒÔ·ÃÎÊhere¡£is/inasm£¨¿ÉÄÜÐèҪʹÓôúÀí·þÎñÆ÷·ÃÎÊ£©£¬ÕâÊÇÒ»¸öÌÖÂÛÈçºÎÓÃWin32»ã±à±àд³ÌÐòµÄÕ¾µã¡£
¿âµÄÏà¹Øº¯Êý°üº¬ÔÚole32¡£dllÖУ¬ËùÒÔÔ´³ÌÐòÖбØÐë°üº¬ÏÂÁÐÓï¾ä£º
include¡¡¡¡¡¡¡¡¡¡ole32¡£inc
includelib¡¡¡¡ole32¡£lib
2¡£¡¡ÏÔʾ¶Ô»°¿ò
ÏÔʾ¶Ô»°¿òµÄ¹¦Äܺ¯Êý°üº¬ÔÚShell32¡£dllÖУ¬ËùÒÔÔÚÔ´³ÌÐòµÄÍ·²¿Ò²Ó¦¸ÃÓÐÏÂÁаüº¬Óï¾ä£º
include¡¡¡¡¡¡¡¡¡¡¡¡¡¡shell32¡£inc
includelib¡¡¡¡¡¡¡¡shell32¡£lib
ÏÔʾ¶Ô»°¿òµÄ¹¦ÄÜÓÉSHBrowseForFolderº¯ÊýʵÏÖ£¬º¯ÊýµÄÓ÷¨ÊÇ£º
invoke¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡SHBrowseForFolder£¬lpbi
mov¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpItemIDList£»eax¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»·µ»ØÒ»¸öITEMIDLIST½á¹¹Ö¸Õë
²ÎÊýlpbiÖ¸ÏòÒ»¸ö°üº¬¶Ô»°¿ò³õʼ»¯Êý¾ÝµÄBROWSEINFO½á¹¹£º
BROWSEINFO¡¡STRUCT
¡¡HwndOwner¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd¡¡£¿¡¡¡¡¡¡¡¡¡¡¡¡£»¶Ô»°¿òµÄ¸¸´°¿Ú
¡¡PidlRoot¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd¡¡£¿¡¡¡¡¡¡¡¡¡¡¡¡£»ÓÃÀ´±íʾÆðʼĿ¼µÄITEMIDLISTĿ¼
¡¡PszDisplayName¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd¡¡£¿¡¡¡¡¡¡¡¡¡¡¡¡£»ÓÃÀ´½ÓÊÕÓû§Ñ¡ÔñĿ¼µÄ»º³åÇø
¡¡LpszTitle¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd¡¡£¿¡¡¡¡¡¡¡¡¡¡¡¡£»¶Ô»°¿òÖеÄÓû§¶¨ÒåÎÄ×Ö
¡¡ulFlags¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd¡¡£¿¡¡¡¡¡¡¡¡¡¡¡¡£»±êÖ¾
¡¡lpfn¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd¡¡£¿¡¡¡¡¡¡¡¡¡¡¡¡£»»Øµ÷º¯ÊýµØÖ·
¡¡lParam¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd¡¡£¿¡¡¡¡¡¡¡¡¡¡¡¡£»´«¸ø»Øµ÷º¯ÊýµÄ²ÎÊý
¡¡iImage¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd¡¡£¿¡¡¡¡¡¡¡¡¡¡¡¡£»ÓÃÀ´½ÓÊÕÑ¡ÖÐĿ¼µÄͼÏñ
BROWSEINFO¡¡ENDS
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ8Õ¡¡Í¨ÓöԻ°¿ò
8¡£3¡¡ä¯ÀÀĿ¼¶Ô»°¿ò£¨3£©
¡¡¡¡¡¡¡¡
½á¹¹µÄ¸÷¸öÖØÒª×Ö¶Î˵Ã÷ÈçÏ¡£
¡ñ¡¡¡¡¡¡lpszTitle¡ª¡ª¶Ô»°¿òÖеÄ×Ô¶¨ÒåÎÄ×Ö£¬ÈçÀý×ÓÖÐÏÔʾµÄÊÇ¡°ÇëÑ¡ÔñĿ¼¡±¡£
¡ñ¡¡¡¡¡¡lpfn¡ª¡ª»Øµ÷º¯ÊýµÄµØÖ·¡£
¡ñ¡¡¡¡¡¡ulFlags¡ª¡ªÓÃÀ´¶¨Òå¶Ô»°¿òÀàÐ͵ıêÖ¾£¬ÏÂÃæÊÇһЩÖØÒªµÄ±êÖ¾£º
¡ö¡¡¡¡¡¡BIF_BROWSEFORPRINTER¡ª¡ª¶Ô»°¿òÖÐÖ»ÄÜÑ¡Ôñ´òÓ¡»ú¡£
¡ö¡¡¡¡¡¡BIF_BROWSEINCLUDEFILES¡ª¡ªÍ¬Ê±ÏÔʾĿ¼ÖеÄÎļþ¡£
¡ö¡¡¡¡¡¡BIF_RETURNONLYFSDIRS¡ª¡ªÖ»·µ»ØÎļþϵͳÖеÄĿ¼¡£
¡ö¡¡