LoadComponent Question (QT 7.5 on Windows)
Hello Everyone!
With the release of QuickTime 7.5 I'm now having a problem on Windows
with a QTVR video game I wrote and the LiveStage QSXE component. There
is no problem on MacOS 10.4 with the Universal Binary QSXE component.
Here's my background situation:
I'm finding that on Windows XP my movie's call to ComponentVersion("wire","qsxe","THW2")
always returns 65537, *whether or not* the QSXE component is in the QTComponents
folder. On MacOS 10.4, the ComponentVersion call returns 65539 when the
component is in the folder, and 0 when it is not.
I was not using LoadComponent() for the QSXE component at all in my project,
because it seemed to be loaded automatically by QuickTime. Or, at least in
QT 7.4.5 and earlier on Windows XP, although the ComponentVersion call was
not returning the correct version (3 or 65539), when I called QSXE_Initialize the
component at least was available to QuickTime.
Now, in QT 7.5 on XP my movie crashes QuickTime when it gets to the QSXE_Initialize
call. Still no problem on MacOS 10.4.
I'm guessing I need to use LoadComponent to force the loading of a component now
into QuickTime. At least, I hope, otherwise my project is sunk because I don't expect
LiveStage to be updated with a workaround. ;-) The QSXE component is what gives my
game the ability to save state in cookies on the user's machine.
SO, here's my question:
I looked for the documentation on LoadComponent, and have found conflicting
descriptions. In the LSP 4.5 QScript manual it says that LoadComponent takes a
single numeric literal value that is a code for the desired component. I couldn't
find any listing of the codes. I guessed at a number, and got an error from LiveStage
saying that parameters were missing.
Then, digging further I saw in the QScript popup reference inside LiveStage that the
LoadComponent invocation has *5* parameters instead:
LoadComponent(ComponentType, SubType, Manufacturer, Flags, FlagMask)
I tried the following call: LoadComponent("wire", "qsxe", "THW2", 0, 0)
But LiveStage wouldn't compile this either. It complains that the "wire", "qsxe", and "THW2"
parameters must be constants. I have no idea where to get these constants. Can anyone
help me here?
Thanks!
--Frank Klassner
Associate Professor
Department of Computing Sciences
Villanova University
800 Lancaster Avenue
Villanova, PA 19085
v:610-519-5671
