Dans le registre il y a parfois la valeur identifiant telle ou telle interface (IDD_xxxxxxx).
C'est cette valeur qui va être passée aux méthodes pour dire quel pointeur on récupère (en fait sur quel objet de quelle interface il pointe)
Regarde le code que j'avais fait avec IShellefolder.
Tu as en data la valeur identifiant l'interface que tu vas utiliser
Code : Tout sélectionner
DataSection
; Interface IShellFolder;
; helpstring("IShellFolder"),
; uuid(000214E6-0000-0000-C000-000000000046)
IID_IShellFolder : ; cléf du registre mise sous la forme de DATA
Data.l $000214E6
Data.w $0000, $0000
Data.b $C0, $00, $00, $00, $00, $00, $00, $46
EndDataSection
Code : Tout sélectionner
If ppshf\BindToObject(ppidl, 0, ?IID_IShellFolder, @ppvOut.IShellFolder) = #NOERROR
C'est le cas par exemple de la méthode GetUIObjectOf de l'interface IShellFolder (qui permet en particulier de récupérer un pointeur sur un objet de type IExtractIcon).
J'ai 6345 identifiants d'interfaces dans le registre (sous XP) sur mon ordi.