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.

265 lines
6.3 KiB

  1. //+--------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1994 - 1998.
  5. //
  6. // File: objselp.h
  7. //
  8. // Contents: Object Picker Dialog private header
  9. //
  10. //---------------------------------------------------------------------------
  11. #include <objbase.h>
  12. DEFINE_GUID(IID_IObjectPickerScope,
  13. 0xe8f3a4c4, 0x9e62, 0x11d1, 0x8b, 0x22, 0x00, 0xc0, 0x4f, 0xd8, 0xdb, 0xf7);
  14. DEFINE_GUID(IID_IDsObjectPickerScope,
  15. 0xd8150286, 0x9e64, 0x11d1, 0x8b, 0x22, 0x00, 0xc0, 0x4f, 0xd8, 0xdb, 0xf7);
  16. DEFINE_GUID(IID_IBindHelper,
  17. 0x29b3711c, 0xa6fd, 0x11d1, 0x8b, 0x23, 0x00, 0xc0, 0x4f, 0xd8, 0xdb, 0xf7);
  18. DEFINE_GUID(IID_ICustomizeDsBrowser,
  19. 0x58dc8834, 0x9d9f, 0x11d1, 0x8b, 0x22, 0x00, 0xc0, 0x4f, 0xd8, 0xdb, 0xf7);
  20. DEFINE_GUID(IID_IDsObjectPickerEx,
  21. 0xa4e86007, 0x62e4, 0x11d2, 0xae, 0x51, 0x00, 0xc0, 0x4f, 0x79, 0xdb, 0x19);
  22. #ifndef __OBJSELP_H_
  23. #define __OBJSELP_H_
  24. #ifndef __iads_h__
  25. #include <iads.h>
  26. #endif // __iads_h__
  27. #ifdef __cplusplus
  28. extern "C" {
  29. #endif // __cplusplus
  30. typedef struct tagDSQUERYINFO
  31. {
  32. ULONG cbSize;
  33. LPCWSTR pwzLdapQuery;
  34. ULONG cFilters;
  35. LPCWSTR *apwzFilter;
  36. LPCWSTR pwzCaption;
  37. } DSQUERYINFO, *PDSQUERYINFO;
  38. //
  39. // Private Object Picker Interfaces
  40. //
  41. #undef INTERFACE
  42. #define INTERFACE IObjectPickerScope
  43. DECLARE_INTERFACE_(IObjectPickerScope, IUnknown)
  44. {
  45. // *** IUnknown methods ***
  46. STDMETHOD(QueryInterface)(THIS_
  47. REFIID riid,
  48. PVOID *ppv) PURE;
  49. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  50. STDMETHOD_(ULONG,Release)(THIS) PURE;
  51. // *** IObjectPickerScope methods ***
  52. STDMETHOD_(HWND, GetHwnd)(THIS) PURE;
  53. STDMETHOD(SetHwnd)(THIS_
  54. HWND hwndScopeDialog) PURE;
  55. };
  56. #undef INTERFACE
  57. #define INTERFACE IDsObjectPickerScope
  58. DECLARE_INTERFACE_(IDsObjectPickerScope, IObjectPickerScope)
  59. {
  60. // *** IUnknown methods ***
  61. STDMETHOD(QueryInterface)(THIS_
  62. REFIID riid,
  63. LPVOID * ppv) PURE;
  64. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  65. STDMETHOD_(ULONG,Release)(THIS) PURE;
  66. // *** IObjectPickerScope methods ***
  67. STDMETHOD_(HWND, GetHwnd)(THIS) PURE;
  68. STDMETHOD(SetHwnd)(THIS_
  69. HWND hwndScopeDialog) PURE;
  70. // *** IDsObjectPickerScope methods ***
  71. STDMETHOD_(ULONG,GetType)(THIS) PURE;
  72. STDMETHOD(GetQueryInfo)(THIS_
  73. PDSQUERYINFO *ppqi) PURE;
  74. STDMETHOD_(BOOL, IsUplevel)(THIS) PURE;
  75. STDMETHOD_(BOOL, IsDownlevel)(THIS) PURE;
  76. STDMETHOD_(BOOL, IsExternalDomain)(THIS) PURE;
  77. STDMETHOD(GetADsPath)(THIS_
  78. PWSTR *ppwzADsPath) PURE;
  79. };
  80. #undef INTERFACE
  81. #define INTERFACE IBindHelper
  82. DECLARE_INTERFACE_(IBindHelper, IUnknown)
  83. {
  84. // *** IUnknown methods ***
  85. STDMETHOD(QueryInterface)(THIS_
  86. REFIID riid,
  87. LPVOID * ppv) PURE;
  88. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  89. STDMETHOD_(ULONG,Release)(THIS) PURE;
  90. // *** IBindHelper methods ***
  91. STDMETHOD(BindToObject)(THIS_
  92. HWND hwnd,
  93. PCWSTR pwzADsPath,
  94. REFIID riid,
  95. LPVOID *ppv,
  96. ULONG flags) PURE;
  97. STDMETHOD(GetNameTranslate)(THIS_
  98. HWND hwnd,
  99. PCWSTR pwzADsPath,
  100. IADsNameTranslate **ppNameTranslate) PURE;
  101. STDMETHOD(GetDomainRootDSE)(THIS_
  102. HWND hwnd,
  103. PCWSTR pwzDomain,
  104. IADs **ppADsRootDSE) PURE;
  105. STDMETHOD(BindToDcInDomain)(THIS_
  106. HWND hwnd,
  107. PCWSTR pwzDomainName,
  108. DWORD dwFlag,
  109. PHANDLE phDs) PURE;
  110. };
  111. #undef INTERFACE
  112. #define INTERFACE ICustomizeDsBrowser
  113. DECLARE_INTERFACE_(ICustomizeDsBrowser, IUnknown)
  114. {
  115. // *** IUnknown methods ***
  116. STDMETHOD(QueryInterface)(THIS_
  117. REFIID riid,
  118. LPVOID * ppv) PURE;
  119. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  120. STDMETHOD_(ULONG,Release)(THIS) PURE;
  121. // *** ICustomizeDsBrowser methods ***
  122. STDMETHOD(Initialize)(THIS_
  123. HWND hwnd,
  124. PCDSOP_INIT_INFO pInitInfo,
  125. IBindHelper *pBindHelper) PURE;
  126. STDMETHOD(GetQueryInfoByScope)(THIS_
  127. IDsObjectPickerScope *pDsScope,
  128. PDSQUERYINFO *ppdsqi) PURE;
  129. STDMETHOD(AddObjects)(THIS_
  130. IDsObjectPickerScope *pDsScope,
  131. IDataObject **ppdo) PURE;
  132. STDMETHOD(ApproveObjects)(THIS_
  133. IDsObjectPickerScope *pDsScope,
  134. IDataObject *pdo,
  135. PBOOL afApproved) PURE;
  136. STDMETHOD(PrefixSearch)(THIS_
  137. IDsObjectPickerScope *pDsScope,
  138. PCWSTR pwzSearchFor,
  139. IDataObject **pdo) PURE;
  140. STDMETHOD_(PSID, LookupDownlevelName)(THIS_
  141. PCWSTR pwzAccountName) PURE;
  142. };
  143. #undef INTERFACE
  144. #define INTERFACE IDsObjectPickerEx
  145. DECLARE_INTERFACE_(IDsObjectPickerEx, IDsObjectPicker)
  146. {
  147. // *** IUnknown methods ***
  148. STDMETHOD(QueryInterface)(THIS_
  149. REFIID riid,
  150. LPVOID * ppv) PURE;
  151. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  152. STDMETHOD_(ULONG,Release)(THIS) PURE;
  153. // *** IDsObjectPicker methods ***
  154. // Sets scope, filter, etc. for use with next invocation of dialog
  155. STDMETHOD(Initialize)(
  156. THIS_
  157. PDSOP_INIT_INFO pInitInfo) PURE;
  158. // Creates the modal DS Object Picker dialog.
  159. STDMETHOD(InvokeDialog)(
  160. THIS_
  161. HWND hwndParent,
  162. IDataObject **ppdoSelections) PURE;
  163. // *** IDsObjectPickerEx methods ***
  164. // Creates the modal DS Object Picker dialog.
  165. STDMETHOD(InvokeDialogEx)(
  166. THIS_
  167. HWND hwndParent,
  168. ICustomizeDsBrowser *pCustomizeDsBrowser,
  169. IDataObject **ppdoSelections) PURE;
  170. };
  171. //
  172. // Private clipboard formats supported by CDataObject
  173. //
  174. #define CFSTR_DSOP_DS_OBJECT_LIST TEXT("CFSTR_DSOP_DS_OBJECT_LIST")
  175. #define DSOP_SCOPE_TYPE_INVALID 0
  176. #define DSOP_SCOPE_FLAG_UNCHECK_EXTERNAL_CUSTOMIZER 0x80000000
  177. #define DSOP_FILTER_EXTERNAL_CUSTOMIZER 0x40000000
  178. #define DSOP_DOWNLEVEL_FILTER_EXTERNAL_CUSTOMIZER 0x88000000
  179. #ifdef __cplusplus
  180. }
  181. #endif // __cplusplus
  182. #endif // __OBJSELP_H_