2009-05-13 12 views
5

Ho creato una dll ActiveX utilizzando VB6 e l'ho impacchettata usando il Package & Deployment Wizard che ha prodotto un file CAB e una pagina HTML dimostrativa.Come si chiama un metodo in una dll ActiveX personalizzata utilizzando lo script java/vb

Questa DLL ActiveX contiene un metodo simgle che restituisce una stringa e non accetta argomenti.

Il problema che sto avendo è che quando chiamo il metodo ottengo sempre un "Oggetto non supporta questa proprietà o metodo" errore. Ma lo fa supporta il metodo che sto chiamando.

Quello che sto cercando di ottenere è che gli utenti visitino una pagina web che contiene script java o vb che invoca il metodo nel mio ActiveX e ottiene il valore di stringa restituito. La DLL è destinata a essere chiamata lato client.

La mia pagina web di prova è la seguente:

<html> 
<head> 
    <title>SaveClipboardImage.CAB</title> 
    <object id="Class1" classid="CLSID:" codebase="SaveClipboardImage.CAB#version=1,0,0,0"></object> 
    <script type="text/javascript"> 
      function displaymessage() 
      { 
       try 
       { 
       var filename; 

       filename = Class1.SaveClipboardToImage(); 

       alert(filename); 
       } 
       catch(e) 
       { 
        alert(e.message); 
       }    
      } 
    </script> 
</head> 
<body>  
    <input type="BUTTON" onclick="displaymessage()" value="preview" /> 
</body> 
</html> 

Sono ovviamente facendo qualcosa di sbagliato, ma io non so cosa. Devo fare qualcosa di speciale per la classe nel progetto VB6 in modo da poter accedere al metodo? Sto chiamando la DLL in modo errato?

Grazie per il vostro aiuto.

+0

potete inserire il codice VB6 per SaveClipboardToImage? –

risposta

6

Javascript non sa nulla di Class1. Devi ottenere l'oggetto in javascript.

Prova:

 function displaymessage() 
     { 
      try 
      { 
       var filename; 
       var class1 = document.getElementById("Class1"); 
       filename = class1.SaveClipboardToImage(); 

       alert(filename); 
      } 
      catch(e) 
      { 
       alert(e.message); 
      }      
     } 
Problemi correlati