Acesso Variable C ++ ATL Membro ajuda
Pergunta
Eu não estou familiarizado com isso, e pode usar um pontapé inicial.
Eu estou usando ATL (não gerenciado C ++) o controle do usuário e gostaria de usar o objeto Shockwave ActiveX. Eu preciso saber como declarar isso para que eu possa definir uma propriedade ou chamar um método.
Por exemplo, se eu pudesse atribuir uma variável a ele, então eu gostaria de chamar de 'Variável> LoadMovie ()'
Eu sei que isso é super ridículo ... quase vergonha de perguntar-lo aqui. ;) (Quase)
Solução
Se você #import a dll (que eu recomendo quando se trabalha com COM porque torna a sua vida muito mais fácil), você pode usar um ponteiro inteligente emparelhado com o CLSID do objeto. Lembre-se que as classes de ponteiro inteligente ter o pós-fix 'PTR' após o nome da interface.
Por exemplo:
ISomeInterfacePtr pSomeInterface( CLSID_SomeComponent );
HRESULT hr = pSomeInterface->SomeMethod();
Espero que ajude.
EDIT: Se você quiser verificar o HRESULT da atribuição, você pode fazer o seguinte:
ISomeInterfacePtr pSomeInterface = 0;
HRESULT hr = pSomeInterface.CreateInstance( CLSID_SomeComponent );
Outras dicas
Eu cortei e colar o código necessário tantas vezes eu não consigo lembrar a sintaxe exata, mas você tem que:
obter um CComPtr <> do interface correta, CreateInstance o objecto QueryInterface para obter a interface que você quer (supondo que você não está usando o CComPtr)
, em seguida, chamar métodos nele.
Como alternativa, você pode #import a dll, então o compilador irá gerar uma classe C ++ com todos os métodos e propriedades para você.