91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用COM組件怎么調用JavaScript函數

發布時間:2021-03-10 15:46:19 來源:億速云 閱讀:149 作者:Leah 欄目:web開發

這期內容當中小編將會給大家帶來有關使用COM組件怎么調用JavaScript函數,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1 、組件方(C++)

組件A 的方法在IDL中定義:

[id(2)] HRESULT longCalc([in] DOUBLE v1, [in] DOUBLE v2, [in, optional] VARIANT scriptCallback);

組件A的方法實現:

// 假設回調原型為:  
// scriptCallbackFunc(LONG nCurrentProgress, LONG nTotalProgress, BSTR bstrProgressName); 
// 此方法由JS腳本來實現 
STDMETHODIMP CA:: longCalc (DOUBLE v1, DOUBLE v2, VARIANT scriptCallback) 
{ 
  CComPtr<IDispatch> spCallback; 
  if (scriptCallback.vt == VT_DISPATCH) 
     spCallback = scriptCallback.pdispVal; 
   
 
  // 參數準備 
  CComVariant varResult; 
  CComVariant avarParams[3]; 
  avarParams[0] = “開始計算股票”;    // bstrProgressName 
  avarParams[0].vt = VT_BSTR; 
  avarParams[1] = 100;               // nTotalProgress 
  avarParams[1].vt = VT_I4; 
  avarParams[2] = 0;                 // nCurrentProgress 
  avarParams[2].vt = VT_I4; 
  DISPPARAMS params = { avarParams, NULL, 3, 0 }; 
 
 
  if(spCallback) 
     spCallback->Invoke(0,  
        IID_NULL,  
        LOCALE_USER_DEFAULT,  
        DISPATCH_METHOD,  
        &para;ms, &varResult, NULL, NULL); 
 
  BOOL bFinished = false; 
   
 
  while(!bFinished) 
  { 
     // 計算工作… 
     Sleep(1000); 
     v1 = v1+v2; 
  
    // 回調客戶 
    if(spCallback) 
    { 
      avarParams[0] = “正在計算股票…”; 
      avarParams[2] = 0; 
      spCallback->Invoke(0,  
             IID_NULL,  
             LOCALE_USER_DEFAULT,  
             DISPATCH_METHOD,  
             &para;ms, &varResult, NULL, NULL); 
     } 
 
     if(…) 
         bFinished = TRUE; 
   } // while OK! 
 
   return S_OK; 
}

2、 客戶方(JS)

<script language="javascript"> 
<!-- 
   // 符合回調原型:scriptCallbackFunc 
   function scfDisplayProgress(nCurrentProgress, nTotalProgress, bstrProgressName) 
   { 
       window.status = bstrProgressName + “:”+(nCurrentProgress *100/TotalProgress); 
   } 
  
   // 創建組件并執行longCalc 
   var objA = new ActiveXObject(“MyCom.A”); 
 
    // 使用回調: 執行時在IE狀態欄顯示進度 
    objA. longCalc (100, 200, scfDisplayProgress);  
 
    // 不使用回調 
    objA. longCalc (100, 200);  
//--> 
</script>

上述就是小編為大家分享的使用COM組件怎么調用JavaScript函數了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

田东县| 江阴市| 集安市| 芮城县| 田东县| 澜沧| 额济纳旗| 修武县| 大连市| 巴彦县| 湾仔区| 新沂市| 衢州市| 广平县| 乌什县| 德钦县| 宜章县| 汤阴县| 石景山区| 汝南县| 同仁县| 英山县| 融水| 五常市| 绵阳市| 秦皇岛市| 临清市| 棋牌| 宁陵县| 蒲江县| 桑日县| 繁峙县| 新田县| 和政县| 崇明县| 武川县| 兴义市| 承德县| 张家川| 宝坻区| 叙永县|