コード例 #1
0
 private bool Exists(string name)
 {
     //TODO: for older that SW2014 - get all properties
     if (m_App.IsVersionNewerOrEqual(Enums.SwVersion_e.Sw2014))
     {
         return(PrpMgr.Get5(name, true, out _, out _, out _)
                != (int)swCustomInfoGetResult_e.swCustomInfoGetResult_NotPresent);
     }
     else
     {
         var prpNames = PrpMgr.GetNames() as string[] ?? new string[0];
         return(prpNames.Contains(name, StringComparer.CurrentCultureIgnoreCase));
     }
 }
コード例 #2
0
ファイル: SwCommandManager.cs プロジェクト: windygu/xcad
        protected virtual void Dispose(bool disposing)
        {
            if (disposing)
            {
                var usedToolbarIds = new List <int>();

                foreach (var grp in m_CommandBars)
                {
                    if (grp.CommandGroup.HasToolbar)
                    {
                        usedToolbarIds.Add(grp.CommandGroup.ToolbarId);
                    }

                    m_Logger.Log($"Removing group: {grp.Spec.Id}");

                    var removeRes = false;

                    if (m_App.IsVersionNewerOrEqual(Enums.SwVersion_e.Sw2011))
                    {
                        var res = (swRemoveCommandGroupErrors)CmdMgr.RemoveCommandGroup2(grp.Spec.Id, true);
                        removeRes = res == swRemoveCommandGroupErrors.swRemoveCommandGroup_Success;
                    }
                    else
                    {
                        removeRes = CmdMgr.RemoveCommandGroup(grp.Spec.Id);
                    }

                    if (!removeRes)
                    {
                        m_Logger.Log($"Failed to remove group: {grp.Spec.Id}");
                    }
                }

                TryClearDanglingToolbarIds(usedToolbarIds);

                m_CommandBars.Clear();
            }

            if (CmdMgr != null)
            {
                if (Marshal.IsComObject(CmdMgr))
                {
                    Marshal.ReleaseComObject(CmdMgr);
                }

                CmdMgr = null;
            }
        }
コード例 #3
0
        protected virtual void Dispose(bool disposing)
        {
            if (disposing)
            {
                foreach (var grp in m_CommandBars)
                {
                    m_Logger.Log($"Removing group: {grp.Spec.Id}", LoggerMessageSeverity_e.Debug);

                    bool removeRes;

                    if (m_App.IsVersionNewerOrEqual(SwVersion_e.Sw2011))
                    {
                        var res = (swRemoveCommandGroupErrors)CmdMgr.RemoveCommandGroup2(grp.Spec.Id, true);
                        removeRes = res == swRemoveCommandGroupErrors.swRemoveCommandGroup_Success;
                    }
                    else
                    {
                        removeRes = CmdMgr.RemoveCommandGroup(grp.Spec.Id);
                    }

                    if (!removeRes)
                    {
                        m_Logger.Log($"Failed to remove group: {grp.Spec.Id}", LoggerMessageSeverity_e.Warning);
                    }
                }

                m_CommandBars.Clear();
            }

            if (CmdMgr != null)
            {
                if (Marshal.IsComObject(CmdMgr))
                {
                    Marshal.ReleaseComObject(CmdMgr);
                }

                CmdMgr = null;
            }
        }