Enumiando todos os objetos de implementação de IDispatch em uma máquina
Pergunta
Eu gostaria de enumerar todos os objetos de suporte do IDispatch em uma máquina. No momento, preciso saber qual é o ID da classe ou o ID do prog, mas, para inspecionar minha máquina, gostaria de saber se posso apenas enumerar todos os objetos que implementam o IDispatch.
Isso é possível?
Qualquer ajuda seria muito apreciada :)
Solução
Esse é um pedido muito estranho. A massagem está na estipulação "All". Enumeração simples através da chave HKCR typeLib e loadTypelib () não é suficiente, um servidor COM não é necessário para publicar uma biblioteca de tipos. Você realmente teria que coCreateInstance () o coclass e o queryinterface para o idispatch. Isso não é apenas lento, também é arriscado.
Você pode obter uma resposta melhor se explicar por que realmente pensaria em fazer algo assim. Chamar o idispatch :: Invoke () sem ter algum tipo de idéia o que os argumentos significam ou o que os efeitos colaterais podem ser são uma receita para o desastre. Fique longe de nomes de métodos como "ReformatDrive".