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.

129 lines
2.4 KiB

  1. /*++
  2. Copyright (C) 2001 Microsoft Corporation
  3. All rights reserved.
  4. Module Name:
  5. NCclusapi.hxx
  6. Abstract:
  7. Declaration of TClusterAPI class.
  8. Author:
  9. Felix Maxa (AMaxa) 16 May 2001
  10. Revision History:
  11. --*/
  12. #ifndef _NCCLUSAPI_HXX_
  13. #define _NCCLUSAPI_HXX_
  14. class TClusterAPI
  15. {
  16. SIGNATURE('TCLS');
  17. public:
  18. DWORD
  19. (WINAPI *pfnResUtilFindSzProperty)(
  20. const PVOID pPropertyList,
  21. DWORD cbPropertyListSize,
  22. LPCWSTR pszPropertyName,
  23. LPWSTR* ppszPropertyValue);
  24. HCLUSTER
  25. (WINAPI *pfnOpenCluster)(
  26. LPCWSTR lpszClusterName
  27. );
  28. BOOL
  29. (WINAPI *pfnCloseCluster)(
  30. HCLUSTER hCluster
  31. );
  32. HCLUSENUM
  33. (WINAPI *pfnClusterOpenEnum)(
  34. HCLUSTER hCluster,
  35. DWORD dwType
  36. );
  37. DWORD
  38. (WINAPI *pfnClusterCloseEnum)(
  39. HCLUSENUM hEnum
  40. );
  41. DWORD
  42. (WINAPI *pfnClusterEnum)(
  43. HCLUSENUM hEnum,
  44. DWORD dwIndex,
  45. LPDWORD lpdwType,
  46. LPWSTR lpszName,
  47. LPDWORD lpcchName
  48. );
  49. HRESOURCE
  50. (WINAPI *pfnOpenClusterResource)(
  51. HCLUSTER hCluster,
  52. LPCWSTR lpszResourceName
  53. );
  54. BOOL
  55. (WINAPI *pfnCloseClusterResource)(
  56. HRESOURCE hResource
  57. );
  58. DWORD
  59. (WINAPI *pfnClusterResourceControl)(
  60. HRESOURCE hResource,
  61. HNODE hHostNode,
  62. DWORD dwControlCode,
  63. LPVOID lpInBuffer,
  64. DWORD cbInBufferSize,
  65. LPVOID lpOutBuffer,
  66. DWORD cbOutBufferSize,
  67. LPDWORD lpcbBytesReturned
  68. );
  69. TClusterAPI(
  70. VOID
  71. );
  72. ~TClusterAPI(
  73. VOID
  74. );
  75. HRESULT
  76. Valid(
  77. VOID
  78. );
  79. private:
  80. typedef enum
  81. {
  82. kClusApi,
  83. kResUtil,
  84. kEndMarker
  85. } EClusterDll;
  86. typedef struct FuncMap
  87. {
  88. SIZE_T Offset;
  89. LPCSTR pszFunction;
  90. EClusterDll eClusterDll;
  91. } FUNCTIONMAP;
  92. NO_COPY(TClusterAPI);
  93. CONST static FUNCTIONMAP m_FunctionMap[];
  94. CONST static LPCWSTR m_ClusterDlls[kEndMarker];
  95. HMODULE m_Libraries[kEndMarker];
  96. HRESULT m_Valid;
  97. };
  98. #endif // _NCCLUSAPI_HXX_