AdsProp.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:7k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //+----------------------------------------------------------------------------
  2. //
  3. //  Windows NT Active Directory Service Property Pages
  4. //
  5. //  Microsoft Windows
  6. //  Copyright (C) Microsoft Corporation, 1992-1999.
  7. //
  8. //  File:       adsprop.h
  9. //
  10. //  Contents:   Functions and definitions used in the creation of AD property
  11. //              sheets.
  12. //
  13. //  History:    28-Sept-98 Eric Brown created.
  14. //
  15. //-----------------------------------------------------------------------------
  16. #ifndef _ADSPROP_H_
  17. #define _ADSPROP_H_
  18. #if _MSC_VER > 1000
  19. #pragma once
  20. #endif
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. #define WM_ADSPROP_NOTIFY_PAGEINIT   (WM_USER + 1101) // where LPARAM is the PADSPROPINITPARAMS pointer.
  25. #define WM_ADSPROP_NOTIFY_PAGEHWND   (WM_USER + 1102) // where WPARAM => page's HWND and LPARAM => page's Title
  26. #define WM_ADSPROP_NOTIFY_CHANGE     (WM_USER + 1103) // used to send a change notification to a parent sheet
  27. #define WM_ADSPROP_NOTIFY_APPLY      (WM_USER + 1104) // pages send this to the notification object.
  28. #define WM_ADSPROP_NOTIFY_SETFOCUS   (WM_USER + 1105) // used internally by the notification object.
  29. #define WM_ADSPROP_NOTIFY_FOREGROUND (WM_USER + 1106) // used internally by the notification object.
  30. #define WM_ADSPROP_NOTIFY_EXIT       (WM_USER + 1107) // sent on page release
  31. #define WM_ADSPROP_NOTIFY_ERROR      (WM_USER + 1110) // used to send the notification object an error message
  32. //+----------------------------------------------------------------------------
  33. //
  34. //  Structure:  ADSPROPINITPARAMS
  35. //
  36. //  Usage:      Used to pass page initialization information to new pages from
  37. //              the notify object.
  38. //
  39. //-----------------------------------------------------------------------------
  40. typedef struct _ADSPROPINITPARAMS {
  41.     DWORD              dwSize;          // Set this to the size of the struct.
  42.     DWORD              dwFlags;         // Reserved for future use.
  43.     HRESULT            hr;              // If this is non-zero, then the others
  44.     IDirectoryObject * pDsObj;          // should be ignored.
  45.     LPWSTR             pwzCN;
  46.     PADS_ATTR_INFO     pWritableAttrs;
  47. } ADSPROPINITPARAMS, * PADSPROPINITPARAMS;
  48. //+----------------------------------------------------------------------------
  49. //
  50. //  Structure:  ADSPROPERROR
  51. //
  52. //  Usage:      Used to pass page error information to the notify object
  53. //
  54. //-----------------------------------------------------------------------------
  55. typedef struct _ADSPROPERROR {
  56.     HWND               hwndPage;        // The HWND of the page that had the error
  57.     PWSTR              pszPageTitle;    // The title of the page that had the error
  58.     PWSTR              pszObjPath;      // Path to the object that the error occurred on
  59.     HRESULT            hr;              // If this is non-zero, then the others
  60.                                         // pszError will be ignored
  61.     PWSTR              pszError;        // An error message.  Used only if hr is zero
  62. } ADSPROPERROR, * PADSPROPERROR;
  63. //+----------------------------------------------------------------------------
  64. //
  65. //  Function:   ADsPropCreateNotifyObj
  66. //
  67. //  Synopsis:   Checks to see if the notification window/object exists for this
  68. //              sheet instance and if not creates it.
  69. //
  70. //  Arguments:  [pAppThdDataObj] - the unmarshalled data object pointer.
  71. //              [pwzADsObjName]  - object path name.
  72. //              [phNotifyObj]    - to return the notificion window handle.
  73. //
  74. //  Returns:    HRESULTs.
  75. //
  76. //-----------------------------------------------------------------------------
  77. STDAPI
  78. ADsPropCreateNotifyObj(LPDATAOBJECT pAppThdDataObj, PWSTR pwzADsObjName,
  79.                        HWND * phNotifyObj);
  80. //+----------------------------------------------------------------------------
  81. //
  82. //  Function:   ADsPropGetInitInfo
  83. //
  84. //  Synopsis:   Pages call this at their init time to retreive DS object info.
  85. //
  86. //  Arguments:  [hNotifyObj]  - the notificion window handle.
  87. //              [pInitParams] - struct filled in with DS object info. This
  88. //                              struct must be allocated by the caller before
  89. //                              the call.
  90. //
  91. //  Returns:    FALSE if the notify window has gone away for some reason or
  92. //              if the parameters are invalid.
  93. //
  94. //  Notes:      This call results in the sending of the
  95. //              WM_ADSPROP_NOTIFY_PAGEINIT message to the notify window.
  96. //              pInitParams->pWritableAttrs can be NULL if there are no
  97. //              writable attributes.
  98. //
  99. //-----------------------------------------------------------------------------
  100. STDAPI_(BOOL)
  101. ADsPropGetInitInfo(HWND hNotifyObj, PADSPROPINITPARAMS pInitParams);
  102. //+----------------------------------------------------------------------------
  103. //
  104. //  Function:   ADsPropSetHwnd
  105. //
  106. //  Synopsis:   Pages call this at their dialog init time to send their hwnd.
  107. //
  108. //  Arguments:  [hNotifyObj]  - the notificion window handle.
  109. //              [hPage]       - the page's window handle.
  110. //              [ptzTitle]    - the page's title
  111. //
  112. //  Returns:    FALSE if the notify window has gone away for some reason.
  113. //
  114. //  Notes:      Sends the WM_ADSPROP_NOTIFY_PAGEHWND message to the notify
  115. //              window.
  116. //
  117. //-----------------------------------------------------------------------------
  118. STDAPI_(BOOL)
  119. ADsPropSetHwnd(HWND hNotifyObj, HWND hPage, PTSTR ptzTitle);
  120. //+----------------------------------------------------------------------------
  121. //
  122. //  function:   ADsPropCheckIfWritable
  123. //
  124. //  Synopsis:   See if the attribute is writable by checking if it is in
  125. //              the allowedAttributesEffective array.
  126. //
  127. //  Arguments:  [pwzAttr]        - the attribute name.
  128. //              [pWritableAttrs] - the array of writable attributes.
  129. //
  130. //  Returns:    FALSE if the attribute name is not found in the writable-attrs
  131. //              array or if the array pointer is NULL.
  132. //
  133. //-----------------------------------------------------------------------------
  134. STDAPI_(BOOL)
  135. ADsPropCheckIfWritable(const PWSTR pwzAttr, const PADS_ATTR_INFO pWritableAttrs);
  136. //+----------------------------------------------------------------------------
  137. //
  138. //  function:   ADsPropSendErrorMessage
  139. //
  140. //  Synopsis:   Adds an error message to a list which is presented when
  141. //              ADsPropShowErrorDialog is called
  142. //
  143. //  Arguments:  [hNotifyObj]  - the notificion window handle.
  144. //              [pError]      - the error structure
  145. //
  146. //  Returns:    FALSE if the notify window has gone away for some reason.
  147. //
  148. //-----------------------------------------------------------------------------
  149. STDAPI_(BOOL)
  150. ADsPropSendErrorMessage(HWND hNotifyObj, PADSPROPERROR pError);
  151. //+----------------------------------------------------------------------------
  152. //
  153. //  function:   ADsPropShowErrorDialog
  154. //
  155. //  Synopsis:   Presents an error dialog with the error messages accumulated
  156. //              through calls to ADsPropSendErrorMessage
  157. //
  158. //  Arguments:  [hNotifyObj]  - the notificion window handle.
  159. //              [hPage]       - the property page window handle.
  160. //
  161. //  Returns:    FALSE if the notify window has gone away for some reason.
  162. //
  163. //-----------------------------------------------------------------------------
  164. STDAPI_(BOOL)
  165. ADsPropShowErrorDialog(HWND hNotifyObj, HWND hPage);
  166. #ifdef __cplusplus
  167. }
  168. #endif // __cplusplus
  169. #endif // _ADSPROP_H_