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.

230 lines
3.6 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1999
  5. //
  6. // File: MyBasePathsInfo.h
  7. //
  8. // Contents: Thin wrapper around dsadminlib CDSBasePathsInfo class
  9. // to deal with memory management of strings
  10. //
  11. // History: 04/02/2001 jeffjon Created
  12. //
  13. //--------------------------------------------------------------------------
  14. #include "stdafx.h"
  15. void MyBasePathsInfo::ComposeADsIPath(CString& szPath, IN LPCWSTR lpszNamingContext)
  16. {
  17. int result = 0;
  18. szPath.Empty();
  19. PWSTR pszPath = 0;
  20. result = CDSBasePathsInfo::ComposeADsIPath(&pszPath, lpszNamingContext);
  21. if (pszPath && result)
  22. {
  23. szPath = pszPath;
  24. delete[] pszPath;
  25. pszPath = 0;
  26. }
  27. else
  28. {
  29. ASSERT(pszPath);
  30. }
  31. ASSERT(result);
  32. }
  33. void MyBasePathsInfo::GetSchemaPath(CString& s)
  34. {
  35. int result = 0;
  36. s.Empty();
  37. PWSTR pszPath = 0;
  38. result = CDSBasePathsInfo::GetSchemaPath(&pszPath);
  39. if (pszPath && result)
  40. {
  41. s = pszPath;
  42. delete[] pszPath;
  43. pszPath = 0;
  44. }
  45. else
  46. {
  47. ASSERT(pszPath);
  48. }
  49. ASSERT(result);
  50. }
  51. void MyBasePathsInfo::GetConfigPath(CString& s)
  52. {
  53. int result = 0;
  54. s.Empty();
  55. PWSTR pszPath = 0;
  56. result = CDSBasePathsInfo::GetConfigPath(&pszPath);
  57. if (pszPath && result)
  58. {
  59. s = pszPath;
  60. delete[] pszPath;
  61. pszPath = 0;
  62. }
  63. else
  64. {
  65. ASSERT(pszPath);
  66. }
  67. ASSERT(result);
  68. }
  69. void MyBasePathsInfo::GetDefaultRootPath(CString& s)
  70. {
  71. int result = 0;
  72. s.Empty();
  73. PWSTR pszPath = 0;
  74. result = CDSBasePathsInfo::GetDefaultRootPath(&pszPath);
  75. if (pszPath && result)
  76. {
  77. s = pszPath;
  78. delete[] pszPath;
  79. pszPath = 0;
  80. }
  81. else
  82. {
  83. ASSERT(pszPath);
  84. }
  85. ASSERT(result);
  86. }
  87. void MyBasePathsInfo::GetRootDSEPath(CString& s)
  88. {
  89. int result = 0;
  90. s.Empty();
  91. PWSTR pszPath = 0;
  92. result = CDSBasePathsInfo::GetRootDSEPath(&pszPath);
  93. if (pszPath && result)
  94. {
  95. s = pszPath;
  96. delete[] pszPath;
  97. pszPath = 0;
  98. }
  99. else
  100. {
  101. ASSERT(pszPath);
  102. }
  103. ASSERT(result);
  104. }
  105. void MyBasePathsInfo::GetAbstractSchemaPath(CString& s)
  106. {
  107. int result = 0;
  108. s.Empty();
  109. PWSTR pszPath = 0;
  110. result = CDSBasePathsInfo::GetAbstractSchemaPath(&pszPath);
  111. if (pszPath && result)
  112. {
  113. s = pszPath;
  114. delete[] pszPath;
  115. pszPath = 0;
  116. }
  117. else
  118. {
  119. ASSERT(pszPath);
  120. }
  121. ASSERT(result);
  122. }
  123. void MyBasePathsInfo::GetPartitionsPath(CString& s)
  124. {
  125. int result = 0;
  126. s.Empty();
  127. PWSTR pszPath = 0;
  128. result = CDSBasePathsInfo::GetPartitionsPath(&pszPath);
  129. if (pszPath && result)
  130. {
  131. s = pszPath;
  132. delete[] pszPath;
  133. pszPath = 0;
  134. }
  135. else
  136. {
  137. ASSERT(pszPath);
  138. }
  139. ASSERT(result);
  140. }
  141. void MyBasePathsInfo::GetSchemaObjectPath(IN LPCWSTR lpszObjClass, CString& s)
  142. {
  143. int result = 0;
  144. s.Empty();
  145. PWSTR pszPath = 0;
  146. result = CDSBasePathsInfo::GetSchemaObjectPath(lpszObjClass, &pszPath);
  147. if (pszPath && result)
  148. {
  149. s = pszPath;
  150. delete[] pszPath;
  151. pszPath = 0;
  152. }
  153. else
  154. {
  155. ASSERT(pszPath);
  156. }
  157. ASSERT(result);
  158. }
  159. void MyBasePathsInfo::GetInfrastructureObjectPath(CString& s)
  160. {
  161. int result = 0;
  162. s.Empty();
  163. PWSTR pszPath = 0;
  164. result = CDSBasePathsInfo::GetInfrastructureObjectPath(&pszPath);
  165. if (pszPath && result)
  166. {
  167. s = pszPath;
  168. delete[] pszPath;
  169. pszPath = 0;
  170. }
  171. else
  172. {
  173. ASSERT(pszPath);
  174. }
  175. ASSERT(result);
  176. }
  177. HRESULT GetADSIServerName(CString& szServer, IN IUnknown* pUnk)
  178. {
  179. PWSTR pszServer = 0;
  180. HRESULT hr = GetADSIServerName(&pszServer, pUnk);
  181. if (SUCCEEDED(hr) && pszServer)
  182. {
  183. szServer = pszServer;
  184. delete[] pszServer;
  185. pszServer = 0;
  186. }
  187. return hr;
  188. }