ShellSettings.cpp
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:3k
源码类别:

图形图象

开发平台:

Visual C++

  1. //*******************************************************************************
  2. // COPYRIGHT NOTES
  3. // ---------------
  4. // You may use this source code, compile or redistribute it as part of your application 
  5. // for free. You cannot redistribute it as a part of a software development 
  6. // library without the agreement of the author. If the sources are 
  7. // distributed along with the application, you should leave the original 
  8. // copyright notes in the source code without any changes.
  9. // This code can be used WITHOUT ANY WARRANTIES at your own risk.
  10. // 
  11. // For the latest updates to this code, check this site:
  12. // http://www.masmex.com 
  13. // after Sept 2000
  14. // 
  15. // Copyright(C) 2000 Philip Oldaker <email: philip@masmex.com>
  16. //*******************************************************************************
  17. #include "stdafx.h"
  18. #include "ShellSettings.h"
  19. typedef void (WINAPI *PFNSHGETSETTINGSPROC)(LPSHELLFLAGSTATE lpsfs, DWORD dwMask);  
  20. CShellSettings::CShellSettings()
  21. {
  22. // Since SHGetSettings is not implemented in all versions of the shell, 
  23. // get the function address manually at run time. 
  24. // This allows the extension to run on all platforms. 
  25. m_hinstShell32 = LoadLibrary(TEXT("shell32.dll")); 
  26. ZeroMemory(&m_sfs, sizeof(m_sfs));  
  27. // The default is classic Windows 95 style. 
  28. m_sfs.fWin95Classic = TRUE; 
  29. }
  30. CShellSettings::~CShellSettings()
  31. {
  32. if (m_hinstShell32) 
  33. FreeLibrary(m_hinstShell32);  
  34. }
  35. bool CShellSettings::GetSettings() 
  36. {
  37. if (m_hinstShell32 == NULL) 
  38.  return false;
  39. PFNSHGETSETTINGSPROC pfnSHGetSettings; 
  40. pfnSHGetSettings = (PFNSHGETSETTINGSPROC)GetProcAddress(m_hinstShell32, "SHGetSettings"); 
  41. if(pfnSHGetSettings) 
  42. {   
  43. ZeroMemory(&m_sfs, sizeof(m_sfs));  
  44.  (*pfnSHGetSettings)(&m_sfs, 
  45. SSF_DESKTOPHTML | // The fDesktopHTML member is being requested.  
  46. SSF_DONTPRETTYPATH | // The fDontPrettyPath member is being requested.  
  47. SSF_DOUBLECLICKINWEBVIEW |  // The fDoubleClickInWebView member is being requested.  
  48. SSF_HIDEICONS | // The fHideIcons member is being requested.  
  49. SSF_MAPNETDRVBUTTON | // The fMapNetDrvBtn member is being requested.  
  50. SSF_NOCONFIRMRECYCLE | // The fNoConfirmRecycle member is being requested.  
  51. SSF_SHOWALLOBJECTS | // The fShowAllObjects member is being requested.  
  52. SSF_SHOWATTRIBCOL | // The fShowAttribCol member is being requested.  
  53. SSF_SHOWCOMPCOLOR | // The fShowCompColor member is being requested.  
  54. SSF_SHOWEXTENSIONS | // The fShowExtensions member is being requested.  
  55. SSF_SHOWINFOTIP | // The fShowInfoTip member is being requested.  
  56. SSF_SHOWSYSFILES | // The fShowSysFiles member is being requested.  
  57. SSF_WIN95CLASSIC); // The fWin95Classic member is being requested.  
  58. }  
  59. return true;
  60. }