--- /dev/null
+///////////////////////////////////////\r
+// FormDoc.cpp\r
+\r
+// Based on code provided by Lynn Allan\r
+\r
+\r
+#include "stdafx.h"\r
+#include "FormDoc.h"\r
+\r
+\r
+// Definitions for the CFormDoc class\r
+CFormDoc::CFormDoc() : m_bCheckA(FALSE), m_bCheckB(FALSE),\r
+ m_bCheckC(FALSE), m_Radio(0)\r
+{\r
+}\r
+\r
+CFormDoc::~CFormDoc()\r
+{\r
+}\r
+\r
+DWORD CFormDoc::GetRegDwordFromOpenKey(HKEY hKey, LPCTSTR pName)\r
+{\r
+ DWORD dwType;\r
+ DWORD dwCount = sizeof(DWORD);\r
+ DWORD dwValue = 0;\r
+ if (ERROR_SUCCESS == RegQueryValueEx(hKey, pName, NULL, &dwType, (LPBYTE)&dwValue, &dwCount))\r
+ return dwValue;\r
+ else\r
+ return 0;\r
+}\r
+\r
+void CFormDoc::LoadDocRegistry(LPCTSTR szKeyName)\r
+{\r
+ HKEY hKey;\r
+ CString strKey = _T("Software\\");\r
+ strKey += szKeyName;\r
+ strKey += _T("\\Document Settings");\r
+ if (ERROR_SUCCESS ==RegOpenKeyEx(HKEY_CURRENT_USER, strKey, 0,\r
+ KEY_READ, &hKey))\r
+ {\r
+ m_bCheckA = GetRegDwordFromOpenKey(hKey, _T("CheckA")) & 1;\r
+ m_bCheckB = GetRegDwordFromOpenKey(hKey, _T("CheckB")) & 1;\r
+ m_bCheckC = GetRegDwordFromOpenKey(hKey, _T("CheckC")) & 1;\r
+ m_Radio = GetRegDwordFromOpenKey(hKey, _T("Radio"));\r
+\r
+ RegCloseKey(hKey);\r
+ }\r
+}\r
+\r
+void CFormDoc::SaveDocRegistry(LPCTSTR szKeyName)\r
+{\r
+ HKEY hKey;\r
+ CString strKey = _T("Software\\");\r
+ strKey += szKeyName;\r
+ strKey += _T("\\Document Settings");\r
+\r
+ RegCreateKeyEx(HKEY_CURRENT_USER, strKey, 0, NULL,\r
+ REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, NULL);\r
+\r
+ RegSetValueEx(hKey, _T("CheckA"), 0, REG_DWORD, (LPBYTE)&m_bCheckA, sizeof(BOOL));\r
+ RegSetValueEx(hKey, _T("CheckB"), 0, REG_DWORD, (LPBYTE)&m_bCheckB, sizeof(BOOL));\r
+ RegSetValueEx(hKey, _T("CheckC"), 0, REG_DWORD, (LPBYTE)&m_bCheckC, sizeof(BOOL));\r
+ RegSetValueEx(hKey, _T("Radio"), 0, REG_DWORD, (LPBYTE)&m_Radio, sizeof(BOOL));\r
+\r
+ RegCloseKey(hKey);\r
+}\r
+\r