ACPAddIn.ThisAddIn.handleExtensionMode C# (CSharp) Method

handleExtensionMode() private method

private handleExtensionMode ( KbDllHookStruct kbDllHookStruct ) : bool
kbDllHookStruct KbDllHookStruct
return bool
        private bool handleExtensionMode(KbDllHookStruct kbDllHookStruct)
        {
            int code = -1;

            if (kbDllHookStruct.vkCode == (int)Keys.Space || kbDllHookStruct.vkCode == (int)Keys.Enter)
            {
                extMode.resetExtensionMode();
                return false;
            }
            else if (kbDllHookStruct.vkCode == (int)Keys.Back)
            {
                extMode.removeRangeTextAndRepositionCursor(extMode.getExtensionRange());
                extMode.resetExtensionMode();
                return false;
            }
            else
            {
                code = checkKeyCombination(kbDllHookStruct);

                // if is correct key combination and is extension mode
                if (code > -1 && extMode.getExtensionPos() != -1)
                {
                    if (extensionBw == null)
                    {
                        extensionBw = new BackgroundWorker();
                        extensionBw.DoWork += extensionBgWork;
                    }

                    if (!extensionBw.IsBusy)
                        extensionBw.RunWorkerAsync(code);

                    return false;
                }
                else if (kbDllHookStruct.vkCode == (int)Keys.LControlKey || kbDllHookStruct.vkCode == (int)Keys.RControlKey ||
                    kbDllHookStruct.vkCode == (int)Keys.LMenu || kbDllHookStruct.vkCode == (int)Keys.RMenu ||
                    kbDllHookStruct.vkCode == (int)Keys.LShiftKey || kbDllHookStruct.vkCode == (int)Keys.RShiftKey)
                {
                    return true;
                }
                else
                {
                    if (extensionBw == null || !extensionBw.IsBusy)
                    {
                        extendSuggestionForm.fadeOut();
                        extMode.resetExtensionMode();
                    }
                }
            }

            return true;
        }