2009-05-13 5 views
5

Ich habe eine ActiveX-DLL mit VB6 erstellt und verpackt mit dem Paket & Deployment Wizard, die eine Cab-Datei und eine Demo-HTML-Seite ergeben hat.Wie rufe ich eine Methode in einer benutzerdefinierten ActiveX-DLL mit Java/Vb-Skript

Diese ActiveX-DLL enthält eine simgle-Methode, die eine Zeichenfolge zurückgibt und keine Argumente akzeptiert.

Das Problem, das ich habe, ist, dass, wenn ich die Methode aufrufen, bekomme ich immer "Objekt unterstützt diese Eigenschaft oder Methode" Fehler. Aber es tut unterstützt die Methode, die ich anrufe.

Was ich versuche zu erreichen, ist für die Benutzer auf eine Webseite zu gehen, die einige Java oder Vb-Skript enthält, die Methode in meinem ActiveX aufruft und den String-Wert zurückgegeben. Die DLL soll als Client-Seite bezeichnet werden.

Mein Test Web-Seite ist wie folgt:

<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> 

ich offensichtlich etwas falsch zu machen bin, aber ich weiß nicht, was. Muss ich im VB6-Projekt etwas Besonderes für die Klasse tun, damit ich auf die Methode zugreifen kann? rufe ich die DLL falsch?

Danke für Ihre Hilfe.

+0

Können Sie die VB6-Code für SaveClipboardToImage posten? –

Antwort

6

Javascript weiß nichts über Class1. Sie müssen das Objekt in Javascript bringen.

Versuchen:

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

       alert(filename); 
      } 
      catch(e) 
      { 
       alert(e.message); 
      }      
     } 
Verwandte Themen