IShellLink接口的MFC封装类

简介:
//Class which contains all the parameters related to shortcut
class CShellLinkInfo : public CObject
{
public:
//Constructors / Destructors
  CShellLinkInfo();
  CShellLinkInfo(const CShellLinkInfo& sli);
  ~CShellLinkInfo();

//Methods 
  CShellLinkInfo& operator=(const CShellLinkInfo& sli);

//Diagnostic support
#ifdef _DEBUG
  virtual void Dump(CDumpContext& dc);
#endif

//Variables
  CString      m_sTarget;
  LPITEMIDLIST m_pidl;
  CString      m_sArguments;
  CString      m_sDescription;
  WORD         m_wHotkey;
  CString      m_sIconLocation;
  int          m_nIconIndex;
  int          m_nShowCmd;
  CString      m_sWorkingDirectory;
};


//Class which wraps standard shortcuts i.e. IShellLink
class CShellLink
{
public:
//Constructors / Destructors
  CShellLink();
  virtual ~CShellLink();

//Methods
  BOOL Create(const CShellLinkInfo& sli);
  BOOL Load(const CString& sFilename);
  BOOL Save(const CString& sFilename);
  BOOL Resolve(CWnd* pParentWnd, DWORD dwFlags);

//Accessors
  CString      GetPath() const;
  LPITEMIDLIST GetPathIDList() const;
  CString      GetArguments() const;
  CString      GetDescription() const;
  WORD         GetHotKey() const;
  CString      GetIconLocation() const;
  int          GetIconLocationIndex() const;
  int          GetShowCommand() const;
  CString      GetWorkingDirectory() const;

//Mutators
  void SetPath(const CString& sPath);
  void SetPathIDList(LPITEMIDLIST pidl);
  void SetArguments(const CString& sArguments);
  void SetDescription(const CString& sDescription);
  void SetHotKey(WORD wHotkey);
  void SetIconLocation(const CString& sIconLocation);
  void SetIconLocationIndex(int nIconIndex);
  void SetShowCommand(int nShowCmd);
  void SetWorkingDirectory(const CString& sWorkingDirectory);

protected:
  BOOL Initialise();
  CShellLinkInfo m_sli;
  IShellLink*    m_psl;
  IPersistFile*  m_ppf;
  BOOL           m_bAttemptedInitialise;
};


//Class which wraps internet shortcuts i.e. IUniformResourceLocator
class CUrlShellLink : public CShellLink
{
public:
//Constructors / Destructors
  CUrlShellLink();
  virtual ~CUrlShellLink();

//Methods
  BOOL Create(const CShellLinkInfo& sli);
  BOOL Load(const CString& sFilename);
  BOOL Save(const CString& sFilename);
  BOOL Invoke(CWnd* pParentWnd, DWORD dwFlags, const CString& sVerb);

//Following 4 functions just ASSERT if called
  CString GetArguments() const;
  LPITEMIDLIST GetPathIDList() const;
  void SetArguments(const CString& sArguments);
  void SetPathIDList(LPITEMIDLIST pidl);

protected:
  BOOL Initialise();
  IUniformResourceLocator* m_pURL;
};

复制代码



本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2008/07/06/1236968.html,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
安全 算法 Java
常用类以及接口
常用类以及接口
|
6月前
|
存储 容器
Qt中 QMap 类、QHash 类、QVector 类详解
Qt中 QMap 类、QHash 类、QVector 类详解
Qt中 QMap 类、QHash 类、QVector 类详解
理解 Delphi 的类(二) - 初识类的方法
理解 Delphi 的类(二) - 初识类的方法
|
数据可视化
理解 Delphi 的类(三) - 初识类的属性
理解 Delphi 的类(三) - 初识类的属性
194 0
MFC CFileFind类用法总结
MFC CFileFind类用法总结
422 0
|
存储 对象存储 iOS开发
【IOS 开发】Object - C 面向对象 - 类 , 对象 , 成员变量 , 成员方法(二)
【IOS 开发】Object - C 面向对象 - 类 , 对象 , 成员变量 , 成员方法(二)
427 0
|
Java 程序员 C语言
【IOS 开发】Object - C 面向对象 - 类 , 对象 , 成员变量 , 成员方法(一)
【IOS 开发】Object - C 面向对象 - 类 , 对象 , 成员变量 , 成员方法(一)
136 0
|
Java Spring
接口动态调用
spring配置文件配置 调用方法 private ServiceOutput doClazzByBeanName(String beanName, ServiceInput input) throws ServiceException { ServiceOutput output = .
1606 0