begin process at 2010 03 22 07:51:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > SHELL EXTENSIONS (OLE, COM, WIN32)

SHELL EXTENSIONS (OLE, COM, WIN32)


 Information sur la source

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Système Niveau :Initié Date de création :20/06/2004 Vu / téléchargé :4 830 / 596

Auteur : ymca2003

Ecrire un message privé
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

cette source montre comment utiliser les Shell Extensions pour ajouter des commandes de menu au menu contextual clic-droit sur un fichier de l'explorateur et une page de proriétés dans les propriétés du fichier.

commande et page ajoutée pour les fichier "*.txt":
- ouverture avec NotePad
- page de propriétés avec nombre de ligne et de mots

2 exe permettent l'installation et la désintallation de la dll (sources ASM)

le fichier "Readme.txt" donne des informations complémentaires


 Conclusion

En mode debug, un fichier de Traçage est créée pour visualiser les fonctions appelées.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture SPLITTER API WIN32
Source avec Zip Source avec une capture UTILISATION DE LA LIB SHLWAPI.DLL (FONCTIONS DIVERSES SUR LE...
Source avec Zip Source avec une capture WIN32ACTIVEX : CONTENEUR DE CONTRÔLES ACTIVEX EN WIN32 (API ...
Source avec Zip Source avec une capture UTILISATION SPLITTER AVEC MFC
Source avec Zip Source avec une capture EXTRACTION DES ICONES DES EXÉCUTABLES (.EXE, .DLL), (VC++, W...

 Sources de la même categorie

Source avec Zip Source avec une capture [C/WIN32/WMI]SAVOIR SI UNE CLASSE COM EST INSTALLÉE par rt15
Source avec Zip Source avec une capture [C/WIN32][DRIVER] DÉTECTION DE CRÉATION OU DE SUPPRESSION DE... par deck_bsd
Source avec Zip DÉTECTION DE LANCEMENT D'APPLICATION (WIN32, REGISTERSHELLHO... par buno
Source avec Zip Source avec une capture [C/WIN32] INJECTION DE DLL 2 MÉTHODES (REMOTETHREAD PROPRE &... par deck_bsd
PRODUCER CONSUMER C (WITHIN LINUX) par PCBill

Commentaires et avis

Commentaire de BruNews le 21/06/2004 23:34:01 administrateur CS

Tres beau travail comme d'habitude.

Commentaire de JackosKing le 13/07/2004 08:46:48

Trés bonne source, en revanche je n'ai pas compris:
Dans: DllGetClassObject(...);
on invoque à la fin:
HRESULT hResult = pClassFactory->QueryInterface(iid, ppObj);
pClassFactory->Release();
Or si j'ai bien compris:
Dans QueryInterface, on incremente le nombre de références, et dans Release, on le décrémente, et on le désalloue si il est nul.. donc en gros:
++m_dwRefCount;
puis
if(--m_dwRefCount == 0) delete this;
Là je ne comprend pas:' -> l'objet instancier devrait de suite être désalloué?
De plus, quel est le but de la méthode AddRef, sachant que sa valeur de retour ne semble pas exploitée (à la limite un inline, j'aurai compris, mais là je ne comprend pas:()?

Commentaire de JackosKing le 13/07/2004 10:57:24

J'ai rien dit, je n'avait pas vu l'héritage:p
Bon le programme marche bien chez moi pour l'ajout de la tab des propriétés, mais pour le menu contextuel, j'ai rien:'

Commentaire de JackosKing le 13/07/2004 13:54:33

J'ai vérifier la la base de registre, tout semble bon! Le problême vient il du code? qqn l'a fait fonctionné sur son pc?

Commentaire de ymca2003 le 14/07/2004 02:26:48

Le menu ajouté est "ouvrir avec notepad" (assez logique pour un .txt), il est donc facile de ne pas remarquer son ajout.

Commentaire de JackosKing le 16/07/2004 13:06:27

je confirme mon dernier message, ca ne marche pas à mon boulot: seul les proprietés marchent.

Commentaire de ymca2003 le 16/07/2004 21:26:27

sous systèmes multi-utilisateurs, l'administrateur doit autoriser ou non les extensions du shell (rajouter la dll dans la liste des autorisations dans le registre (voir dans le readme). ca vient peut-être de là.

Commentaire de JackosKing le 18/07/2004 13:26:20

apparement j'ai tous les droits admin, puisque j'ai pu installer delphi, et essayer un exemple delphi utilisant la même methode pour ajouter un item dans le menu contextuel (avec une dll) et que cet exemple marchait parfaitement.
Enfin ce n'est pas bien grave.

Commentaire de ymca2003 le 29/10/2004 15:32:53

Appareemnt, la vérif des flags dans CTxtShExtMenu::QueryContextMenu enpêche l'ajout de l'item dans certains cas, en enlevant :

if(!(uFlags&CMF_VERBSONLY) && !(uFlags&CMF_EXPLORE))
return NOERROR;

ça à l'air de marcher

Commentaire de romain_bossart11 le 17/06/2007 11:47:49

Bonjour,
je débute en VC++ (Express Edition). Après avoir installé et déclaré les include et librairies, le build commence bien puis me donne les erreurs suivantes :

Registry.obj : error LNK2019: unresolved external symbol __imp__RegDeleteKeyA@8 referenced in function _DllUnregisterServer@0
Registry.obj : error LNK2019: unresolved external symbol __imp__RegCloseKey@4 referenced in function "int __cdecl WriteKeyString(struct HKEY__ *,char const *,char const *,char const *)" (?WriteKeyString@@YAHPAUHKEY__@@PBD11@Z)
Registry.obj : error LNK2019: unresolved external symbol __imp__RegSetValueExA@24 referenced in function "int __cdecl WriteKeyString(struct HKEY__ *,char const *,char const *,char const *)" (?WriteKeyString@@YAHPAUHKEY__@@PBD11@Z)
Registry.obj : error LNK2019: unresolved external symbol __imp__RegCreateKeyExA@36 referenced in function "int __cdecl WriteKeyString(struct HKEY__ *,char const *,char const *,char const *)" (?WriteKeyString@@YAHPAUHKEY__@@PBD11@Z)
TxtShExtMenu.obj : error LNK2019: unresolved external symbol __imp__DragQueryFileA@16 referenced in function "public: virtual long __stdcall CTxtShExtMenu::Initialize(struct _ITEMIDLIST const *,struct IDataObject *,struct HKEY__ *)" (?Initialize@CTxtShExtMenu@@UAGJPBU_ITEMIDLIST@@PAUIDataObject@@PAUHKEY__@@@Z)
TxtShExtProp.obj : error LNK2001: unresolved external symbol __imp__DragQueryFileA@16
TxtShExtMenu.obj : error LNK2019: unresolved external symbol __imp__ShellExecuteA@24 referenced in function "public: virtual long __stdcall CTxtShExtMenu::InvokeCommand(struct _CMINVOKECOMMANDINFO *)" (?InvokeCommand@CTxtShExtMenu@@UAGJPAU_CMINVOKECOMMANDINFO@@@Z)

Quelqu'un aurait-une idée pour m'aider à compiler ShExt ?

Merci d'avance

Commentaire de BruNews le 17/06/2007 12:00:08 administrateur CS

Tu as bien posé VC++ et platform SDK comme indiqué ici ?
http://www.cppfrance.com/code.aspx?ID=38359

Ensuite pour le type de projet c'est WIN32 APP qu'il faut et non du DotNet.

Commentaire de romain_bossart11 le 17/06/2007 12:01:09

Re-bonjour,

Laissez tomber mon commentaire précédent. Navré de vous avoir dérangé.
J'ai trouvé comment faire (corewin...props)

A++

Commentaire de romain_bossart11 le 17/06/2007 12:03:39

BruNews, merci pour ta réponse, effectivement, c'était un problème de configuration de VC++.
Je suis linuxien, et je ne connais pas encore cet outil.

Merci et a+
Romain

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales