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.

86 lines
2.1 KiB

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2001, Microsoft Corporation All rights reserved.
  4. //
  5. // Module Name:
  6. //
  7. // Uuid.h
  8. //
  9. // Abstract:
  10. //
  11. // This Uuid contains the Uuid object definition.
  12. //
  13. // Revision History:
  14. //
  15. // 2001-06-20 lguindon Created.
  16. //
  17. ///////////////////////////////////////////////////////////////////////////////
  18. #ifndef __UUID_H_
  19. #define __UUID_H_
  20. ///////////////////////////////////////////////////////////////////////////////
  21. //
  22. // Includes Uuids.
  23. //
  24. ///////////////////////////////////////////////////////////////////////////////
  25. #include "infparser.h"
  26. ///////////////////////////////////////////////////////////////////////////////
  27. //
  28. // Class definition.
  29. //
  30. ///////////////////////////////////////////////////////////////////////////////
  31. class Uuid
  32. {
  33. public:
  34. Uuid()
  35. {
  36. RPC_STATUS Result;
  37. unsigned char* UuidPtr;
  38. //
  39. // Create the UUID.
  40. //
  41. Result = UuidCreate(&m_Uuid);
  42. if ((Result == RPC_S_UUID_LOCAL_ONLY) ||
  43. (Result == RPC_S_OK))
  44. {
  45. //
  46. // Convert UUID into a string
  47. //
  48. if ((Result = UuidToString(&m_Uuid, &UuidPtr)) == RPC_S_OK)
  49. {
  50. //
  51. // Copy string
  52. //
  53. sprintf(m_UuidString, "%s", UuidPtr);
  54. //
  55. // Free the RpcString
  56. //
  57. RpcStringFree(&UuidPtr);
  58. //
  59. // Upper case the string
  60. //
  61. _strupr(m_UuidString);
  62. }
  63. }
  64. };
  65. LPSTR getString() { return(m_UuidString); };
  66. UUID getId() { return(m_Uuid); };
  67. Uuid* getNext() { return (m_Next); };
  68. Uuid* getPrevious() { return (m_Previous); };
  69. void setNext(Uuid *next) { m_Next = next; };
  70. void setPrevious(Uuid *previous) { m_Previous = previous; };
  71. private:
  72. UUID m_Uuid;
  73. CHAR m_UuidString[MAX_PATH];
  74. Uuid *m_Next;
  75. Uuid *m_Previous;
  76. };
  77. #endif //__UUID_H_