2009-05-13 8 views
5

He creado un dll ActiveX usando VB6 y lo he empaquetado usando el Asistente de implementación del paquete & que ha resultado en un archivo cab y una página HTML de demostración.Cómo invoco un método en un dll ActiveX personalizado usando el script java/vb

Este dll de ActiveX contiene un método de simulación que devuelve una cadena y no acepta ningún argumento.

El problema que tengo es que cuando llamo al método siempre obtengo un "El objeto no admite esta propiedad o método" error. Pero hace compatible con el método que estoy llamando.

Lo que estoy tratando de lograr es que los usuarios van a una página web que tiene una secuencia de comandos Java o VB en él que llama al método en mi ActiveX y obtiene el valor cadena devuelta. La DLL está destinada a ser llamada del lado del cliente.

Mi página web de prueba es el siguiente:

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

Obviamente estoy haciendo algo mal, pero no sé qué. ¿Tengo que hacer algo especial para la clase en el proyecto de VB6 para que pueda acceder el método? ¿Llamo incorrectamente a la DLL?

Gracias por su ayuda.

+0

Se puede publicar el código de Visual Basic 6 para SaveClipboardToImage? –

Respuesta

6

Javascript sabe nada acerca de Clase 1. Tienes que obtener el objeto en javascript.

Probar:

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

       alert(filename); 
      } 
      catch(e) 
      { 
       alert(e.message); 
      }      
     } 
Cuestiones relacionadas