コード例 #1
0
ファイル: FIPHandler.cs プロジェクト: Tossler/DCSFlightpanels
        public bool Initialize()
        {
            _initOk = false;
            try
            {
                _deviceCallback    = DeviceCallback;
                _enumerateCallback = EnumerateCallback;

                if (!File.Exists(@"C:\Program Files\Saitek\DirectOutput\DirectOutput.dll"))
                {
                    //Did not find Saitek drivers
                    Common.LogError(1, "INFO : No Saitek FIP driver found. FIP support not loaded. (assuming no FIPs are connected)");
                    return(false);
                }

                var retVal = DirectOutputClass.Initialize("ABC");
                if (retVal != ReturnValues.S_OK)
                {
                    Common.LogError(1, "FIPHandler failed to init DirectOutputClass. retval = " + retVal);
                    return(false);
                }
                Debug.Print("Init returned: " + retVal);

                retVal = DirectOutputClass.RegisterDeviceCallback(_deviceCallback);
                Debug.Print("Register Device Callback returned: " + retVal);

                retVal = DirectOutputClass.Enumerate(_enumerateCallback);
                if (retVal != ReturnValues.S_OK)
                {
                    Common.LogError(1, "FIPHandler failed to Enumerate DirectOutputClass. retval = " + retVal);
                    return(false);
                }
                Debug.Print("Enumerate Callback returned: " + retVal);
            }
            catch (Exception ex)
            {
                Common.LogError(1, ex, "FIPHandler failed to init.");
                return(false);
            }
            _initOk = true;
            return(true);
        }