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.

153 lines
3.4 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2001 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // NamedCookie.cpp
  7. //
  8. // Description:
  9. // This file contains the definition of the SNamedCookie struct.
  10. //
  11. // Maintained By:
  12. // John Franco (jfranco) 23-AUG-2001
  13. //
  14. //////////////////////////////////////////////////////////////////////////////
  15. //////////////////////////////////////////////////////////////////////////////
  16. // Include Files
  17. //////////////////////////////////////////////////////////////////////////////
  18. #include "Pch.h"
  19. #include "NamedCookie.h"
  20. //////////////////////////////////////////////////////////////////////////////
  21. // Constant Definitions
  22. //////////////////////////////////////////////////////////////////////////////
  23. DEFINE_THISCLASS( "SNamedCookie" );
  24. //*************************************************************************//
  25. /////////////////////////////////////////////////////////////////////////////
  26. // SNamedCookie struct
  27. /////////////////////////////////////////////////////////////////////////////
  28. //////////////////////////////////////////////////////////////////////////////
  29. //++
  30. //
  31. // SNamedCookie::SNamedCookie
  32. //
  33. // Description:
  34. //
  35. // Arguments:
  36. // None.
  37. //
  38. // Return Values:
  39. // None.
  40. //
  41. // Remarks:
  42. //
  43. //--
  44. //////////////////////////////////////////////////////////////////////////////
  45. SNamedCookie::SNamedCookie():
  46. bstrName( NULL )
  47. , ocObject( 0 )
  48. , punkObject( NULL )
  49. {
  50. TraceFunc( "" );
  51. TraceFuncExit();
  52. }
  53. //////////////////////////////////////////////////////////////////////////////
  54. //++
  55. //
  56. // SNamedCookie::~SNamedCookie
  57. //
  58. // Description:
  59. //
  60. // Arguments:
  61. // None.
  62. //
  63. // Return Values:
  64. // None.
  65. //
  66. // Remarks:
  67. //
  68. //--
  69. //////////////////////////////////////////////////////////////////////////////
  70. SNamedCookie::~SNamedCookie()
  71. {
  72. TraceFunc( "" );
  73. Erase();
  74. TraceFuncExit();
  75. }
  76. //////////////////////////////////////////////////////////////////////////////
  77. //++
  78. //
  79. // SNamedCookie::HrAssign
  80. //
  81. // Description:
  82. //
  83. // Arguments:
  84. // crSourceIn
  85. //
  86. // Return Values:
  87. // S_OK
  88. // E_OUTOFMEMORY
  89. //
  90. // Remarks:
  91. //
  92. //--
  93. //////////////////////////////////////////////////////////////////////////////
  94. HRESULT SNamedCookie::HrAssign( const SNamedCookie& crSourceIn )
  95. {
  96. TraceFunc( "" );
  97. HRESULT hr = S_OK;
  98. if ( this != &crSourceIn )
  99. {
  100. BSTR bstrNameCache = NULL;
  101. if ( crSourceIn.bstrName != NULL )
  102. {
  103. bstrNameCache = TraceSysAllocString( crSourceIn.bstrName );
  104. if ( bstrNameCache == NULL )
  105. {
  106. hr = E_OUTOFMEMORY;
  107. goto Cleanup;
  108. }
  109. }
  110. if ( bstrName != NULL )
  111. {
  112. TraceSysFreeString( bstrName );
  113. }
  114. bstrName = bstrNameCache;
  115. bstrNameCache = NULL;
  116. if ( punkObject != NULL )
  117. {
  118. punkObject->Release();
  119. }
  120. punkObject = crSourceIn.punkObject;
  121. if ( punkObject != NULL )
  122. {
  123. punkObject->AddRef();
  124. }
  125. ocObject = crSourceIn.ocObject;
  126. Cleanup:
  127. TraceSysFreeString( bstrNameCache );
  128. }
  129. HRETURN( hr );
  130. } //*** SNamedCookie::HrAssign