- m_bDefiningMacro = bDefiningMacro;\r
-\r
- if (bDefiningMacro) { // start-kbd-macro\r
- if (CCommands::bC_u()) {\r
- ReleaseKey(VK_SHIFT);\r
- CallMacro();\r
- }\r
- } else { // end-kbd-macro\r
- while (!m_Macro.IsEmpty()) {\r
- KbdMacro *pKbdMacro = (KbdMacro *)m_Macro.GetTail();\r
- if (pKbdMacro->lParam & BEING_RELEASED) {\r
- break;\r
- } else {\r
- m_Macro.RemoveTail();\r
- delete pKbdMacro;\r
- pKbdMacro = NULL;\r
- }\r
- }\r
-\r
-// CUtils::Log(_T("Macro MemMap: start"));\r
- if (!m_Macro.IsEmpty()) {\r
- static HANDLE hMacro = NULL;\r
- if (!hMacro) {\r
- hMacro = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 0x3000, _T("macro"));\r
- }\r
- if (hMacro) {\r
-// CUtils::Log(_T("Macro MemMap: 1"));\r
- PVOID pView = MapViewOfFile(hMacro, FILE_MAP_ALL_ACCESS, 0, 0, 0);\r
-// CUtils::Log(_T("Macro MemMap: 2"));\r
- if (pView) {\r
-// CUtils::Log(_T("Macro MemMap: 2.5"));\r
- for (int i = 0; i < m_Macro.GetCount(); ++i) {\r
-// CUtils::Log(_T("Macro MemMap: 3-1 %d"), i);\r
- KbdMacro *pKbdMacro = (KbdMacro *)m_Macro.GetAt(m_Macro.FindIndex(i));\r
-// CUtils::Log(_T("Macro MemMap: 3-2 %d"), i);\r
- memcpy((LPTSTR) pView + i * sizeof(KbdMacro), pKbdMacro, sizeof(KbdMacro));\r
-// CUtils::Log(_T("Macro MemMap: 3-3 %d"), i);\r
- }\r
-// CUtils::Log(_T("Macro MemMap: 4"));\r
- UnmapViewOfFile(pView);\r
-// CUtils::Log(_T("Macro MemMap: 5"));\r
- } else {\r
-// CUtils::Log(_T("Macro MemMpa: error: %d"), GetLastError());\r
- }\r
- } else {\r
-// CUtils::Log(_T("Macro MemMap: 6"));\r
- ASSERT(0);\r
- }\r
- }\r
- }\r