2013-08-21 31 views
1

我正在使用从JS/JQuery调用的嵌入式ActiveX媒体播放器。我可以调用函数并在播放器中设置属性而不会出现问题。然而,我需要从ActiveX控件的属性之一是长*指针,它具有签名....Javascript - 从COM/ActiveX获取LONG *

get_CurrentPlaybackTime_Sec(LONG* pVal) 

..我不知道从哪里开始。我做了一些谷歌搜索,并发现一些松散的JavaScript引用BSTR,但我不确定如何实现它。我需要一个等同于我在C#中使用的'out',我想。这是我到目前为止...

$("#fooBtn").click(function(){ 
    var currTime; 
    o.get_CurrentPlaybackTime_Sec(currTime); 
    $("#fooDiv").text(currTime); 
    }); 

有人能指点我在正确的方向吗?任何帮助非常感谢。

+0

我希望你正在开发例如一个Windows小工具,而不是只能在IE浏览器中运行的东西... – ThiefMaster

+0

@ThiefMaster,它有助于解决这个特定问题吗? – Noseratio

+1

这是一个跨浏览器的东西,虽然限于Windows,但对于内部公司使用,他们对此感到满意。目前在Mozilla和Chrome中进行测试。 – dandanknight

回答

0

不可能使用JavaScript,但是您可以在同一页面上使用一段VBScript,从而使其成为可能。我不是VB的专家,但我会尝试找到一些示例代码。

[更新]

试试这个:

<script language="vbscript"> 
Function GetCurrentPlaybackTime() 
    Dim objValue 
    call o.get_CurrentPlaybackTime_Sec(objValue) 
    GetCurrentPlaybackTime = objValue 
End Function 
</script> 

<script language="javascript"> 
    $("#fooBtn").click(function(){ 
    $("#fooDiv").text(GetCurrentPlaybackTime()); 
    }); 
</script> 

将帖子你没有表现出get_CurrentPlaybackTime_Sec的IDL签名。如果它看起来像这样:HRESULT get_CurrentPlaybackTime_Sec([out, retval]LONG* pVal),只需应该能够从JavaScript调用它:

var currTime = o.get_CurrentPlaybackTime_Sec(); 

如果没有retval,VBScript中是必需的。

+0

干杯,我会给它一个。 – dandanknight

+0

没问题,让我们知道它是否有效。显然,我无法验证它。 – Noseratio

+0

检查我最后一次关于'retval'的更新。希望它在那里。 – Noseratio

相关问题