nindex := sendmessage(hcombo, cb_addstring, 0, longint(pchar(text)));
sendmessage(hcombo, cb_setitemdata, nindex, data);
end;
然后在adjustdlg函数的末尾添加如下的代码:
insertcomboitem(wndcombo, '', csidl_desktop);
insertcomboitem(wndcombo, '', csidl_favorites);
insertcomboitem(wndcombo, '', csidl_startmenu);
insertcomboitem(wndcombo, '', csidl_drives);
insertcomboitem(wndcombo, 'c:\', 555);
insertcomboitem(wndcombo, 'd:\winnt', 555);
insertcomboitem(wndcombo, 'c:\windows\system', 555);
这里用555并没有什么特别的意义。我本来想用0来标志普通文件夹,但后来发现csidl_desktop正是定义为0,所以必须用其他数字来区分。555是我信手写的,你当然可以用别的数字,只要注意不要和预定义的csidl常量冲突即可。
adjustdlg函数的内容就这么多。接下来是newbrowseproc函数的内容,它的基本结构如下:
function newbrowseproc(awnd:hwnd; umsg:uint; wp:wparam; lp:lparam):longint; stdcall;
begin
result := 0;
case umsg of
…
end;