{******************************************************************************} { } { Directory Services Query API interface Unit for Object Pascal } { } { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } { Corporation. All Rights Reserved. } { } { The original file is: dsquery.h, released November 2002. The original Pascal } { code is: DSQuery.pas, released March 2002. The initial developer of the } { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } { } { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } { Marcel van Brakel. All Rights Reserved. } { } { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } { } { You may retrieve the latest version of this file at the Project JEDI } { APILIB home page, located at http://jedi-apilib.sourceforge.net } { } { The contents of this file are used with permission, subject to the Mozilla } { Public License Version 1.1 (the "License"); you may not use this file except } { in compliance with the License. You may obtain a copy of the License at } { http://www.mozilla.org/MPL/MPL-1.1.html } { } { Software distributed under the License is distributed on an "AS IS" basis, } { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } { the specific language governing rights and limitations under the License. } { } { Alternatively, the contents of this file may be used under the terms of the } { GNU Lesser General Public License (the "LGPL License"), in which case the } { provisions of the LGPL License are applicable instead of those above. } { If you wish to allow use of your version of this file only under the terms } { of the LGPL License and not to allow others to use your version of this file } { under the MPL, indicate your decision by deleting the provisions above and } { replace them with the notice and other provisions required by the LGPL } { License. If you do not delete the provisions above, a recipient may use } { your version of this file under either the MPL or the LGPL License. } { } { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } { } {******************************************************************************} // $Id: JwaDSQuery.pas,v 1.10 2007/09/05 11:58:49 dezipaitor Exp $ {$IFNDEF JWA_OMIT_SECTIONS} unit JwaDSQuery; {$WEAKPACKAGEUNIT} {$ENDIF JWA_OMIT_SECTIONS} {$HPPEMIT ''} {$HPPEMIT '#include "dsquery.h"'} {$HPPEMIT ''} {$IFNDEF JWA_OMIT_SECTIONS} {$I jediapilib.inc} interface uses JwaCmnQuery, JwaWinType; {$ENDIF JWA_OMIT_SECTIONS} {$IFNDEF JWA_IMPLEMENTATIONSECTION} const CLSID_DsQuery: TGUID = (D1:$8a23e65e; D2:$31c2; D3:$11d0; D4:($89, $1c, $0, $a0, $24, $ab, $2d, $bb)); {$EXTERNALSYM CLSID_DsQuery} // // standard forms shipped in dsquery.dll // CLSID_DsFindObjects: TGUID = (D1:$83ee3fe1; D2:$57d9; D3:$11d0; D4:($b9, $32, $0, $a0, $24, $ab, $2d, $bb)); {$EXTERNALSYM CLSID_DsFindObjects} CLSID_DsFindPeople: TGUID = (D1:$83ee3fe2; D2:$57d9; D3:$11d0; D4:($b9, $32, $0, $a0, $24, $ab, $2d, $bb)); {$EXTERNALSYM CLSID_DsFindPeople} CLSID_DsFindPrinter: TGUID = (D1:$b577f070; D2:$7ee2; D3:$11d0; D4:($91, $3f, $0, $aa, $0, $c1, $6e, $65)); {$EXTERNALSYM CLSID_DsFindPrinter} CLSID_DsFindComputer: TGUID = (D1:$16006700; D2:$87ad; D3:$11d0; D4:($91, $40, $0, $aa, $0, $c1, $6e, $65)); {$EXTERNALSYM CLSID_DsFindComputer} CLSID_DsFindVolume: TGUID = (D1:$c1b3cbf1; D2:$886a; D3:$11d0; D4:($91, $40, $0, $aa, $0, $c1, $6e, $65)); {$EXTERNALSYM CLSID_DsFindVolume} CLSID_DsFindContainer: TGUID = (D1:$c1b3cbf2; D2:$886a; D3:$11d0; D4:($91, $40, $0, $aa, $0, $c1, $6e, $65)); {$EXTERNALSYM CLSID_DsFindContainer} CLSID_DsFindAdvanced: TGUID = (D1:$83ee3fe3; D2:$57d9; D3:$11d0; D4:($b9, $32, $0, $a0, $24, $ab, $2d, $bb)); {$EXTERNALSYM CLSID_DsFindAdvanced} // // admin forms // CLSID_DsFindDomainController: TGUID = (D1:$538c7b7e; D2:$d25e; D3:$11d0; D4:($97, $42, $0, $a0, $c9, $6, $af, $45)); {$EXTERNALSYM CLSID_DsFindDomainController} CLSID_DsFindFrsMembers: TGUID = (D1:$94ce4b18; D2:$b3d3; D3:$11d1; D4:($b9, $b4, $0, $c0, $4f, $d8, $d5, $b0)); {$EXTERNALSYM CLSID_DsFindFrsMembers} // // DSQUERYINITPARAMS // ----------------- // This structured is used when creating a new query view. // const DSQPF_NOSAVE = $00000001; // = 1 => remove save verb {$EXTERNALSYM DSQPF_NOSAVE} DSQPF_SAVELOCATION = $00000002; // = 1 => pSaveLocation contains directory to save queries into {$EXTERNALSYM DSQPF_SAVELOCATION} DSQPF_SHOWHIDDENOBJECTS = $00000004; // = 1 => show objects marked as "hidden" in results {$EXTERNALSYM DSQPF_SHOWHIDDENOBJECTS} DSQPF_ENABLEADMINFEATURES = $00000008; // = 1 => show admin verbs, property pages etc {$EXTERNALSYM DSQPF_ENABLEADMINFEATURES} DSQPF_ENABLEADVANCEDFEATURES = $00000010; // = 1 => set the advanced flag for the property pages {$EXTERNALSYM DSQPF_ENABLEADVANCEDFEATURES} DSQPF_HASCREDENTIALS = $00000020; // = 1 => pServer, pUserName & pPassword are valid {$EXTERNALSYM DSQPF_HASCREDENTIALS} DSQPF_NOCHOOSECOLUMNS = $00000040; // = 1 => remove choose columns from view {$EXTERNALSYM DSQPF_NOCHOOSECOLUMNS} type LPDSQUERYINITPARAMS = ^DSQUERYINITPARAMS; {$EXTERNALSYM LPDSQUERYINITPARAMS} DSQUERYINITPARAMS = record cbStruct: DWORD; dwFlags: DWORD; pDefaultScope: LPWSTR; // -> Active Directory path to use as scope / == NULL for none pDefaultSaveLocation: LPWSTR; // -> Directory to save queries into / == NULL default location pUserName: LPWSTR; // -> user name to authenticate with pPassword: LPWSTR; // -> password for authentication pServer: LPWSTR; // -> server to use for obtaining trusts etc end; {$EXTERNALSYM DSQUERYINITPARAMS} TDsQueryInitParams = DSQUERYINITPARAMS; PDsQueryInitParams = LPDSQUERYINITPARAMS; // // DSQUERYPARAMS // ------------- // The DS query handle takes a packed structure which contains the // columns and query to be issued. // const CFSTR_DSQUERYPARAMS = TEXT('DsQueryParameters'); {$EXTERNALSYM CFSTR_DSQUERYPARAMS} DSCOLUMNPROP_ADSPATH = LONG(-1); {$EXTERNALSYM DSCOLUMNPROP_ADSPATH} DSCOLUMNPROP_OBJECTCLASS = LONG(-2); {$EXTERNALSYM DSCOLUMNPROP_OBJECTCLASS} type LPDSCOLUMN = ^DSCOLUMN; {$EXTERNALSYM LPDSCOLUMN} DSCOLUMN = record dwFlags: DWORD; // flags for this column fmt: INT; // list view form information cx: INT; // default column width idsName: INT; // resource ID for the column dispaly name offsetProperty: LONG; // offset to BSTR defining column ADs property name dwReserved: DWORD; // reserved field end; {$EXTERNALSYM DSCOLUMN} TDsColumn = DSCOLUMN; PDsColumn = LPDSCOLUMN; LPDSQUERYPARAMS = ^DSQUERYPARAMS; {$EXTERNALSYM LPDSQUERYPARAMS} DSQUERYPARAMS = record cbStruct: DWORD; dwFlags: DWORD; hInstance: HINST; // instance handle used for string extraction offsetQuery: LONG; // offset to LDAP filter string iColumns: LONG; // column count dwReserved: DWORD; // reserved field for this query aColumns: array [0..0] of DSCOLUMN; // array of column descriptions end; {$EXTERNALSYM DSQUERYPARAMS} TDsQueryParams = DSQUERYPARAMS; PDsQueryParams = LPDSQUERYPARAMS; // // CF_DSQUERYSCOPE // --------------- // A clipboard format the puts a string version of the scope into a // storage medium via GlobalAlloc. // const CFSTR_DSQUERYSCOPE = TEXT('DsQueryScope'); {$EXTERNALSYM CFSTR_DSQUERYSCOPE} // // DSQPM_GETCLASSLIST // ------------------ // This page message is sent to the form pages to retrieve the list of classes // that the pages are going to query from. This is used by the feild selector // and the property well to build its list of display classes. // type LPDSQUERYCLASSLIST = ^DSQUERYCLASSLIST; {$EXTERNALSYM LPDSQUERYCLASSLIST} DSQUERYCLASSLIST = record cbStruct: DWORD; cClasses: LONG; // number of classes in array offsetClass: array [0..0] of DWORD; // offset to the class names (UNICODE) end; {$EXTERNALSYM DSQUERYCLASSLIST} TDsQueryClassList = DSQUERYCLASSLIST; PDsQueryClassList = LPDSQUERYCLASSLIST; const DSQPM_GETCLASSLIST = CQPM_HANDLERSPECIFIC + 0; // wParam == flags, lParam = LPLPDSQUERYCLASSLIST {$EXTERNALSYM DSQPM_GETCLASSLIST} // // DSQPM_HELPTOPICS // ---------------- // This page message is sent to the form pages to allow them to handle the // "Help Topics" verb. // DSQPM_HELPTOPICS = CQPM_HANDLERSPECIFIC + 1; // wParam = 0, lParam = hWnd parent {$EXTERNALSYM DSQPM_HELPTOPICS} {$ENDIF JWA_IMPLEMENTATIONSECTION} {$IFNDEF JWA_OMIT_SECTIONS} implementation //uses ... {$ENDIF JWA_OMIT_SECTIONS} {$IFNDEF JWA_INTERFACESECTION} //your implementation here {$ENDIF JWA_INTERFACESECTION} {$IFNDEF JWA_OMIT_SECTIONS} end. {$ENDIF JWA_OMIT_SECTIONS}