Question

Dans le cadre d'un profileur JavaScript pour IE 6/7, je devais charger un débogueur personnalisé que j'avais créé dans IE.Cela fonctionne bien sous XP, mais je n'arrive pas à le faire fonctionner sous Vista (histoire complète ici : http://damianblog.com/2008/09/09/tracejs-v2-rip/).

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;
}
Était-ce utile?

La solution

Il serait utile de savoir quel était le résultat de l'erreur.

Problèmes possibles auxquels je peux penser :

Si votre autorisation est refusée, il est probable que vous manquiez certains éléments requis. Privilège dans votre ACL.Les nouveaux ne sont parfois pas bien documentés, vérifiez les derniers en-têtes du SDK Platform pour voir s'il y en a de nouveaux qui sont encore disponibles.Il se peut que sous Vista, le privilège ne soit plus attribué par défaut à votre ACL.

Si vous obtenez une sorte d’erreur de type Not Found, il peut s’agir d’un problème 32 bits/64 bits.Votre API de débogage ne peut être disponible que sous COM 64 bits sur Vista 64.L'interopérabilité 32 bits/64 bits peut être très déroutante.

Autres conseils

Je ne suis pas familier avec ces interfaces, mais des échecs inattendus dans Vista peuvent nécessiter le dépassement d'une invite UAC.Avez-vous essayé de démarrer le débogueur avec les privilèges d'administrateur ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top