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.

133 lines
2.3 KiB

  1. // LogEntry.cpp: implementation of the CLogEntry class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "LogEntry.h"
  5. //////////////////////////////////////////////////////////////////////
  6. // Construction/Destruction
  7. //////////////////////////////////////////////////////////////////////
  8. CLogEntry::CLogEntry(const TCHAR* DllName, const TCHAR* Op,const TCHAR* Location, const TCHAR* ValueName)
  9. : m_DllName(DllName), m_Location(Location), m_Operation(Op),m_ValueName(ValueName)
  10. {
  11. }
  12. CLogEntry::~CLogEntry()
  13. {
  14. }
  15. void CLogEntry::Erase()
  16. {
  17. m_DllName = m_Location = m_Operation = m_ValueName = NULL;
  18. }
  19. TCHAR g_Buf[2048];
  20. /*
  21. void CLogEntry::WriteToFile(FILE *pFile)
  22. {
  23. const TCHAR* blank=L"";
  24. if (m_DllName == NULL)
  25. m_DllName = blank;
  26. if (m_Operation == NULL)
  27. m_Operation = blank;
  28. if (m_Location == NULL)
  29. m_Location = blank;
  30. GetQuotedString(g_Buf, m_Location);
  31. int len = _tcslen(g_Buf);
  32. if (g_Buf[len-1] != L'\\')
  33. {
  34. g_Buf[len] = L'\\';
  35. g_Buf[len+1] = NULL;
  36. }
  37. _ftprintf(pFile, L"%s,\t%s,\t%s", m_DllName, m_Operation, g_Buf);
  38. if (m_ValueName != NULL)
  39. {
  40. GetQuotedString(g_Buf, m_ValueName);
  41. _ftprintf(pFile, L"[%s]", g_Buf);
  42. }
  43. _ftprintf(pFile, L"\n");
  44. }
  45. */
  46. void CLogEntry::WriteToFile(FILE *pFile)
  47. {
  48. const TCHAR* blank=L"";
  49. if (m_DllName == NULL)
  50. m_DllName = blank;
  51. if (m_Operation == NULL)
  52. m_Operation = blank;
  53. _ftprintf(pFile, L"%s,\t%s", m_DllName, m_Operation);
  54. if (m_Location != NULL)
  55. {
  56. GetQuotedString(g_Buf, m_Location);
  57. if (m_ValueName != NULL)
  58. {
  59. int len = _tcslen(g_Buf);
  60. if (g_Buf[len-1] != L'\\')
  61. {
  62. g_Buf[len] = L'\\';
  63. g_Buf[len+1] = NULL;
  64. }
  65. }
  66. _ftprintf(pFile, L",\t%s", g_Buf);
  67. }
  68. if (m_ValueName != NULL)
  69. {
  70. GetQuotedString(g_Buf, m_ValueName);
  71. _ftprintf(pFile, L"[%s]", g_Buf);
  72. }
  73. _ftprintf(pFile, L"\n");
  74. }
  75. void CLogEntry::GetQuotedString(TCHAR *dest, const TCHAR *source)
  76. {
  77. while (*source != NULL)
  78. {
  79. if (*source == L',')
  80. {
  81. *dest = L'$'; dest++;
  82. *dest = L'c';
  83. }
  84. else if (*source == L'$')
  85. {
  86. *dest = L'$'; dest++;
  87. *dest = L'$';
  88. }
  89. else
  90. {
  91. *dest = *source;
  92. }
  93. dest++;
  94. source++;
  95. }
  96. *dest = NULL;
  97. }