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.

194 lines
3.5 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  5. //
  6. // File: IISfree.cxx
  7. //
  8. // Contents: IIS Object Free Routines
  9. //
  10. // Functions:
  11. //
  12. // History: 01-Mar-97 SophiaC Created.
  13. //
  14. //----------------------------------------------------------------------------
  15. #include "iis.hxx"
  16. //
  17. // IISType objects free code
  18. //
  19. HRESULT
  20. IISTypeFreeIISSynIdDWORD(
  21. PIISOBJECT lpIISDestObject
  22. )
  23. {
  24. HRESULT hr = S_OK;
  25. RRETURN(hr);
  26. }
  27. HRESULT
  28. IISTypeFreeIISSynIdSTRING(
  29. PIISOBJECT lpIISDestObject
  30. )
  31. {
  32. HRESULT hr = S_OK;
  33. FreeADsStr(lpIISDestObject->IISValue.value_2.String);
  34. RRETURN(hr);
  35. }
  36. HRESULT
  37. IISTypeFreeIISSynIdEXPANDSZ(
  38. PIISOBJECT lpIISDestObject
  39. )
  40. {
  41. HRESULT hr = S_OK;
  42. FreeADsStr(lpIISDestObject->IISValue.value_3.ExpandSz);
  43. RRETURN(hr);
  44. }
  45. HRESULT
  46. IISTypeFreeIISSynIdMULTISZ(
  47. PIISOBJECT lpIISDestObject
  48. )
  49. {
  50. HRESULT hr = S_OK;
  51. FreeADsStr(lpIISDestObject->IISValue.value_4.MultiSz);
  52. RRETURN(hr);
  53. }
  54. HRESULT
  55. IISTypeFreeIISSynIdBINARY(
  56. PIISOBJECT lpIISDestObject
  57. )
  58. {
  59. HRESULT hr = S_OK;
  60. if (lpIISDestObject->IISValue.value_5.Binary) {
  61. FreeADsMem(lpIISDestObject->IISValue.value_5.Binary);
  62. }
  63. RRETURN(hr);
  64. }
  65. HRESULT
  66. IISTypeFreeIISSynIdBOOL(
  67. PIISOBJECT lpIISDestObject
  68. )
  69. {
  70. HRESULT hr = S_OK;
  71. RRETURN(hr);
  72. }
  73. HRESULT
  74. IISTypeFreeIISSynIdMIMEMAP(
  75. PIISOBJECT lpIISDestObject
  76. )
  77. {
  78. HRESULT hr = S_OK;
  79. FreeADsStr(lpIISDestObject->IISValue.value_6.MimeMap);
  80. RRETURN(hr);
  81. }
  82. HRESULT
  83. IISTypeClear(
  84. PIISOBJECT lpIISDestObject
  85. )
  86. {
  87. HRESULT hr = S_OK;
  88. switch (lpIISDestObject->IISType) {
  89. case IIS_SYNTAX_ID_DWORD:
  90. hr = IISTypeFreeIISSynIdDWORD(
  91. lpIISDestObject
  92. );
  93. break;
  94. case IIS_SYNTAX_ID_STRING:
  95. hr = IISTypeFreeIISSynIdSTRING(
  96. lpIISDestObject
  97. );
  98. break;
  99. case IIS_SYNTAX_ID_EXPANDSZ:
  100. hr = IISTypeFreeIISSynIdEXPANDSZ(
  101. lpIISDestObject
  102. );
  103. break;
  104. case IIS_SYNTAX_ID_MULTISZ:
  105. hr = IISTypeFreeIISSynIdMULTISZ(
  106. lpIISDestObject
  107. );
  108. break;
  109. case IIS_SYNTAX_ID_BINARY:
  110. case IIS_SYNTAX_ID_NTACL:
  111. case IIS_SYNTAX_ID_IPSECLIST:
  112. hr = IISTypeFreeIISSynIdBINARY(
  113. lpIISDestObject
  114. );
  115. break;
  116. case IIS_SYNTAX_ID_MIMEMAP:
  117. hr = IISTypeFreeIISSynIdMIMEMAP(
  118. lpIISDestObject
  119. );
  120. break;
  121. case IIS_SYNTAX_ID_BOOL:
  122. case IIS_SYNTAX_ID_BOOL_BITMASK:
  123. hr = IISTypeFreeIISSynIdBOOL(
  124. lpIISDestObject
  125. );
  126. break;
  127. default:
  128. hr = E_FAIL;
  129. break;
  130. }
  131. RRETURN(hr);
  132. }
  133. void
  134. IISTypeFreeIISObjects(
  135. PIISOBJECT pIISObject,
  136. DWORD dwNumValues
  137. )
  138. {
  139. DWORD i = 0;
  140. if (pIISObject->IISType == IIS_SYNTAX_ID_BINARY ||
  141. pIISObject->IISType == IIS_SYNTAX_ID_IPSECLIST ||
  142. pIISObject->IISType == IIS_SYNTAX_ID_NTACL) {
  143. IISTypeClear(pIISObject);
  144. }
  145. else {
  146. for (i = 0; i < dwNumValues; i++ ) {
  147. IISTypeClear(pIISObject + i);
  148. }
  149. }
  150. FreeADsMem(pIISObject);
  151. return;
  152. }