Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi IDsObjectPicker (Directory Object Picker) (https://www.delphipraxis.net/49985-idsobjectpicker-directory-object-picker.html)

generic 19. Jul 2005 10:02


IDsObjectPicker (Directory Object Picker)
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ich versuche seit mehreren Stunden zusätzliche Daten aus dem Directory Object Picker Dialog zu bekommen.

In der DSOP_INIT_INFO Struktur übergebe ich, das ich 3 zusätzliche Attribute brauche. (objectGuid, ObjectSid, SamName)
Dazu setze ich cAttributesToFetch und apwzAttributeNames.

Nach dem Aufruf von InvokeDialog und der Ermittlung von der DS_SELECTION_LIST Struktur, stehe ich nun vor meinem Problem.
Die Daten die ich brauche, sind in der DS_SELECTION Struktur unter dem Attribut pvarFetchedAttributes abgelegt.
Dieses ist in der JwaObjSel vom Typ POleVariant.

Info MSDN:
Zitat:

pvarFetchedAttributes
Pointer to an array of VARIANT structures. Each VARIANT contains the value of an attribute of the selected object. The attributes retrieved are determined by the attribute names specified in the apwzAttributeNames member of the DSOP_INIT_INFO structure passed to the IDsObjectPicker::Initialize method. The order of attributes in the pvarFetchedAttributes array corresponds to the order of attribute names specified in the apwzAttributeNames array.
The object picker dialog box may not be able to retrieve the requested attributes. If the attribute cannot be retrieved, the vt member of the VARIANT structure contains VT_EMPTY.
So jetzt ihr bitte...

generic 19. Jul 2005 15:11

Re: IDsObjectPicker (Directory Object Picker)
 
so kleiner nachtrag

ich kann zumindest auf das erste element zurück greifen.

Delphi-Quellcode:
VarArrayLock(pDsSelList.aDsSelection[i].pvarFetchedAttributes^);
aber ich hab noch keinen schimmer wie ich an die andern 2 werte kommen.
möglicherweise ist noch das apwzAttributeNames falsch gesetzt.


zumindest bekomm ich jetzt die sid und die war mir das wichtigest.
den rest kann ich über die sid wieder ermitteln.

Heffalump 4. Aug 2005 11:13

Re: IDsObjectPicker (Directory Object Picker)
 
So gehts:

1. Type definieren -> vArray = array [0..0] of Variant;
2. Codezeile ändern ->
Delphi-Quellcode:
vArray(pDsSelList.aDsSelection[i].pvarFetchedAttributes^)[si]
3. über si auf einzelnen Variant zugreifen.

Es kann natürlich sein, das einige Eigenschaften als bytearray im Variant abgelegt sind. Diese musst Du dann umwandeln. Mit Stringattributen aus dem AD ging es jedenfalls.

generic 4. Aug 2005 14:48

Re: IDsObjectPicker (Directory Object Picker)
 
hmm, tut bei mir leider nicht.

samaccoutname ist ein widestring.

ich muss das varray als vArray = array of Variant;
also ohne grössen angabe kompilieren da sonst der syntaxcheck heult.

wenn ich dann auf varray(..)[x] zugreife gibts nur schutzverletzungen :-(

poste mir doch mal bitte deinen kompletten source.

Heffalump 4. Aug 2005 14:52

Re: IDsObjectPicker (Directory Object Picker)
 
das "Döddelzeichen" ^ haste mitgenommen, oder?

Source kommt gleich.

Heffalump 4. Aug 2005 15:12

Re: IDsObjectPicker (Directory Object Picker)
 
Liste der Anhänge anzeigen (Anzahl: 1)
hier das Stück Source. Die uses Anweisung musst Du aktualisieren. Ich habe die von Dir verwendete Unit nicht gefunden und eine andere verwendet, welche die benötigten (von Dir verwendeten) Objecte enthielt. ObjectSID ist im übrigen z. Bsp. ein Array (VT_ARRAY or VT_UI1). Ich hänge nur die Unit1 dran. Alles andere ist wie in deinem Beispielprojekt.

generic 4. Aug 2005 15:24

Re: IDsObjectPicker (Directory Object Picker)
 
hmm merkwürdig deins tut auch nicht.
ich nutze die jwaObjSel - du ObjSel

kannst du mir bitte deine ObjSel auch mal posten.

Heffalump 4. Aug 2005 15:56

Re: IDsObjectPicker (Directory Object Picker)
 
Liste der Anhänge anzeigen (Anzahl: 1)
hier die Datei. Ist im übrigen aus der JVCL 3.

generic 5. Aug 2005 09:13

Re: IDsObjectPicker (Directory Object Picker)
 
tut jetzt danke.

btw. meine jwa und deine jcl obj unterscheiden sich nicht wirklich.

wajokh03 11. Jan 2013 14:04

AW: IDsObjectPicker (Directory Object Picker)
 
Ich verwende einen ähnlichen Code zu fitch nicht die Gruppen, sondern die Nutzer, aber ich habe ein Problem mit der abgerufenen objectSID es gibt nur "?", I wirklich brauchen das ausgewählte Objekt SID kann jeder Körper Hilfe :roll:?
dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz