summaryrefslogtreecommitdiff
path: root/NET/worlds/console/ActiveX.java
diff options
context:
space:
mode:
authorFuwn <[email protected]>2021-05-03 16:38:41 -0700
committerFuwn <[email protected]>2021-05-03 16:38:41 -0700
commite1e781bb2135ef78592226f1a3eaba4925702f1f (patch)
tree8a5b590463ed413e1c6eabb719130e701b95ca63 /NET/worlds/console/ActiveX.java
downloadworlds.jar-e1e781bb2135ef78592226f1a3eaba4925702f1f.tar.xz
worlds.jar-e1e781bb2135ef78592226f1a3eaba4925702f1f.zip
:star:HEADmain
Diffstat (limited to 'NET/worlds/console/ActiveX.java')
-rw-r--r--NET/worlds/console/ActiveX.java220
1 files changed, 220 insertions, 0 deletions
diff --git a/NET/worlds/console/ActiveX.java b/NET/worlds/console/ActiveX.java
new file mode 100644
index 0000000..c5a3a4b
--- /dev/null
+++ b/NET/worlds/console/ActiveX.java
@@ -0,0 +1,220 @@
+/* */ package NET.worlds.console;
+/* */
+/* */ import NET.worlds.core.IniFile;
+/* */ import java.io.IOException;
+/* */ import java.io.PrintStream;
+/* */ import java.util.Vector;
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public class ActiveX
+/* */ implements MainCallback, MainTerminalCallback
+/* */ {
+/* */ private static boolean disabled;
+/* */ private static ActiveX _instance;
+/* */ private static int _references;
+/* */ private static Vector<IUnknown> _referrers;
+/* */ private static int _serverLocks;
+/* */ private static int _activeComponents;
+/* */ private static int _debugLevel;
+/* */
+/* */ static
+/* */ {
+/* 39 */ disabled = IniFile.gamma().getIniInt(
+/* 40 */ "DISABLEACTIVEX", 0) != 0;
+/* */
+/* */
+/* */
+/* 44 */ _referrers = new Vector();
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* 53 */ _debugLevel = IniFile.gamma().getIniInt("oledebug", 0);
+/* 54 */ if (_debugLevel > 0) {
+/* 55 */ System.out.println("OLE DEBUGGING LEVEL = " + _debugLevel);
+/* */ }
+/* */ }
+/* */
+/* */ public static int getDebugLevel()
+/* */ {
+/* 61 */ return _debugLevel;
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public static ActiveX getInstance()
+/* */ {
+/* 72 */ if (_instance == null)
+/* 73 */ _instance = new ActiveX();
+/* 74 */ return _instance;
+/* */ }
+/* */
+/* */ private ActiveX()
+/* */ {
+/* 79 */ Main.register(this);
+/* */ }
+/* */
+/* */
+/* */ public void mainCallback()
+/* */ {
+/* 85 */ winProc();
+/* */ }
+/* */
+/* 88 */ public int _shutdownCounter = 0;
+/* */
+/* */ public void terminalCallback()
+/* */ {
+/* 92 */ assert (this == _instance);
+/* 93 */ if ((_serverLocks > 0) || (_activeComponents > 0)) {
+/* 94 */ this._shutdownCounter += 1;
+/* 95 */ if (this._shutdownCounter == 10) {
+/* 96 */ this._shutdownCounter = 0;
+/* 97 */ System.out.println("Shutdown ignored: _serverLocks = " +
+/* 98 */ _serverLocks + ", _activeComponents = " +
+/* 99 */ _activeComponents);
+/* 100 */ Exception e = new Exception();
+/* 101 */ e.printStackTrace(System.out);
+/* */ }
+/* 103 */ return;
+/* */ }
+/* */
+/* */
+/* 107 */ synchronized (this) {
+/* 108 */ if ((!$assertionsDisabled) && (_references != _referrers.size())) throw new AssertionError();
+/* 109 */ while (_references > 0)
+/* */ {
+/* */
+/* 112 */ for (int i = _referrers.size() - 1; i >= 0; i--) {
+/* 113 */ IUnknown pUnk = (IUnknown)_referrers.elementAt(i);
+/* */ try {
+/* 115 */ pUnk.Release();
+/* */ } catch (OLEInvalidObjectException e) {
+/* 117 */ e.printStackTrace(System.out);
+/* 118 */ System.out
+/* 119 */ .println("ActiveX: misbehaved object detected: " +
+/* 120 */ pUnk);
+/* 121 */ _referrers.removeElementAt(i);
+/* */ }
+/* */ }
+/* */
+/* */
+/* 126 */ if (_referrers.size() > 0) {
+/* 127 */ System.out.println("ActiveX: bad referrers found:");
+/* 128 */ for (int i = _referrers.size() - 1; i >= 0; i--) {
+/* 129 */ IUnknown pUnk = (IUnknown)_referrers.elementAt(i);
+/* 130 */ System.out.println("\t" + pUnk);
+/* */ }
+/* */ }
+/* */ }
+/* */
+/* 135 */ assert (_references == 0);
+/* 136 */ Main.unregister(this);
+/* */ }
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public static void init(IUnknown referrer)
+/* */ throws IOException
+/* */ {
+/* 150 */ synchronized () {
+/* 151 */ assert (!_referrers.contains(referrer));
+/* 152 */ if (_references == 0) {
+/* 153 */ initActiveX();
+/* */ }
+/* */
+/* */
+/* 157 */ _references += 1;
+/* 158 */ _referrers.addElement(referrer);
+/* */
+/* 160 */ if ((_debugLevel & 0x1) > 0) {
+/* 161 */ System.out.println("ActiveX.init() - refCnt = " +
+/* 162 */ _references);
+/* */ }
+/* */ }
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public static void uninit(IUnknown referrer)
+/* */ {
+/* 174 */ synchronized () {
+/* 175 */ assert (_references > 0);
+/* 176 */ assert (_referrers.contains(referrer));
+/* 177 */ _references -= 1;
+/* 178 */ if (_references == 0)
+/* 179 */ uninitActiveX();
+/* 180 */ _referrers.removeElement(referrer);
+/* */
+/* 182 */ if ((_debugLevel & 0x1) > 0) {
+/* 183 */ System.out.println("ActiveX.uninit() - refCnt = " +
+/* 184 */ _references);
+/* */ }
+/* */ }
+/* */ }
+/* */
+/* */ public static synchronized void incServerLocks(int amt) {
+/* 190 */ _serverLocks += amt;
+/* 191 */ assert (_serverLocks >= 0);
+/* */ }
+/* */
+/* */ public static synchronized void incActiveComponents(int amt) {
+/* 195 */ _activeComponents += amt;
+/* 196 */ assert (_activeComponents >= 0);
+/* */ }
+/* */
+/* */ private static native void initActiveX()
+/* */ throws IOException;
+/* */
+/* */ private static native void uninitActiveX();
+/* */
+/* */ public static native int getClassFClsID(String paramString1, String paramString2)
+/* */ throws IOException;
+/* */
+/* */ public static native int getClassFProgID(String paramString1, String paramString2)
+/* */ throws IOException;
+/* */
+/* */ private static native int getClass(int paramInt, String paramString)
+/* */ throws IOException;
+/* */
+/* */ private native void winProc();
+/* */ }
+
+
+/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\console\ActiveX.class
+ * Java compiler version: 6 (50.0)
+ * JD-Core Version: 0.7.1
+ */ \ No newline at end of file