What is OLE in-process server COM DLL ?

Résolu
Signaler
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
-
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
-
Bonjour,

Pour essayer de répondre à mon précédent post relatif à une association d'icône sans passer par la base de registre, j'ai rouvé ça dans le Win32 developper reference sur l'aide de IExtractIcon. Il semble que ça corresponde à ce que je cherche à faire, et bien que j'ai bien envie de tenter quelque chose , je n'y comprends pas grand chose  :

"You implement IExtractIcon to provide either instance-specific icons for objects in a particular class, or icons for subfolders that extend the Explorer's name space. These implementations are accomplished by writing handler code in an OLE in-process server COM DLL.
In addition, if you implement IShellFolder, you will need to provide an implementation of IExtractIcon that callers can obtain by using IShellFolder::GetUIObjectOf.
Shell extensions based on IExtractIcon must be initialized by using IPersistFile::Load. You should also note that shell extensions do not work unless all appropriate registry entries are made."

Pourriez-vous me renseigner sur l'un de ces points (ou les 2) :
Comment réalise-t-on un (ou une) OLE in-process server COM DLL (si c'est possible avec Delphi )?
Est-ce que quelqu'un aurait déjà réalisé un développement de la sorte et pourrait me fournir un petit exemple qui pourrait m'aider démarrer ?

Merci

Simon

3 réponses

Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
a mon avis, ta nouvelle solution est pire que la precedente (ajouter la cle au registre pour ton extension). En effet, pour ajouter une dll com d'extension du shell (shell namespace extension), il faut que tu créé une dll, et que tu l'enregistre (-> creation de multiples cles dans HKLM\CLSID\ et autres).

Pour ce qui est d'en faire une avec delphi, c'est tout a fait possible. Tu peux t'appuyer sur EasyNSE (de mustangpeak), mais ils me semble qu'ils disent que leur composant n'est pas des plus fiables).
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
tout a fait. tu peux le faire lors de l'install, ou alors fournir un exe genre RegisterExtension.exe qui ne fait que ca.
De toutes facons, il est tres preferable de faire une install en mode admin
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Ok, donc pas la peine. Peut-être que la solution la plus simple est de mettre tous les codes qui nécessitent les privilèges d'admin dans un exe à part qui sera lancé au premier démarrage de l'application. Comme ça, l'utilisateur n'aura qu'à valider une seule fois le message d'autorisation, puisque le reste du code pourra fonctionner sans les droits d'admin...

Simon