PRB: InterruptScriptThread Causes Invalid Page Fault in OLEAUT32

ID: Q182946


The information in this article applies to:
  • Microsoft Visual C++, 32-bit Editions, version 5.0
  • Internet Client SDK, version 4.0


SYMPTOMS

When you try to interrupt a running script thread with IActiveScript::InterruptScriptThread(), you receive one of the following errors:

<Program> caused an invalid page fault in module OLEAUT32.DLL at 0137:65347989
-or-
Access violation in OLEAUT32.DLL


CAUSE

The documentation for the IActiveScript::InterruptScriptThread() method indicates that you should pass the address of an EXCEPINFO structure as the second parameter. However, it fails to mention that this structure must be initialized because InterruptScriptThread will try to use information stored in the EXCEPINFO structure.


RESOLUTION

To correct this problem, do one of the following two things:

  • Pass NULL for the second argument, pexcepinfo, of InterruptScriptThread(). Here's an example:
    
    pActiveScript->InterruptScriptThread(SCRIPTTHREADID_BASE, NULL, 0); 


  • Initialize the EXCEPINFO structure before passing it to InterruptScriptThread(). Here's an example:
    
    EXCEPINFO ex;
    memset( &ex, 0, sizeof( EXCEPINFO ));
    
    pActiveScript->InterruptScriptThread( SCRIPTTHREADID_BASE, &ex, 0 ); 



REFERENCES

Microsoft ActiveX 3.01 SDK; search on "ActiveX Scripting"

© Microsoft Corporation 1998, All Rights Reserved.
Contributions by Joe Crump, Microsoft Corporation

Additional query words: vbscript jscript

Keywords : kbcode kberrmsg kbdocerr kbJScript kbVBScript
Version : WINDOWS:4.0; winnt:5.0
Platform : WINDOWS winnt
Issue type : kbprb


Last Reviewed: July 24, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.