Pergunta

Eu tenho um ActiveX (3 ª parte, nenhuma fonte) com um método que tem um parâmetro de referência como esta:

HRESULT GetSomething(
[in] short param1,
[out] BSTR* someString);

Em C ++ você executá-lo como este:

BSTR someString = NULL
m_activeX.GetSomething(0, &someString);

Como eu poderia executar essa via JavaScript? Todas as outras funções no trabalho bem ActiveX, mas este parece impossível? Se não for possível em JavaScript, é no VBScript? Eu não tive nenhuma sorte em qualquer um.

BTW, Isso deve ser feito no Internet Explorer

Foi útil?

Solução

Eu não posso lhe dar uma resposta definitiva, mas eu não acredito que isso pode ser feito. Espero que alguém vai me provar que estou errado, mas aqui é porque eu acho que ele não pode trabalhar ...

Em Javascript, todas as variáveis ??são passados ??por valor. No IE, você vai criar uma instância da classe ActiveXObject javascript para embrulhar o objeto COM. Mesmo que objeto wrapper poderia obter o valor do seu objeto COM, não há nenhuma maneira em JavaScript para que ela passe esse valor de volta para você.

Se você sabe que você estará funcionando no IE no Windows, você pode tentar usar VBScript em vez de javascript. Vbscript faz apoio passagem por referência, de modo que você pode ter mais sorte com isso.

Espero que ajuda.

Outras dicas

// Using javascript
var someString = activeXObj.GetSomething(0);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top