JwaDSQuery.pas
上传用户:davidchvip
上传日期:2009-07-28
资源大小:1749k
文件大小:9k
源码类别:

Windows编程

开发平台:

Delphi

  1. {******************************************************************************}
  2. {                                                                       }
  3. { Directory Services Query API interface Unit for Object Pascal                }
  4. {                                                                       }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft          }
  6. { Corporation. All Rights Reserved.                                            }
  7. {                 }
  8. { The original file is: dsquery.h, released November 2002. The original Pascal }
  9. { code is: DSQuery.pas, released March 2002. The initial developer of the      }
  10. { Pascal code is Marcel van Brakel (brakelm@chello.nl).                        }
  11. {                                                                              }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001            }
  13. { Marcel van Brakel. All Rights Reserved.                                      }
  14. {                 }
  15. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI)        }
  16. {                }
  17. { You may retrieve the latest version of this file at the Project JEDI home    }
  18. { page, located at http://delphi-jedi.org or my personal homepage located at   }
  19. { http://members.chello.nl/m.vanbrakel2                                        }
  20. {                }
  21. { The contents of this file are used with permission, subject to the Mozilla   }
  22. { Public License Version 1.1 (the "License"); you may not use this file except }
  23. { in compliance with the License. You may obtain a copy of the License at      }
  24. { http://www.mozilla.org/MPL/MPL-1.1.html                                      }
  25. {                                                                              }
  26. { Software distributed under the License is distributed on an "AS IS" basis,   }
  27. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  28. { the specific language governing rights and limitations under the License.    }
  29. {                                                                              }
  30. { Alternatively, the contents of this file may be used under the terms of the  }
  31. { GNU Lesser General Public License (the  "LGPL License"), in which case the   }
  32. { provisions of the LGPL License are applicable instead of those above.        }
  33. { If you wish to allow use of your version of this file only under the terms   }
  34. { of the LGPL License and not to allow others to use your version of this file }
  35. { under the MPL, indicate your decision by deleting  the provisions above and  }
  36. { replace  them with the notice and other provisions required by the LGPL      }
  37. { License.  If you do not delete the provisions above, a recipient may use     }
  38. { your version of this file under either the MPL or the LGPL License.          }
  39. {                 }
  40. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  41. {                 }
  42. {******************************************************************************}
  43. unit JwaDSQuery;
  44. {$WEAKPACKAGEUNIT}
  45. {$HPPEMIT ''}
  46. {$HPPEMIT '#include "dsquery.h"'}
  47. {$HPPEMIT ''}
  48. {$I WINDEFINES.INC}
  49. interface
  50. uses
  51.   JwaCmnQuery, JwaWinType;
  52. const
  53.   CLSID_DsQuery: TGUID = (D1:$8a23e65e; D2:$31c2; D3:$11d0; D4:($89, $1c, $0, $a0, $24, $ab, $2d, $bb));
  54.   {$EXTERNALSYM CLSID_DsQuery}
  55. //
  56. // standard forms shipped in dsquery.dll
  57. //
  58.   CLSID_DsFindObjects: TGUID = (D1:$83ee3fe1; D2:$57d9; D3:$11d0; D4:($b9, $32, $0, $a0, $24, $ab, $2d, $bb));
  59.   {$EXTERNALSYM CLSID_DsFindObjects}
  60.   CLSID_DsFindPeople: TGUID = (D1:$83ee3fe2; D2:$57d9; D3:$11d0; D4:($b9, $32, $0, $a0, $24, $ab, $2d, $bb));
  61.   {$EXTERNALSYM CLSID_DsFindPeople}
  62.   CLSID_DsFindPrinter: TGUID = (D1:$b577f070; D2:$7ee2; D3:$11d0; D4:($91, $3f, $0, $aa, $0, $c1, $6e, $65));
  63.   {$EXTERNALSYM CLSID_DsFindPrinter}
  64.   CLSID_DsFindComputer: TGUID = (D1:$16006700; D2:$87ad; D3:$11d0; D4:($91, $40, $0, $aa, $0, $c1, $6e, $65));
  65.   {$EXTERNALSYM CLSID_DsFindComputer}
  66.   CLSID_DsFindVolume: TGUID = (D1:$c1b3cbf1; D2:$886a; D3:$11d0; D4:($91, $40, $0, $aa, $0, $c1, $6e, $65));
  67.   {$EXTERNALSYM CLSID_DsFindVolume}
  68.   CLSID_DsFindContainer: TGUID = (D1:$c1b3cbf2; D2:$886a; D3:$11d0; D4:($91, $40, $0, $aa, $0, $c1, $6e, $65));
  69.   {$EXTERNALSYM CLSID_DsFindContainer}
  70.   CLSID_DsFindAdvanced: TGUID = (D1:$83ee3fe3; D2:$57d9; D3:$11d0; D4:($b9, $32, $0, $a0, $24, $ab, $2d, $bb));
  71.   {$EXTERNALSYM CLSID_DsFindAdvanced}
  72. //
  73. // admin forms
  74. //
  75.   CLSID_DsFindDomainController: TGUID = (D1:$538c7b7e; D2:$d25e; D3:$11d0; D4:($97, $42, $0, $a0, $c9, $6, $af, $45));
  76.   {$EXTERNALSYM CLSID_DsFindDomainController}
  77.   CLSID_DsFindFrsMembers: TGUID = (D1:$94ce4b18; D2:$b3d3; D3:$11d1; D4:($b9, $b4, $0, $c0, $4f, $d8, $d5, $b0));
  78.   {$EXTERNALSYM CLSID_DsFindFrsMembers}
  79. {$IFNDEF GUID_DEFS_ONLY}
  80. //
  81. // DSQUERYINITPARAMS
  82. // -----------------
  83. //  This structured is used when creating a new query view.
  84. //
  85. const
  86.   DSQPF_NOSAVE                 = $00000001; // = 1 => remove save verb
  87.   {$EXTERNALSYM DSQPF_NOSAVE}
  88.   DSQPF_SAVELOCATION           = $00000002; // = 1 => pSaveLocation contains directory to save queries into
  89.   {$EXTERNALSYM DSQPF_SAVELOCATION}
  90.   DSQPF_SHOWHIDDENOBJECTS      = $00000004; // = 1 => show objects marked as "hidden" in results
  91.   {$EXTERNALSYM DSQPF_SHOWHIDDENOBJECTS}
  92.   DSQPF_ENABLEADMINFEATURES    = $00000008; // = 1 => show admin verbs, property pages etc
  93.   {$EXTERNALSYM DSQPF_ENABLEADMINFEATURES}
  94.   DSQPF_ENABLEADVANCEDFEATURES = $00000010; // = 1 => set the advanced flag for the property pages
  95.   {$EXTERNALSYM DSQPF_ENABLEADVANCEDFEATURES}
  96.   DSQPF_HASCREDENTIALS         = $00000020; // = 1 => pServer, pUserName & pPassword are valid
  97.   {$EXTERNALSYM DSQPF_HASCREDENTIALS}
  98.   DSQPF_NOCHOOSECOLUMNS        = $00000040; // = 1 => remove choose columns from view
  99.   {$EXTERNALSYM DSQPF_NOCHOOSECOLUMNS}
  100. type
  101.   LPDSQUERYINITPARAMS = ^DSQUERYINITPARAMS;
  102.   {$EXTERNALSYM LPDSQUERYINITPARAMS}
  103.   DSQUERYINITPARAMS = record
  104.     cbStruct: DWORD;
  105.     dwFlags: DWORD;
  106.     pDefaultScope: LPWSTR; // -> Active Directory path to use as scope / == NULL for none
  107.     pDefaultSaveLocation: LPWSTR; // -> Directory to save queries into / == NULL default location
  108.     pUserName: LPWSTR; // -> user name to authenticate with
  109.     pPassword: LPWSTR; // -> password for authentication
  110.     pServer: LPWSTR; // -> server to use for obtaining trusts etc
  111.   end;
  112.   {$EXTERNALSYM DSQUERYINITPARAMS}
  113.   TDsQueryInitParams = DSQUERYINITPARAMS;
  114.   PDsQueryInitParams = LPDSQUERYINITPARAMS;
  115. //
  116. // DSQUERYPARAMS
  117. // -------------
  118. //  The DS query handle takes a packed structure which contains the
  119. //  columns and query to be issued.
  120. //
  121. const
  122.   CFSTR_DSQUERYPARAMS = TEXT('DsQueryParameters');
  123.   {$EXTERNALSYM CFSTR_DSQUERYPARAMS}
  124.   DSCOLUMNPROP_ADSPATH     = LONG(-1);
  125.   {$EXTERNALSYM DSCOLUMNPROP_ADSPATH}
  126.   DSCOLUMNPROP_OBJECTCLASS = LONG(-2);
  127.   {$EXTERNALSYM DSCOLUMNPROP_OBJECTCLASS}
  128. type
  129.   LPDSCOLUMN = ^DSCOLUMN;
  130.   {$EXTERNALSYM LPDSCOLUMN}
  131.   DSCOLUMN = record
  132.     dwFlags: DWORD; // flags for this column
  133.     fmt: INT; // list view form information
  134.     cx: INT; // default column width
  135.     idsName: INT; // resource ID for the column dispaly name
  136.     offsetProperty: LONG; // offset to BSTR defining column ADs property name
  137.     dwReserved: DWORD; // reserved field
  138.   end;
  139.   {$EXTERNALSYM DSCOLUMN}
  140.   TDsColumn = DSCOLUMN;
  141.   PDsColumn = LPDSCOLUMN;
  142.   LPDSQUERYPARAMS = ^DSQUERYPARAMS;
  143.   {$EXTERNALSYM LPDSQUERYPARAMS}
  144.   DSQUERYPARAMS = record
  145.     cbStruct: DWORD;
  146.     dwFlags: DWORD;
  147.     hInstance: HINSTANCE; // instance handle used for string extraction
  148.     offsetQuery: LONG; // offset to LDAP filter string
  149.     iColumns: LONG; // column count
  150.     dwReserved: DWORD; // reserved field for this query
  151.     aColumns: array [0..0] of DSCOLUMN; // array of column descriptions
  152.   end;
  153.   {$EXTERNALSYM DSQUERYPARAMS}
  154.   TDsQueryParams = DSQUERYPARAMS;
  155.   PDsQueryParams = LPDSQUERYPARAMS;
  156. //
  157. // CF_DSQUERYSCOPE
  158. // ---------------
  159. //  A clipboard format the puts a string version of the scope into a
  160. //  storage medium via GlobalAlloc.
  161. //
  162. const
  163.   CFSTR_DSQUERYSCOPE = TEXT('DsQueryScope');
  164.   {$EXTERNALSYM CFSTR_DSQUERYSCOPE}
  165. //
  166. // DSQPM_GETCLASSLIST
  167. // ------------------
  168. //  This page message is sent to the form pages to retrieve the list of classes
  169. //  that the pages are going to query from.  This is used by the feild selector
  170. //  and the property well to build its list of display classes.
  171. //
  172. type
  173.   LPDSQUERYCLASSLIST = ^DSQUERYCLASSLIST;
  174.   {$EXTERNALSYM LPDSQUERYCLASSLIST}
  175.   DSQUERYCLASSLIST = record
  176.     cbStruct: DWORD;
  177.     cClasses: LONG; // number of classes in array
  178.     offsetClass: array [0..0] of DWORD; // offset to the class names (UNICODE)
  179.   end;
  180.   {$EXTERNALSYM DSQUERYCLASSLIST}
  181.   TDsQueryClassList = DSQUERYCLASSLIST;
  182.   PDsQueryClassList = LPDSQUERYCLASSLIST;
  183. const
  184.   DSQPM_GETCLASSLIST = (CQPM_HANDLERSPECIFIC+0); // wParam == flags, lParam = LPLPDSQUERYCLASSLIST
  185.   {$EXTERNALSYM DSQPM_GETCLASSLIST}
  186. //
  187. // DSQPM_HELPTOPICS
  188. // ----------------
  189. //  This page message is sent to the form pages to allow them to handle the
  190. //  "Help Topics" verb.
  191. //
  192.   DSQPM_HELPTOPICS = (CQPM_HANDLERSPECIFIC+1); // wParam = 0, lParam = hWnd parent
  193.   {$EXTERNALSYM DSQPM_HELPTOPICS}
  194. {$ENDIF}
  195. implementation
  196. end.