home *** CD-ROM | disk | FTP | other *** search
/ Softwarová Záchrana 3 / Softwarova-zachrana-3.bin / pserv.cpl / pserv-2.4.exe / source / AdvancedPage.cpp < prev    next >
C/C++ Source or Header  |  2005-01-05  |  4KB  |  122 lines

  1. // AdvancedPage.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "pserv2.h"
  6.  
  7. #include "AdvancedPage.h"
  8. #include "cservice.h"
  9.  
  10. #ifdef _DEBUG
  11. #define new DEBUG_NEW
  12. #undef THIS_FILE
  13. static char THIS_FILE[] = __FILE__;
  14. #endif
  15.  
  16. /////////////////////////////////////////////////////////////////////////////
  17. // CAdvancedPage property page
  18.  
  19. IMPLEMENT_DYNCREATE(CAdvancedPage, CPropertyPage)
  20.  
  21. #define SERVICE_TYPE_OWN_PROCESS (0)
  22. #define SERVICE_TYPE_SHARED_PROCESS (1)
  23. #define SERVICE_TYPE_KERNEL_DRIVER (2)
  24. #define SERVICE_TYPE_FS_DRIVER (3)
  25. #define SERVICE_TYPE_ADAPTER_DRIVER (4)
  26. #define SERVICE_TYPE_RECOGNIZER_DRIVER (5)
  27. #define SERVICE_TYPE_OTHER (6)
  28.  
  29. int GetServiceTypeAsIndex( DWORD m_dwServiceType)
  30. {
  31.     if( m_dwServiceType & SERVICE_WIN32_OWN_PROCESS )        
  32.         return SERVICE_TYPE_OWN_PROCESS;
  33.     if( m_dwServiceType & SERVICE_WIN32_SHARE_PROCESS )    
  34.         return SERVICE_TYPE_SHARED_PROCESS;
  35.     if( m_dwServiceType & SERVICE_ADAPTER )    
  36.         return SERVICE_TYPE_ADAPTER_DRIVER;
  37.     if( m_dwServiceType & SERVICE_RECOGNIZER_DRIVER )    
  38.         return SERVICE_TYPE_RECOGNIZER_DRIVER;
  39.     if( m_dwServiceType & SERVICE_KERNEL_DRIVER )            
  40.         return SERVICE_TYPE_KERNEL_DRIVER;
  41.     if( m_dwServiceType & SERVICE_FILE_SYSTEM_DRIVER )    
  42.         return SERVICE_TYPE_FS_DRIVER;
  43.     
  44.     return SERVICE_TYPE_OTHER;
  45. }
  46.  
  47.  
  48. void CAdvancedPage::SetService(CService* instance)
  49. {
  50.     m_pService = instance;
  51.     if( m_pService != NULL )
  52.     {
  53.         m_dwErrorControl = m_pService->m_dwErrorControl;
  54.     }
  55. }
  56. CAdvancedPage::CAdvancedPage() 
  57.     : CPropertyPage(CAdvancedPage::IDD),
  58.         m_pService( 0 )
  59. {
  60.     //{{AFX_DATA_INIT(CAdvancedPage)
  61.     m_dwErrorControl = 0;
  62.     //}}AFX_DATA_INIT
  63. }
  64.  
  65. CAdvancedPage::~CAdvancedPage()
  66. {
  67. }
  68.  
  69. void CAdvancedPage::DoDataExchange(CDataExchange* pDX)
  70. {
  71.     CPropertyPage::DoDataExchange(pDX);
  72.     //{{AFX_DATA_MAP(CAdvancedPage)
  73.     DDX_Control(pDX, IDC_LOAD_ORDER_GROUP, m_cbLoadOrderGroups);
  74.     DDX_Control(pDX, IDC_SERVICE_TYPE, m_cbServiceType);
  75.     DDX_CBIndex(pDX, IDC_ERROR_CONTROL, m_dwErrorControl);    
  76.     //}}AFX_DATA_MAP
  77.     if( pDX->m_bSaveAndValidate )
  78.     {
  79.         if( (DWORD) m_dwErrorControl != m_pService->m_dwErrorControl )
  80.         {
  81.             m_pService->m_dwErrorControl = (DWORD) m_dwErrorControl;
  82.             m_pService->m_dwChangeFlags |= CHANGED_ERROR_CONTROL;
  83.         }
  84.     }
  85.     else
  86.     {
  87.         CServiceList* list = m_pService->GetOwner();
  88.         int nSelect = 0;
  89.         m_cbLoadOrderGroups.AddString(_T("- NONE -") );
  90.         for( int nIndex = 0, nMaxIndex = list->m_LoadOrderGroups.GetSize(); nIndex < nMaxIndex; nIndex++ )
  91.         {
  92.             LPCTSTR string = list->m_LoadOrderGroups.GetAt(nIndex);
  93.             m_cbLoadOrderGroups.AddString( string );
  94.             if( m_pService->m_strLoadOrderGroup.CompareNoCase(string) == 0 )
  95.             {
  96.                 nSelect = nIndex+1;
  97.             }
  98.         }
  99.         m_cbLoadOrderGroups.SetCurSel(nSelect);
  100.  
  101.         m_cbServiceType.AddString( _T("Own process") );
  102.         m_cbServiceType.AddString( _T("Shared process") );
  103.         m_cbServiceType.AddString( _T("Kernel driver") );
  104.         m_cbServiceType.AddString( _T("File system driver") );
  105.         m_cbServiceType.AddString( _T("Adapter driver") );
  106.         m_cbServiceType.AddString( _T("Recognizer driver") );
  107.         m_cbServiceType.AddString( _T("Other") );
  108.         m_cbServiceType.SetCurSel(GetServiceTypeAsIndex(m_pService->m_dwServiceType));
  109.     }
  110. }
  111.  
  112.  
  113. BEGIN_MESSAGE_MAP(CAdvancedPage, CPropertyPage)
  114.     //{{AFX_MSG_MAP(CAdvancedPage)
  115.         // NOTE: the ClassWizard will add message map macros here
  116.     //}}AFX_MSG_MAP
  117. END_MESSAGE_MAP()
  118.  
  119. /////////////////////////////////////////////////////////////////////////////
  120. // CAdvancedPage message handlers
  121.  
  122.