<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    在javascript中使用com組件的方法

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    轉載自:  http://dhailin.blog.163.com/blog/static/230738322011128102043880/

     

     

    首先創建一個COM組件,插入一個雙接口Itest,在此接口上實現以下三個方法:

    [cpp] view plaincopy
    1. STDMETHODIMP Ctest::test(void)    //無輸入輸出參數  
    2.   
    3. {  
    4.   
    5.      // TODO: 在此添加實現代碼  
    6.      MessageBox(NULL,L"test",L"test",MB_OK);  
    7.   
    8.    
    9.   
    10.      return S_OK;  
    11.   
    12. }  
    13.   
    14.    
    15.   
    16. STDMETHODIMP Ctest::test1(BSTR a1)   //有一個字符串輸入參數  
    17. {  
    18.   
    19.      // TODO: 在此添加實現代碼  
    20.     MessageBox(NULL,a1,L"test",MB_OK);  
    21.   
    22.      return S_OK;  
    23.   
    24. }  
    25.   
    26. STDMETHODIMP Ctest::test3(BSTR* a1)  //有一個BSTR* 輸出參數  
    27. {  
    28.   
    29.      // TODO: 在此添加實現代碼  
    30.    
    31.   
    32.      MessageBox(NULL,L"test3",L"test",MB_OK);  
    33.   
    34.      *a1=::SysAllocString (L"烽火連三月家書抵萬金");  
    35.   
    36.      return S_OK;  
    37.   
    38. }  


     

    COM 中的上述三個方法分別演示無輸入輸出參數、有一個輸入參數、有一個輸出參數三種情況。程序編制好后,用regsvr32在系統中注冊組件,然后就可以在IE中用javascript調用com 組件的方法了,分兩種情況掉用,示例如下:

    1、   直接調用com方法

    建立一個html文本,并輸入以下內容:

    [html] view plaincopy
    1. <html>  
    2.   
    3. <head>  
    4.   
    5. <title> 調用com組件的方法示例 </title>  
    6.   
    7. <script language="javascript">  
    8.   
    9. document.write("<hr>")  
    10.   
    11. var xml=new ActiveXObject("atldll.test.1")  
    12.   
    13. xml.test()  
    14.   
    15. xml.test1("向com方法中傳遞參數并調用com方法")                
    16.   
    17. var str=xml.test3() //從com方法中返回參數  
    18. document.write("str"+str)  
    19.   
    20. document.write(“<hr>”)  
    21.   
    22. </script>  
    23.   
    24. </head>  
    25.   
    26. <body>  
    27.   
    28. 演示IE腳本程序中調用com組件的方法  
    29. </body>  
    30.   
    31. </html>  


     

    2、   在javascript函數中調用com方法

    建立一個html文本,并輸入以下內容:

    [html] view plaincopy
    1. <html>  
    2.   
    3. <head>  
    4.   
    5. <title> donghailin active object </title>  
    6.   
    7. <script type="text/javascript">  
    8.   
    9. function displaymessage()  
    10.   
    11. {  
    12.   
    13. document.write("<hr>")  
    14.   
    15. var xml=new ActiveXObject("atldll.test.1")  
    16.   
    17. xml.test()  
    18.   
    19. xml.test1("向com組件傳遞字符串")                
    20.   
    21. var str=xml.test3()  //從com組件返回字符串  
    22. document.write("str"+str)  
    23.   
    24. document.write(“<hr>”)  
    25.   
    26. }  
    27.   
    28. </script>  
    29.   
    30. </head>  
    31.   
    32. <body>  
    33.   
    34. <form>  
    35.   
    36. <input type="button" value="Click me!" onclick="displaymessage()" >  
    37.   
    38. </form>  
    39.   
    40. </body>  
    41.   
    42. </html>  

    注意編寫的com組件供其他系統調用,因此輸入輸出參數字符串應是BSTR類型。

    3、設置com組件的屬性的方法

    首先在com組件中設置屬性。在接口類中贈加屬性變量

    BSTR m_bstr;

    右鍵單擊接口,選擇“贈加”-〉“添加屬性”在”添加屬性向導中“輸入屬性類型” 中輸入參數類型“BSTR” ,“屬性名”輸入“bstr",向導自動生成屬性函數put_bstr和get_bstr,如下:


     

    [cpp] view plaincopy
    1. STDMETHODIMP Ctest::get_bstr(BSTR* pVal)  
    2. {  
    3.  // TODO: 在此添加實現代碼  
    4.  *pVal=m_bstr;  
    5.  return S_OK;  
    6. }  
    7.   
    8. STDMETHODIMP Ctest::put_bstr(BSTR newVal)  
    9. {  
    10.  // TODO: 在此添加實現代碼  
    11.  m_bstr=newVal;  
    12.   
    13.  MessageBox(NULL,m_bstr,L"屬性測試",MB_OK);  
    14.  return S_OK;  
    15. }  


     

    下面的代碼演示在IE的javascript腳本中設置和獲得屬性

    [html] view plaincopy
    1. <html>  
    2. <head>  
    3. <title> donghailin active object </title>  
    4.   
    5. <script type="text/javascript">  
    6. function displaymessage()  
    7. {  
    8. document.write("<hr>")  
    9. var xml=new ActiveXObject("atldll.test.1")  
    10. xml.bstr="滿園春色鎖不住一枝紅杏出墻來"  //屬性是bstr,C++ 中屬性設置是put_bstr(...)  
    11. document.write("屬性返回值是:"+xml.bstr)  //c++中獲得屬性值get_bstr(變量指針)  
    12. document.write("<hr>")  
    13. }  
    14. </script>  
    15.   
    16. </head>  
    17. <body>  
    18. <table   align=center   width=50>    
    19. <form>  
    20. <input type="button" value="Click me!" onclick="displaymessage()" >  
    21. </form>  
    22. </table>  
    23.   
    24. </body>  
    25. </html>  

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全