Beispiel #1
0
 public int init(bool isCompat)
 {
     lock (this) {
         if (isInitialized)
         {
             if (this.isCompat == isCompat)
             {
                 return(TextHook.OK);
             }
             else
             {
                 throw new MyException("Initialization error. Please restart Chiitrans Lite and try again.");
             }
         }
         else
         {
             this.isCompat = isCompat;
             try {
                 handleCreateThreadDelegate = new TextHookInterop.OnCreateThreadFunc(handleCreateThread);
                 handleRemoveThreadDelegate = new TextHookInterop.OnRemoveThreadFunc(handleRemoveThread);
                 handleConnectDelegate      = new TextHookInterop.CallbackFunc(handleConnect);
                 handleDisconnectDelegate   = new TextHookInterop.CallbackFunc(handleDisconnect);
                 handleInputDelegate        = new TextHookInterop.OnInputFunc(handleInput);
                 int res;
                 if (isCompat)
                 {
                     TextHookInteropCompat.TextHookOnConnect(handleConnectDelegate);
                     TextHookInteropCompat.TextHookOnCreateThread(handleCreateThreadDelegate);
                     TextHookInteropCompat.TextHookOnRemoveThread(handleRemoveThreadDelegate);
                     TextHookInteropCompat.TextHookOnDisconnect(handleDisconnectDelegate);
                     TextHookInteropCompat.TextHookOnInput(handleInputDelegate);
                     res           = TextHookInteropCompat.TextHookInit();
                     isInitialized = res == TextHook.OK;
                     return(res);
                 }
                 else
                 {
                     TextHookInterop.TextHookOnConnect(handleConnectDelegate);
                     TextHookInterop.TextHookOnCreateThread(handleCreateThreadDelegate);
                     TextHookInterop.TextHookOnRemoveThread(handleRemoveThreadDelegate);
                     TextHookInterop.TextHookOnDisconnect(handleDisconnectDelegate);
                     TextHookInterop.TextHookOnInput(handleInputDelegate);
                     res           = TextHookInterop.TextHookInit();
                     isInitialized = res == TextHook.OK;
                     return(res);
                 }
             } catch (Exception ex) {
                 Logger.logException(ex);
                 return(1);
             }
         }
     }
 }
Beispiel #2
0
 public int init(bool isCompat)
 {
     lock (this) {
         if (isInitialized) {
             if (this.isCompat == isCompat) {
                 return TextHook.OK;
             } else {
                 throw new MyException("Initialization error. Please restart Chiitrans Lite and try again.");
             }
         } else {
             this.isCompat = isCompat;
             try {
                 handleCreateThreadDelegate = new TextHookInterop.OnCreateThreadFunc(handleCreateThread);
                 handleRemoveThreadDelegate = new TextHookInterop.OnRemoveThreadFunc(handleRemoveThread);
                 handleConnectDelegate = new TextHookInterop.CallbackFunc(handleConnect);
                 handleDisconnectDelegate = new TextHookInterop.CallbackFunc(handleDisconnect);
                 handleInputDelegate = new TextHookInterop.OnInputFunc(handleInput);
                 int res;
                 if (isCompat) {
                     TextHookInteropCompat.TextHookOnConnect(handleConnectDelegate);
                     TextHookInteropCompat.TextHookOnCreateThread(handleCreateThreadDelegate);
                     TextHookInteropCompat.TextHookOnRemoveThread(handleRemoveThreadDelegate);
                     TextHookInteropCompat.TextHookOnDisconnect(handleDisconnectDelegate);
                     TextHookInteropCompat.TextHookOnInput(handleInputDelegate);
                     res = TextHookInteropCompat.TextHookInit();
                     isInitialized = res == TextHook.OK;
                     return res;
                 } else {
                     TextHookInterop.TextHookOnConnect(handleConnectDelegate);
                     TextHookInterop.TextHookOnCreateThread(handleCreateThreadDelegate);
                     TextHookInterop.TextHookOnRemoveThread(handleRemoveThreadDelegate);
                     TextHookInterop.TextHookOnDisconnect(handleDisconnectDelegate);
                     TextHookInterop.TextHookOnInput(handleInputDelegate);
                     res = TextHookInterop.TextHookInit();
                     isInitialized = res == TextHook.OK;
                     return res;
                 }
             } catch (Exception ex) {
                 Logger.logException(ex);
                 return 1;
             }
         }
     }
 }
 public static extern Int32 TextHookOnCreateThread(TextHookInterop.OnCreateThreadFunc callback);