Announcement

Collapse
No announcement yet.

winsig.tlb type library missing some methods

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

  • winsig.tlb type library missing some methods

    I have eSignal Version 7.9, and have successfully established a link to eSignal servers through Desktop API (winsig.tlb). However, some ActiveX methods are simply not available to my application; for example GetBasicQuote() and GetBar(). Where are these missing methods (there may be others missing as well)?

    I have already re-downloaded and re-installed eSignal 7.9 to make sure that I did not have an out-of-date type library.

    It seems that the missing methods may not have been exposed in the Active X properly by the developers.

    Below is a list of methods that are exposed to my development environment (you can see that the above mentioned two are missing from the list for some unknown reason).:

    IESignal_NewIHooks
    IESignal_OpenIHooks
    IESignal_ActiveIHooks
    IESignal_IHooksDoSymbolLink
    IESignal_IHooksRequestSymbol
    IESignal_IHooksReleaseSymbol
    IESignal_IHooksGetGetTitle
    IESignal_IHooksGetGetCurrentLinkingSymbol
    IESignal_IHooksGetIsEntitled
    IESignal_IHooksGetGetNumBars
    IESignal_IHooksGetRequestHistory
    IESignal_IHooksReleaseHistory
    IESignal_IHooksGetIsHistoryReady
    IESignal_IHooksSetApplication
    IESignal_IHooksSetSupportFlags
    IESignal_IHooksGetXMLToPlaceOrderFlag
    IESignal_IHooksGetXMLGetNumOrderItems
    IESignal_IHooksReleaseTimeSales
    IESignal_IHooksGetGetNumTimeSalesBars
    IESignal_IHooksGetGetNumTimeSalesRtBars
    IESignal_IHooksSetStatusBar
    IESignal_IHooksGetGetAppHWND
    IESignal_IHooksGetGetAppTime
    IESignal_IHooksGetGetAppVersion
    IESignal_IHooksGetGetAppBuildNumber
    IESignal_IHooksGetGetNumSymbolGroups
    IESignal_IHooksGetGetSymbolGroupColor
    IESignal_IHooksSetGroupSymbol
    IESignal_IHooksGetGetLastOrderHWND
    IESignal_IHooksGetIsTimeSalesReady
    IESignal_IHooksReleaseAllHistory
    IESignal_IHooksReleaseAllTimeSales
    IESignal_IHooksSetAbsoluteIndexing
    IESignal_IHooksClearSymbolCache
    IESignal_IHooksOpenNewWindow
    IESignal_IHooksCreateNewWindow
    IESignal_IHooksXMLGetBasicQuote
    IESignal_IHooksSetSymbolByHWND
    IESignal_IHooksPostMessage
    IESignal_IHooksGetIsEntitledError
    IESignal_IHooksValidateUser
    IESignal_IHooksShowAlertDialog
    IESignal_IHooksIsValidSymbol
    IESignal_IHooksXMLGetFundamentalData
    IESignal_IHooksXMLGetTopTenList
    IESignal_IHooksSaveLayoutOrPage
    IESignal_IHooksLoadLayoutOrPage
    IESignal_IHooksEnableAlertNotifications

    All the "On Events" (e.g., IESignal__IHooksEventsRegOnOnQuoteChanged) seem to be there, so are not listed.

    Can you help? Obviously, I cannot use the Desktop API if my application does not have access to needed methods.

    Jim

  • #2
    I have done more testing and research, trying to find out why my program does not have access to the GetBasicQuote and GetBar methods. It appears that the reason is:

    "A method or property is unavailable if it is passing a data type that is not supported by the ActiveX standard."

    I came to this conclusion when I accessed the "winsig.tlb" type library by a different development system (National Instruments' LabView) that displayed a list of all the methods, but had the above mentioned two methods (as well as GetTimeSalesBar, RequestTimeSales, and XMLGetOrderItem) grayed out (disabled) and unavailable to be accessed. LabView documentation states that methods which are grayed out indicate "A method or property is unavailable if it is passing a data type that is not supported by the ActiveX standard."

    In light of this, would eSignal please let me know how I am to proceed with my development?

    Thank you,
    Jim

    Comment


    • #3
      Hi Jim, I'm not familiar with LabView, do you have links for the product?

      These functions show up fine in MS Visual Studio C#, C++ or VB.

      Thanks!

      Comment


      • #4
        Dion,

        For the National Instruments LabView product, see http://www.ni.com.

        I am actually trying to do my development with National Instruments LabWindows/CVI (also found at www.ni.com). This is a C compiler with IDE. Both products are ActiveX containers, and are compatible with Microsoft and Borland compilers.

        Thanks for trying to help me solve this problem.

        Jim

        Comment


        • #5
          Jim,

          I'm not sure your development environment is refusing to recognize these functions.

          I have a feeling that there is probably a setting in your IDE to allow use of these functions (ie, if they grey it out, they can at least recognize it, so perhaps there is a setting to override it).

          The only difference between these two and the others is that they require the passing back of a COM structure. However, this structure has been defined in the type lib.

          Can you look through your IDE's help for the ability to disable this ActiveX warning?

          Comment


          • #6
            Dion,

            I have looked extensively through the documentation of both the LabWindows and LabView IDEs and throughout National Instruments' knowledgebase and forums to see if there is a setting that can be changed to expose the missing methods, and have not found any. The LabView IDE shows the methods as grayed; however, the LabWindows/CVI IDE does not even show the methods at all. I have attached the vtable that the LabWindows/CVI automation wizard generates from the winsig.tlb type library. Notice the missing methods are shown as VtblPlaceHolder5, VtblPlaceHolder9, etc. because they could not be generated properly by LabWindows IDE.

            Further, Borland's C++ Builder 6 Developers Guide (pg 39-11) has a table of all valid IDL types in a type library, in order to be automation compatible. Valid types include short, long, single, double, DATE, BSTR, VARIANT, void, SAFEARRAY, among others. Clearly structs are not compatible and should be converted to a valid type; otherwise COM cannot guarantee that it can properly marshall the type correctly in all ActiveX (COM-compliant) environments.

            Jim
            Attached Files

            Comment


            • #7
              Hi Jim,

              As a replacement for GetBasicQuote, you may want to look at XMLGetBasicQuote, which returns it in a String.

              Comment


              • #8
                Dion,

                Your right, thanks for the suggestion. I have already tried XMLGetBasicQuote and it works. But, I need history data as well.

                Jim

                Comment


                • #9
                  I loaded the winsig.tlb type library into Borland C++ Builder 6, and got the message "/*Warning: unable to validate structure name: */" on GetBasicQuote, GetBar, RequestHistory, XMLToPlaceOrderFlag, XMLGetOrderItem, RequestTimeSales, GetTimeSalesBar, XMLGetFundamentalData and XMLGetTopTenList.

                  This indicates that the type library may not be fully compatible with Borland as well.

                  Can someone from eSignal please assist me in getting the winsig.tlb type library to be compatible with my development system of choice?

                  Thanks,
                  Jim

                  Comment


                  • #10
                    Hi Jim,

                    I'm sorry, I'm afraid that we only support the Microsoft development environments at this time for the Desktop API as this is the only environment that we are familiar with.

                    Could you see if Borland can read the info from winsig.exe instead of winsig.tlb ?

                    Comment


                    • #11
                      Dion,

                      When opening with Borland C++ Builder, winsig.exe yields the same as winsig.tlb: "/*Warning: unable to validate structure name: */" on the aforementioned methods/properties.

                      Jim

                      Comment


                      • #12
                        Hi Jim,

                        Hm... Well it looks like the interface wasn't made as compatible as possible. Unfortunately we're stuck with what we have for backwards compatibility. I'm afraid we just have to say that the Desktop API can only be accessed from Microsoft Visual Studio at this point. I'm sorry.

                        Comment


                        • #13
                          Dion,

                          eSignal documentation states that "The Desktop API is an ActiveX-like control that uses Microsoft's™ Component Object Model (COM) technology to provide individual users and third party development groups a way to exchange data with the eSignal desktop application. The Desktop API can be used with any Windows programming language ..."

                          Further, eSignal promotional information states "eSignal, known for its award-winning data, offers a software developer’s kit to meet your individual or business needs. This kit allows users to develop their own mini-applications quickly and easily using any programmed language and the eSignal Desktop Application Programming Interface (API). "

                          It was on this basis that I have pursued eSignal as a way for me to accomplish my datafeed and application goals, outside the Microsoft Visual Basic/C++/C# development environment.

                          Perhaps the incompatible structure references that are causing the problem need to be handled as variants, which are COM-compatible across languages. Please refer to the following links:

                          http://www.roblocher.com/whitepapers/oletypes.aspx

                          http://msdn.microsoft.com/library/de...asp?frame=true

                          The beauty of COM technology is that an additional interface can be added to extend the functionality while maintaining backwards compatibility, if eSignal is willing to put forth the effort to do it right.

                          Thanks for working with me to this point. eSignal may be willing to give up on me, but I am not yet willing to give up on eSignal, as I have already spent quite a bit of money and time getting to this point.

                          Is eSignal still willing to work toward a solution for me? (and to honor their own promotional documentation)

                          Jim

                          Comment


                          • #14
                            Jim,

                            I know that some other developers had some struggles with using Delphi and Java, but were ultimately able the get things to work. The vast majority of developers using the Desktop API use Microsoft IDEs and this problem seems more like an issue with Borland unable to validate information than a problem with the Desktop API, so I do not know how much development time we can spend on an isolated issue.

                            I can't remember for certain, but there may be some other threads that deal with Borland, as I remember other discussions about this.

                            Comment


                            • #15
                              Robi,

                              My desire is to do my development not in Borland C++, but in National Instruments LabWindows/CVI C. In the forum discussions, I was just illustrating that the eSignal problem appeared to be characteristic of National Instruments LabWindows and LabView products, and also of Borland's C++ Builder product, all of which I have access to. Like the Borland C++ product, the National Instruments products are used world-wide and are extremely robust. The forum discussions so far seem to point to eSignal's desktop API not being ActiveX-compatible outside of Microsoft development tools. However, I do plan to do more testing with Borland C++ Builder to get more clues.

                              In the meantime, are there others that have successfully used the Desktop API "out-of-the-box" (so to speak) with tools other than Microsoft Visual C/C/C#/VB?

                              My intent is to develop the application with eSignal's desktop API, and after it has proven to work successfully for my personal trading needs, only then move the product over to eSignal's "standard API" under a new corporation or business entity.

                              Is eSignal willing to work with those of us who wish to use the Desktop API as promoted, but are unable to because of possible incompatiblility problems?

                              Thanks,
                              Jim

                              Comment

                              Working...
                              X