recherche GUID désespérément
recherche GUID désespérément
Ai cherché avec Oleview, et dans le registre : deux valeurs incertaines, et m'en manque deux.
Quelqu'un sait ou les trouver:
IID_IWbemRefresher:
;B60EF4F1-A411-462B-B51E-477CBDBB90B4 (pas sûr)
CLSID_IWbemRefresher:
;DCF33DF4-B510-439F-832A-16B6B514F2A7 (pas sûr)
IID_IWbemConfigureRefresher:
???
IID_IWbemObjectAccess:
???
Quelqu'un sait ou les trouver:
IID_IWbemRefresher:
;B60EF4F1-A411-462B-B51E-477CBDBB90B4 (pas sûr)
CLSID_IWbemRefresher:
;DCF33DF4-B510-439F-832A-16B6B514F2A7 (pas sûr)
IID_IWbemConfigureRefresher:
???
IID_IWbemObjectAccess:
???
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Pour IExtractIcon :
{7A80E4A8-8005-11D2-BCF8-00C04F72C717}
j'ai chopé ça dans le registre en cherchant ExtractIcon, c'était dans une sous clé CLSID donc ça doit être bon, si quelqu'un peut confirmer
{7A80E4A8-8005-11D2-BCF8-00C04F72C717}
j'ai chopé ça dans le registre en cherchant ExtractIcon, c'était dans une sous clé CLSID donc ça doit être bon, si quelqu'un peut confirmer

Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Merci.
J'avais fini par trouver CLSID_WbemRefresher avant de voir ta réponse, mais non sans peine: recherche dans le registre, où ça apparaît sous le titre WMI universal refresher...
Comment t'y es-tu pris?
Un truc penible dans Olewiew : pas de fonction de recherche.
Connaîs-tu un truc du même genre pour obtenir les identifiants en tout genre?
J'avais fini par trouver CLSID_WbemRefresher avant de voir ta réponse, mais non sans peine: recherche dans le registre, où ça apparaît sous le titre WMI universal refresher...
Comment t'y es-tu pris?
Un truc penible dans Olewiew : pas de fonction de recherche.
Connaîs-tu un truc du même genre pour obtenir les identifiants en tout genre?
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
j'ai trouvé un exemple sur le net en je sais pas quoi et c'était pas la même valeur que celle que j'ai donné (c'est la seule chose que j'ai compris dedans d'ailleurs)
IExtractIcon : {000214eb-0000-0000-c000-000000000046}
IExtractIcon : {000214eb-0000-0000-c000-000000000046}
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
c'est vrai, j'ai pas cherché dans les .idl.
Déjà que régulièrement je doit fouiller dans les .h
Faudrait que Microsoft mette à disposition un outil pour récupérer toutes les structures, GUID,..
Il y a la PSDK (que j'ai), mais les constantes ne sont pas accessibles directement. Ca dit quand même où les trouver, mais bon...
Il y avait Apiviewer, mais il n'est plus très à jour.
Faut se débrouiller quoi!
Déjà que régulièrement je doit fouiller dans les .h
Faudrait que Microsoft mette à disposition un outil pour récupérer toutes les structures, GUID,..
Il y a la PSDK (que j'ai), mais les constantes ne sont pas accessibles directement. Ca dit quand même où les trouver, mais bon...
Il y avait Apiviewer, mais il n'est plus très à jour.
Faut se débrouiller quoi!
Voici un code qui extrait du registre la valeur IDD_ associée d'une interface si elle exite dans celui-ci
Ne fonctionne que sous XP
Il ya actuellement 1983 interfaces déclarées en PB (windows). Les noms de ces interfaces ne commencent que par les lettres a, d, f, h, i, et _
Si on veut utiliser une interface dont le nom commence par une autre lettre, il faudra la déclarer.
Ne fonctionne que sous XP
Il ya actuellement 1983 interfaces déclarées en PB (windows). Les noms de ces interfaces ne commencent que par les lettres a, d, f, h, i, et _
Si on veut utiliser une interface dont le nom commence par une autre lettre, il faudra la déclarer.
Code : Tout sélectionner
; Auteur : Denis
; Version de PB : 3.92 beta et quelque chose ....
; Date : 06 février 2005
;
; Explication du programme :
; récupère la clée de l'interface (contenue dans le registre) et la met sous la forme de Datas
; dans le presse papier
; Testé avec XP - ne fonctionne que sous XP
Global B$
Procedure.s GetDATA(Name.s, Value.s)
; retourne une chaine de type
; IID_IShellFolder : ; cléf du registre mise sous la forme de DATA
; ; Value.s = "{000214E6-0000-0000-C000-000000000046}"
; Data.l $000214E6
; Data.w $0000, $0000
; Data.b $C0, $00, $00, $00, $00, $00, $00, $46
Nom.s = "IID_" + Name + " :"
Data1.s = "Data.l $" + Mid(Value, 2, 8)
Data2.s = "Data.w $" + Mid(Value, 11, 4) + ", $" + Mid(Value, 16, 4)
Data3.s = "Data.b $" + Mid(Value, 21, 2) + ", $" + Mid(Value, 23, 2)
For i = 26 To 36 Step 2
Data3 + ", $" + Mid(Value, i, 2)
Next i
ProcedureReturn Nom + Chr(10) + Data1 + Chr(10) + Data2 + Chr(10) + Data3
EndProcedure
Procedure.s Get_IDD_Interface(MonInterface.s)
If RegOpenKeyEx_(#HKEY_ClASSES_ROOT, "Interface", 0, #KEY_ENUMERATE_SUB_KEYS, @hKey) = #ERROR_SUCCESS
iSubkey = 0 ; compteur utilisé par RegEnumKeyEx pour énumérer les SubKey
; incémenté de 1 à chaque tour de boucle
lpszName = AllocateMemory(100) ; le buffer pour la chaine
lpcchName = 100 ; variable indiquant la taille de la chaine
lpszValue = AllocateMemory(100)
pcbValue = 100
Enum = RegEnumKeyEx_(hKey, iSubkey, lpszName, @lpcchName, 0, 0, 0, @lpftLastWrite)
B$ = MonInterface + ": Interface non trouvée dans le registre"+ Chr(10)+ Chr(10)
While Enum <> #ERROR_NO_MORE_ITEMS
; on cherche si l'interface est dans le registre
If RegQueryValue_(hKey, lpszName, lpszValue, @pcbValue) = #ERROR_SUCCESS
If UCase(PeekS(lpszValue)) = UCase(MonInterface)
B$ = "; Interface: " + PeekS(lpszValue) + Chr(10)+ "; Clef " + PeekS(lpszName) + Chr(10) + GetDATA(PeekS(lpszValue), PeekS(lpszName)) + Chr(10) + Chr(10)
Break
EndIf
EndIf
iSubkey + 1 ; on incrémente le compteur
pcbValue = 100
lpcchName = 100
Enum = RegEnumKeyEx_(hKey, iSubkey, lpszName, @lpcchName, 0, 0, 0, @lpftLastWrite)
Wend
FreeMemory(lpszName) : FreeMemory(lpszValue)
RegCloseKey_(hKey)
SetClipboardText(B$)
ProcedureReturn B$
Else
MessageRequester("RegOpenKeyEx Interface", " a échoué", 16)
ProcedureReturn ""
EndIf
EndProcedure
Debug Get_IDD_Interface("IclassFactory")
Debug Get_IDD_Interface("IExtractIcon")
Debug Get_IDD_Interface("IShellFolder")
Debug Get_IDD_Interface("IEnumIDList")
Debug Get_IDD_Interface("WbemConfigureRefresher")
Debug Get_IDD_Interface("IWbemObjectAccess")
Debug Get_IDD_Interface("IWbemRefresher")
End