How to Properly Destroy Quicktime ActiveX Object?

Hi,
Does anyone have experience with Quicktime ActiveX objects?  I'm having an issue about destroying/unloading the objects.  When my compiled executable is closed (either programtically through 'Quit Labview' or by selecting 'File-->Exit'), Windows 7 detects a crash and displays:
So I'm guessing that Quicktime is the culprit because of the 'Fault Module Name'.
When I shutdown the Quicktime portion of the program (a subvi that gets called several different times), I perform:
QTOLibrary.IQTMovie.Stop
QTOLibrary.IQTMovie.Disconnect
Set QTOControlLib.IQTControl.URL = [blank]
QTOControlLib.IQTControl.QuickTimeTerminate
Destroy QTOControlLib.IQTControl reference
Destroy QTOLibrary.IQTMovie reference
Destory QuickTime ActiveX container reference
Any other properties/methods/combinations/order I should try?  Thanks.
-Joe

Hi Joe, 
Quit LabVIEW shuts down LabVIEW, but does not affect other applications. You need to ensure that your ActiveX references are being closed properly, even if you are quitting LabVIEW.
A good way to ensure that your references are being closed even when you forcibly exit LabVIEW is to use an event structure. Add a new event to the event structure by right clicking on the default "Timeout" label at the top and selecting "Add Event Case...". Then, under the Event Source, "<Application>", select the event, "Application Instance Close". This event will only execute when you attempt to close your application. Add another "Close Reference" function to the block diagram and wire the reference out output of the Invoke node to the reference input of the Close Reference function. Does this fix your error? 
Julianne K
Systems Engineer, Embedded Systems
Certified LabVIEW Architect, Certified LabVIEW Embedded Systems Developer
National Instruments

Similar Messages

  • How do I get an activeX object reference from a LabVIEW ActiveXContainer ref?

    How do I get an activeX object reference from a LabVIEW ActiveXContainer ref?
    I'm trying to control an ActiveX object (a Web Browser) from another VI and need to get the object reference programmatically. I can get the LabVIEW ActiveXContainer reference, but am lost on how to get the reference for the object _inside_ the container.

    Hi Lee,
    The reference to the container is actually also accessing the object inside the container. Use the Property Node and Invoke Node to access properties and launch methods for the object. I've attached a small example that passes the reference to a SubVI and invokes a method inside the SubVI.
    - Philip Courtois, Thinkbot Solutions
    Attachments:
    WebContainer.zip ‏21 KB

  • Quicktime activeX object issues on Vista 64

    I'm creating a .js based plugin detector and am getting an error on Vista 64.
    The snippet of the script used for QT detection in Internet explorer is:
    try
                   control = new ActiveXObject('QuickTime.QuickTime');
              catch (e)
                   error = true;
              try
                   // This generates a user prompt in Internet Explorer 7
                   control = new ActiveXObject('QuickTimeCheckObject.QuickTimeCheck.1');
              catch (e)
                   error = true;
              if (control && control.QuickTimeVersion)
                   qtVersion = control.QuickTimeVersion.toString(16); // Convert to hexadecimal - using base 16
                   //qtVersion = parseInt(qtVersion.substring(0, 1),16) + '.' + parseInt(qtVersion.substring(1, 2),16) + "." + parseInt(qtVersion.substring(2, 3),16);
                   qtVersion = parseInt(qtVersion.substring(0, 1),16) + '.' + parseInt(qtVersion.substring(1, 2),16);
                   qtVersion = qtVersion;
                   qtInstalled = "Yes";
    I'm getting a "QuickTimeVersion is null or undefined" error, but only in Vista 64. Vista 32 bit and all XP machines I've checked, report the version w/out any errors. I'm not quite sure why the QuickTimeVersion property isn't being returned properly.
    Is there another QT ActiveX object I can use?
    Thanks,
    Shannon

    I think this had to do with the fact that I had never actually had the browser load the QT plug-in (I haven't visited any web sites with embedded QuickTime). I ran a VBScript detector, which caused a prompt asking me to allow the plugin from Quicktime, which I did. After the javascript was working fine. I'm just not sure why the ActiveX Object call didn't kick off the prompt.

  • [TestStand 3.5] How do I 'destroy' a rendezvous object?

    I have a test application where rendezvous are used to synchronize certain test steps - however, not all units under test run the same test steps depending on the cycle number, so in (for example) cycle 2, the number of threads for the rendezvous is different than cycle 1.
    However, when the second cycle comes around, a TestStand exception is thrown saying that "The Rendezvous <RendezvousName> already exists with a different number of threads>" which looks like it could only happen if the rendezvous object from the previous cycle was still somehow considered 'active' or 'existing' by TestStand. This error pops up even when the Rendezvous Lifetime is set to "Same as Sequence" and the Sequence File Option is set to "Unload After Sequence Executes", so I'm not really sure why the error is being thrown.
    Does anyone know how I can manually 'destroy' or clear out, or otherwise clean up the rendezvous object so that it doesn't persist (apparently) between cycles?

    If you have the lifetime set to same as sequence in all of the test socket executions, then they all have to finish executing that sequence before you can recreate a rendezvous with the same name. Depending on what model you are using or what your sequence files are doing, you might have to synchronize that yourself so that you wait until all of the existing sequences complete before trying to recreate the rendezvous. There are many ways to do this, but without more information about what process model you are using and exactly what synchronization your are doing between your executions and threads, it's hard for me to recommend an exact implementation.
    -Doug

  • How to properly create path art object, please help

    Hello there,
    I have a vector of AIRealPoint , each point is actual X, Y coordinate of the stroke. I need to create path art object out of this vector.
    I'm  somehow confused how to correctly construct segments array form the given AIRealPoints, my goal is to have single path object where count of segments is equal to count of AIrealPoints first and last points are anchors. SDK documenation is not really helping here...
    Please, take a look at the code snippet, it seems I'm doing something wrong with in and out params of segment , in any case I fail to create simple path object ....
    ASErr CretaeVectorPathTest2(vector<AIRealPoint>& stroke)
    AIArtHandle artHandle;
    ASErr result = kNoErr;
    try {
      AIRealPoint start;
      long lngStrokeLength = stroke.size()-1;
      AIArtHandle lineHandle = NULL;
      AIErr error = sAIArt->NewArt( kPathArt, kPlaceAboveAll, NULL, &lineHandle );
      if ( error ) throw( error );
      error = sAIPath->SetPathSegmentCount( lineHandle, lngStrokeLength );
      if ( error ) throw( error );
      AIPathSegment *segment = new AIPathSegment[lngStrokeLength];
      // This is a first point of the path
      segment[0].p.h = stroke[0].h;
      segment[0].p.v = stroke[0].v;
      segment[0].in = segment[0].out = segment[0].p;
      segment[0].corner = true;
      for(inti=1 ;i< lngStrokeLength-1;i++)
       segment[i].p.h = stroke[i].h ;
       segment[i].p.v = stroke[i].h ;
       // NOT GOOD!!!
       segment[i].in.h  = stroke[i-1].h ;
       segment[i].in.v  = stroke[i-1].v ;
       segment[i].out.h  = stroke[i+1].h;
       segment[i].out.v  = stroke[i+1].v;
       segment[i].corner = false;
    // NOT GOOD!!!
      // This is a last point of the path
      segment[lngStrokeLength].p.h = stroke[lngStrokeLength].h;
      segment[lngStrokeLength].p.v = stroke[lngStrokeLength].v;
      segment[lngStrokeLength].in = segment[lngStrokeLength].out = segment[lngStrokeLength].p;
      segment[lngStrokeLength].corner = true;
      error = sAIPath->SetPathSegments( lineHandle, 0, lngStrokeLength, segment );
      if ( error ) throw( error );
      error = sAIPath->SetPathClosed( lineHandle, false );
      if ( error ) throw( error );
    // apply color width etc.
      AIPathStyle style;
      error = sAIPathStyle->GetPathStyle( lineHandle, &style );
      if ( error ) throw( error );
      style.strokePaint = true;
      style.stroke.color.kind = kFourColor;
      style.stroke.color.c.f.cyan = 0;
      style.stroke.color.c.f.magenta = 0;
      style.stroke.color.c.f.yellow = 0;
      style.stroke.color.c.f.black = 100;
      style.stroke.width = 0.75;
      style.stroke.dash.length = 0;
      delete[] segment;
      error = sAIPathStyle->SetPathStyle( lineHandle, &style );
      if ( error ) throw( error );
    catch (ai::Error& ex) {
      result = ex;
    return result;
    Thanks,
    David

    As for beziers, Illustrator uses cubic beziers which are fairly straight forward (thank goodness!). Here's a lift from Wikipedia's Bezier entry:
    This image is pretty good at demonstrating how AI's bezier segments work. In the animation, the moving point has two lines sticking off it, ending with two points. If P3 was an AISegment, the left-hand blue point would be in and the right-hand point would be out. If we were to translate the state of the animation in its last frame into AI code, you'd basically have something like this:
    AISegment segment1, segment2;
    segment1.p = p0;
    segment1.in = p0;
    segment1.out = p1;
    segment2.in = p2;
    segment2.p = p3;
    segment.out = p3;
    Note that this would imply any line that continues beyond either end point isn't a smooth beizer curve (i.e. the curve is limited to between these points). That effectively makes them corner points (I think). Also, the line formed by linking in & p or out & p is the tangent to the curve at p, which I think you can make out from from the animation.
    Another way to get a feel for this is to use the pen tool to draw a line with a few segments. If you then pick the sub-select tool (white selection arrow, not black selection arrow) and select individual points on the curve, you'll see when you do that two 'anchors' jut out from each point. Those are the in & out for that point on the curve.
    Its all a little confusing because technically, a bezier segment between p & q would be p, p.out, q.in & q. (four vertices). To avoid repeating information, and keep it simple for non-beziers, AI's segments are still the vertices. So if you wanted to make the nth segment a beizer, you'd need n & n+1 from AI's path, and you'd modify two-thirds of each AISegment (p, out from n & in, p from n+1).
    I hope that helps, but if you have any further questions, feel free to ask! If you need to do anything fancy with beziers, there are some helpful utilites in AIRealBezier.h.

  • How to properly create complex OCI objects (for Annotation Text)

    I am upgrading a tool that will upload text objects to a table with a ST_ANNOTATION_TEXT field. The app is a C++ app and I need to instantiate a ST_ANNOTATION_TEXT (using OCIObjectNew??). I actually have 2 questions. First, does anyone have an example of how to accomplish this? I seem to be unable to correctly create the annotation text type in C++ to be able to append to (calling OCICollAppend). Second, since ST_ANNOTATION_TEXT is a complex type (contains an array of annotation text elements), do I need to call OCIObjectNew on not only the main ST_ANNOTATION_TEXT type but also for the ST_ANNOTATIONTEXTELEMENT_ARRAY, ST_ANNOT_TEXTELEMENT_ARRAY, and the ST_ANNOTATIONTEXTELEMENT?
    I can't seem to find in info on this so hopefully someone else has been through this.

    user3068343 wrote:
    I am still having an issue where the sub objects are still NULL.Actually I was mistaken. I must have confused getting an Object from OCIObjectNew with using one of its constructor method in a statement.
    http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28395/oci18nav004.htm#sthref3438 clearly state the object will have NULL attributes, unless the OCI_ATTR_OBJECT_NEWNOTNULL flag is set on the environment handle.
    http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28395/oci11obj.htm#i446308 further tells you what the default value for the object members will be.
    An older 9i doc http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96594/adobjadv.htm#1008774 also warns about resetting the indicator struct member when you update a member of the object.
    user3068343 wrote:
    ++a) you allocate the object's top-level struct yourself (SDO_GEOMETRY in my case) in C+++
    Above you suggest creating the objects top-level struct myself. How do you create that top level object? I have been using OCIObjectNew on that object as well as its sub objects? Is that how you are creating the top-level object?This technique works only on binds, as objects you get back from defines are always allocated from the object cache. I create the top-level object directly on the stack... This is something I discovered worked, but is not documented, so you're probably on safer ground using OCIObjectNew instead.
    BTW, the reason I can't easily post OCI example code is that my code uses wrappers around the objects that hides most of the OCI:
    Geometry Geometry::make_point(OCIEnv* envhp, OCIError* errhp, float x, float y) {
        Geometry point_geom(envhp, errhp);
        point_geom.set_null(false);
        point_geom.gtype() = 2001;
        PointRef point = point_geom.point();
        point.set_null(false);
        point.x() = x;
        point.y() = y;
        return point_geom;
    }The above creates an 2D point-type SDO_GEOMETRY hidden inside the Geometry class, itself deriving from a GeometryRef class. The latter wraps a C++ API on top of the struct pointers for a SDO_GEOMETRY/SDO_GEOMETRY_ind, while Geometry actually composes the OTT generated value/indicator structs by value, and passes addresses to its nested structs to GeometryRef (its parent class). So GeometryRef can manipulate an object irrelevant of where it was allocated, the stack or the object cache. The Geometry class is a value class, but it's useful for binds only, and like I said uses a behavior which appears to work but is not explicitly documented.
    Unless you have nested objects by reference, nested objects are composed by value in the OTT-generated structs, so the space for all nested objects is already allocated after the first OCIObjectNew. But the members themselves are not initialized, and thus marked as null in the indicator struct.
    In the code above, my Geometry instance is fully allocated (on the stack), but fully uninitialized (the indicator is by default set to all nulls). I first set the atomic flag to non-null, then get the Ref wrapper around its nested SDOPOINT_TYPE to also set it to non-null, and fill in the x/y member (via another NumberRef wrapper, which knows about the member and the indicator for that member, and sets it as non-null when assigned to). Notice how how I return the instance by copy: My point geometry instance doesn't have a pointer-aliasing issue here, only because its two OCIColl* are null. In the general case, you can't copy my value wrappers without making a true deep copy... But I'm getting into the weeds here.
    The important point is that OCIObjectNew doesn't init the nested objects unlike what I stated earlier. Sorry for misleading you on that. --DD                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • How to properly destroy a class.

    I'm trying to make multiple dynamically created MovieClip classes move across the stage and have created an ENTER_FRAME Event Listener in each one.
    Usually, when I remove a MovieClip, I simply remove them from the container and splice their pointer from the array.
    But it appears that doing this does not remove Event Listeners or even the functions I've writted inside the class and thus each "removed" MovieClip produces errors every frame. (Even without the errors, I would still not want those things running in the background)
    So my question is rather simple, what is the best way of disposing of a MovieClip class (or classes in general) and making sure that no residues are left behind?
    Thanks in advance.

    it should.  but gc just doesn't work very well so i can't tell if it's any benefit to use weak references (even when you remove them).
    try the code below the dotted line.  actually, comment out the line that nulls the movieclips so you can see that it only takes 10 or so iterations of f() to exceed 100kb of memory.  then uncomment the nulling line and retest.  you should see many more iterations, somewhere around 45.  so gc is occuring but you shouldn't see memory reach 100kb.  memory should reach some level and then hover around that level.
    that's the best that gc does.  it's better than doing nothing but it doesn't work well.
    i wouldn't expect any improvement on that by adding a weak listener but i see a benefit.  i just am not sure it's signifcant (and i'm not sure it's consistant) over no listener.
    same adding a strong listener.
    and you can add a weak and remove it.
    and you can add a strong and remove it
    at the end of all that all i can conclude is, gc doesn't work well.  the best gc i saw was adding a strong listener and NOT removing it.
    i don't know if that's specific to my system.  and i don't know if that's specific to my system at the time i tested.  maybe with other background activity i would get a different result.
    import flash.display.MovieClip;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.events.Event;
    var tl:MovieClip = this;
    var startNum:int = 0;
    var n:int=10000;
    var t:Timer = new Timer(30,0);
    t.addEventListener(TimerEvent.TIMER,f);
    t.start();
    f();
    function f(e:TimerEvent=null):void {
        for (var i:int=startNum; i<n+startNum; i++) {
            tl["mc"+i] = new MovieClip();
            //tl["mc"+i].addEventListener(MouseEvent.CLICK, cl,false,0,true);
            //tl["mc"+i].addEventListener(MouseEvent.CLICK, cl);
            //tl["mc"+i].removeEventListener(MouseEvent.CLICK, cl);
            tl["mc"+i] = null
        startNum = i;
        var mem:Number = Math.round(System.totalMemory/1024);
        trace(startNum/n,mem)
        if(mem>100000){
            t.stop();
    function cl(e:Event):void{

  • How to create Activex object for my Visual C++ object

    Hi,
    I am working on development on Acrobat 9.0 SDK. I am facing problem is that I can compiled Visual C++ source code to an api. I can test functions on this api on Acrobat 9.0 windows, but I could not test it on IE web browser, because I don't know how to create Activex object from my Visual C++ source code or its api.
    I read Acrobat 9 SDK document and found under C:\Acrobat 9 SDK\Version 1\PluginSupport\Tools\Visual Studio App Wizard has two files: Acro9PIWizInstaller.msi and setup.exe. I am not very sure those file are the key to help me to create Activex objects for my api.  Are they the one I need to create Activex object? If not, could you please advise me how to create Activex object for my api or C++ codes.
    Thanks a lot for any of your comments or advices.
    Thai

    Hi lrosenth,
    Thanks a lot for your information.
    My question is, on Javascript how do I call a function from .api. Below is my very simple test.
    I got a function on BasicPlugin.cpp under C:\Acrobat 9 SDK\Version 1\PluginSupport\Samples\BasicPlugin. See below.
    I added BasicPlugin.api on C:\Program Files\Adobe\Acrobat 9.0\Acrobat\plug_ins
         ACCB1 int ACCB2 MyPluginCommand() {
              int num = 5;
              return num;
    On my HTML file, I create an <Object> below:
        <OBJECT id="acrobatapp"
                classid="clsid:85DE1C45-2C66-101B-B02E-04021C009402">
        </OBJECT>
        <OBJECT id="acrobatpdf"
                classid="clsid:CA8A9780-280D-11CF-A24D-444553540000"   >
            <Param name="SRC" value="http://www.adobe.com/devnet/acrobat/pdfs/acrobat_digital_signature_appearances_v9.pdf">
       </OBJECT>
    On my Javascript. I call function MyPluginCommand() as below, but it is not working. How do I call function MyPluginCommand() on Javascript?
         var acrobatapp= document.getElementById("acrobatapp");
         var num= acrobatapp.MyPluginCommand();
         alert(num);
    Thanks for your support,
    Thai

  • How to View Word 2013 Document in ActiveX Object

    I know that the old method of viewing Word docs was to use a webbrowser object.  This doesn't work now since the document opens in word instead.  MS has a workaround, but suggests not to use it for new projects(it involves changing the registry and I'llbe distributing this app to other machines so this isn't an option).  I'd like to know if why webbrowser2 doesn't show up as a usuable ActiveX object in LabVIEW 2012 and if anyone knows how to use the Word document object so you can scroll and navigate a word document.
    Thanks
    Solved!
    Go to Solution.

    Thanks, But that doesn't help when there are figures(pics) in document. As A workaround, for now, I have switched to rtf files.  The attachment shows what I was trying to achieve except I had to save the word document as a rtf document and load it into a rich text document container (found under .NET & ActiveX).  This preserves formatting and pcitures whereas the method above does not.  I still think this is not optimal as in older versions of MS Office, this was done easily as shown in the Diagram Disable Structure.
    Thanks.
    Attachments:
    Help Viewer Demo.PNG ‏201 KB
    Load RTF file into Rich Text Box.png ‏48 KB

  • How to use ADO(Microsoft ActiveX Data Objective 2.8 Library) to execute the store procedure of database in SQL server

    how to use ADO(Microsoft ActiveX Data Objective 2.8 Library) to execute the store procedure of database in SQL server?
    Does any body can tell me about this?
    thanks
    [email protected]

    Hi 
    Did you succeed to execute the procedure?
    How ?
    Thanks
    Shimon Zerbib

  • How to remove/destroy previous object from memory

    hi guys, I am getting problem of memory of having repeating object.
    Below is my code.
    import flash.system.System;
    var counter:Number=0;
    var systemMemory:TextField=new TextField();
    systemMemory.x=200;
    stage.addEventListener(Event.ENTER_FRAME,showNext);
    function showNext(event:Event){
        var myTxt:TextField=new TextField();
        myTxt.text=counter.toString();
        myTxt.width=100;
        myTxt.height=20;
        myTxt.x=Math.random()*100;
        systemMemory.text="Total Memory Used :"+System.totalMemory.toString();
        systemMemory.width=300;
        addChild(systemMemory);
        addChild(myTxt);
        counter++;
    Above code does repeat textField Object continuously. Now I want to destroy previous created textField Object. So that my memory will not be hang. I got some where in the blog that with System.gc()  could clear garbage collection. But currently I am not working with system.gc any more I want to clear previous object in programatically way. Is there any way that I could destroy previous created object ?

    ok, thanks for your kind replay. Above is my test case. Actually, I need to do show 4 texfield in each FRAME_ENTER with different text properties's value + previous textFields should be remove and comes next 4 textField.
    import flash.text.TextField;
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.events.Event;
    import flash.system.System;
    var frameNo:Number=0;
    var txtFieldGroup:Array=new Array();
    var mem:TextField=new TextField();
    stage.addEventListener(Event.ENTER_FRAME,showTxtFields);
    function showTxtFields(event:Event):void{
        var eachGap:Number=100*frameNo;
        /* Removing data from txtFieldGroup if there any data */
        if(txtFieldGroup.length>0){
            txtFieldGroup.length=0;
        /* created textField objects and set it in an array */
        for(var i:Number=0; i<4; i++){   
            /*txtFieldGroup[frameNo][i]=frameNo.toString()+":"+i.toString();*/
            txtFieldGroup[i]=new TextField();
            txtFieldGroup[i].text=frameNo.toString()+i.toString();
            txtFieldGroup[i].y=(20*i)+eachGap;
            addChild(txtFieldGroup[i]);
        // System Memory Message
        mem.text="System Memory: "+System.totalMemory;
        mem.x=250;
        mem.width=300;
        addChild(mem);
        // Frame No increment
        frameNo++;
    here, from above script it created 4 txtObject in each frame no. I have clear array in each frame no. But I could not remove textFieldObject from CPU Memory. As you can see textField object of mem. As you say in earlier post making 4 different textfield at initialy  is nice option to control over CPU Memory. Is there any technique so that I could remove previous created textField object because . I am also having problem why my textfields are shows more than 4. I was expecting only 4 textField in each frame. Please you suggestion is required. Thanks for studying my confusion.

  • Recent loss of embedded QT movies on many page for IE7 using ActiveX object

    I have many pages that allow you to select from 4 video formats including QT .mov. An example is at http://www.cwdjr.net/video4/cancanL.php . The QT object uses ActiveX when on IE only(I use Windows conditional comments) and an ordinary object for most other browsers. Until sometime very recently all of these pages worked when you select the QT file. Now QT works on none of them. I suspected the problem might be due to a very recent Windows XP update which is a large one including .NET updates and other things(K8951847) X 86. I was able to restore to a day before this update, but this did not solve the problem. Of course some portions of some updates can not be removed be restoring to an earlier time, so the result does not prove the update was not at fault.
    The involved pages are mostly written in php on the server, so you will not be able to see very much by viewing the source code. To make the problem more simple to view, I made a test page for QT only and with the ActiveX object only. Thus this test page can not be viewed on most browsers that do not support ActiveX. The test page is at http://www.cwdjr.info/broadbandMedia/formatsAX/qtmovtest2.php . Since I serve pages as valid xhtml 1.1 using the correct mime type application xhtml+xml, no IE browser can view the page, since no IE browser can support xhtml served properly. Thus I have a php include at the very top for header exchange between the browser and server. If this says the page does not support the mime type for xhtml, then php using regular expressions, etc is used to rewrite the page as html 4.01 strict for the outmoded browser. Thus don't be surprised if you find some pages in xhtml and others in html when you check properties.
    The ActiveX object used for QT on the test page is below:
    QT MOV
    (CLICK ABOVE LINK IF NO PLAYER)
    <object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="400" height="295" codebase="http://www.apple.com/qtactivex/qtplugin.cab">
    <param name="autoplay" value="true" />
    <param name="controller" value="true" />
    <param name="kioskmode" value="true" />
    <param name="src" value="http://www.cwdjr.info/movie/cancan.mov" />
    </object>
    Once the page comes up on IE7, it is rather slow to respond. Then it gives:
    "Web site wants to install the following ActiveX control: 'Quick Time' from 'Apple Inc'".
    If you do try to install, nothing happens. In contrast to my regular pages, I added the code show above just before the start of the object. Clicking this on will bring up the QT video, but of course it is not embedded on the desired page. This may work as a temporary fix for IE. I likely can hide it from other browsers by enclosing it in Microsoft conditional comments.
    I would be interested if anyone else has had such a problem recently or any ideas concerning this strange response on IE7. I am talking about viewing the page on the server. Since this is a php page it can be viewed locally only if you have a server installed on your computer and I do not. The pages with the first url example given above have operated well on IE7, Firefox, Opera, Safari for Windows, Flock, K-Meleon, Google Chrome and SeaMonkey. There are a few players that have some issues with some of the formats, but this and the fact that some players may not be installed is the reason for offering the video in 4 formats. I sometimes offer high broadband versions as well as low broadband versions.
    It seems I spend more time correcting IE issues than for all of the other mentioned browsers combined.

    Thanks for the reference. I use nearly no JS anymore, since it often causes problems with true xhtml served properly even when you use external script files. Often one can use php script on the server and avoid these problems. When one serves as true xhtml using the correct mime type of application/xhtml+xml, the page is parsed with a very strict xml parser rather than a loose-as-a-goose html parser. (If one serves a page written in xhtml code as mime text/html, as is incorrectly done perhaps 99% of the time, you are using only html, not xhtml, and are fooling only yourself. The page is parsed as html instead of xhtml.) The xml parser has to be very strict to account for any possible xml content. Even a single, or even several, errors often will not prevent a html page from showing, but even a single error on an xhtml page served properly will often get an error report from the xml parser rather than a view of the page. One of the most laughable examples of misunderstanding of this issue is the home page of Microsoft. It claims to be xhtml. However it is served as text/html and thus would be better written in html 4.01 in the first place. Moreover, if you validate the page as xhtml at w3c, you find hundreds of xhtml errors. If Microsoft served their home page properly as application/xhtml+xml it of course would not work on any IE browser, at least through IE7, since none of these IE browsers can handle true xhtml. In addition the page likely would not show up on any browser if served as true xhtml until all of the hundreds of xml and other errors on the page were corrected. Instead, one likely would get a very long error report rather than a view of the page.
    Back to JS, document.write will not work in properly served xhtml, because it easily could produce code with XML errors. For instance it might produce code that contains an unclosed tag, which is a major xml error that can cause an xml device to malfunction. The xml parser thus rightly finds document.write as an error and prevents viewing of the page. However one often can generate the same code as document.write would produce on a browser with php on the server. The finished code is what gets downloaded to the browser, so the xml parser can check everything in the finished code rather than quess what a JS document.write might produce. And don't think you can sweep document.write under the rug by using an external JS file. The very strict xml parser finds it.
    Of course embed has never been a w3c tag, but rather is a bad hangover from the browser war era, a gift of Netscape. No page that includes embed can validate as w3c xhtml or xml of any flavor, at least through xhtml 1.1. However the page may work, despite the error, if server as text/html.
    All I know is that something has happened recently that has caused my problem to surface. It likely has to do with some change in the XP OS or IE browser. I have tried viewing several pages written by others that use many types of code for .mov, and all of them I have viewed that use an ActiveX embed for the benefit of IE now have the problem I mentioned. If anyone else with XP and nearly all updates, including the very recent one I mentioned, and the most recent version of QT has had this problem, I could be more confident that the problem comes from an external source. If not, it is still possible the sudden change could be something concerning a specific issue that has developed in my computer.
    Again, thanks for the JS reference. Some of this likely can translate into php so I can compare how the JS and php server script I am using relate.

  • ActiveX Object references - casting to a specific instance

    I have some ActiveX controls that are used to interface between a vendors hardware. The activex controls are quite heavy weight in that at any one time there should only be one instance of each of the type of controls within the program.
    What I want to do is keep the activex controls in the top level vi and pass references to sub-vi's in order to do property changes or method calls on the activex objects.
    When I create an activex reference control in a sub vi it doesnt seem to know what methods/propertys are available on that reference. I beleive it needs casting/converting to a reference that will allow LabView to recognize the reference type but im not sure how to do this.
    Thanks
    TMC

    Your automation refnums are probably not linked to the ActiveX control. Try this... select a property node in your main VI's diagram that has the desired ActiveX control attributes displayed and then select Edit>>Create SubVI from the menu. The automation refnum in the subVI will be linked to the ActiveX control and will work the way you want it to. Copy this to your other subVIs and the property nodes will start behaving. The other way to link the automation refnums is to right-click on them and choose select ActiveX class and then browse to your control.
    -Jim

  • How do I stop quicktime from playing mpg in firefox?

    I want quicktime to NOT play mpg files in firefox. How can I add a mpg file to the applications section of FF to setup this properly?

    QuickTime can be very persistent in wanting to handle (take over) MIME types.
    Did you check the file type and MIME setting in the QuickTime Preferences?
    *http://kb.mozillazine.org/QuickTime

  • Alternative for the ActiveX object for the other browsers excluding IE?

    I need open a word document (Doc/Docx) then edit and save   in client side itsetf.forthat i'm using ActiveXObject and javascript.it is working fine with IE but it's not working in other browsers(Chrome,Firefox).
                        var w = new ActiveXObject('Word.Application');
                        w.Visible = true; //set to false to stop the Word document from opening
                        obj = w.Documents.Open("D:\\test.docx");
                        docText = obj.Content;
                        w.Selection.TypeText("Hello world!");
                        w.Documents.Save();
    what is Alternative for the ActiveX object (OR) How can i edit a word document (Doc/Docx) by using client side scripting?    
    Punch bala

    This problem is haaping to you there is reasons are
    1. Old FF , so 1st update your browser
    2.or net speed , beczzz gmail needs high speed .. high means not like 3G ..it should be approximately 25-30kbps . As u wrote this doesn't happen in IE , becz IE is mad for work in low speed also bt it takes time to load .. ones load never refresh without you permition bt FF works fastly so it try to open as it has dwnloded ,, bt half part cant be stable long .so it refreshes..........
    So now update ur browser n use high n stable INTERNET ....

Maybe you are looking for

  • Why can't I use photo stream on my Windows XP?

    I am backing up my iPhone using the iCloud but I realized that I can't access my photo stream from my pc. When I checked the iCloud Help on setting up my photo stream it says I have to have Windows 7 or 8. My computer works just fine so I'm not chang

  • FBL1N Transaction, Info req.

    Info about Posted: Dec 22, 2005 6:00 PM        Reply      E-mail this post  Hi, Presetnly I am working with FBL1N Transaction. Vendor Line Item Display. I would like some one to elaborate on that the usage of this transaction FBL1N. Actually when I a

  • Complete novice needs advice

    Hi, Im a guitarist (bit of an old rocker at heart) and would love to get started with GB ie; recording my guitar and voice etc. I have a Imac Power PC (2005) with GB2. Could anyone recommend a decent book to buy in order to get started. I am in my 50

  • Sqldeveloper and multiple homes - how to force it to use included jdbc

    Hello, I'm having a hard time to get Sqldev 1.5 working with a WE8MSWIN1252 database on windows system that has also a 10.2.0.3 home installed. It looks like it's then not using the own jdbc but the 10.2.0.3 thin jdbc found in the Oracle home - runni

  • Why Java provides Object cloning even if there is Object reference variable

    In both cases original value get changed. What is the difference between these (clonable interface & Object reference variable)