°®°®Ð¡ËµÍø > ÆäËûµç×ÓÊé > windows»·¾³ÏÂ32λ»ã±àÓïÑÔ³ÌÐòÉè¼Æ >

µÚ41ÕÂ

windows»·¾³ÏÂ32λ»ã±àÓïÑÔ³ÌÐòÉè¼Æ-µÚ41ÕÂ

С˵£º windows»·¾³ÏÂ32λ»ã±àÓïÑÔ³ÌÐòÉè¼Æ ×ÖÊý£º ÿҳ3500×Ö

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 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¡ª¡ªÖ»·µ»ØÎļþϵͳÖеÄĿ¼¡£

¡ö¡¡

·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨2£© ²È£¨2£©

Äã¿ÉÄÜϲ»¶µÄ