private List <Declaration> GetExcelRangeDeclarations() { var excelDeclaration = new ProjectDeclaration(new QualifiedMemberName(new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "Excel"), "Excel"), "Excel", true); var globalDeclaration = new ClassModuleDeclaration(new QualifiedMemberName( new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "_Global"), "_Global"), excelDeclaration, "_Global", true, null, null); var globalCoClassDeclarationAttributes = new Attributes(); globalCoClassDeclarationAttributes.AddPredeclaredIdTypeAttribute(); globalCoClassDeclarationAttributes.AddGlobalClassAttribute(); var globalCoClassDeclaration = new ClassModuleDeclaration(new QualifiedMemberName( new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "Global"), "Global"), excelDeclaration, "Global", true, null, globalCoClassDeclarationAttributes); globalDeclaration.AddSubtype(globalCoClassDeclaration); globalCoClassDeclaration.AddSupertype(globalDeclaration); globalCoClassDeclaration.AddSupertype("_Global"); var rangeClassModuleDeclaration = new ClassModuleDeclaration(new QualifiedMemberName( new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "Range"), "Range"), excelDeclaration, "Range", true, new List <IAnnotation>(), new Attributes()); var rangeDeclaration = new PropertyGetDeclaration(new QualifiedMemberName( new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "_Global"), "Range"), globalDeclaration, globalDeclaration, "Range", null, null, Accessibility.Global, null, Selection.Home, false, true, new List <IAnnotation>(), new Attributes()); var firstParamDeclaration = new ParameterDeclaration(new QualifiedMemberName( new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "_Global"), "Cell1"), rangeDeclaration, "Variant", null, null, false, false); var secondParamDeclaration = new ParameterDeclaration(new QualifiedMemberName( new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "_Global"), "Cell2"), rangeDeclaration, "Variant", null, null, true, false); rangeDeclaration.AddParameter(firstParamDeclaration); rangeDeclaration.AddParameter(secondParamDeclaration); return(new List <Declaration> { excelDeclaration, globalDeclaration, globalCoClassDeclaration, rangeClassModuleDeclaration, rangeDeclaration, firstParamDeclaration, secondParamDeclaration, }); }
public void ClassModulesThatAreGlobalClassesHaveADefaultInstanceVariable() { var projectDeclaration = GetTestProject("testProject"); var classAttributes = new Attributes(); classAttributes.AddGlobalClassAttribute(); var classModule = GetTestClassModule(projectDeclaration, "testClass", true, classAttributes); Assert.IsTrue(classModule.HasDefaultInstanceVariable); }
public void ClassModulesWithTheGlobalNamespaceAttributeAreGlobalClasses() { var projectDeclaration = GetTestProject("testProject"); var classAttributes = new Attributes(); classAttributes.AddGlobalClassAttribute(); var classModule = GetTestClassModule(projectDeclaration, "testClass", true, classAttributes); Assert.IsTrue(classModule.IsGlobalClassModule); }
public void ClassModulesWithASubtypeBelowInTheHiearchyThatIsAGlobalClassAndThatHasBeenAddedBeforeCallingIsGlobalClassTheFirstTimeIsAGlobalClass() { var projectDeclaration = GetTestProject("testProject"); var classAttributes = new Attributes(); classAttributes.AddGlobalClassAttribute(); var subsubtype = GetTestClassModule(projectDeclaration, "testSubSubtype", true, classAttributes); var subtype = GetTestClassModule(projectDeclaration, "testSubtype", true, null); subsubtype.AddSupertype(subtype); var classModule = GetTestClassModule(projectDeclaration, "testClass", true, null); subtype.AddSupertype(classModule); Assert.IsTrue(classModule.IsGlobalClassModule); }
public void ClassModulesBecomeAGlobalClassIfBelowInTheHierarchyASubtypeIsAddedThatIsAGlobalClassAfterIsAGlobalClassHasAlreadyBeenCalled() { var projectDeclaration = GetTestProject("testProject"); var classAttributes = new Attributes(); classAttributes.AddGlobalClassAttribute(); var subsubtype = GetTestClassModule(projectDeclaration, "testSubSubtype", true, classAttributes); var subtype = GetTestClassModule(projectDeclaration, "testSubtype", true, null); var classModule = GetTestClassModule(projectDeclaration, "testClass", true, null); subtype.AddSupertype(classModule); var dummy = classModule.IsGlobalClassModule; subsubtype.AddSupertype(subtype); Assert.IsTrue(classModule.IsGlobalClassModule); }
private static Attributes GetModuleAttributes(IComType module) { var attributes = new Attributes(); if (module.IsPreDeclared) { attributes.AddPredeclaredIdTypeAttribute(); } if (module.IsAppObject) { attributes.AddGlobalClassAttribute(); } if (module is IComTypeWithMembers members && members.IsExtensible) { attributes.AddExtensibledClassAttribute(); } return(attributes); }