Publié : dim. 06/févr./2005 20:10
Il faut voir les interfaces comme des fonctions normales, elles existent dans les fichiers dll.
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
par exemple, la méthode BindToObject de l'interface IshellFolder retrouve un objet IShellFolder pour un sous-dossier du Shell. On doit passer cet identifiant à la méthode en 3eme paramètre pour avoir le bon résultat.
Certaine méthodes retournent des pointeur sur des objets de type différents en fonction justement de l'indentifiant passé en paramètre.
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.
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.