Source code of Windows XP (NT5)
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.

71 lines
1.8 KiB

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1998, Microsoft Corp. All rights reserved.
  4. //
  5. // FILE
  6. //
  7. // formbuf.h
  8. //
  9. // SYNOPSIS
  10. //
  11. // Declares the class FormattedBuffer.
  12. //
  13. // MODIFICATION HISTORY
  14. //
  15. // 08/04/1998 Original version.
  16. // 12/17/1998 Add append overload for IASATTRIBUTE&.
  17. // 01/25/1999 Date and time are separate fields.
  18. // 03/23/1999 Add support for text qualifiers.
  19. //
  20. ///////////////////////////////////////////////////////////////////////////////
  21. #ifndef _FORMBUF_H_
  22. #define _FORMBUF_H_
  23. #if _MSC_VER >= 1000
  24. #pragma once
  25. #endif
  26. #include <iaspolcy.h>
  27. #include <outbuf.h>
  28. ///////////////////////////////////////////////////////////////////////////////
  29. //
  30. // CLASS
  31. //
  32. // FormattedBuffer
  33. //
  34. // DESCRIPTION
  35. //
  36. // Extends the OutputBuffer class to provide IAS specific formatting.
  37. //
  38. ///////////////////////////////////////////////////////////////////////////////
  39. class FormattedBuffer
  40. : public OutputBuffer
  41. {
  42. public:
  43. using OutputBuffer::append;
  44. FormattedBuffer(CHAR qualifier) throw ()
  45. : textQualifier(qualifier) { }
  46. void append(DWORD value);
  47. void append(DWORDLONG value);
  48. void append(const IASVALUE& value);
  49. void append(const IASATTRIBUTE& attr);
  50. void append(const ATTRIBUTEPOSITION* pos);
  51. void appendClassAttribute(const IAS_OCTET_STRING& value);
  52. void appendFormattedOctets(const BYTE* buf, DWORD buflen);
  53. void appendDate(const SYSTEMTIME& value);
  54. void appendQualifier() { append(textQualifier); }
  55. void appendText(PCSTR sz, DWORD szlen);
  56. void appendTime(const SYSTEMTIME& value);
  57. void beginColumn() { append(','); }
  58. void endRecord() { append((PBYTE)"\r\n", 2); }
  59. private:
  60. const CHAR textQualifier;
  61. };
  62. #endif // _FORMBUF_H_