2008-09-13 8 views
0

Dans le cadre d'un profileur JavaScript pour IE 6/7 Je avais besoin de charger un débogueur personnalisé que j'ai créé dans IE. J'ai eu ce travail bien sur XP, mais je ne pouvais pas le faire fonctionner sur Vista (histoire complète ici: http://damianblog.com/2008/09/09/tracejs-v2-rip/).IDebugProgramProvider2.GetProviderProcessData sur Vista

L'appel à GetProviderProcessData échoue sur Vista. Quelqu'un a des suggestions?

Merci, Damian

// Create the MsProgramProvider 
IDebugProgramProvider2* pIDebugProgramProvider2 = 0; 
HRESULT st = CoCreateInstance(CLSID_MsProgramProvider, 0, CLSCTX_ALL, IID_IDebugProgramProvider2, (void**)&pIDebugProgramProvider2); 
if(st != S_OK) { 
    return st; 
} 

// Get the IDebugProgramNode2 instances running in this process 
AD_PROCESS_ID processID; 
processID.ProcessId.dwProcessId = GetCurrentProcessId(); 
processID.ProcessIdType = AD_PROCESS_ID_SYSTEM; 

CONST_GUID_ARRAY engineFilter; 
engineFilter.dwCount = 0; 

PROVIDER_PROCESS_DATA processData; 

st = pIDebugProgramProvider2->GetProviderProcessData(PFLAG_GET_PROGRAM_NODES|PFLAG_DEBUGGEE, 0, processID, engineFilter, &processData); 
if(st != S_OK) { 
    ShowError(L"GPPD Failed", st); 
    pIDebugProgramProvider2->Release(); 
    return st; 
} 

Répondre

1

Il serait utile de savoir ce que le résultat d'erreur était.

problèmes possibles que je peux penser:

Si votre obtenir la permission refusée, votre plus probable que certains disparus requried Privilege dans votre ACL. Les nouveaux ne sont parfois pas bien documented, vérifiez les derniers en-têtes de plate-forme de SDK pour voir s'il y en a de nouveaux. Il se peut que sous Vista, le privilège ne soit plus affecté par défaut à votre ACL.

Si obtenir une sorte d'erreur de type non trouvé, alors il peut être 32bit/64bit problème. Votre API de déboguage ne peut être disponible que sous COM 64 bits sur Vista 64. L'interopération 32 bits/64 bits peut être très déroutante.

+0

J'ai cessé de travailler sur ce point, car IE8 apporte un soutien profileur intégré - Je vais marquer votre réponse que la réponse et upvote il. – Damian

0

Je ne suis pas au courant de ces interfaces, mais des pannes inattendues dans Vista peut exiger d'être passé une invite UAC. Avez-vous essayé de démarrer le débogueur avec des privilèges d'administrateur?

+0

Oui je l'ai essayé - merci pour la suggestion cependant. – Damian

Questions connexes