如标题
解决方案 »
- 如何将十六进制的数用ASCii码显示出来?
- 一个SDK来实现普通画图跟双缓冲画图区别的小程序,能运行但有问题。
- 求前辈们指点,最近比较有时间,做点啥小项目实践下子?
- Hook消息WM_PAINT的时候,钩子类型确切的是用哪个?
- 100分求教:怎样取得椭圆按扭的区域并对其进行完全填充??
- 请问如何将我的一个view上画的东西拷贝出来,当作图形贴到word上。
- 马上放假回家,上网和大家交流的机会少了,先给大家拜个早年,200分红包!
- 各位图形图像学高手,可否讨论一下m_hDC跟m_hAttribDC的区别与具体应用
- 这种创意有前景吗?请指教!
- SetscrollInfo()函数学习求助
- 哪里可以下载到 for XP 的 DDK ?
- ------------100分寻求VC屏幕保护切换效果源代码或类------------
------------------------------------------
编程思想:
------------------------------------------
Windows外壳(Shell)的快捷方式是以OLE技术的组件对象模型COM(Component Object Modal)为基础而设计的。利用COM模型,一个应用程序可以调用另一应用程序的某些功能。这方面的技术细节请参阅有关文献。在了解了上述基本原理后,创建Windows的快捷方式就比较容易了。首先利用OLE通过调用CoCreateInstance()函数建立一个IID_IShellLink实例,并同时得到其接口指针。利用这个接口指针可以对其各项属性进行设置。为了使这些信息以快捷方式的数据文件(*.lnk)格式保存起来,还需要从IID_IShellLink对象取得其IID_IPersistFile接口指针,以便于调用其成员函数Save()保存前面设置的信息。至于如何删除快捷方式以及创建和删除文件夹,则只需要简单地调用文件操作函数SHFileOperation()就可以了。另外应该注意,在完成上述操作之后,都要调用SHChangeNotify()函数通知Windows外壳有关变化以使之及时更新其显示状态。//创建快捷方式BOOL CreateLink ( LPSTR szPath,//快捷方式的目标应用程序名LPSTR szLink)//快捷方式的数据文件名(*.lnk){HRESULT hres ;IShellLink * psl ;IPersistFile* ppf ;WORD wsz[ MAX_PATH] ;//创建一个IShellLink实例hres = CoCreateInstance( CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER, IID_IShellLink,(void **)&psl) ;if( FAILED( hres))return FALSE ;//设置目标应用程序psl -> SetPath( szPath) ;//设置快捷键(此处设为Shift+Ctrl+'R')psl -> SetHotkey( MAKEWORD( 'R',HOTKEYF_SHIFT ¦HOTKEYF_CONTROL)) ;//从IShellLink获取其IPersistFile接口//用于保存快捷方式的数据文件 (*.lnk)hres = psl -> QueryInterface( IID_IPersistFile,(void**)&ppf) ;if( FAILED( hres))return FALSE ;// 确保数据文件名为ANSI格式MultiByteToWideChar( CP_ACP, 0, szLink, -1, wsz, MAX_PATH) ;//调用IPersistFile::Save//保存快捷方式的数据文件 (*.lnk)hres = ppf -> Save( wsz, STGM_READWRITE) ;//释放IPersistFile和IShellLink接口ppf -> Release( ) ;psl -> Release( ) ;return TRUE;}
*************
以前帖子中的内容,CV过来了!