Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

434 lines
16 KiB

  1. // advcom1.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "afxcmn.h"
  5. #include "ISAdmin.h"
  6. #include "advcom1.h"
  7. #ifdef _DEBUG
  8. #undef THIS_FILE
  9. static char BASED_CODE THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CADVCOM1 dialog
  13. IMPLEMENT_DYNCREATE(CADVCOM1, CGenPage)
  14. CADVCOM1::CADVCOM1(): CGenPage(CADVCOM1::IDD)
  15. {
  16. //{{AFX_DATA_INIT(CADVCOM1)
  17. //}}AFX_DATA_INIT
  18. }
  19. CADVCOM1::~CADVCOM1()
  20. {
  21. }
  22. void CADVCOM1::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CGenPage::DoDataExchange(pDX);
  25. //{{AFX_DATA_MAP(CADVCOM1)
  26. DDX_Control(pDX, IDC_LOGFILEFLUSHINTERVALSPIN1, m_spinLogFileFlushInterval);
  27. DDX_Control(pDX, IDC_LOGFILEFLUSHINTERVALDATA1, m_editLogFileFlushInterval);
  28. DDX_Control(pDX, IDC_USELOGFILEFLUSHINTERNVALDATA1, m_cboxUseLogFileFlushInterval);
  29. DDX_Control(pDX, IDC_USERTOKENTTLSPIN1, m_spinUserTokenTTL);
  30. DDX_Control(pDX, IDC_USEOBJECTCACHETTLDATA1, m_cboxUseObjCacheTTL);
  31. DDX_Control(pDX, IDC_OBJCACHEDATA1, m_editObjCacheTTL);
  32. DDX_Control(pDX, IDC_ACCEPTEXTODATA1, m_editAcceptExTO);
  33. DDX_Control(pDX, IDC_ACCEPTEXOUTDATA1, m_editAcceptExOut);
  34. DDX_Control(pDX, IDC_COMDBGFLAGSDATA1, m_editComDbgFlags);
  35. DDX_Control(pDX, IDC_USEACCEPTEXDATA1, m_cboxUseAcceptEx);
  36. DDX_Control(pDX, IDC_THREADTOSPIN1, m_spinThreadTO);
  37. DDX_Control(pDX, IDC_OBJCACHESPIN1, m_spinObjCache);
  38. DDX_Control(pDX, IDC_MAXPOOLSPIN1, m_spinMaxPool);
  39. DDX_Control(pDX, IDC_MAXCONCURSPIN1, m_spinMaxConcur);
  40. DDX_Control(pDX, IDC_ACCEPTEXTOSPIN1, m_spinAcceptExTO);
  41. DDX_Control(pDX, IDC_ACCEPTEXOUTSPIN1, m_spinAcceptExOut);
  42. DDX_TexttoHex(pDX, IDC_COMDBGFLAGSDATA1, m_ulComDbgFlags);
  43. //}}AFX_DATA_MAP
  44. }
  45. BEGIN_MESSAGE_MAP(CADVCOM1, CGenPage)
  46. //{{AFX_MSG_MAP(CADVCOM1)
  47. ON_EN_CHANGE(IDC_ACCEPTEXOUTDATA1, OnChangeAcceptexoutdata1)
  48. ON_EN_CHANGE(IDC_ACCEPTEXTODATA1, OnChangeAcceptextodata1)
  49. ON_EN_CHANGE(IDC_MAXCONCURDATA1, OnChangeMaxconcurdata1)
  50. ON_EN_CHANGE(IDC_MAXPOOLDATA1, OnChangeMaxpooldata1)
  51. ON_EN_CHANGE(IDC_OBJCACHEDATA1, OnChangeObjcachedata1)
  52. ON_EN_CHANGE(IDC_THREADTODATA1, OnChangeThreadtodata1)
  53. ON_BN_CLICKED(IDC_USEACCEPTEXDATA1, OnUseacceptexdata1)
  54. ON_EN_CHANGE(IDC_COMDBGFLAGSDATA1, OnChangeComdbgflagsdata1)
  55. ON_BN_CLICKED(IDC_USEOBJECTCACHETTLDATA1, OnUseobjectcachettldata1)
  56. ON_EN_CHANGE(IDC_USERTOKENTTLDATA1, OnChangeUsertokenttldata1)
  57. ON_BN_CLICKED(IDC_USELOGFILEFLUSHINTERNVALDATA1, OnUselogfileflushinternvaldata1)
  58. ON_EN_CHANGE(IDC_LOGFILEFLUSHINTERVALDATA1, OnChangeLogfileflushintervaldata1)
  59. //}}AFX_MSG_MAP
  60. END_MESSAGE_MAP()
  61. /////////////////////////////////////////////////////////////////////////////
  62. // CADVCOM1 message handlers
  63. BOOL CADVCOM1::OnInitDialog()
  64. {
  65. int i;
  66. CGenPage::OnInitDialog();
  67. for (i = 0; i < AdvComPage_TotalNumRegEntries; i++) {
  68. m_binNumericRegistryEntries[i].bIsChanged = FALSE;
  69. m_binNumericRegistryEntries[i].ulMultipleFactor = 1;
  70. }
  71. m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].strFieldName = _T(MAXPOOLTHREADSNAME);
  72. m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].ulDefaultValue = DEFAULTMAXPOOLTHREADS;
  73. m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].strFieldName = _T(MAXCONCURRENCYNAME);
  74. m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].ulDefaultValue = DEFAULTMAXCONCURRENCY;
  75. m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].strFieldName = _T(THREADTIMEOUTNAME);
  76. m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].ulDefaultValue = DEFAULTTHREADTIMEOUT;
  77. m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].ulMultipleFactor = 60;
  78. m_binNumericRegistryEntries[AdvComPage_UseAcceptEx].strFieldName = _T(USEACCEPTEXNAME);
  79. m_binNumericRegistryEntries[AdvComPage_UseAcceptEx].ulDefaultValue = DEFAULTUSEACCEPTEX;
  80. m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].strFieldName = _T(OBJECTCACHETTLNAME);
  81. m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulDefaultValue = DEFAULTOBJECTCACHETTL;
  82. m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulMultipleFactor = 60;
  83. m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].strFieldName = _T(USERTOKENTTLNAME);
  84. m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].ulDefaultValue = DEFAULTUSERTOKENTTL;
  85. m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].ulMultipleFactor = 60;
  86. m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].strFieldName = _T(ACCEPTEXOUTSTANDINGNAME);
  87. m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].ulDefaultValue = DEFAULTACCEPTEXOUTSTANDING;
  88. m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].strFieldName = _T(ACCEPTEXTIMEOUTNAME);
  89. m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].ulDefaultValue = DEFAULTACCEPTEXTIMEOUT;
  90. m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].strFieldName = _T(LOGFILEFLUSHINTERVALNAME);
  91. m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulDefaultValue = DEFAULTLOGFILEFLUSHINTERVAL;
  92. m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulMultipleFactor = 60;
  93. m_binNumericRegistryEntries[AdvComPage_DebugFlags].strFieldName = _T(DEBUGFLAGSNAME);
  94. m_binNumericRegistryEntries[AdvComPage_DebugFlags].ulDefaultValue = DEFAULTDEBUGFLAGS;
  95. for (i = 0; i < AdvComPage_TotalNumRegEntries; i++) {
  96. if (m_rkMainKey->QueryValue(m_binNumericRegistryEntries[i].strFieldName,
  97. m_binNumericRegistryEntries[i].ulFieldValue) != ERROR_SUCCESS) {
  98. m_binNumericRegistryEntries[i].ulFieldValue = m_binNumericRegistryEntries[i].ulDefaultValue;
  99. }
  100. }
  101. m_spinThreadTO.SetRange(MINTHREADTIMEOUT, MAXTHREADTIMEOUT);
  102. m_spinThreadTO.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].ulFieldValue /
  103. m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].ulMultipleFactor),MAXTHREADTIMEOUT));
  104. m_spinObjCache.SetRange(MINOBJECTCACHETTL, MAXOBJECTCACHETTL);
  105. if (m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulFieldValue != 0xffffffff) {
  106. m_spinObjCache.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulFieldValue /
  107. m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulMultipleFactor),MAXOBJECTCACHETTL));
  108. SetObjCacheTTLEnabledState(TRUE);
  109. }
  110. else {
  111. m_spinObjCache.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulDefaultValue /
  112. m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulMultipleFactor),MAXOBJECTCACHETTL));
  113. SetObjCacheTTLEnabledState(FALSE);
  114. }
  115. m_spinUserTokenTTL.SetRange(MINUSERTOKENTTL, MAXUSERTOKENTTL);
  116. m_spinUserTokenTTL.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].ulFieldValue /
  117. m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].ulMultipleFactor),MAXUSERTOKENTTL));
  118. m_spinMaxPool.SetRange(MINMAXPOOLTHREADS,MAXMAXPOOLTHREADS);
  119. m_spinMaxPool.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].ulFieldValue /
  120. m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].ulMultipleFactor),MAXMAXPOOLTHREADS));
  121. m_spinMaxConcur.SetRange(MINMAXCONCURRENCY, MAXMAXCONCURRENCY);
  122. m_spinMaxConcur.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].ulFieldValue /
  123. m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].ulMultipleFactor), MAXMAXCONCURRENCY));
  124. m_spinAcceptExTO.SetRange(MINACCEPTEXTIMEOUT,MAXACCEPTEXTIMEOUT);
  125. m_spinAcceptExTO.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].ulFieldValue /
  126. m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].ulMultipleFactor),MAXACCEPTEXTIMEOUT));
  127. m_spinAcceptExOut.SetRange(MINACCEPTEXOUTSTANDING,MAXACCEPTEXOUTSTANDING);
  128. m_spinAcceptExOut.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].ulFieldValue /
  129. m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].ulMultipleFactor),MAXACCEPTEXOUTSTANDING));
  130. m_cboxUseAcceptEx.SetCheck(GETCHECKBOXVALUEFROMREG(m_binNumericRegistryEntries[AdvComPage_UseAcceptEx].ulFieldValue));
  131. SetAcceptExEnabledState();
  132. m_spinLogFileFlushInterval.SetRange(MINLOGFILEFLUSHINTERVAL, MAXLOGFILEFLUSHINTERVAL);
  133. if (m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulFieldValue != 0xffffffff) {
  134. m_spinLogFileFlushInterval.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulFieldValue /
  135. m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulMultipleFactor),MAXLOGFILEFLUSHINTERVAL));
  136. SetLogFileFlushIntervalEnabledState(TRUE);
  137. }
  138. else {
  139. m_spinObjCache.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulDefaultValue /
  140. m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulMultipleFactor),MAXOBJECTCACHETTL));
  141. SetObjCacheTTLEnabledState(FALSE);
  142. }
  143. m_editComDbgFlags.LimitText(8);
  144. m_ulComDbgFlags = m_binNumericRegistryEntries[AdvComPage_DebugFlags].ulFieldValue;
  145. UpdateData(FALSE); // Force Edit box(es) to pick up value(s)
  146. m_bSetChanged = TRUE; // Any more changes come from the user
  147. // TODO: Add extra initialization here
  148. return TRUE; // return TRUE unless you set the focus to a control
  149. // EXCEPTION: OCX Property Pages should return FALSE
  150. }
  151. void CADVCOM1::OnChangeAcceptexoutdata1()
  152. {
  153. // TODO: Add your control notification handler code here
  154. if (m_bSetChanged) {
  155. m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].bIsChanged = TRUE;
  156. m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].ulFieldValue = m_spinAcceptExOut.GetPos()
  157. * m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].ulMultipleFactor;
  158. m_bIsDirty = TRUE;
  159. SetModified(TRUE);
  160. }
  161. }
  162. void CADVCOM1::OnChangeAcceptextodata1()
  163. {
  164. // TODO: Add your control notification handler code here
  165. if (m_bSetChanged) {
  166. m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].bIsChanged = TRUE;
  167. m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].ulFieldValue = m_spinAcceptExTO.GetPos()
  168. * m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].ulMultipleFactor;
  169. m_bIsDirty = TRUE;
  170. SetModified(TRUE);
  171. }
  172. }
  173. void CADVCOM1::OnChangeMaxconcurdata1()
  174. {
  175. // TODO: Add your control notification handler code here
  176. if (m_bSetChanged) {
  177. m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].bIsChanged = TRUE;
  178. m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].ulFieldValue = m_spinMaxConcur.GetPos()
  179. * m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].ulMultipleFactor;
  180. m_bIsDirty = TRUE;
  181. SetModified(TRUE);
  182. }
  183. }
  184. void CADVCOM1::OnChangeMaxpooldata1()
  185. {
  186. // TODO: Add your control notification handler code here
  187. if (m_bSetChanged) {
  188. m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].bIsChanged = TRUE;
  189. m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].ulFieldValue = m_spinMaxPool.GetPos()
  190. * m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].ulMultipleFactor;
  191. m_bIsDirty = TRUE;
  192. SetModified(TRUE);
  193. }
  194. }
  195. void CADVCOM1::OnChangeObjcachedata1()
  196. {
  197. // TODO: Add your control notification handler code here
  198. if (m_bSetChanged) {
  199. m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].bIsChanged = TRUE;
  200. m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulFieldValue = m_spinObjCache.GetPos()
  201. * m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulMultipleFactor;
  202. m_bIsDirty = TRUE;
  203. SetModified(TRUE);
  204. }
  205. }
  206. void CADVCOM1::OnUseobjectcachettldata1()
  207. {
  208. // TODO: Add your control notification handler code here
  209. SetObjCacheTTLEnabledState(m_cboxUseObjCacheTTL.GetCheck());
  210. if (m_bSetChanged) {
  211. m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].bIsChanged = TRUE;
  212. m_bIsDirty = TRUE;
  213. SetModified(TRUE);
  214. }
  215. }
  216. void CADVCOM1::OnChangeThreadtodata1()
  217. {
  218. // TODO: Add your control notification handler code here
  219. if (m_bSetChanged) {
  220. m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].bIsChanged = TRUE;
  221. m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].ulFieldValue = m_spinThreadTO.GetPos()
  222. * m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].ulMultipleFactor;
  223. m_bIsDirty = TRUE;
  224. SetModified(TRUE);
  225. }
  226. }
  227. void CADVCOM1::OnUseacceptexdata1()
  228. {
  229. // TODO: Add your control notification handler code here
  230. SetAcceptExEnabledState();
  231. if (m_bSetChanged) {
  232. m_binNumericRegistryEntries[AdvComPage_UseAcceptEx].bIsChanged = TRUE;
  233. m_binNumericRegistryEntries[AdvComPage_UseAcceptEx].ulFieldValue =
  234. GETREGVALUEFROMCHECKBOX(m_cboxUseAcceptEx.GetCheck());
  235. m_bIsDirty = TRUE;
  236. SetModified(TRUE);
  237. }
  238. }
  239. void CADVCOM1::OnChangeComdbgflagsdata1()
  240. {
  241. // TODO: Add your control notification handler code here
  242. if (m_bSetChanged) {
  243. m_binNumericRegistryEntries[AdvComPage_DebugFlags].bIsChanged = TRUE;
  244. m_bIsDirty = TRUE;
  245. SetModified(TRUE);
  246. }
  247. }
  248. void CADVCOM1::OnChangeUsertokenttldata1()
  249. {
  250. // TODO: Add your control notification handler code here
  251. if (m_bSetChanged) {
  252. m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].bIsChanged = TRUE;
  253. m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].ulFieldValue = m_spinUserTokenTTL.GetPos()
  254. * m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].ulMultipleFactor;
  255. m_bIsDirty = TRUE;
  256. SetModified(TRUE);
  257. }
  258. }
  259. void CADVCOM1::OnUselogfileflushinternvaldata1()
  260. {
  261. // TODO: Add your control notification handler code here
  262. SetLogFileFlushIntervalEnabledState(m_cboxUseLogFileFlushInterval.GetCheck());
  263. if (m_bSetChanged) {
  264. m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].bIsChanged = TRUE;
  265. m_bIsDirty = TRUE;
  266. SetModified(TRUE);
  267. }
  268. }
  269. void CADVCOM1::OnChangeLogfileflushintervaldata1()
  270. {
  271. // TODO: Add your control notification handler code here
  272. if (m_bSetChanged) {
  273. m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].bIsChanged = TRUE;
  274. m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulFieldValue = m_spinLogFileFlushInterval.GetPos()
  275. * m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulMultipleFactor;
  276. m_bIsDirty = TRUE;
  277. SetModified(TRUE);
  278. }
  279. }
  280. //////////////////////////////////////////////////////////////////
  281. // Other routines
  282. void CADVCOM1::SaveInfo()
  283. {
  284. if (m_bIsDirty) {
  285. m_binNumericRegistryEntries[AdvComPage_DebugFlags].ulFieldValue = m_ulComDbgFlags;
  286. SaveNumericInfo(m_binNumericRegistryEntries, AdvComPage_TotalNumRegEntries);
  287. }
  288. CGenPage::SaveInfo();
  289. }
  290. void CADVCOM1::SetAcceptExEnabledState()
  291. {
  292. if (m_cboxUseAcceptEx.GetCheck() != 0) {
  293. m_spinAcceptExTO.EnableWindow(TRUE);
  294. m_editAcceptExTO.EnableWindow(TRUE);
  295. m_spinAcceptExOut.EnableWindow(TRUE);
  296. m_editAcceptExOut.EnableWindow(TRUE);
  297. if (m_bSetChanged) { //if user enabled this, make sure there's a value there
  298. m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].bIsChanged = TRUE;
  299. m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].bIsChanged = TRUE;
  300. }
  301. }
  302. else {
  303. m_spinAcceptExTO.EnableWindow(FALSE);
  304. m_editAcceptExTO.EnableWindow(FALSE);
  305. m_spinAcceptExOut.EnableWindow(FALSE);
  306. m_editAcceptExOut.EnableWindow(FALSE);
  307. }
  308. }
  309. void CADVCOM1::SetObjCacheTTLEnabledState(BOOL bEnabled)
  310. {
  311. if (bEnabled) {
  312. m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulFieldValue =
  313. m_spinObjCache.GetPos() *
  314. m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulMultipleFactor;
  315. m_cboxUseObjCacheTTL.SetCheck(CHECKEDVALUE);
  316. m_spinObjCache.EnableWindow(TRUE);
  317. m_editObjCacheTTL.EnableWindow(TRUE);
  318. }
  319. else {
  320. m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulFieldValue = 0xffffffff;
  321. m_cboxUseObjCacheTTL.SetCheck(UNCHECKEDVALUE);
  322. m_spinObjCache.EnableWindow(FALSE);
  323. m_editObjCacheTTL.EnableWindow(FALSE);
  324. }
  325. }
  326. void CADVCOM1::SetLogFileFlushIntervalEnabledState(BOOL bEnabled)
  327. {
  328. if (bEnabled) {
  329. m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulFieldValue =
  330. m_spinLogFileFlushInterval.GetPos() *
  331. m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulMultipleFactor;
  332. m_cboxUseLogFileFlushInterval.SetCheck(CHECKEDVALUE);
  333. m_spinLogFileFlushInterval.EnableWindow(TRUE);
  334. m_editLogFileFlushInterval.EnableWindow(TRUE);
  335. }
  336. else {
  337. m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulFieldValue = 0xffffffff;
  338. m_cboxUseLogFileFlushInterval.SetCheck(UNCHECKEDVALUE);
  339. m_spinLogFileFlushInterval.EnableWindow(FALSE);
  340. m_editLogFileFlushInterval.EnableWindow(FALSE);
  341. }
  342. }