2013-08-21 32 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

相關問題