Shortcut.h
上传用户:dengkfang
上传日期:2008-12-30
资源大小:5233k
文件大小:2k
源码类别:

CA认证

开发平台:

Visual C++

  1. //*******************************************************************
  2. //              
  3. //  FILE:       Shortcut.h
  4. //              
  5. //  AUTHOR:     Thomas Latuske <CobUser@GMX.de>
  6. //              
  7. //  COMPONENT:  CShortcut
  8. //              
  9. //  DATE:       04.05.2004
  10. //              
  11. //  COMMENTS:   Update 11.05.2004:
  12. // - added ResolveLink
  13. // - added GetSpecialFolder (split off)
  14. //              
  15. //*******************************************************************
  16. //////////////////////////////////////////////////////////////////////
  17. #if !defined(AFX_SHORTCUT_H__2599590A_2D2B_49B1_9E63_BF123E5B67B8__INCLUDED_)
  18. #define AFX_SHORTCUT_H__2599590A_2D2B_49B1_9E63_BF123E5B67B8__INCLUDED_
  19. #if _MSC_VER > 1000
  20. #pragma once
  21. #endif // _MSC_VER > 1000
  22. /*
  23. ******************************************************************
  24. *!!!! Don't forget to start OLE in your app's InitInstance: !!!!!*
  25. ******************************************************************
  26. AfxEnableControlContainer();
  27. // initialize OLE:
  28. if (!AfxOleInit())
  29. {
  30. AfxMessageBox("Unable to initialize OLE.nTerminating application!");
  31. return FALSE;
  32. }
  33. */
  34. class CShortcut  
  35. {
  36. public:
  37. /*  This routine resolves the lnk destination: */
  38. HRESULT ResolveLink(CString LnkName, UINT SpecialFolder, HWND hwnd, CString &LnkPath, CString &LnkDescription);
  39. /* looks if the link, with the given name in the special folder, already exists: */
  40. BOOL isLinkAvailable(CString LnkName, UINT SpecialFolder);
  41. /* set argument(s) that will be used when a file is send (SendTo): */
  42. void SetCmdArguments(CString sArg);
  43. CShortcut();
  44. virtual ~CShortcut();
  45. /*! Use this routine to create a ShortCut (ShellLink) for this Application */
  46. BOOL CreateShortCut(CString LnkTarget, CString LnkName, UINT SpecialFolder = CSIDL_DESKTOP, CString LnkDescription = "", CString IconLocation = "", UINT IconIndex = 1);
  47. /*! Use this routine to delete any Shortcut */
  48. BOOL DeleteShortCut(CString LnkName, UINT SpecialFolder);
  49. private:
  50. /*  This routine is a helper that finds the path to the special folder: */
  51. BOOL GetSpecialFolder(UINT SpecialFolder, CString &SpecialFolderString);
  52. /*  This routine is a helper that builds a long path from 8+3 one */
  53. int ShortToLongPathName(CString sShortPath, CString &sLongPath);
  54. CString m_sCmdArg;
  55. };
  56. #endif // !defined(AFX_SHORTCUT_H__2599590A_2D2B_49B1_9E63_BF123E5B67B8__INCLUDED_)