Announcement

Collapse
No announcement yet.

Status on COM / IDispatch / IUnknown ?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Status on COM / IDispatch / IUnknown ?

    I want to have a clear answer on this.

    Can I state that at the time of the writing the COM implimentation is not 100% up to the task. I have problems with passing IDispatch pointers to existing ActiveX components. So I guess the answer is 'yes'.

    Cheers

    Steven
    So here we are, this is the end.
    But all that dies, is born again.
    - From The Ashes (In This Moment)

  • #2
    Can I state that at the time of the writing the COM implimentation is not 100% up to the task[?]
    No, you can't say that.

    The software does what the software does. How you elect to use the software to implement your application is your call.

    (This may be one of those 'language' things).

    If the question is, "can I succesfully pass iDispatch pointers to existing ActiveX components using the PB compilers?", then that is a question which can be answered with a "yes" or "no" but I personally have no clue. You might want to ask PB support directly in those terms.
    Michael Mattias
    Tal Systems (retired)
    Port Washington WI USA
    [email protected]
    http://www.talsystems.com

    Comment


    • #3
      If you have a problem, it would be caused by incorrect usage. You should send a small example which can be compiled and executed to [email protected], and they'll show you what's wrong.

      Best regards,

      Bob Zale
      PowerBASIC Inc.

      Comment


      • #4
        Yes Michael, He can say that.

        Since you do not have an intimate knowledge of the inner workings of COM I do not think you can provide a valid argument against this statement. COM is a standard and if it does not work, as one feels comfortable using it based on experiance to date thus far, then it doesnt follow the standard.

        For instance, using a vb.net, c#, c++, vb com dll, I can (IN VB)

        Dim x as myobject

        Set x = new myobject

        x.foo

        set x = nothing

        with any activex type object with a com interface implemented. Does this usage follow the COM standards on usage? Everything I have read states that it does in vb.

        I can not do this using a PB DLL, since PB is late to the game on COM Servers Im guessing that PB may have missed something that would make it less than 100% compatible. Unless compatible means it only works with C, C++, Powerbasic then it is probably 100% compatible.

        I have sent a list of 8 items I have an issue with to PB Support and this is the response I received.

        I'll discuss these items with R&D and ask them to look into them as soon as possible. They will let me know about any special information or modifications to work this out. Be assured that PowerBASIC is, or will be 100% compatible with the COM standard. It may need explanations/examples, or even some modifications, but it will be forth coming very soon.
        this statement implies that they may not be 100% compatible.
        Sr. Software Development Engineer and Sr. Information Security Analyst,
        CEH, Digital Forensic Examiner

        Comment


        • #5
          I can not do this using a PB DLL [...]
          Is not related to...

          I have problems with passing IDispatch pointers to existing ActiveX components.
          Unfortunately, Steven has neglected to tell us what kind of problems he is having, nor what kind of ActiveX he is using. If they are visual ActiveX, then the use of an OLE container is needed.
          Forum: http://www.jose.it-berater.org/smfforum/index.php

          Comment


          • #6
            no, its not related to his problem but is related to his statement about 100% compatibility and michaels response to the statement.
            Sr. Software Development Engineer and Sr. Information Security Analyst,
            CEH, Digital Forensic Examiner

            Comment


            • #7
              >is not 100% up to the task[?]

              You can say this definitively without knowing the task?

              As long as you are at it, would you please pick my Lotto numbers?
              Michael Mattias
              Tal Systems (retired)
              Port Washington WI USA
              [email protected]
              http://www.talsystems.com

              Comment


              • #8
                "Yes Michael, He can say that. "

                Yes, Thomas, he can say that. But in this case, he would be wrong.

                There are many possibilities as to the underlying cause of his problem. Unless his code is seen, that can't be determined.

                Bob Zale
                PowerBASIC Inc.

                Comment


                • #9
                  Michael,

                  COM implimentation is not 100% up to the task
                  Regardless of his specific problem, his question was about compatibility. Yes I can say that . I have my own compatibility issues for which I already sent to support. and that response from support[email protected] implies that there may be compatibility issues. There is no need for guessing of magical numbers or whether or not fairies or leperchauns exist.
                  Sr. Software Development Engineer and Sr. Information Security Analyst,
                  CEH, Digital Forensic Examiner

                  Comment


                  • #10
                    That is not true at all.

                    The email you received was a very polite way of saying "We won't argue with your inference, but we'll check it out and see."

                    Until Steven provides clear information about the problem, the cause is simply wild speculation. A rush to judgement is foolish until then.

                    Bob Zale
                    PowerBASIC Inc.

                    Comment


                    • #11
                      Fair enough Bob,

                      however my email to support did not mention any compatibility issues. My email stated 8 Items I was having a problem with this particular implementation. It was PB support that offered up the implication. Whether it is my misunderstanding of PB's usage or not really makes no difference. Do not get me wrong, I love the product and have since I started using it but I can not use it in a way that I am accustomed to with the additional languages I am familiar with. COM is supposed to be easily transportable between these languages and I find that a PB COM Dll can not be easily transported to my clients machines to use. That being the case creating PB COM Components to sell as a COM SDK seems problematic if it can not be used in the way they are accustomed to either.
                      Sr. Software Development Engineer and Sr. Information Security Analyst,
                      CEH, Digital Forensic Examiner

                      Comment


                      • #12
                        Before things start to boil over here.

                        I have issued a problem to Jeff Daniels who is a support engineer with PowerBasic inc. I used an ActiveX control called Sax Basic ver 6.45 which is an old version (I agree, my customer did have this and I used it to test Powerbasic).

                        In this ActiveX control (which doesn't need an OLE Container since it's not a visual one), there is this method called AddExtension which takes a Dispatch argument. The moment I pass this over, the Sax Basic engine crashes. IN Visual Basic all is well.

                        Since this ActiveX is not actively used by the customer I decided to drop this and bought an ActiveX myself called Bee Basic (which is also an script interpreter). This ActiveX has a method called AddObject which has 3 arguments, the name of the Object as you want it to appear in the script, the IDispatch pointer and a flag for dealing with whether you want to call the methods in the passed object with the objectname or without as

                        Dim x as MyClass
                        MyClass.ShowInfo()

                        or

                        ShoWInfo

                        I haven't submit this tto PowerBasic but once again, when I pass the IDispatch, the ActiveX doesn't crash but the ActiveX (internally) is complaining about not being able to execute the script. In Visual Basic, all is well. I called support of the Bee Basic product and as it happens, the developer has left the building so I'm left in the cold on this one. Ok, the price for the ActiveX was just $50 but that's not the point. I could also buy WinWrap Basic which is the former Sax Basic but somehow I'm a weary about spending $5000 on a license. I could of course download the trial which I will shortly when I have time on my hands.

                        I don't know many ActiveX who take an IDispatch as an argument but if you find one, let me know.

                        So, my point is... PowerBasic delivers and yes I'm happy that I can create COM Objects that can be used with PowerBasic but somehow there is trouble on the horizon when third party controls which happen to work in Visual Basic start crashing when used in PowerBasic and using COm component developed in PowerBasic.

                        Cheers

                        Steven
                        Last edited by Steven Pringels 3; 2 Sep 2008, 02:19 AM.
                        So here we are, this is the end.
                        But all that dies, is born again.
                        - From The Ashes (In This Moment)

                        Comment


                        • #13
                          Steven--

                          "I haven't submit this to PowerBasic..."

                          PowerBASIC has tried to help you. But we cannot help you until you supply a specific example of a problem. You have not done so. It is impossible to diagnose your specific problem for you based upon just a vague description.

                          I have personally created hundreds of programs which pass an IDispatch object as a parameter. Always with 100% success. For the moment, I have to assume that the issue is in the way you are using it. PowerBASIC syntax is not the same as VB syntax.

                          You have already submitted at least one other "problem report" regarding PowerBASIC objects which was immediately solved by a correction in your code. In that case Jeff just showed you the help file. I have to assume this is the same situation unless you demonstrate some code which shows otherwise. I should also point out that this may not be entirely fair to your friends here as your comments could easily mislead them.

                          If/when you provide a specific executable example to PowerBASIC Support they'll look into it carefully. I hope you'll reconsider your stance and do that soon. Then everyone will benefit.

                          Bob Zale
                          PowerBASIC Inc.

                          Comment


                          • #14
                            Bob,

                            No, this is incorrect, the other problem that I submitted to Jeff, concerning Sax Basic, wasn't solved. Instead of using the dispatch method of invoking methods he changed to direct calls which didn't work at all. I then informed him about this and his reply was that the issue must be with the ActiveX that I provided to him. This can be the case but how can one know when you don't have the source code of that particular ActiveX.

                            The other problem, with Bee Basic, I will wrap up an example and send it to you asap.

                            Thanks in advance

                            Steven
                            So here we are, this is the end.
                            But all that dies, is born again.
                            - From The Ashes (In This Moment)

                            Comment


                            • #15
                              Bob,

                              I just submitted the other case to support regarding Bee Basic.

                              Kind regards

                              Steven
                              So here we are, this is the end.
                              But all that dies, is born again.
                              - From The Ashes (In This Moment)

                              Comment


                              • #16
                                Originally posted by Bob Zale View Post
                                Steven--

                                If/when you provide a specific executable example to PowerBASIC Support they'll look into it carefully. I hope you'll reconsider your stance and do that soon. Then everyone will benefit.

                                Bob Zale
                                PowerBASIC Inc.
                                Bob,

                                Believe me, I would happily change my stance and surely don't want to set a bad vibe regarding this wonderful product. You and your team did a great job considering the immense amount of work that has to be put into this. I'd rather blame myself or my stupidity or blame the ActiveX control for that matter, however at the time there is not enough information to indicate where the fault lies. So yes, you're correct, I should not start pointing fingers beforehand. My apologies for that.

                                Sincerely

                                Steven
                                So here we are, this is the end.
                                But all that dies, is born again.
                                - From The Ashes (In This Moment)

                                Comment


                                • #17
                                  Any news on this 'assumption' ?
                                  So here we are, this is the end.
                                  But all that dies, is born again.
                                  - From The Ashes (In This Moment)

                                  Comment

                                  Working...
                                  X