How do I quickly update the ActiveX automation references in my VIs when the ActiveX interface changes?

Hello all,
I joined a test automation team in the middle of a large project and
inherited a huge set of VIs (over 700) and associated architecture for
this automation (not to mention the several thousand TestStand
sequences).  Another part of the project is being developed by our
customer, who is using VB 6.0 to create ActiveX components which we
need to use in LabView to access their hardware.  They've already
invested a large amount of time developing these ActiveX components,
and they are not finished -- meaning the ActiveX interfaces will be
changing.  Every time they send updated ActiveX components, I have to
re-write many, many VIs including updating a couple strict typdefs. 
This process takes way too much time and is mind-numbing and prone to
error or omission.
Unfortunately I can't post any of the VIs because of a NDA.  But
perhaps a bit more detailed explanation would help.  TestStand calls a
VI to open and get an ActiveX reference for automation (which it stores
in a variant).  It will pass this reference into any VI it calls to
perform specific functions through this ActiveX interface.  For
example, one VI that may be called passes this automation refnum into
another, which passes it to another, which passes it into another to
get the actual ActiveX reference stored in that variant (through a
Variant To Data call with a strict typedef of the ActiveX component
wired to the type input).  [See the attached image of this sample VI
hierarchy: the far left icon would represent TestStand, and the far
right is the strict typedef.]  Any of the VIs in the chain might use
ActiveX Property or Invoke nodes, and it can break at any one of those
when the ActiveX component changes.  It's easy to fix each one, but
since there are so many VIs it takes a very long time.
Is there any way at all to do a massive search/replace or something to
make the ActiveX references update?  I realise that even though
property or method names stay the same from one version to the next,
they are different references.  Is there a way to update these based on
name if you give it the base ActiveX reference?
Thanks in advance for any help!
Tom Williams
Attachments:
hierarchy.GIF ‏6 KB

Ben,
Unfortunately I can't post any VIs that would demonstrate the problem
because the ActiveX components are confidential.  I'll try to develop
my own ActiveX dll that will demonstrate it, but in the meantime, in
hopes that another picture will help, I've attached an image of a block
diagram (with some names changed to protect confidential information)
of one of the lower level VIs from the hierarchy I posted.  In this
example, the "Automation Refnum IN" is an input with a type definition
linked to the strict typedef based on the ActiveX automation dll that
has changed.  I updated that typedef, but as you can see the output to
the "Class1" indicator is broken.  If I delete the "Class1" indicator
and select Create->Indicator from the Class1 property node, and then
wire the new "Class1" indicator to the connector pane, the VI is fixed
-- at least at compile time.  In most cases there is also a runtime
problem where the reference obtained by one of the intermediate
property nodes is null, so the property or method node that uses it
fails (e.g. "_VNManager.Networks" property returned is 0, so the
"_Networks.Network1" property node fails).  To fix this problem, I have
to delete the wires between the property nodes, and one by one select a
different property/method, then select the correct property/method and
re-wire.  There seems to be a bit of "jiggling the handle" to get it to
work though.
I don't know if the ActiveX developer changed anything in this class,
but if he did, he didn't change the name of this class.  I would like
to have to modify the VI only if a class, property or method has
changed name or been removed.
Does that all make sense?  Thanks for any pointers or help!
Tom
Attachments:
Class1_Path.GIF ‏7 KB

Similar Messages

  • What is the best way to fix broken vis when the type library of the active x server changes (methods or properties addes)?

    Every time there is a change to the active X server I am developing drivers for I have to go back through all the vi's I have developed and re-point the methods an properties back to what they were to fix the broken arrows. The only change in the Active X server is usually an additional method or property. There has to be a better way, I have over 130 vi's I have to fix for every update and it keeps getting larger.

    This is somthing I can try, but I don't think it will solve my problem. My reference never changes, it is always the same and is correctly registered with every new release. What does change are the number of methods and properties. With each new release there are usualy additional methods and properties; however, the old ones are still there with the same names (thank goodness). The problem this causes with LabVIEW, apparently, whenever there is a change in the type library you must re-point all the methods an properties again, at least this is what I am experiencing. If doing what you suggested works, it would be some kind of magic that I would like an explanation for.

  • Error -214746726​2 "No such interface supported" when open an ActiveX automation reference to proprietar​y DLL, why?

    I got the error -2147467262 "No such interface supported" when open an ActiveX automation reference to a proprietary DLL. I check the forum which suggested solutions related to comcat.dll and IE6.0. I also tried to re-reqister the dll by regsvr32.exe, still does not work. However, I did nto get any luck. I was told that the DLL support iDispatch interface and should work ok with ActiveX in labview. Any suggestions? I appreciate it.

    Hello, Nandini,
    I am using the WinXP and I am calling the DLL provided by Pirouette for their chemometrics software. I just solved the error -2147467262, but the new error comes out is :
    Error code: -2147467259 Exception occured in IxAsObjs.CoSIMCAPredict.1, Language Server QueryInterface failed: No such interface supported.
    Here is a few word for the problem from priouette:
    " just a few more words that might help you understand the nature of the problem. your LabView client talks to AlgSuite.dll using IDispatch interfaces AlgSuite.dll communicates with the language server on an IUnknown interface.
    Your client knows nothing about the internal workings of AlgSuite.AlgSuite communicating with objects that do not have IDispatch interfaces should be irrelevant to your client."
    Since the VB demo works fine in my machine, so they though it is percular to labview. Any comments? I appreciate it.
    LvvL

  • I have set up two users, one for myself and one for children.  The computer automatically logs in for the children with no password required.  When the children go to spotlight and type in a search criteria all of my files show up.  How do I prevent this?

    I have set up two users, one for myself and one for children.  The computer automatically logs in for the children with no password required.  When the children go to spotlight and type in a search criteria all of my files show and open up.  How do I prevent this?

    Log in to your account, and move all your files to your home folder. No other users should be able to access them there and they won't show up with a Spotlight search.
    Make sure your kids' account(s) do not have admin privileges.

  • How can I take my iCloud account off of my sons phone when the settings/iCloud feature is not hilited?

    How can I take my iCloud account off of my sons phone when the settings/iCloud feature is not hilited?

    No it's all greeted out too:-( I'm not sure why he's getting txts and emails that I get too. I think he has access to my pics as well.

  • How to change the node's icon in a tree when the node collapse or expand?

    how to change the node's icon in a tree when the node collapse or expand?

    Hi,
    You may need to use custom skin for that.
    -Arun

  • Will the ipod 4th generation drop in price when the 5 comes out and if it does how much by

    will the ipod 4th generation drop in price when the 5 comes out and if it does how much by

    http://store.apple.com/us/browse/home/shop_ipod/family/ipod_touch/select_4thgene ration

  • HT4623 since i updated my iphone 4 to ios 6, i ve noticed that the wifi connection turns off each time when the screen is locked. I need to be connected with wifi all the time so as to stay updated with all my emails.

    since i updated my iphone 4 to ios 6, i ve noticed that the wifi connection turns off each time when the screen is locked. I need to be connected with wifi all the time so as to stay updated with all my emails. is there anyway for this problem.
    (PS: i know we could use 3G but i want to use wifi instead)

    I am having a really wierd issue as well that is probally related. I dont see 95% of the album artwork associated with my music. Also, it seems as if this has gotten worse since I started using that match feature

  • I am trying to delete some aps, but the delete "X" does not come up when the ap is pressed.  Anyone know how I can fix?.

    Hi, I am trying to delete some aps, but the delete "x" does not come up when the ap is pressed.  Anyone know how to fix.  Also, my ipod is turning off on its own and won't power back on unless I plug it in although it is fully charged.

    For the apps:
    - You can't delete the apps that came with the iPod
    - Go to Settings>General>Restrictions and see if there is the Restrictions set that prevents deleting apps

  • [svn:bz-4.0.0_fixes] 16148: Update config testsuite on 4.0. 0_fixes branch to force kill the app server before running any tests when the app server is Tomcat .

    Revision: 16148
    Revision: 16148
    Author:   [email protected]
    Date:     2010-05-17 06:40:40 -0700 (Mon, 17 May 2010)
    Log Message:
    Update config testsuite on 4.0.0_fixes branch to force kill the app server before running any tests when the app server is Tomcat. The regression runs were hanging on this branch when going to run the config suite because the Tomcat server isn't shutting down cleanly at the end of the MXUnit run. I believe this is an issue with the version of ActiveMQ we are using. Since I don't think we want to update ActiveMQ on this branch force killing the Tomcat server will workaround the problem.
    Modified Paths:
        blazeds/branches/4.0.0_fixes/qa/apps/qa-regress/testsuites/config/build.xml

    Hi,
    Thanks for the reply. I have tried this on another machine running the same version of Blackboard. It works fine.
    Only difference is that the machine that has the JVM crash is running on Fujitsu PrimePower and the OS is Solaris 9 (but twigged for PrimePower).
    The one where it runs and starts up successfully is running on SunFire (OS is Solaris 10).
    I am wondering if there is a problem with the JVM loading required libraries because of the OS being different versions.
    Any leads on this is welcomed. Thank you.
    Regards,
    Hon Peng
    ===================
    On Fujitsu Primepower
    SunOS 5.9 Generic_118558-33 sun4us sparc FJSV,GPUS
    the Dependencies for libjvm.so are as follows:
    ===================
    bash-2.05$ ldd -r libjvm.so
    libsocket.so.1 => /usr/lib/libsocket.so.1
    libsched.so.1 => /usr/lib/libsched.so.1
    libdl.so.1 => /usr/lib/libdl.so.1
    libCrun.so.1 => /usr/lib/libCrun.so.1
    libm.so.1 => /usr/lib/libm.so.1
    libthread.so.1 => /usr/lib/libthread.so.1
    libc.so.1 => /usr/lib/libc.so.1
    libnsl.so.1 => /usr/lib/libnsl.so.1
    libmp.so.2 => /usr/lib/libmp.so.2
    /usr/platform/FJSV,GPUS/lib/libc_psr.so.1
    =====================================
    On SunFire, Sun machine
    SunOS 5.10 Generic_118833-36 sun4u sparc SUNW,Sun-Fire-280R
    the dependencies are different for the libjvm.so:
    =====================================
    bash-2.05$ ldd -r libjvm.so
    libsocket.so.1 => /lib/libsocket.so.1
    libsched.so.1 => /usr/lib/libsched.so.1
    libdl.so.1 => /lib/libdl.so.1
    libCrun.so.1 => /usr/lib/libCrun.so.1
    libm.so.1 => /lib/libm.so.1
    libthread.so.1 => /lib/libthread.so.1
    libc.so.1 => /lib/libc.so.1
    libnsl.so.1 => /lib/libnsl.so.1
    libmp.so.2 => /lib/libmp.so.2
    libmd5.so.1 => /lib/libmd5.so.1
    libscf.so.1 => /lib/libscf.so.1
    libdoor.so.1 => /lib/libdoor.so.1
    libuutil.so.1 => /lib/libuutil.so.1
    /platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
    libm.so.2 => /lib/libm.so.2
    /platform/SUNW,Sun-Fire-280R/lib/libmd5_psr.so.1

  • My ipad is on an infinite loop.  I used ios7 for a few days and then did updates on some of my apps. that's when the infinite loop started.  I have tried pressing the power and home button at the same time, but it doesn't work. Please help!

    my ipad is on an infinite loop.  I used ios7 for a few days and then did updates on some of my apps. that's when the infinite loop started.  I have tried pressing the power and home button at the same time, but it doesn't work. Please help!
    I even tried some hints posted for ios6 (turn off Ipad, holding home button and plugging in power cord at the same time and then releasing the home button)
    I did manage to get a different screen that shows the itunes icon and a power cord, but nothing happens.

    You were on the right track. You got the connect to iTunes screen and you ended to use iTujes to restore your iPad. Try recovery mode again.
    Recovery Mode Instructions
    Disconnect the USB cable from the iPad, but leave the other end of the cable connected to your computer's USB port.
    Turn off iPad: Press and hold the Sleep/Wake button for a few seconds until the red slider appears, then slide the slider. Wait for iPad to turn off.
    If you cannot turn off iPad using the slider, press and hold the Sleep/Wake and Home buttons at the same time. When the iPad turns off, release the Sleep/Wake and Home buttons.
    While pressing and holding the Home button, reconnect the USB cable to iPad. When you reconnect the USB cable, iPad should power on.
    Continue holding the Home button until you see the "Connect to iTunes" screen. When this screen appears you can release the Home button.
    If necessary, open iTunes. You should see the recovery mode alert that iTunes has detected an iPad in recovery mode.
    Use iTunes to restore iPad.

  • Hi i was wondering how do i get the iphone 5s comforting to know that when the battery gvshym problem or not the issue . i can see the serial number or something like that czech ?

    hi i was wondering how do i get the iphone 5s comforting to know that when the battery gvshym problem or not the issue . i can see the serial number or something like that czech ?

    Try this:
    Go into Power Manager, choose the Logging profile.
    Go into Windows' Power Options, choose a different profile, then switch back to the Logging profile.
    See if this clears any contradiction between the two.
    W520: i7-2720QM, Q2000M at 1080/688/1376, 21GB RAM, 500GB + 750GB HDD, FHD screen
    X61T: L7500, 3GB RAM, 500GB HDD, XGA screen, Ultrabase
    Y3P: 5Y70, 8GB RAM, 256GB SSD, QHD+ screen

  • Is there a way to play an mp4 file at the beginning of a published project only when the project is accessed from a specific site?

    Is there a way to play an mp4 file at the beginning of a published project only when the project is accessed from a specific site?
    A little background info. I use Captivate 7 and currently have over 100 projects that I maintain on a quarterly basis. I publish using the SWF format and upload the swf/htm files to a server where they are then accessed from a few locations (within our online documentation, in our software product, on two different websites). Many of the projects are linked so some will be viewed as a series and others viewed as a standalone video. Each video uses the same template and includes an intro and end slide. Now my organization wants to implement a new intro to all videos (those I publish and those from several groups across the organization). My current intros provide overview material for the specific video so the new intro, which is an animation with audio in mp4 format, would need to be placed at the start of each project. The issue is, the intro adds 9 seconds to every video and in many cases doesn’t add any value (say, if a user accesses the video from within our product or views the videos as a series). I’ve talked it over with my boss and we want to try to add the intro only to videos accessed from site X, not any other location. So now to my question. Is there a way to play an external mp4 file (intro) only when the published project is accessed from a specific site, therefore eliminating the need to update each project? Maybe there's a way to add a parameter or variable to the URL or the html code?
    Thanks in advance for your suggestions. Please let me know if you need additional information.

    AimeeLove,
    I have a solution for you.  You may have to modify the code a little bit based on how long the timeline animation is for your clock.  I based mine on 3 seconds to complete a minute hand sweep around the clock.
    Milliseconds for each point on the clock:
    12 = 0
    1 = 250
    2 = 500
    3 = 750
    4 = 1000
    5 = 1250
    6 = 1500
    7 = 1750
    8 = 2000
    9 = 2250
    10 = 2500
    11 = 2750
    In the mouseover section for 12 o' clock, put this code...
    myVar = setInterval(function(){
         var pos = sym.getPosition();
         if (pos > 0 && pos < 50){
              sym.stop(0);
              clearInterval(myVar);
    },10);
    When you point to the time, the setInterval method loops every 100th of a second and checks the current position of the timeline.  When the timeline reaches the range between 0 and 50 milliseconds (almost impossible to hit 1 specific point), the timeline will stop at 0.  Also, the clearInterval will be fired to stop the loop.
    In the mouseout section, put this...
    sym.play();
    clearInterval(myVar);
    It start the clock again, and it also clears the loop in case you mouseout before you reach the range.
    Make sure that myVar is a global variable so you can clear it from the mouseout section.
    Repeat this for each point on the clock.  To avoid potential conflicts, you may want to use my12, my1, my2, etc. instead of myVar.  I put the milliseconds at the top that you would use as the beginning of the range.  50 milliseconds should be enough to catch it.  So, for 5 o' clock, you would make your range between 1250 and 1300.
    Let me know if you have any questions.  Thanks!
    Fred

  • Get error message that skype has problem loading when computer is turned on the first time every day. this started when the latest firefox v6.0 was downloaded.

    get error message that skype has problem loading when computer is turned on the first time every day. this started when the latest firefox v6.0 was downloaded.

    ''mbratlie [[#question-1055011|said]]''
    <blockquote>
    It was working fine and I had no problems, and then one day I tried opening a window and it froze. When I tried quiting the program my whole window went black. The x to the close the window doesn't work. The only option I have in my tool bar is Firefox and nothing happens when I try to quit firefox. Every time I try to shut down my computer Firefox prevents it. I haven't updated Firefox yet, so it's an older program, but only by a month or two. What's going on and how do I fix it?
    </blockquote>
    This is the first time it's ever happened. I downloaded the new operating system for Firefox but I can't install it until the Firefox currently running on my laptop quits, which it won't.

  • Displaying the entire text of a tree node when the tree isn�t wide enough

    Hi,
    I have a JTree displayed in a JScrollPane, so there is a chance that some of the tree data may be hidden if the tree's width is insufficient, so when the user moves the cursor over a tree node whose text is not completely visible (cut off by the right edge of the scroll pane and/or window), a tooltip is displayed to show the entire node text. So far so good!
    If the user double click a node in the tree a new window is supposed to be opened. This works fine if the tooltip hasn�t been displayed jet, but if it has then the user has to click 3 times to open the window.
    The first time to remove the tooltip and the next 2 opens the window.
    How can I awoid this?
    Thanks!!!!
    :-)Lisa

    Any ideas, please?

Maybe you are looking for

  • Custom Install on "My Computer" - Disabled?!?

    Okay so this is not one of my best mornings. I managed to delete my iTunes library (I thought it was a duplicate) and now when I try to load iTunes it won't work. No biggie I head over to Apple and download a new copy. I get as far as the Custom Inst

  • Document in queue will nit delete

    have a desktop 305a and can't delete an item in the queue,,,,    any thoughts on how to do it ?  I tried everything,...  Thanks in advance This question was solved. View Solution.

  • I want to burn a playlist but after it completes it has rearranged the order of songs. How do I keep my order?

    Does anyone know what setting I need to change so that when I burn a playlist to a CD, I can keep my order of songs? iTunes keeps changing the order.

  • Need help getting mp3's from ipod to PC

    I recently had to restore my computer of a virus attack, and lost all my music. However my music is on my Ipod. And someone mentioned to use Ipodrip to get it to the computer. But ipodrip failed to work, partially. It got all the songs in, but they w

  • Change list export to Excel

    Hi experts, We recently upgraded our solution manager from 7.0 to 7.1SP10, and in the workcenter 'change management' we do not see the button to export our changes to an Excel file. Now we use a workaround to select the changes and copy - paste it to