?
Solved

Not null or object error with Quicken registration page - a DLL problem, really?

Posted on 2003-03-29
4
Medium Priority
?
1,387 Views
Last Modified: 2007-12-19
Not my programming, but I am curious if the explanation Intuit gives for this error is possible. My error is: "Line 19 Error: 'document.all[...].SnapShot' is null or not an object.  Intuit says this is an issue with DLLs (http://www.intuit.com/support/quicken/2003/win/6100.html).  Does that make sense?  How?  Or is it problem in their code?
Here is the code:




<!-- 3F4E2394BAE6254C1E6A15C426F4D31DEF530BF1449E94B3CA25 -->
<!-- EF458210C6DB0868872409513C0CB41C90BB369B6380B84A1779 -->
<!-- 535A5424FCD23CA3308B50B5C9CEBE9EAF117A323CB3BC163297 -->
<!-- 0FBE78CEF0800975A016E19696A5883DF1B17E8C790783C2DA93 -->
<!-- 10CB7316C6A1939AB854BCE59A3CBCB81A89967E47C0A819A693 -->
<!-- DDBC93E3A87C9B241F674E84BC2C1A0114733B163E96D8729ABC -->
<html>
<head>
<title>Quicken Product Registration</title>
<style>
<!--
.bb          { font-family: MS Sans Serif; font-size: 8pt }
-->
</style>
</head>

<script>
function resize(snapshot)
{
    var h = document.all[snapshot].SnapShot.GetHeight();
    var w = document.all[snapshot].SnapShot.GetWidth();

    if (h > 0)
    {
        document.all[snapshot].width = w;
        document.all[snapshot].height= h;
        document.all[snapshot].SnapShot.Size(0,0,w,h);
    }
}

function size_zero(snapshot)
{
    document.all[snapshot].width = 1;
    document.all[snapshot].height= 1;
    document.all[snapshot].SnapShot.Size(0,0,1,1);
}

function DoICSetup()
{
    // Return code 0 cancels
    qw.Command.EndModal( 0, "http://qw.exe/qw?menuid=6407" );
}

function DoHelp()
{
    document.location = "http://qw.exe/qw?help=8511";
}

function DoCancel()
{
    // Return code -1 continues whatever was being done prior to reg
    qw.Command.EndModal( -1, 0 );
}

</script>

<SCRIPT LANGUAGE="JavaScript" FOR="uqw" EVENT="onSnapShotUpdate()">
resize('uqw');
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript" FOR="qw" EVENT="onQuickenEvent(szType)">
    if(szType == "Registration")
    {
        var nState = qw.Command.REG_GetState();
       
        // Always turn the first two off
        idDiv1.style.display = 'none';
        idDiv2.style.display = 'none';
       
        if (nState == 1)
        {
            idDiv1.style.display = '';
            idDivUQW.style.display = '';
        }
        else if (nState == 2)
        {
            // Hide the third, just in case
            idDiv3.style.display = 'none';
            idDiv2.style.display = '';
            idDivUQW.style.display = '';
            location.href = qw.Command.REG_GetURL();
        }
        else if (nState == 3)
        {
            idDiv3.style.display = 'none';
            idDivUQW.style.display = '';
        }
        else if (nState == 4)
        {
            // Registration already complete
            var nType = qw.Command.REG_GetType();
           
            if (nType == 2)
            {
                // Type 2 is an "upgrader"
                document.location.href = "complete.htm";
            }
            else if (nType == 3)
            {
                // type 3 means skip the osu config
                document.location.href = "later.htm";
            }
            else
            {
                // Otherwise treat as new user
                document.location.href = "benefits.htm";
            }
        }
        else
        {
            // Show the error page
            // It's worth noting that hiding the snapshot by trying to change the display or visibility
            // attribute causes qwin to crash
            // Remove this call to size_zero if we don't hide the snapshot on the error pages
            size_zero('uqw');
            idDiv3.style.display      = '';
        }
    }
</SCRIPT>

<OBJECT ID="qw"  CLASSID=CLSID:C79C91A1-DB06-11D2-9E0C-00105A26F05D WIDTH=1 HEIGHT=1></OBJECT>
<script>
// Initialize
qw.Type="Data";
</script>

<body onload="resize('uqw');">
        <center>

      <table border="0" cellspacing="0" cellpadding="5" width="570">
       
        <tr>
          <td><b><font face="Arial" color="#336699"><br>
            </font>
            </b>
<table border="0" cellspacing="0" bgcolor="#336699" cellpadding="0">
  <tr>
    <td align="left" valign=top width="5"><img border="0" src="uplc2.gif" width="6" height="6"></td>
    <td nowrap>
      <table border="0" cellpadding="0" cellspacing="0" height="1">
        <tr>
          <td></td>
        </tr>
      </table>
      <font color="#FFFFFF" face="Verdana" size="2"><b>Welcome to Quicken registration...</b></font>
      <table border="0" cellpadding="0" cellspacing="0" height="2">
        <tr>
          <td></td>
        </tr>
      </table>
    </td>
    <td align="right" valign=top width="5"><img border="0" src="uprc2.gif" width="6" height="6"></td>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#336699" height="1">
  <tr>
    <td width="100%">
      <table border="0" cellpadding="0" cellspacing="0">
        <tr>
           <td></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
          </td>
        </tr>
       
        <tr>
          <td>
              <script>
              function TryAgain( bRegPage, eDiv )
              {
                  eDiv.style.display = 'none';
                 
                  if (bRegPage)
                  {
                      location.href = qw.Command.REG_GetURL();
                  }
                  else
                  {
                      // Remove this call to resize if we don't hide the snapshot on the error pages
                      resize('uqw');
                      qw.Command.REG_NextState();
                  }
              }
              </script>
         
              <div align="center" id="idDiv1" STYLE="display='none'" >
              <font face="MS Sans Serif" size="2">Quicken needs to initiate product registration.  This
              may take a few minutes....</font>
              </div>
             
              <div align="center" id="idDiv2" STYLE="display='none'" >
              <font face="MS Sans Serif" size="2">Going online to the registration pages...</font>
              </div>
             
              <div id="idDiv3" STYLE="display='none'" >
              <font face="MS Sans Serif" size="2">
              Connection to registration is unsuccessful.  Please check your
              Quicken Internet Connection Settings and then
              <a href="javascript:TryAgain( false, idDiv3 )" onMouseOver="window.status='Try again'; return true;" onMouseOut=window.status=''; return true;">
              try again</a>.  If this does not help, please visit the
              <a href="http://qw.exe/qw?externalurl=http://qw2003.quicken.com/cgi-bin/qd.cgi/w/2003/reghelp" onMouseOver="window.status='http://www.intuit.com/support/quicken/faqs/docs/w_onlinetroubleguide.html'; return true;" onMouseOut="window.status=''; return true;">
              Online Trouble Shooting Guide</a>, or click help below.
              </font>
             
              <p align="center"> <font face="Arial">
              <input type="button" value="Cancel" name="B1" class="bb" onclick="javascript:DoCancel()">&nbsp;
              <input type="button" value=" Help " name="B1" class="bb" onclick="javascript:DoHelp()">
              </font></p>
       
              </div>
             
              <div id="idDiv4" STYLE="display='none'" >
              <font face="MS Sans Serif" size="2">Registration did not complete successfully.
              <a href="javascript:TryAgain( false, idDiv3 )" onMouseOver="window.status='Try again'; return true;" onMouseOut=window.status=''; return true;">
              Try again</a> or if you are still not successful, visit the
              <a href="http://qw.exe/qw?externalurl=http://qw2003.quicken.com/cgi-bin/qd.cgi/w/2003/reghelp" onMouseOver="window.status='http://www.intuit.com/support/quicken/faqs/docs/w_onlinetroubleguide.html'; return true;" onMouseOut="window.status=''; return true;">
              Online Trouble Shooting Guide</a> for more information, or click help below.
              </font>
           
              <p align="center"><font face="Arial">
              <input type="button" value="Cancel" name="B1" class="bb" onclick="javascript:DoCancel()">&nbsp;
              <input type="button" value=" Help " name="B1" class="bb" onclick="javascript:DoHelp()">
              </font></p>
       
              </div>
             
              <div align="center" id="idDivUQW" STYLE="display='none'" >
                  <OBJECT ID="uqw"  CLASSID=CLSID:C79C91A1-DB06-11D2-9E0C-00105A26F05D WIDTH=400 HEIGHT=400>
                  </OBJECT>
                  <script language="JavaScript">
              uqw.Type="SnapShot";
              uqw.SnapShot.Init(168);
                  uqw.SnapShot.CreateView();
                  uqw.SnapShot.SetAreaDisplay(-1,1);
                  uqw.SnapShot.SetAreaDisplay(0,0);
              </script>
              </div>
          </td>
        </tr>
      </table>

<table border="0" cellPadding="0" cellSpacing="0" width="570" bgcolor="#FFFFFF">
  <tbody>
    <tr>
      <td align="center">
            <table border="0" cellpadding="0" cellspacing="0" width="570" bgcolor="#336699" height="1">
              <tr>
                <td width="100%">
                <table border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td></td>
                  </tr>
                </table>
                </td>
              </tr>
            </table>
        </td>
    </tr>
  </tbody>
</table>

</center>

<script>

var n = qw.Command.REG_GetState();
if (n == 0)
{
    qw.Command.REG_NextState();
}
else
{
    // We're somewhere in the reg process, so go to the reg error page
    // It's worth noting that hiding the snapshot by trying to change the display or visibility
    // attribute causes qwin to crash
    // Remove this call to size_zero if we don't hide the snapshot on the error pages
    size_zero('uqw');
    idDiv4.style.display      = '';
}
</script>
       
</body>
</html>
0
Comment
Question by:gd2141
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
4 Comments
 
LVL 5

Accepted Solution

by:
gator4life earned 200 total points
ID: 8232848
In the code you posted, Line 19 refers to:

     var h = document.all[snapshot].SnapShot.GetHeight();

To figure out what object "document.all[snapshot]" refers to, we need to find out first what "snapshot" refers to.  That's easy; "snapshot" is the name of the only argument being passed in to the resize() function where Line 19 is.  That doesn't help much, so now we need to find out where the resize() function is being called from, so that we can see what is being passed to the resize() function.  There are three places within the page where the resize() function is called, and all three say "resize('uqw')".  So, now we know the value of the "snapshot" variable in the resize function.  Going back to Line 19 with this value, the code is trying to locate the "document.all['uqw']" object.

If we now search the code for an object with a "name" and/or "id" equal to "uqw", we find this:

<OBJECT ID="uqw"  CLASSID=CLSID:C79C91A1-DB06-11D2-9E0C-00105A26F05D WIDTH=400 HEIGHT=400></OBJECT>

So, there is an object with an "id" of "uqw".  Therefore, Line 19 is not erroring out due to the fact that the object is not contained in the code.

However, Line 19 *will* cause an error if this object has not or cannot be *loaded* into the page.  This object is referencing a certain CLASSID on your local machine, where the class that instantiates this object should be.  Object classes are usually found in DLLs, so this error is most likely due to a class that cannot be located in a DLL.

The most likely case is that this DLL was supposed to be updated when you installed Quicken, but something else you were running on your machine at the time did not allow the Quicken install to write to and update that DLL.  It is always good practice whenever you are installing any new software on Windows to shut *everything* (and I mean *everything*) else down before installing the software.  My suggestion is to uninstall Quicken, reboot your machine, shut down all other programs, and then reinstall Quicken, just like Intuit suggests.

gator4life
(chomp, chomp)
0
 

Author Comment

by:gd2141
ID: 8234172
Thanks, gator4life.  I can say that I have shutdown everything that WinXP Pro will let me and I still have the problem after uninstall/reboot/shutdown-everything/reinstall.  I will call Intuit when their offices are open for their advice.  A couple of other things:  the classid is found in the registry and references qwapp.dll which does exist in the Quicken directory.  When quicken is running, that DLL is not shown to be loaded from the tasklist /m command.  A Google search of newsgroups shows a somewhat similar error reported in a previous version of Quicken.  The workaround was to regsrv32 the DLL.  It does load the DLL, but the error still exists. -- Again, thank you for the comprehensive explanation -- I will update things after hearing from Intuit or any additional replies/suggestions here.
0
 
LVL 16

Expert Comment

by:jaysolomon
ID: 10150275
No comment has been added lately, so it's time to clean up this TA.
I will leave the following recommendation for this question in the Cleanup topic area:

Accept: gator4life {http:#8232848}

Please leave any comments here within the next seven days.
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!

jAy
EE Cleanup Volunteer
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article shows how to create and access 2-dimensional arrays in JavaScript.  It includes a tutorial in case you are just trying to "get your head wrapped around" the concept and we'll also look at some useful tips for more advanced programmers. …
Having worked on larger scale sites, we found out that you are bound to look at more scalable solutions to integrating widgets, code snippets or complete applications and mesh them into functional sites, in any given composition. To share some of…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question