####PickIconDlg
相信给快捷方式指定过图标的朋友肯定看过一个这样的对话框吧,如果你看到过,你肯定已经知道了这个API是怎么一回事。这个API会弹出一个选择图标的窗口给你选择,确定后返回图标在资源中的索引值。这样你可以通过这个索引值和ExtractIcon函数获得这个图标的句柄。
示例代码如下:
int Index = 2; const DWORD BuffSize = MAX_PATH; TCHAR Path[BuffSize] = _T("c:\\windows\\system32\\shell32.dll"); const int Sel = PickIconDlg(NULL, Path, BuffSize, &Index); if(Sel) { HMODULE hMod = ::LoadLibrary(Path); HICON hIcon = ExtractIcon(hMod, Path, Index); FreeLibrary(hMod); }
|
####WNetConnectionDialog和WNetConnectionDialog1
这两个函数是帮助我们在程序中显示映射网络驱动器对话框的,虽然用的不多,但是也应该见到过它。这两个函数区别不大,只不过WNetConnectionDialog1比WNetConnectionDialog提供了更多的参数去设置。
示例代码如下:
#pragma comment(lib, "Mpr.lib")
CONNECTDLGSTRUCT condlg = { 0 }; condlg.cbStructure = sizeof(condlg); condlg.hwndOwner = GetConsoleWindow(); condlg.dwFlags = CONNDLG_USE_MRU;
NETRESOURCE nr = { 0 }; nr.dwScope = RESOURCE_GLOBALNET; nr.dwType = RESOURCETYPE_DISK; nr.lpRemoteName = NULL; nr.dwDisplayType = RESOURCEDISPLAYTYPE_DOMAIN;
condlg.lpConnRes = &nr;
const int RetVal = WNetConnectionDialog1(&condlg);
|
####SHOpenWithDialog
这个API所显示的对话框我们应该是最多见的,它显示了一个打开方式的对话框。不过有点可惜的是,XP并不支持这个API,我们只能将它用在Vista开始的系统上。
示例代码如下:
OPENASINFO Info = { 0 }; Info.pcszFile = _T("C:\\Windows\\win.ini"); Info.oaifInFlags = OAIF_EXEC | OAIF_ALLOW_REGISTRATION; SHOpenWithDialog(NULL, &Info);
|