Win32汇编---浏览目录对话框

这是我做的最晕的一个例子,演示的是“浏览目录对话框”。之所以晕是因为要用到了COM库函数,而以我的程度,对于COM技术肯定一窍不通的!还好老罗的代码中提供了两个COM的接口,可以直接拿来调用。可是我对于其中是如何运作的琢磨不透……

虽然浏览对话框也是通用控件,但是windows并不是在Comdlg32.dll提供的,而是在Shell32.dll中!截图如下:

 浏览对话框

主程序框架并不复杂,主要功能代码在_BrowseFolder.asm,主程序BrowseFolder.asm中代码如下:

 

下面关键到了,用到了两个COM接口,不怎么懂,如何去释放COM库的也是一知半解。显示对话框是由SHBrowseForFolder函数完成的:

invoke        SHBrowseForFolderlpbi

mov           lpItemIDList,eax              ;返回一个ITEMIDLIST结构指针

参数lpbi指向一个包含对话框初始化数据的BROWSEINFO结构

SHBrowseForFolder返回的时候,如果用户单击的是“取消”按钮,那么函数的返回值是0,否则的话,函数返回一个指向ITEMIDLIST结构的指针,对于这个结构可以不必去深究,因为使用SHGetPathFromIDList函数可以很方便地将它转换成目录字符串。

_BrowseFolder.asm代码如下:

 

 

研究中……

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值