最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How do I call a method in a custom ActiveX dll using javavb script - Stack Overflow

programmeradmin6浏览0评论

I have created an ActiveX dll using VB6 and packaged it using the Package & Deployment Wizard which has resulted in a cab file and a demo HTML page.

This ActiveX dll contains a simgle method that returns a string and accepts no arguments.

The trouble I'm having is that when I call the method I always get a "Object does not support this property or method" error. But it does support the method I'm calling.

What I'm trying to achieve is for users to go to a web page that has some java or vb script in it that calls method in my ActiveX and gets the string value returned. The DLL is intended to be called client side.

My test web page is as follows:

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

I'm obviously doing something wrong, but I don't know what. Do I have to do something special to the class in the VB6 project so I can access the method? Am I calling the DLL incorrectly?

Thanks for your help.

I have created an ActiveX dll using VB6 and packaged it using the Package & Deployment Wizard which has resulted in a cab file and a demo HTML page.

This ActiveX dll contains a simgle method that returns a string and accepts no arguments.

The trouble I'm having is that when I call the method I always get a "Object does not support this property or method" error. But it does support the method I'm calling.

What I'm trying to achieve is for users to go to a web page that has some java or vb script in it that calls method in my ActiveX and gets the string value returned. The DLL is intended to be called client side.

My test web page is as follows:

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

I'm obviously doing something wrong, but I don't know what. Do I have to do something special to the class in the VB6 project so I can access the method? Am I calling the DLL incorrectly?

Thanks for your help.

Share Improve this question asked May 13, 2009 at 14:02 Chris BChris B 5,45111 gold badges48 silver badges58 bronze badges 1
  • Can you post the VB6 code for SaveClipboardToImage? – Mike Spross Commented May 13, 2009 at 15:37
Add a ment  | 

1 Answer 1

Reset to default 6

Javascript knows nothing about Class1. You have to get the object into javascript.

Try:

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

                alert(filename);
            }
            catch(e)
            {
                alert(e.message);
            }                       
        }
发布评论

评论列表(0)

  1. 暂无评论