diff --git a/FastMoq.Tests/MocksTests.cs b/FastMoq.Tests/MocksTests.cs index 41e9656..88e710e 100644 --- a/FastMoq.Tests/MocksTests.cs +++ b/FastMoq.Tests/MocksTests.cs @@ -449,13 +449,13 @@ public void GetTypeFromInterfaceWithNonInterface() public void IsValidConstructor() { var constructor = Mocks.FindConstructor(typeof(TestClassNormal), false, Mocks.GetObject()); - var isValid = Mocker.IsValidConstructor(constructor.Key, Mocks.GetObject()); + var isValid = Mocker.IsValidConstructor(constructor.ConstructorInfo, Mocks.GetObject()); isValid.Should().BeTrue(); - isValid = Mocker.IsValidConstructor(constructor.Key, Mocks.GetObject(), 12); + isValid = Mocker.IsValidConstructor(constructor.ConstructorInfo, Mocks.GetObject(), 12); isValid.Should().BeFalse(); - isValid = Mocker.IsValidConstructor(constructor.Key, 12); + isValid = Mocker.IsValidConstructor(constructor.ConstructorInfo, 12); isValid.Should().BeFalse(); } @@ -473,14 +473,14 @@ public void RemoveMock() private void CheckBestConstructor(object data, bool expected, bool nonPublic) { var constructor = Mocks.FindConstructor(true, typeof(TestClassNormal), nonPublic); - var isValid = Mocker.IsValidConstructor(constructor.Key, data); + var isValid = Mocker.IsValidConstructor(constructor.ConstructorInfo, data); isValid.Should().Be(expected); } private void CheckConstructorByArgs(object data, bool expected, bool nonPublic) { var constructor = Mocks.FindConstructor(typeof(TestClassNormal), nonPublic, data); - var isValid = Mocker.IsValidConstructor(constructor.Key, data); + var isValid = Mocker.IsValidConstructor(constructor.ConstructorInfo, data); isValid.Should().Be(expected); } diff --git a/FastMoq.Tests/TestClassOne.cs b/FastMoq.Tests/TestClassOne.cs index 6ba44cf..6da1833 100644 --- a/FastMoq.Tests/TestClassOne.cs +++ b/FastMoq.Tests/TestClassOne.cs @@ -2,12 +2,28 @@ namespace FastMoq.Tests { + /// + /// Class TestClassOne. + /// Implements the + /// + /// public class TestClassOne : ITestClassOne { + /// + /// Initializes a new instance of the class. + /// + /// The file system. public TestClassOne(IFileSystem fileSystem) { } + /// + /// Initializes a new instance of the class. + /// + /// The file. internal TestClassOne(IFile file) { } } + /// + /// Interface ITestClassOne + /// public interface ITestClassOne { } } \ No newline at end of file diff --git a/FastMoq/ConstructorModel.cs b/FastMoq/ConstructorModel.cs new file mode 100644 index 0000000..6564464 --- /dev/null +++ b/FastMoq/ConstructorModel.cs @@ -0,0 +1,21 @@ +using System.Reflection; + +namespace FastMoq +{ + internal class ConstructorModel + { + internal ConstructorInfo ConstructorInfo { get; } + internal object?[] ParameterList { get; } + + internal ConstructorModel(ConstructorInfo constructorInfo, List parameterList) + { + ConstructorInfo = constructorInfo; + ParameterList = parameterList.ToArray(); + } + + internal ConstructorModel(KeyValuePair> kvp) : this(kvp.Key, kvp.Value) + { + + } + } +} diff --git a/FastMoq/FastMoq.csproj b/FastMoq/FastMoq.csproj index 99723e0..2899ad0 100644 --- a/FastMoq/FastMoq.csproj +++ b/FastMoq/FastMoq.csproj @@ -22,6 +22,7 @@ $(GenerateNuspecDependsOn);SetPackageVersion + False diff --git a/FastMoq/MockModel.cs b/FastMoq/MockModel.cs index 857a4fa..2ede5d6 100644 --- a/FastMoq/MockModel.cs +++ b/FastMoq/MockModel.cs @@ -2,10 +2,20 @@ namespace FastMoq { + /// + /// Class MockModel. + /// Implements the + /// + /// + /// public class MockModel : MockModel where T : class { #region Properties + /// + /// Gets or sets the mock. + /// + /// The mock. public new Mock Mock { get => (Mock) base.Mock; @@ -14,13 +24,21 @@ public class MockModel : MockModel where T : class #endregion + /// + /// Initializes a new instance of the class. + /// + /// The mock. internal MockModel(Mock mock) : base(typeof(T), mock) { } + /// + /// Initializes a new instance of the class. + /// + /// The mock model. internal MockModel(MockModel mockModel) : base(mockModel.Type, mockModel.Mock) { } } /// - /// Class MockModel. + /// Contains Mock and Type information. /// public class MockModel { @@ -38,12 +56,27 @@ public class MockModel /// The type. public Type Type { get; set; } + /// + /// Gets or sets a value indicating whether [non public]. + /// + /// true if [non public]; otherwise, false. + public bool NonPublic { get; set; } = false; + #endregion - internal MockModel(Type type, Mock mock) + /// + /// Initializes a new instance of the class. + /// + /// The type. + /// The mock. + /// if set to true [non public]. + /// type + /// mock + internal MockModel(Type type, Mock mock, bool nonPublic = false) { Type = type ?? throw new ArgumentNullException(nameof(type)); Mock = mock ?? throw new ArgumentNullException(nameof(mock)); + NonPublic = nonPublic; } } } \ No newline at end of file diff --git a/FastMoq/Mocker.cs b/FastMoq/Mocker.cs index c3f02fc..542e68a 100644 --- a/FastMoq/Mocker.cs +++ b/FastMoq/Mocker.cs @@ -7,24 +7,25 @@ namespace FastMoq { /// - /// Class Mocks. + /// Initializes the mocking helper object. This class creates and manages the automatic mocking and custom mocking. /// public class Mocker { #region Fields /// - /// The file system + /// The virtual mock file system that is used by mocker unless overridden with the property. /// public readonly MockFileSystem fileSystem; /// - /// The mock collection + /// List of . /// protected readonly List mockCollection; /// - /// Gets the type map. + /// of mapped to . + /// This map assists in resolution of interfaces to instances. /// /// The type map. internal readonly Dictionary typeMap; @@ -34,10 +35,10 @@ public class Mocker #region Properties /// - /// Gets or sets a value indicating whether this is strict. If strict, the mock IFileSystem does - /// not use FileSystemMock and uses Mock of IFileSystem. + /// Gets or sets a value indicating whether this is strict. If strict, the mock does + /// not use and uses of . /// - /// true if strict; otherwise, false. + /// true if strict resolution; otherwise, false uses the built-in virtual . public bool Strict { get; set; } #endregion @@ -54,29 +55,30 @@ public Mocker() /// /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class using the specific typeMap. + /// The typeMap assists in resolution of interfaces to instances. /// /// The type map. public Mocker(Dictionary typeMap) : this() => this.typeMap = typeMap; /// - /// Add specified Mock. + /// Creates a with the given with the option of overwriting an existing /// - /// Mock Type. + /// The Mock , usually an interface. /// Mock to Add. - /// - /// Overwrite if the mock exists or throw if this parameter is - /// false. - /// - /// . - public MockModel AddMock(Mock mock, bool overwrite) where T : class => new(AddMock(mock, typeof(T), overwrite)); + /// Overwrite if the mock exists or throw if this parameter is + /// false. + /// if set to true uses public and non public constructors. + /// . + public MockModel AddMock(Mock mock, bool overwrite, bool nonPublic = false) where T : class => + new(AddMock(mock, typeof(T), overwrite, nonPublic)); /// - /// Adds the type. + /// Adds an interface to Class mapping to the for easier resolution. /// - /// The type of the t interface. - /// The type of the t class. - /// The create function. + /// The interface Type which can be mapped to a specific Class. + /// The Class Type (cannot be an interface) that can be created from . + /// An optional create function used to create the class. /// Must be different types. /// public void AddType(Func? createFunc = null) @@ -101,17 +103,19 @@ public void AddType(Func? createFunc = null) } /// - /// Determines whether this instance contains the object. + /// Determines whether this instance contains a Mock of T. /// - /// - /// true if [contains]; otherwise, false. + /// The Mock , usually an interface. + /// true if the ]]> exists; otherwise, false. + /// type is null. + /// type must be a class. - type public bool Contains() where T : class => Contains(typeof(T)); /// - /// Determines whether this instance contains the object. + /// Determines whether this instance contains the Mock of type. /// - /// The type. - /// true if [contains] [the specified type]; otherwise, false. + /// The , usually an interface. + /// true if exists; otherwise, false. /// type /// type must be a class. - type public bool Contains(Type type) => type == null ? throw new ArgumentNullException(nameof(type)) : @@ -119,28 +123,42 @@ public void AddType(Func? createFunc = null) mockCollection.Any(x => x.Type == type); /// - /// Creates the instance. + /// Creates an instance of T. Parameters allow matching of constructors and using those values in the creation of the instance. /// - /// - /// The arguments. + /// The Mock , usually an interface. + /// The optional arguments used to create the instance. + /// + /// (); + /// ]]> + /// + /// /// . public T? CreateInstance(params object[] args) where T : class => CreateInstance(true, args); /// - /// Creates the instance. + /// Creates an instance of . /// - /// + /// . /// if set to true [use predefined file system]. - /// . + /// . public IFileSystem? CreateInstance(bool usePredefinedFileSystem) where T : class, IFileSystem => CreateInstance(usePredefinedFileSystem, Array.Empty()); /// - /// Creates the instance non public. + /// Creates an instance of T. + /// Non public constructors are included as options for creating the instance. + /// Parameters allow matching of constructors and using those values in the creation of the instance. /// - /// + /// The Mock , usually an interface. /// The arguments. - /// + /// + /// (); + /// ]]> + /// + /// + /// public T? CreateInstanceNonPublic(params object[] args) where T : class { var type = typeof(T).IsInterface ? GetTypeFromInterface() : new InstanceModel(); @@ -155,17 +173,19 @@ public void AddType(Func? createFunc = null) ? FindConstructor(type.InstanceType, true, args) : FindConstructor(false, type.InstanceType, true); - return (T) constructor.Key.Invoke(constructor.Value.ToArray()); + return (T) constructor.ConstructorInfo.Invoke(constructor.ParameterList); } /// - /// Creates the mock. + /// Creates the from the Type. This throws an exception if the mock already exists. /// /// The type. + /// true if non public and public constructors are used. /// . /// type must be a class. - type + /// type already exists. - type /// Cannot create instance. - public List CreateMock(Type type) + public List CreateMock(Type type, bool nonPublic = false) { if (type == null || (!type.IsClass && !type.IsInterface)) { @@ -179,7 +199,7 @@ public List CreateMock(Type type) var newType = typeof(Mock<>).MakeGenericType(type); - if (Activator.CreateInstance(newType) is not Mock oMock) + if (Activator.CreateInstance(newType, nonPublic) is not Mock oMock) { throw new ApplicationException("Cannot create instance."); } @@ -189,18 +209,34 @@ public List CreateMock(Type type) } /// - /// Creates the mock. + /// Creates the from the type T. This throws an exception if the mock already exists. /// - /// + /// The Mock , usually an interface. + /// if set to true public and non public constructors are used. /// . - public List CreateMock() where T : class => CreateMock(typeof(T)); - - /// - /// Gets the list. - /// - /// - /// The count. - /// The function. + /// type must be a class. - type + /// type already exists. - type + /// Cannot create instance. + public List CreateMock(bool nonPublic = false) where T : class => CreateMock(typeof(T), nonPublic); + + /// + /// Gets a list with the specified number of list items, using a custom function. + /// + /// The Mock , usually an interface. + /// The number of list items. + /// The function for creating the list items. + /// + /// Example of how to create a list. + /// (3, () => new Model(name: Guid.NewGuid().ToString())); + /// ]]> + /// + /// or + /// (3, () => Mocks.GetObject()); + /// ]]> + /// + /// /// . public static List GetList(int count, Func? func) { @@ -218,17 +254,17 @@ public static List GetList(int count, Func? func) } /// - /// Gets the mock and creates it if necessary. + /// Gets or creates the mock of type T. /// - /// of Class. + /// The Mock , usually an interface. /// . public Mock GetMock() where T : class => (Mock) GetMock(typeof(T)); /// - /// Gets the mock. + /// Gets of creates the mock of type. /// /// The type. - /// Mock. + /// . public Mock GetMock(Type type) { if (!Contains(type)) @@ -240,12 +276,12 @@ public Mock GetMock(Type type) } /// - /// Gets the object for the given object. + /// Gets the instance for the given . /// - /// The information. - /// - /// - /// + /// The . + /// + /// type + /// Unable to get the Mock. public object? GetObject(ParameterInfo info) { try @@ -259,10 +295,10 @@ public Mock GetMock(Type type) } /// - /// Gets the object. + /// Gets the instance for the given type. /// /// The type. - /// . + /// . /// type /// Unable to get the Mock. public object? GetObject(Type type) @@ -288,57 +324,70 @@ public Mock GetMock(Type type) } /// - /// Gets the object. + /// Gets the instance for the given T. /// - /// - /// T. + /// The Mock , usually an interface. + /// T. public T? GetObject() where T : class => GetObject(typeof(T)) as T; /// /// Gets the required mock. /// - /// The type. + /// The mock type, usually an interface. /// Mock. /// type must be a class. - type - public Mock GetRequiredMock(Type type) - { - if (type == null || (!type.IsClass && !type.IsInterface)) - { - throw new ArgumentException("type must be a class.", nameof(type)); - } - - return mockCollection.First(x => x.Type == type).Mock; - } + /// Mock must exist. - type + public Mock GetRequiredMock(Type type) => type == null || (!type.IsClass && !type.IsInterface) + ? throw new ArgumentException("type must be a class.", nameof(type)) + : mockCollection.First(x => x.Type == type).Mock; /// /// Gets the required mock. /// - /// - /// Mock<T>. + /// The Mock , usually an interface. + /// . + /// type must be a class. - type + /// Mock must exist. - type public Mock GetRequiredMock() where T : class => (Mock) GetRequiredMock(typeof(T)); /// - /// Initializes the specified action. + /// Gets or Creates then Initializes the specified Mock of T. /// - /// + /// The Mock , usually an interface. /// The action. - /// Mock<T>. + /// False to keep the existing setup. + /// + /// + /// Example of how to set up for mocks that require specific functionality. + /// (mock => { + /// mock.Setup(x => x.StartCar).Returns(true)); + /// mock.Setup(x => x.StopCar).Returns(false)); + /// } + /// ]]> + /// + /// /// Invalid Mock. - public Mock Initialize(Action> action) where T : class + public Mock Initialize(Action> action, bool reset = true) where T : class { var mock = GetMock() ?? throw new InvalidOperationException("Invalid Mock."); + if (reset) + { + mock.Reset(); + } + mock.SetupAllProperties(); action.Invoke(mock); return mock; } /// - /// Remove specified Mock. + /// Remove specified Mock of T. /// - /// Mock Type. + /// The Mock , usually an interface. /// Mock to Remove. - /// true if XXXX, false otherwise. + /// true if the mock is successfully removed, false otherwise. public bool RemoveMock(Mock mock) where T : class { var mockModel = mockCollection.FirstOrDefault(x => x.Type == typeof(T) && x.Mock == mock); @@ -351,14 +400,13 @@ public bool RemoveMock(Mock mock) where T : class /// /// Mock to Add. /// Type of Mock. - /// - /// Overwrite if the mock exists or throw if this parameter is - /// false. - /// + /// Overwrite if the mock exists or throw if this parameter is + /// false. + /// if set to true [non public]. /// . /// mock /// type - internal MockModel AddMock(Mock mock, Type type, bool overwrite = false) + internal MockModel AddMock(Mock mock, Type type, bool overwrite = false, bool nonPublic = false) { if (mock == null) { @@ -382,7 +430,7 @@ internal MockModel AddMock(Mock mock, Type type, bool overwrite = false) return GetMockModel(type); } - mockCollection.Add(new MockModel(type, mock)); + mockCollection.Add(new MockModel(type, mock, nonPublic)); return GetMockModel(type); } @@ -390,7 +438,7 @@ internal MockModel AddMock(Mock mock, Type type, bool overwrite = false) /// /// Creates the instance. /// - /// + /// The Mock , usually an interface. /// if set to true [use predefined file system]. /// The arguments. /// . @@ -415,27 +463,30 @@ internal MockModel AddMock(Mock mock, Type type, bool overwrite = false) ? FindConstructor(type.InstanceType, false, args) : FindConstructor(false, type.InstanceType, false); - return (T) constructor.Key.Invoke(constructor.Value.ToArray()); + return (T) constructor.ConstructorInfo.Invoke(constructor.ParameterList); } /// - /// Finds the constructor matching args EXACTLY. + /// Finds the constructor matching args EXACTLY by type. /// /// The type. /// if set to true [non public]. /// The arguments. /// ConstructorInfo. /// Unable to find the constructor. - internal KeyValuePair> FindConstructor(Type type, bool nonPublic, params object?[] args) + internal ConstructorModel FindConstructor(Type type, bool nonPublic, params object?[] args) { var allConstructors = nonPublic ? GetConstructorsNonPublic(type, args) : GetConstructors(type, args); var constructors = allConstructors - .Where(x => x.Value.Select(z => z?.GetType()).SequenceEqual(args.Select(y => y?.GetType()))).ToList(); + .Where(x => x.Value + .Select(z => z?.GetType()) + .SequenceEqual(args.Select(y => y?.GetType()))) + .ToList(); return !constructors.Any() ? throw new NotImplementedException("Unable to find the constructor.") - : constructors.First(); + : new ConstructorModel(constructors.First()); } /// @@ -445,12 +496,9 @@ internal MockModel AddMock(Mock mock, Type type, bool overwrite = false) /// The type. /// if set to true [non public]. /// . - /// - /// Multiple parameterized constructors exist. Cannot - /// decide which to use. - /// + /// Multiple parameterized constructors exist. Cannot decide which to use. /// Unable to find the constructor. - internal KeyValuePair> FindConstructor(bool bestGuess, Type type, bool nonPublic) + internal ConstructorModel FindConstructor(bool bestGuess, Type type, bool nonPublic) { var constructors = nonPublic ? GetConstructorsNonPublic(type) : GetConstructors(type); @@ -463,7 +511,7 @@ internal MockModel AddMock(Mock mock, Type type, bool overwrite = false) return !constructors.Any() ? throw new NotImplementedException("Unable to find the constructor.") - : constructors.First(); + : new ConstructorModel(constructors.First()); } /// @@ -511,7 +559,8 @@ internal MockModel AddMock(Mock mock, Type type, bool overwrite = false) /// The type. /// The mock. /// Create Mock if it doesn't exist. - /// . + /// . + /// internal MockModel GetMockModel(Type type, Mock? mock = null, bool autoCreate = true) => mockCollection.FirstOrDefault(x => x.Type == type && (x.Mock == mock || mock == null)) ?? (mock == null ? autoCreate ? GetMockModel(type, GetMock(type), autoCreate) : throw new NotImplementedException() : @@ -520,10 +569,10 @@ internal MockModel GetMockModel(Type type, Mock? mock = null, bool autoCreate = /// /// Gets the mock model. /// - /// + /// The Mock , usually an interface. /// The mock. /// Create Mock if it doesn't exist. - /// . + /// . internal MockModel GetMockModel(Mock? mock = null, bool autoCreate = true) where T : class => new(GetMockModel(typeof(T), mock, autoCreate)); /// @@ -537,7 +586,7 @@ internal MockModel GetMockModel(Type type, Mock? mock = null, bool autoCreate = /// /// Gets the type from interface. /// - /// + /// The Mock , usually an interface. /// InstanceModel. /// /// @@ -577,7 +626,7 @@ internal InstanceModel GetTypeFromInterface() where T : class /// /// Determines whether [is mock file system] [the specified use predefined file system]. /// - /// + /// The Mock , usually an interface. /// if set to true [use predefined file system]. /// true if [is mock file system] [the specified use predefined file system]; otherwise, false. internal static bool IsMockFileSystem(bool usePredefinedFileSystem) => usePredefinedFileSystem && diff --git a/FastMoq/MockerTestBase.cs b/FastMoq/MockerTestBase.cs index 1d575a6..9aa9aa6 100644 --- a/FastMoq/MockerTestBase.cs +++ b/FastMoq/MockerTestBase.cs @@ -1,36 +1,69 @@ namespace FastMoq { /// - /// Auto Mocking Test Base with Fast Mocking . + /// Auto Mocking Test Base with Fast Automatic Mocking . /// - /// - /// Use the Mocks object on the test class to access fast mocking features. - /// + /// + /// Basic example of the base class creating the Car class and auto mocking ICarService. + /// { + /// [Fact] + /// public void TestCar() { + /// Component.Color.Should().Be(Color.Green); + /// Component.CarService.Should().NotBeNull(); + /// } + ///} + /// + ///public class Car { + /// public Color Color { get; set; } = Color.Green; + /// public ICarService CarService { get; } + /// public Car(ICarService carService) => CarService = carService; + ///} + /// + ///public interface ICarService + ///{ + /// Color Color { get; set; } + /// ICarService CarService { get; } + /// bool StartCar(); + ///} + /// ]]> + /// + /// + /// Example of how to set up for mocks that require specific functionality. + /// { + /// public CarTest() : base(mocks => { + /// mocks.Initialize(mock => mock.Setup(x => x.StartCar).Returns(true)); + /// } + ///} + /// ]]> + /// + /// /// The type of the t component. public abstract class MockerTestBase where TComponent : class { #region Properties /// - /// Gets or sets the custom mocks. + /// Gets or sets the custom mocks. These are added whenever the component is created. /// /// The custom mocks. protected IEnumerable CustomMocks { get; set; } = new List(); /// - /// Gets or sets the create component action. + /// Gets or sets the create component action. This action is run whenever the component is created. /// /// The create component action. protected Func CreateComponentAction { get; set; } /// - /// Gets or sets the setup mocks action. + /// Gets or sets the setup mocks action. This action is run before the component is created. /// /// The setup mocks action. protected Action? SetupMocksAction { get; set; } /// - /// Gets or sets the created component action. + /// Gets or sets the created component action. This action is run after the component is created. /// /// The created component action. protected Action? CreatedComponentAction { get; set; } @@ -38,13 +71,13 @@ public abstract class MockerTestBase where TComponent : class private Func DefaultCreateAction => _ => Component = Mocks.CreateInstance(); /// - /// Gets the mocks. + /// Gets the . /// /// The mocks. protected Mocker Mocks { get; } = new(); /// - /// Gets or sets the service. + /// Gets or sets the component under test. /// /// The service. protected internal TComponent? Component { get; set; } @@ -108,14 +141,24 @@ protected MockerTestBase(Action? setupMocksAction, } /// - /// Creates the specified custom object. + /// Sets the property with a new instance while maintaining the constructor setup and any other changes. /// + /// + /// CreateComponent allows creating the component when desired, instead of in the base class constructor. + /// (mock => mock.Setup(x => x.StartCar).Returns(true)); + /// CreateComponent(); + /// } + /// ]]> + /// + /// protected void CreateComponent() { CustomMocks ??= new List(); foreach (var customMock in CustomMocks) { - Mocks.AddMock(customMock.Mock, customMock.Type); + Mocks.AddMock(customMock.Mock, customMock.Type, true); } SetupMocksAction?.Invoke(Mocks); @@ -123,4 +166,4 @@ protected void CreateComponent() CreatedComponentAction?.Invoke(Component); } } -} \ No newline at end of file +} diff --git a/Help/Back.png b/Help/Back.png new file mode 100644 index 0000000..be80cba Binary files /dev/null and b/Help/Back.png differ diff --git a/Help/Close.png b/Help/Close.png new file mode 100644 index 0000000..1c804ef Binary files /dev/null and b/Help/Close.png differ diff --git a/Help/CollapseAll.png b/Help/CollapseAll.png new file mode 100644 index 0000000..4aec986 Binary files /dev/null and b/Help/CollapseAll.png differ diff --git a/Help/Collapsed.png b/Help/Collapsed.png new file mode 100644 index 0000000..105632c Binary files /dev/null and b/Help/Collapsed.png differ diff --git a/Help/ExpandAll.png b/Help/ExpandAll.png new file mode 100644 index 0000000..aee5bf8 Binary files /dev/null and b/Help/ExpandAll.png differ diff --git a/Help/Expanded.png b/Help/Expanded.png new file mode 100644 index 0000000..bf27343 Binary files /dev/null and b/Help/Expanded.png differ diff --git a/Help/FastMoq.xml b/Help/FastMoq.xml new file mode 100644 index 0000000..3c7ec91 --- /dev/null +++ b/Help/FastMoq.xml @@ -0,0 +1,576 @@ + + + + FastMoq + + + + + + Class InstanceModel. + Implements the + The type of the t class. + + + + + Class InstanceModel. + Implements the + + + + + Gets or sets the create function. + + The create function. + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The create function. + + + + Gets or sets the type of the instance. + + The type of the instance. + + + + Gets or sets the create function. + + The create function. + + + + Initializes the mocking helper object. This class creates and manages the automatic mocking and custom mocking. + + + + + The virtual mock file system that is used by mocker unless overridden with the property. + + + + + List of . + + + + + Gets or sets a value indicating whether this is strict. If strict, the mock does + not use and uses of . + + + true if strict resolution; otherwise, false uses the built-in virtual . + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class using the specific typeMap. + The typeMap assists in resolution of interfaces to instances. + + The type map. + + + + Creates a with the given with the option of overwriting an existing + The Mock , usually an interface. + Mock to Add. + Overwrite if the mock exists or throw if this parameter is + false. + if set to true uses public and non public constructors. + + . + + + + Adds an interface to Class mapping to the for easier resolution. + + The interface Type which can be mapped to a specific Class. + The Class Type (cannot be an interface) that can be created from . + An optional create function used to create the class. + Must be different types. + + + + + + Determines whether this instance contains a Mock of T. + + The Mock , usually an interface. + + true if the ]]> exists; otherwise, false. + type is null. + type must be a class. - type + + + + Determines whether this instance contains the Mock of type. + + The , usually an interface. + + true if exists; otherwise, false. + type + type must be a class. - type + + + + Creates an instance of T. Parameters allow matching of constructors and using those values in the creation of the instance. + + The Mock , usually an interface. + The optional arguments used to create the instance. + + (); + ]]> + + + . + + + + Creates an instance of . + + + . + if set to true [use predefined file system]. + + . + + + + Creates an instance of T. + Non public constructors are included as options for creating the instance. + Parameters allow matching of constructors and using those values in the creation of the instance. + + The Mock , usually an interface. + The arguments. + + (); + ]]> + + + + + + + + Creates the from the Type. This throws an exception if the mock already exists. + + The type. + + true if non public and public constructors are used. + + . + type must be a class. - type + type already exists. - type + Cannot create instance. + + + + Creates the from the type T. This throws an exception if the mock already exists. + + The Mock , usually an interface. + if set to true public and non public constructors are used. + + . + type must be a class. - type + type already exists. - type + Cannot create instance. + + + + Gets a list with the specified number of list items, using a custom function. + + The Mock , usually an interface. + The number of list items. + The function for creating the list items. + + Example of how to create a list. + (3, () => new Model(name: Guid.NewGuid().ToString())); + ]]> + or + (3, () => Mocks.GetObject()); + ]]> + + . + + + + Gets or creates the mock of type T. + + The Mock , usually an interface. + + . + + + + Gets of creates the mock of type. + + The type. + + . + + + + Gets the instance for the given . + + The . + + + + type + Unable to get the Mock. + + + + Gets the instance for the given type. + + The type. + + . + type + Unable to get the Mock. + + + + Gets the instance for the given T. + + The Mock , usually an interface. + + T. + + + + Gets the required mock. + + The mock type, usually an interface. + Mock. + type must be a class. - type + Mock must exist. - type + + + + Gets the required mock. + + The Mock , usually an interface. + + . + type must be a class. - type + Mock must exist. - type + + + + Gets or Creates then Initializes the specified Mock of T. + + The Mock , usually an interface. + The action. + + False to keep the existing setup. + + + + + + Example of how to set up for mocks that require specific functionality. + (mock => { + mock.Setup(x => x.StartCar).Returns(true)); + mock.Setup(x => x.StopCar).Returns(false)); + } + ]]> + Invalid Mock. + + + + Remove specified Mock of T. + + The Mock , usually an interface. + Mock to Remove. + + true if the mock is successfully removed, false otherwise. + + + + Auto Mocking Test Base with Fast Automatic Mocking . + + + Basic example of the base class creating the Car class and auto mocking ICarService. + { + [Fact] + public void TestCar() { + Component.Color.Should().Be(Color.Green); + Component.CarService.Should().NotBeNull(); + } + } + + public class Car { + public Color Color { get; set; } = Color.Green; + public ICarService CarService { get; } + public Car(ICarService carService) => CarService = carService; + } + + public interface ICarService + { + Color Color { get; set; } + ICarService CarService { get; } + bool StartCar(); + } + ]]> + + Example of how to set up for mocks that require specific functionality. + { + public CarTest() : base(mocks => { + mocks.Initialize(mock => mock.Setup(x => x.StartCar).Returns(true)); + } + } + ]]> + The type of the t component. + + + + Gets or sets the custom mocks. These are added whenever the component is created. + + The custom mocks. + + + + Gets or sets the create component action. This action is run whenever the component is created. + + The create component action. + + + + Gets or sets the setup mocks action. This action is run before the component is created. + + The setup mocks action. + + + + Gets or sets the created component action. This action is run after the component is created. + + The created component action. + + + + Gets the . + + The mocks. + + + + Gets or sets the component under test. + + The service. + + + + + Initializes a new instance of the class with the default createAction. + + + + + + Initializes a new instance of the class with a setup action. + + The setup mocks action. + + + + Initializes a new instance of the class. + + The setup mocks action. + The create component action. + + + + Initializes a new instance of the class. + + The setup mocks action. + The created component action. + + + + + Initializes a new instance of the class with a create action and optional + createdAction. + + The create component action. + The created component action. + + + + Initializes a new instance of the class. + + The setup mocks action. + The create component action. + The created component action. + + + + Sets the property with a new instance while maintaining the constructor setup and any other changes. + + + CreateComponent allows creating the component when desired, instead of in the base class constructor. + (mock => mock.Setup(x => x.StartCar).Returns(true)); + CreateComponent(); + } + ]]> + + + + Class MockModel. + Implements the + + + + + + + Contains Mock and Type information. + + + + + Gets or sets the mock. + + The mock. + + + + Gets or sets the mock. + + The mock. + + + + Gets or sets the type. + + The type. + + + + Gets or sets a value indicating whether [non public]. + + + true if [non public]; otherwise, false. + + + + Gets the field. + + The type of the t object. + + + The name. + + . + + + + Gets the field value. + + The type of the t object. + The object. + The name. + The default value. + + . + + + + Gets the property value based on lambda. + + + + The type of the t value. + + + The member lambda. + System.Nullable<TValue>. + + + + Get Member Info from expression. + + + + The type of the t value. + The method. + MemberExpression. + method + + + + Gets the method. + + The type of the t object. + + + The name. + + . + + + + Gets the property. + + The type of the t object. + + + The name. + + . + + + + Gets the property value. + + The type of the t object. + The object. + The name. + The default value. + + . + + + + Sets the field value. + + The type of the t object. + The object. + The name. + The value. + + + + Sets the property value. + + The type of the t object. + The object. + The name. + The value. + + + \ No newline at end of file diff --git a/Help/Index.png b/Help/Index.png new file mode 100644 index 0000000..3304a58 Binary files /dev/null and b/Help/Index.png differ diff --git a/Help/Item.gif b/Help/Item.gif new file mode 100644 index 0000000..c037302 Binary files /dev/null and b/Help/Item.gif differ diff --git a/Help/Link.png b/Help/Link.png new file mode 100644 index 0000000..49fdbc4 Binary files /dev/null and b/Help/Link.png differ diff --git a/Help/Search.png b/Help/Search.png new file mode 100644 index 0000000..e8df772 Binary files /dev/null and b/Help/Search.png differ diff --git a/Help/SearchHelp.aspx b/Help/SearchHelp.aspx new file mode 100644 index 0000000..ba44a43 --- /dev/null +++ b/Help/SearchHelp.aspx @@ -0,0 +1,239 @@ +<%@ Page Language="C#" EnableViewState="False" %> +<%@Import Namespace="System.IO" %> +<%@Import Namespace="System.Globalization" %> +<%@Import Namespace="System.Web.Script.Serialization" %> + + diff --git a/Help/SearchHelp.inc.php b/Help/SearchHelp.inc.php new file mode 100644 index 0000000..c56c0a0 --- /dev/null +++ b/Help/SearchHelp.inc.php @@ -0,0 +1,169 @@ +filename = $file; + $this->pageTitle = $title; + $this->rank = $rank; + } +} + + +/// +/// Split the search text up into keywords +/// +/// The keywords to parse +/// A list containing the words for which to search +function ParseKeywords($keywords) +{ + $keywordList = array(); + $words = preg_split("/[^\w]+/", $keywords); + + foreach($words as $word) + { + $checkWord = strtolower($word); + $first = substr($checkWord, 0, 1); + if(strlen($checkWord) > 2 && !ctype_digit($first) && !in_array($checkWord, $keywordList)) + { + array_push($keywordList, $checkWord); + } + } + + return $keywordList; +} + + +/// +/// Search for the specified keywords and return the results as a block of +/// HTML. +/// +/// The keywords for which to search +/// The file list +/// The dictionary used to find the words +/// True to sort by title, false to sort by +/// ranking +/// A block of HTML representing the search results. +function Search($keywords, $fileInfo, $wordDictionary, $sortByTitle) +{ + $sb = ""; + $matches = array(); + $matchingFileIndices = array(); + $rankings = array(); + + $isFirst = true; + + foreach($keywords as $word) + { + if (!array_key_exists($word, $wordDictionary)) + { + return "Nothing found"; + } + $occurrences = $wordDictionary[$word]; + + $matches[$word] = $occurrences; + $occurrenceIndices = array(); + + // Get a list of the file indices for this match + foreach($occurrences as $entry) + array_push($occurrenceIndices, ($entry >> 16)); + + if($isFirst) + { + $isFirst = false; + foreach($occurrenceIndices as $i) + { + array_push($matchingFileIndices, $i); + } + } + else + { + // After the first match, remove files that do not appear for + // all found keywords. + for($idx = 0; $idx < count($matchingFileIndices); $idx++) + { + if (!in_array($matchingFileIndices[$idx], $occurrenceIndices)) + { + array_splice($matchingFileIndices, $idx, 1); + $idx--; + } + } + } + } + + if(count($matchingFileIndices) == 0) + { + return "Nothing found"; + } + + // Rank the files based on the number of times the words occurs + foreach($matchingFileIndices as $index) + { + // Split out the title, filename, and word count + $fileIndex = explode("\x00", $fileInfo[$index]); + + $title = $fileIndex[0]; + $filename = $fileIndex[1]; + $wordCount = intval($fileIndex[2]); + $matchCount = 0; + + foreach($keywords as $words) + { + $occurrences = $matches[$word]; + + foreach($occurrences as $entry) + { + if(($entry >> 16) == $index) + $matchCount += $entry & 0xFFFF; + } + } + + $r = new Ranking($filename, $title, $matchCount * 1000 / $wordCount); + array_push($rankings, $r); + } + + // Sort by rank in descending order or by page title in ascending order + if($sortByTitle) + { + usort($rankings, "cmprankbytitle"); + } + else + { + usort($rankings, "cmprank"); + } + + // Format the file list and return the results + foreach($rankings as $r) + { + $f = $r->filename; + $t = $r->pageTitle; + $sb .= "
\r\n" . + "" . + "$t\r\n
\r\n"; + } + + // Return the keywords used as well in a hidden span + $k = implode(" ", $keywords); + $sb .= "$k"; + + return $sb; +} + +function cmprank($x, $y) +{ + return $y->rank - $x->rank; +} + +function cmprankbytitle($x, $y) +{ + return strcmp($x->pageTitle, $y->pageTitle); +} + +?> \ No newline at end of file diff --git a/Help/SearchHelp.php b/Help/SearchHelp.php new file mode 100644 index 0000000..ed698fd --- /dev/null +++ b/Help/SearchHelp.php @@ -0,0 +1,58 @@ + + Nothing found + $val) + { + $wordDictionary[$ftiWord] = $val; + } + } + } + } + + // Perform the search and return the results as a block of HTML + $results = Search($keywords, $fileList, $wordDictionary, $sortByTitle); + echo $results; +?> \ No newline at end of file diff --git a/Help/Splitter.gif b/Help/Splitter.gif new file mode 100644 index 0000000..4556874 Binary files /dev/null and b/Help/Splitter.gif differ diff --git a/Help/SyncTOC.png b/Help/SyncTOC.png new file mode 100644 index 0000000..67c2c8e Binary files /dev/null and b/Help/SyncTOC.png differ diff --git a/Help/TOC.css b/Help/TOC.css new file mode 100644 index 0000000..b7e04fe --- /dev/null +++ b/Help/TOC.css @@ -0,0 +1,204 @@ +/* File : TOC.css +// Author : Eric Woodruff (Eric@EWoodruff.us) +// Updated : 09/07/2007 +// +// Stylesheet for the table of content +*/ +#TOCDiv * { + margin-top: -1px; + margin-bottom: -1px; + padding-top: -1px; + padding-bottom: -1px; +} +html +{ + height: 100%; +} +body +{ + font-family: 'Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif; + font-size: 10pt; + background-color: #fff; + color: #000; + overflow: hidden; + height: 100%; +/* + scrollbar-face-color: #CECECE; + scrollbar-shadow-color: #CECECE; + scrollbar-darkshadow-color: #CECECE; + scrollbar-track-color: #F1F1F1; + scrollbar-arrow-color: #606060; +*/ +} + +a +{ + color: #fff; +} + +input +{ + margin-top:5px; + margin-bottom:5px; + font-size: 10pt; +} + +img +{ + border: 0; + margin-left: 5px; + margin-right: 2px; +} + +img.TreeNodeImg +{ + cursor: pointer; +} + +img.TOCLink +{ + cursor: pointer; + margin-left: 5; + margin-right: 0; +} + +a.SelectedNode, a.UnselectedNode +{ + color: black; + text-decoration: none; + padding: 1px 3px 1px 3px; + white-space: nowrap; +} + +a.SelectedNode +{ + background-color: #ddd; + border: solid 1px #ccc; + padding: 0px 2px 0px 2px; +} + +a.UnselectedNode:hover, a.SelectedNode:hover +{ + background-color: #eee; + border: solid 1px #ccc; + padding: 0px 2px 0px 2px; +} + +.Visible +{ + display: block; + margin-left: 2em; +} + +.Hidden +{ + display: none; +} + +.Title { + white-space: nowrap; + font-family: wf_segoe-ui_light,"Segoe UI Light","Segoe WP Light",wf_segoe-ui_normal,"Segoe UI",Segoe,"Segoe WP",Tahoma,Verdana,Arial,sans-serif !important; + font-size: 1.3em; +} +.Tree +{ + background-color: #fff; + color: Black; + width: 100%; + height: 100%; + overflow: auto; +} + +.TreeNode, .TreeItem +{ + white-space: nowrap; + margin: 2px 2px 2px 2px; +} + +.TOCDiv +{ + position: relative; + float: left; + width: 305px; +} + +.TOCSizer { + clear: none; + float: left; + width: 7px; + height: 100%; + background-color: #505050; + background-image: url("splitter_dot.png"); + background-position: center center; + background-repeat: no-repeat; + position: absolute; + cursor: w-resize; + top: 0; + left: 305px; + /*position: relative; + cursor: w-resize;*/ +} + +.TopicContent +{ + position: relative; + float: right; + background-color: white; + height: 100%; +} + +.SearchOpts +{ + padding: 5px 5px 0px 5px; + background-color: #505050; + color: white; + width: 300px; +} +.SearchOpts input[type=button] { + padding-left: 10px; + padding-right: 10px; +} +.SearchOptsInner +{ + padding: 5px 3px 5px 4px; +} +.SearchOptsInner input[type=text] { + padding-left: 5px; + padding-right: 5px; +} +.SearchOptsInner input[type=checkbox] { + vertical-align:middle; +} + +.NavOpts +{ + padding: 5px 5px 2px 5px; + background-color: #505050; + color: white; + width: 300px; +} + +.IndexOpts +{ + padding: 5px 5px 0px 5px; + background-color: #505050; + color: white; + width: 300px; +} + +.IndexItem +{ + white-space: nowrap; + margin: 2px 2px 2px 2px; +} + +.IndexSubItem +{ + white-space: nowrap; + margin: 2px 2px 2px 12px; +} + +.PaddedText +{ + margin: 10px 10px 10px 10px; +} \ No newline at end of file diff --git a/Help/TOC.js b/Help/TOC.js new file mode 100644 index 0000000..c4e54e5 --- /dev/null +++ b/Help/TOC.js @@ -0,0 +1,854 @@ +//============================================================================= +// System : Sandcastle Help File Builder +// File : TOC.js +// Author : Eric Woodruff (Eric@EWoodruff.us) +// Updated : 07/25/2012 +// Note : Copyright 2006-2012, Eric Woodruff, All rights reserved +// Compiler: JavaScript +// +// This file contains the methods necessary to implement a simple tree view +// for the table of content with a resizable splitter and Ajax support to +// load tree nodes on demand. It also contains the script necessary to do +// full-text searches. +// +// This code is published under the Microsoft Public License (Ms-PL). A copy +// of the license should be distributed with the code. It can also be found +// at the project website: http://SHFB.CodePlex.com. This notice, the +// author's name, and all copyright notices must remain intact in all +// applications, documentation, and source files. +// +// Version Date Who Comments +// ============================================================================ +// 1.3.0.0 09/12/2006 EFW Created the code +// 1.4.0.2 06/15/2007 EFW Reworked to get rid of frame set and to add +// support for Ajax to load tree nodes on demand. +// 1.5.0.0 06/24/2007 EFW Added full-text search capabilities +// 1.6.0.7 04/01/2008 EFW Merged changes from Ferdinand Prantl to add a +// website keyword index. Added support for "topic" +// query string option. +// 1.9.4.0 02/21/2012 EFW Merged code from Thomas Levesque to show direct +// link and support other page types like PHP. +// 1.9.5.0 07/25/2012 EFW Made changes to support IE 10. +//============================================================================= + +// IE and Chrome flags +var isIE = (navigator.userAgent.indexOf("MSIE") >= 0); +var isIE10OrLater = /MSIE 1\d\./.test(navigator.userAgent); +var isChrome = (navigator.userAgent.indexOf("Chrome") >= 0); + +// Page extension +var pageExtension = ".aspx"; + +// Minimum width of the TOC div +var minWidth = 100; + +// Elements and sizing info +var divTOC, divSizer, topicContent, divNavOpts, divSearchOpts, divSearchResults, divIndexOpts, divIndexResults, + divTree, docBody, maxWidth, offset, txtSearchText, chkSortByTitle; + +// Last node selected +var lastNode, lastSearchNode, lastIndexNode; + +// Last page with keyword index +var currentIndexPage = 0; + +//============================================================================ + +// Initialize the tree view and resize the content. Pass it the page extension to use (i.e. ".aspx") +// for loading TOC element, index keywords, searching, etc. +function Initialize(extension) +{ + docBody = document.getElementsByTagName("body")[0]; + divTOC = document.getElementById("TOCDiv"); + divSizer = document.getElementById("TOCSizer"); + topicContent = document.getElementById("TopicContent"); + divNavOpts = document.getElementById("divNavOpts"); + divSearchOpts = document.getElementById("divSearchOpts"); + divSearchResults = document.getElementById("divSearchResults"); + divIndexOpts = document.getElementById("divIndexOpts"); + divIndexResults = document.getElementById("divIndexResults"); + divTree = document.getElementById("divTree"); + txtSearchText = document.getElementById("txtSearchText"); + chkSortByTitle = document.getElementById("chkSortByTitle"); + + // Set the page extension if specified + if(typeof(extension) != "undefined" && extension != "") + pageExtension = extension; + + // The sizes are bit off in FireFox + //if(!isIE) + // divNavOpts.style.width = divSearchOpts.style.width = divIndexOpts.style.width = 292; + + ResizeTree(); + SyncTOC(); + + topicContent.onload = SyncTOC; + + // Use an alternate default page if a topic is specified in + // the query string. + var queryString = document.location.search; + + if(queryString != "") + { + var idx, options = queryString.split(/[\?\=\&]/); + + for(idx = 0; idx < options.length; idx++) + if(options[idx] == "topic" && idx + 1 < options.length) + { + topicContent.src = options[idx + 1]; + break; + } + } + + if (window.name != null) { + var pos = window.name; + divTOC.style.width = divSearchResults.style.width = divIndexResults.style.width = divTree.style.width = pos; + (!isIE) + pos -= 8; + if (pos > 250) { + divTOC.style.width = pos + "px"; + divNavOpts.style.width = divSearchOpts.style.width = divIndexOpts.style.width = pos - 8 + "px"; + divSizer.style.left = pos + "px"; + topicContent.style.marginLeft = pos + 7 + "px"; + } + ResizeContent(); + divSizer.style.zIndex = 5000; + ResizeTree(); + } +} + +//============================================================================ +// Navigation and expand/collaps code + +// Synchronize the table of content with the selected page if possible +function SyncTOC() +{ + var idx, anchor, base, href, url, anchors, treeNode, saveNode; + + base = window.location.href; + base = base.substr(0, base.lastIndexOf("/") + 1); + + if(base.substr(0, 5) == "file:" && base.substr(0, 8) != "file:///") + base = base.replace("file://", "file:///"); + + url = GetCurrentUrl(); + + if(url == "") + return false; + + if(url.substr(0, 5) == "file:" && url.substr(0, 8) != "file:///") + url = url.replace("file://", "file:///"); + + while(true) + { + anchors = divTree.getElementsByTagName("A"); + anchor = null; + + for(idx = 0; idx < anchors.length; idx++) + { + href = anchors[idx].href; + + if(href.substring(0, 7) != 'http://' && href.substring(0, 8) != 'https://' && + href.substring(0, 7) != 'file://') + href = base + href; + + if(href == url) + { + anchor = anchors[idx]; + break; + } + } + + if(anchor == null) + { + // If it contains a "#", strip anything after that and try again + if(url.indexOf("#") != -1) + { + url = url.substr(0, url.indexOf("#")); + continue; + } + + return; + } + + break; + } + + // If found, select it and find the parent tree node + SelectNode(anchor); + saveNode = anchor; + lastNode = null; + + while(anchor != null) + { + if(anchor.className == "TreeNode") + { + treeNode = anchor; + break; + } + + anchor = anchor.parentNode; + } + + // Expand it and all of its parents + while(anchor != null) + { + Expand(anchor); + + anchor = anchor.parentNode; + + while(anchor != null) + { + if(anchor.className == "TreeNode") + break; + + anchor = anchor.parentNode; + } + } + + lastNode = saveNode; + + // Scroll the node into view + var windowTop = lastNode.offsetTop - divTree.offsetTop - divTree.scrollTop; + var windowBottom = divTree.clientHeight - windowTop - lastNode.offsetHeight; + + if(windowTop < 0) + divTree.scrollTop += windowTop - 30; + else + if(windowBottom < 0) + divTree.scrollTop -= windowBottom - 30; +} + +// Get the currently loaded URL from the IFRAME +function GetCurrentUrl() +{ + var base, url = ""; + + try + { + // do not uncomment!!! Does not work in IE, Edge when URL has a space + //url = window.document.URL.replace(/\\/g, "/"); + url = window.location.href.replace(/\\/g, "/"); + //url = window.frames["TopicContent"].document.URL.replace(/\\/g, "/"); + } + catch(e) + { + // If this happens the user probably navigated to another frameset that didn't make itself the topmost + // frameset and we don't have control of the other frame anymore. In that case, just reload our index + // page. + base = window.location.href; + base = base.substr(0, base.lastIndexOf("/") + 1); + + // Chrome is too secure and won't let you access frame URLs when running from the file system unless + // you run Chrome with the "--disable-web-security" command line option. + if(isChrome && base.substr(0, 5) == "file:") + { + alert("Chrome security prevents access to file-based frame URLs. As such, the TOC will not work " + + "with index.html. Either run this website on a web server, run Chrome with the " + + "'--disable-web-security' command line option, or use FireFox or Internet Explorer."); + + return ""; + } + + if(base.substr(0, 5) == "file:" && base.substr(0, 8) != "file:///") + base = base.replace("file://", "file:///"); + + //if(base.substr(0, 5) == "file:") + top.location.href = base + "index.html"; + //else + // top.location.href = base + "index" + pageExtension; // Use lowercase on name for case-sensitive servers + } + + return url; +} + +// Expand or collapse all nodes +function ExpandOrCollapseAll(expandNodes) +{ + var divIdx, childIdx, img, divs = document.getElementsByTagName("DIV"); + var childNodes, child, div, link, img; + + for(divIdx = 0; divIdx < divs.length; divIdx++) + if(divs[divIdx].className == "Hidden" || divs[divIdx].className == "Visible") + { + childNodes = divs[divIdx].parentNode.childNodes; + + for(childIdx = 0; childIdx < childNodes.length; childIdx++) + { + child = childNodes[childIdx]; + + if(child.className == "TreeNodeImg") + img = child; + + if(child.className == "Hidden" || child.className == "Visible") + { + div = child; + break; + } + } + + if(div.className == "Visible" && !expandNodes) + { + div.className = "Hidden"; + img.src = "../Collapsed.png"; + } + else + if(div.className == "Hidden" && expandNodes) + { + div.className = "Visible"; + img.src = "../Expanded.png"; + + if(div.innerHTML == "") + FillNode(div, true) + } + } +} + +// Toggle the state of the specified node +function Toggle(node) +{ + var childDivs = node.parentNode.getElementsByTagName("div"); + + var i, childNodes, child, div, link; + if (childDivs.length === 1 && childDivs[0].className === "Hidden") { + if (window.location.href.indexOf("file://") >= 0) { + //alert('This feature works when hosting the help documentation using ASP.NET or PHP.'); + node.nextSibling.click(); + return; + } else { + try { + var childA = node.parentNode.getElementsByTagName("a"); + var href = childA[0].getAttribute('href'); + + var xmlRequest = GetXmlHttpRequest(), now = new Date(); + xmlRequest.open("GET", "../WebTOC.xml?timestamp=" + now.getTime(), true); + xmlRequest.onreadystatechange = function () { + if (xmlRequest.readyState == 4) { + if (xmlRequest.status != 200) { + alert('This feature works when hosting the help documentation using ASP.NET or PHP.'); + return; + } + + var xmlDoc = xmlRequest.responseXML; + + var nodes = xmlDoc.getElementsByTagName("HelpTOCNode"); + for (var i = 0; i < nodes.length; i++) { + var curnode = nodes[i]; + if (curnode.getAttribute('Url').replace('html/', '') == href) { + //alert(curnode.outerHTML); + //alert(curnode.childNodes.length); + for (var j = 0; j < curnode.childNodes.length; j++) { + var childNode = curnode.childNodes[j]; + if (childNode && childNode.outerHTML && childNode.outerHTML.length) { + //alert('childNode ' + j + ': ' + childNode.outerHTML); + if (childNode.hasChildNodes()) { + var htmlToInsert = '
' + childNode.getAttribute('Title') + ''; + childDivs[0].innerHTML += htmlToInsert; + childDivs[0].className = "Visible"; + } else { + var htmlToInsert = ''; + childDivs[0].innerHTML += htmlToInsert; + childDivs[0].className = "Visible"; + } + } + } + } + } + //document.getElementById('div1').innerHTML = titles[0].childNodes[0].nodeValue; + } + } + xmlRequest.send(null); + } catch (ex) { + alert("Error: " + ex); + } + } + + return; + } + + childNodes = node.parentNode.childNodes; + + for(i = 0; i < childNodes.length; i++) + { + child = childNodes[i]; + + if(child.className == "Hidden" || child.className == "Visible") + { + div = child; + break; + } + } + + if(div.className == "Visible") + { + div.className = "Hidden"; + node.src = "../Collapsed.png"; + } + else + { + div.className = "Visible"; + node.src = "../Expanded.png"; + + if(div.innerHTML == "") + FillNode(div, false) + } +} + +// Expand the selected node +function Expand(node) +{ + var i, childNodes, child, div, img; + + // If not valid, don't bother + if(GetCurrentUrl() == "") + return false; + + if(node.tagName == "A") + childNodes = node.parentNode.childNodes; + else + childNodes = node.childNodes; + + for(i = 0; i < childNodes.length; i++) + { + child = childNodes[i]; + + if(child.className == "TreeNodeImg") + img = child; + + if(child.className == "Hidden" || child.className == "Visible") + { + div = child; + break; + } + } + + if(lastNode != null) + lastNode.className = "UnselectedNode"; + + div.className = "Visible"; + img.src = "../Expanded.png"; + + if(node.tagName == "A") + { + node.className = "SelectedNode"; + lastNode = node; + } + + if(div.innerHTML == "") + FillNode(div, false) + + return true; +} + +// Set the style of the specified node to "selected" +function SelectNode(node) +{ + // If not valid, don't bother + if(GetCurrentUrl() == "") + return false; + + if(lastNode != null) + lastNode.className = "UnselectedNode"; + + node.className = "SelectedNode"; + lastNode = node; + + return true; +} + +//============================================================================ +// Ajax-related code used to fill the tree nodes on demand + +function GetXmlHttpRequest() +{ + var xmlHttp = null; + + // If IE7, Mozilla, Safari, etc., use the native object. Otherwise, use the ActiveX control for IE5.x and IE6. + if(window.XMLHttpRequest) + xmlHttp = new XMLHttpRequest(); + else + if(window.ActiveXObject) + xmlHttp = new ActiveXObject("MSXML2.XMLHTTP.3.0"); + + return xmlHttp; +} + +// Perform an AJAX-style request for the contents of a node and put the contents into the empty div +function FillNode(div, expandChildren) +{ + var xmlHttp = GetXmlHttpRequest(), now = new Date(); + + if(xmlHttp == null) + { + div.innerHTML = "XML HTTP request not supported!"; + return; + } + + div.innerHTML = "Loading..."; + + // Add a unique hash to ensure it doesn't use cached results + xmlHttp.open("GET", "../FillNode" + pageExtension + "?Id=" + div.id + "&hash=" + now.getTime(), true); + + xmlHttp.onreadystatechange = function() + { + if(xmlHttp.readyState == 4) + { + div.innerHTML = xmlHttp.responseText; + + if(expandChildren) + ExpandOrCollapseAll(true); + } + } + + xmlHttp.send(null) +} + +//============================================================================ +// Resizing code + +// Resize the tree div so that it fills the document body +function ResizeTree() +{ + var y, newHeight; + + if(self.innerHeight) // All but IE + y = self.innerHeight; + else // IE - Strict + if(document.documentElement && document.documentElement.clientHeight) + y = document.documentElement.clientHeight; + else // Everything else + if(document.body) + y = document.body.clientHeight; + + divTOC.style.height = y + "px"; + newHeight = y - parseInt(divNavOpts.style.height, 10) - 6; + + if(newHeight < 50) + newHeight = 50; + + divTree.style.height = newHeight + "px"; + + newHeight = y - parseInt(divSearchOpts.style.height, 10) - 6; + + if(newHeight < 100) + newHeight = 100; + + divSearchResults.style.height = newHeight + "px"; + + newHeight = y - parseInt(divIndexOpts.style.height, 10) - 6; + + if(newHeight < 25) + newHeight = 25; + + divIndexResults.style.height = newHeight + "px"; + + // Resize the content div + ResizeContent(); +} + +// Resize the content div +function ResizeContent() +{ + // IE 10 sizes the frame like FireFox and Chrome + if(isIE && !isIE10OrLater) + maxWidth = docBody.clientWidth - 1; + else + maxWidth = docBody.clientWidth - 4; + + topicContent.style.width = maxWidth - (divSizer.offsetLeft + divSizer.offsetWidth); + maxWidth -= minWidth; +} + +// This is called to prepare for dragging the sizer div +function OnMouseDown(event) +{ + var x; + // Make sure the splitter is at the top of the z-index + divSizer.style.zIndex = 5000; + + // The content is in an IFRAME which steals mouse events so hide it while resizing + //topicContent.style.display = "none"; + + if(isIE) + x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft; + else + x = event.clientX + window.scrollX; + + // Save starting offset + offset = parseInt(divSizer.style.left, 10); + + if(isNaN(offset)) + offset = 0; + + offset -= x; + + if(isIE) + { + document.attachEvent("onmousemove", OnMouseMove); + document.attachEvent("onmouseup", OnMouseUp); + window.event.cancelBubble = true; + window.event.returnValue = false; + } + else + { + document.addEventListener("mousemove", OnMouseMove, true); + document.addEventListener("mouseup", OnMouseUp, true); + event.preventDefault(); + } + event.preventDefault(); +} + +// Resize the TOC and content divs as the sizer is dragged +function OnMouseMove(event) +{ + var x, pos; + // Get cursor position with respect to the page + if(isIE) + x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft; + else + x = event.clientX + window.scrollX; + + left = offset + x; + + // Adjusts the width of the TOC divs + pos = (event.clientX > maxWidth) ? maxWidth : (event.clientX < minWidth) ? minWidth : event.clientX ; + + divTOC.style.width = divSearchResults.style.width = divIndexResults.style.width = divTree.style.width = pos; + window.name = pos; + + if(!isIE) + pos -= 8; + + + if (pos > 250) { + divTOC.style.width = pos + "px"; + divNavOpts.style.width =divSearchOpts.style.width = divIndexOpts.style.width = pos - 8 + "px"; + divSizer.style.left = pos + "px"; + topicContent.style.marginLeft = pos + 7 + "px"; + } + + // Resize the content div to fit in the remaining space + ResizeContent(); +} + +// Finish the drag operation when the mouse button is released +function OnMouseUp(event) +{ + if(isIE) + { + document.detachEvent("onmousemove", OnMouseMove); + document.detachEvent("onmouseup", OnMouseUp); + } + else + { + document.removeEventListener("mousemove", OnMouseMove, true); + document.removeEventListener("mouseup", OnMouseUp, true); + } + + // Show the content div again + topicContent.style.display = "block"; // "inline"; +} + +//============================================================================ +// Search code + +function ShowHideSearch(show) +{ + if(show) + { + var href = document.URL; + if (href.substring(0, 7) != 'http://' && href.substring(0, 8) != 'https://' && href.substring(0, 7) == 'file://') { + alert('The Search feature works when hosting the help documentation using ASP.NET or PHP.'); + return; + } + + divNavOpts.style.display = divTree.style.display = "none"; + divSearchOpts.style.display = divSearchResults.style.display = ""; + document.getElementById("txtSearchText").focus(); + } + else + { + divSearchOpts.style.display = divSearchResults.style.display = "none"; + divNavOpts.style.display = divTree.style.display = ""; + } +} + +// When enter is hit in the search text box, do the search +function OnSearchTextKeyPress(evt) +{ + if(evt.keyCode == 13) + { + PerformSearch(); + return false; + } + + return true; +} + +// Perform a keyword search +function PerformSearch() +{ + var xmlHttp = GetXmlHttpRequest(), now = new Date(); + + if(xmlHttp == null) + { + divSearchResults.innerHTML = "XML HTTP request not supported!"; + return; + } + + divSearchResults.innerHTML = "Searching..."; + // Add a unique hash to ensure it doesn't use cached results + xmlHttp.open("GET", "../SearchHelp" + pageExtension + "?Keywords=" + txtSearchText.value + + "&SortByTitle=" + (chkSortByTitle.checked ? "true" : "false") + + "&hash=" + now.getTime(), true); + + xmlHttp.onreadystatechange = function() + { + if (xmlHttp.readyState == 4) + { + if (xmlHttp.status != 200) + { + alert('The Search feature works when hosting the help documentation using ASP.NET or PHP.'); + return; + } + + divSearchResults.innerHTML = xmlHttp.responseText; + + lastSearchNode = divSearchResults.childNodes[0].childNodes[1]; + + while(lastSearchNode != null && lastSearchNode.tagName != "A") + lastSearchNode = lastSearchNode.nextSibling; + + if(lastSearchNode != null) + { + SelectSearchNode(lastSearchNode); + topicContent.src = lastSearchNode.href; + } + } + } + + xmlHttp.send(null) +} + +// Set the style of the specified search result node to "selected" +function SelectSearchNode(node) +{ + if(lastSearchNode != null) + lastSearchNode.className = "UnselectedNode"; + + node.className = "SelectedNode"; + lastSearchNode = node; + + return true; +} + +//============================================================================ +// KeyWordIndex code + +function ShowHideIndex(show) +{ + if(show) + { + PopulateIndex(currentIndexPage); + + divNavOpts.style.display = divTree.style.display = "none"; + divIndexOpts.style.display = divIndexResults.style.display = ""; + } + else + { + divIndexOpts.style.display = divIndexResults.style.display = "none"; + divNavOpts.style.display = divTree.style.display = ""; + } +} + +// Populate keyword index +function PopulateIndex(startIndex) +{ + var xmlHttp = GetXmlHttpRequest(), now = new Date(); + var firstNode; + + if(xmlHttp == null) + { + divIndexResults.innerHTML = "XML HTTP request not supported!"; + return; + } + + divIndexResults.innerHTML = "Loading keyword index..."; + + // Add a unique hash to ensure it doesn't use cached results + xmlHttp.open("GET", "../LoadIndexKeywords" + pageExtension + "?StartIndex=" + startIndex + + "&hash=" + now.getTime(), true); + + xmlHttp.onreadystatechange = function() + { + if(xmlHttp.readyState == 4) + { + divIndexResults.innerHTML = xmlHttp.responseText; + + if(startIndex > 0) + { + firstNode = divIndexResults.childNodes[1]; + + if(firstNode != null && !firstNode.innerHTML) + firstNode = divIndexResults.childNodes[2]; + } + else + firstNode = divIndexResults.childNodes[0]; + + if(firstNode != null) + lastIndexNode = firstNode.childNodes[0]; + + while(lastIndexNode != null && lastIndexNode.tagName != "A") + lastIndexNode = lastIndexNode.nextSibling; + + if(lastIndexNode != null) + { + SelectIndexNode(lastIndexNode); + topicContent.src = lastIndexNode.href; + } + + currentIndexPage = startIndex; + } + } + + xmlHttp.send(null) +} + +// Set the style of the specified keyword index node to "selected" +function SelectIndexNode(node) +{ + if(lastIndexNode != null) + lastIndexNode.className = "UnselectedNode"; + + node.className = "SelectedNode"; + lastIndexNode = node; + + return true; +} + +// Changes the current page with keyword index forward or backward +function ChangeIndexPage(direction) +{ + PopulateIndex(currentIndexPage + direction); + + return false; +} + +// Show a direct link to the currently displayed topic +function ShowDirectLink() +{ + var url = GetCurrentUrl(); + var base = window.location.href; + + if(base.indexOf("?") > 0) + base = base.substr(0, base.indexOf("?") + 1); + + base = base.substr(0, base.lastIndexOf("/") + 1); + + var relative = url.substr(base.length); + + // Using prompt lets the user copy it from the text box + prompt("Direct link", base + relative); +} \ No newline at end of file diff --git a/Help/Web.Config b/Help/Web.Config new file mode 100644 index 0000000..25e56ce --- /dev/null +++ b/Help/Web.Config @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Help/WebKI.xml b/Help/WebKI.xml new file mode 100644 index 0000000..16ac5ca --- /dev/null +++ b/Help/WebKI.xml @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Help/WebTOC.xml b/Help/WebTOC.xml new file mode 100644 index 0000000..a3239d9 --- /dev/null +++ b/Help/WebTOC.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Help/favicon.ico b/Help/favicon.ico new file mode 100644 index 0000000..eb67080 Binary files /dev/null and b/Help/favicon.ico differ diff --git a/Help/fti/FTI_100.json b/Help/fti/FTI_100.json new file mode 100644 index 0000000..2f7b52e --- /dev/null +++ b/Help/fti/FTI_100.json @@ -0,0 +1 @@ +{"description":[2,65537,131076,196611,262145,327681,393217,589825,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,4784129,4849665,4915201,4980737,5046273,5111809],"dictionary":[131073,851973,3604481],"determines":[131074,1048577,1114113,3276802],"default":[196609,2162689,2686977,3080193,3801089],"dll":[458753,524289,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,5177345,5242881,5308417,5373953,5439489,5505025,5570561],"different":[983041],"desired":[2555905],"defaultvalue":[2686980,2949124,3080196]} \ No newline at end of file diff --git a/Help/fti/FTI_101.json b/Help/fti/FTI_101.json new file mode 100644 index 0000000..ba856d9 --- /dev/null +++ b/Help/fti/FTI_101.json @@ -0,0 +1 @@ +{"exposes":[1,65537,131073,196609,262145,327681,393217,589825,3276801,3342337,3407873,4784129,4849665,4915201,4980737,5046273,5111809],"existing":[131073,917505,2031617,3276801],"easier":[131073,983041,3276801],"exception":[131074,983041,1048577,1114113,1376258,1441794,1769473,1835009,1900545,1966081,2031617,2818049,3276802],"exists":[131074,917505,1048577,1114113,1376258,1441794,3276802],"expression":[393217,2752516,2818053,3407873],"exceptions":[983041,1048577,1114113,1376257,1441793,1769473,1835009,1900545,1966081,2031617,2818049],"examples":[1179649,1310721,1507329,2031617,2555905,5373953],"example":[1507329,2031617,5373954],"exist":[1900545,1966081]} \ No newline at end of file diff --git a/Help/fti/FTI_102.json b/Help/fti/FTI_102.json new file mode 100644 index 0000000..5fe53b0 --- /dev/null +++ b/Help/fti/FTI_102.json @@ -0,0 +1 @@ +{"following":[1,65537,131073,196609,262145,327681,393217,589825,3276801,3342337,3407873,4784129,4849665,4915201,4980737,5046273,5111809],"func":[1,196611,720901,983044,1507336,2293765,2424837,2490373,2752516,2818052,3538945,3801091,3866629,3932165,4194309],"function":[1,65537,131073,720897,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507331,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3276801,3866626,3932162,4784129,4849665],"fastmoq":[1,65537,131073,196609,262145,327681,393217,458756,524292,589825,655364,720900,786436,851972,917508,983044,1048580,1114116,1179652,1245188,1310724,1376260,1441796,1507332,1572868,1638404,1703940,1769476,1835012,1900548,1966084,2031620,2097156,2162692,2228228,2293764,2359300,2424836,2490372,2555908,2621444,2686980,2752516,2818052,2883588,2949124,3014660,3080196,3145732,3211268,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866628,3932164,3997700,4063236,4128772,4194308,4259844,4325380,4390916,4456452,4521988,4587524,4653060,4718596,4784129,4849665,4915201,4980737,5046273,5111809,5177351,5242885,5308420,5373956,5439495,5505028,5570564],"file":[1,65537,131074,196609,262145,327681,393217,458754,524289,589826,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245186,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561],"fields":[131073,589826],"filesystem":[131073,458756,589825,1179649],"field":[393219,458753,524289,2621441,2686977,3145729,3407875,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593],"false":[917505,1048577,1114113,2031618,2097153,4063233,4653057],"functionality":[2031617,5373953],"fieldinfo":[2621444],"fast":[3473409,5373953],"friend":[4128769],"fact":[5373953]} \ No newline at end of file diff --git a/Help/fti/FTI_103.json b/Help/fti/FTI_103.json new file mode 100644 index 0000000..6c03e0c --- /dev/null +++ b/Help/fti/FTI_103.json @@ -0,0 +1 @@ +{"gets":[2,65538,131082,196614,262147,327683,393222,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2621441,2686977,2752513,2883585,3014657,3080193,3276809,3407878,3735555,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784130,4849666,4915201,4980742,5046275,5111811],"generated":[1,65537,131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561],"ghostdoc":[1,65537,131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561],"given":[131076,917505,1703937,1769473,1835009,3276804,3735555],"getlist":[131073,1507334,3276801],"getmock":[131074,1572869,1638405,3276802],"getobject":[131075,1507329,1703941,1769477,1835013,3276803,3735556],"getrequiredmock":[131074,1900549,1966085,3276802],"getfield":[393217,2621444,3407873],"getfieldvalue":[393217,2686980,3407873],"getmember":[393217,2752516,3407873],"getmemberinfo":[393217,2818052,3407873],"getmethod":[393217,2883588,3407873],"getmethodvalue":[393217,2949124,3407873],"getproperty":[393217,3014660,3407873],"getpropertyvalue":[393217,3080196,3407873],"generic":[917505,983041,1048577,1179649,1245185,1310721,1376257,1507329,1572865,1703937,1900545,2031617,2097153,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,5177345,5373953,5439489],"guid":[1507329],"green":[5373954]} \ No newline at end of file diff --git a/Help/fti/FTI_104.json b/Help/fti/FTI_104.json new file mode 100644 index 0000000..8bd5d8d --- /dev/null +++ b/Help/fti/FTI_104.json @@ -0,0 +1 @@ +{"help":[1,65537,131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561],"helper":[3473409,5308417],"hierarchy":[5177345,5439489]} \ No newline at end of file diff --git a/Help/fti/FTI_105.json b/Help/fti/FTI_105.json new file mode 100644 index 0000000..5201f8c --- /dev/null +++ b/Help/fti/FTI_105.json @@ -0,0 +1 @@ +{"instancemodel":[8,65539,131073,655366,720902,851973,3473414,3538951,3604481,3866626,3932162,3997698,4784132,4849667,5177357,5242888],"initializes":[2,131075,196614,655361,720897,786433,851969,2031617,2162689,2228225,2293761,2359297,2424833,2490369,3276801,3473409,3538946,3604482,3801094,5308417],"instance":[3,65537,131085,196615,655361,720897,786433,851969,1048577,1114113,1179651,1245185,1310723,1376257,1441793,1703937,1769473,1835009,2162689,2228225,2293761,2359297,2424833,2490369,2555905,3276811,3342337,3538946,3604482,3670019,3735555,3801094,3997698,4784129,4849665],"instancetype":[1,65537,3997700,4784129,4849665],"inherited":[1,262146,4784129,5046274],"interfaces":[131073,851969,3604481],"instances":[131073,851969,3604481],"interface":[131073,917505,983043,1048577,1114113,1179649,1310721,1376257,1507329,1572865,1703937,1900545,1966081,2031617,2097153,3276801,5373953],"ifilesystem":[131075,1179653,1245193,3276801,3670017,4063235,4915202],"included":[131073,1310721,3276801],"items":[131073,1507331,3276801],"initialize":[131073,2031621,2555905,3276801,5373953],"indicating":[131073,262145,327681,4063233,4653057,4915201,5046273,5111809],"info":[393217,1769476,2818049,3407873],"imodel":[1310722,1507330],"int":[1507330],"integer":[1507329],"int32":[1507329],"invalidprogramexception":[1769473,1835009],"invalidoperationexception":[1900545,1966081,2031617],"invalid":[2031617],"icarservice":[2031617,2555905,5373958],"instead":[2555905],"implements":[3473411,5177345,5242881,5439489],"information":[3473409,5505025],"internal":[4128769],"ienumerable":[4325381],"inherits":[5177345,5439489],"inheritance":[5177345,5439489]} \ No newline at end of file diff --git a/Help/fti/FTI_108.json b/Help/fti/FTI_108.json new file mode 100644 index 0000000..c2a6993 --- /dev/null +++ b/Help/fti/FTI_108.json @@ -0,0 +1 @@ +{"list":[131075,524292,589825,1376260,1441796,1507337,3276802,3538945,3604481,3670017,3735553,3801089],"lambda":[393217,2752514,3407873]} \ No newline at end of file diff --git a/Help/fti/FTI_109.json b/Help/fti/FTI_109.json new file mode 100644 index 0000000..f029faa --- /dev/null +++ b/Help/fti/FTI_109.json @@ -0,0 +1 @@ +{"members":[2,65538,131074,196610,262146,327682,393218,589825,3276801,3342337,3407873,3538945,3604481,3670017,3735553,3801089,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561],"mocker":[1,131081,196616,458755,524290,589828,720901,786438,851974,917506,983046,1048578,1114114,1179650,1245186,1310722,1376258,1441794,1507330,1572866,1638402,1703938,1769474,1835010,1900546,1966082,2031618,2097154,2228229,2293770,2359301,2424837,2490378,3276803,3473410,3538945,3604487,3670019,3735555,3801095,3866629,3932165,4063235,4194309,4390917,4456453,4915204,4980737,5308421,5373953],"methods":[131073,196609,393217,3276802,3342338,3407874],"mock":[131087,262146,327682,458753,589825,917517,1048579,1114114,1179649,1310721,1376258,1441794,1507329,1572870,1638405,1703937,1769473,1835009,1900551,1966087,2031630,2097164,2555906,3276812,3473409,4063234,4521995,4587531,4915202,5046274,5111810,5373954,5505025],"mockmodel":[131077,262149,327683,524292,589825,917510,1376260,1441796,3276804,3473412,4325381,4521986,4587522,4653058,4718594,5046277,5111811,5439501,5505029],"mapping":[131073,983041,3276801],"matching":[131074,1179649,1310721,3276802,3670017],"mockcollection":[131073,524292,589825],"mockfilesystem":[131073,458755,4063234,4915201],"mockertestbase":[196623,2162694,2228230,2293766,2359302,2424838,2490374,2555906,3342339,3473409,3801103,4128770,4194306,4259842,4325378,4390914,4456450,4980739,5373959],"maintaining":[196609,2555905,3342337],"mocks":[196611,1507329,2031618,2228225,2293761,2359297,2490369,2555905,4325378,4390917,4456450,4980739,5373955],"member":[393217,2752513,2818049,3407873],"method":[393217,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2555905,2621441,2686977,2752513,2818055,2883586,2949121,3014657,3080193,3145729,3211265,3407873,3670017,3735553],"map":[851969],"mapped":[983041],"model":[1310721,1507330],"memberinfo":[2752515],"memberlambda":[2752516],"memberexpression":[2818052],"methodinfo":[2883588],"mocking":[3473413,5308419,5373955],"manages":[3473409,5308417],"mustinherit":[5373953]} \ No newline at end of file diff --git a/Help/fti/FTI_110.json b/Help/fti/FTI_110.json new file mode 100644 index 0000000..68cd6b6 --- /dev/null +++ b/Help/fti/FTI_110.json @@ -0,0 +1 @@ +{"new":[2,131074,196615,655362,720898,786434,851970,1507329,2162690,2228226,2293762,2359298,2424834,2490370,2555905,3342337,3538946,3604482,3801094],"nullable":[1,196618,720901,983044,1179652,1245188,1310724,1507332,1703939,1769476,1835012,2359311,2424842,2490393,2621444,2686984,2752513,2883588,2949127,3014660,3080200,3538945,3801098,3866629,3932165,4128773,4194309,4259850,4456453],"namespace":[1,65537,131073,196609,262145,327681,393217,458754,524290,589825,655362,720898,786434,851970,917506,983042,1048578,1114114,1179650,1245186,1310722,1376258,1441794,1507330,1572866,1638402,1703938,1769474,1835010,1900546,1966082,2031618,2097154,2162690,2228226,2293762,2359298,2424834,2490370,2555906,2621442,2686978,2752514,2818050,2883586,2949122,3014658,3080194,3145730,3211266,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866626,3932162,3997698,4063234,4128770,4194306,4259842,4325378,4390914,4456450,4521986,4587522,4653058,4718594,4784129,4849665,4915201,4980737,5046273,5111809,5177346,5242882,5308418,5373954,5439490,5505026,5570562],"number":[131073,1507330,3276801],"nonpublic":[262145,327681,917508,1376260,1441796,4653060,5046273,5111809],"null":[1048577],"newguid":[1507329],"notbenull":[5373953],"notinheritable":[5570561]} \ No newline at end of file diff --git a/Help/fti/FTI_111.json b/Help/fti/FTI_111.json new file mode 100644 index 0000000..d982694 --- /dev/null +++ b/Help/fti/FTI_111.json @@ -0,0 +1 @@ +{"option":[131073,917505,3276801],"overwriting":[131073,917505,3276801],"object":[131073,1179653,1310724,1769476,1835012,2621441,2686982,2883585,2949131,3014657,3080202,3145734,3211270,3276801,3473409,3670017,3932165,5308417],"options":[131073,1310721,3276801],"overridden":[131073,458753,589825],"optional":[196609,983041,1179649,2424833,3801089],"overload":[655361,720897,786433,851969,917505,1048577,1114113,1179649,1245185,1376257,1441793,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2162689,2228225,2293761,2359297,2424833,2490369,3538945,3604481,3670017,3735553,3801089],"overwrite":[917509],"obj":[2621444,2686980,2752516,2883588,2949124,3014660,3080196,3145732,3211268]} \ No newline at end of file diff --git a/Help/fti/FTI_112.json b/Help/fti/FTI_112.json new file mode 100644 index 0000000..15fe754 --- /dev/null +++ b/Help/fti/FTI_112.json @@ -0,0 +1 @@ +{"properties":[1,65537,131073,196609,262145,327681,4784130,4849666,4915202,4980738,5046274,5111810],"parameters":[131074,720897,851969,917506,983042,1048577,1114113,1179651,1245186,1310723,1376258,1441793,1507330,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031618,2097154,2228225,2293761,2359297,2424833,2490369,2621442,2686978,2752514,2818050,2883586,2949122,3014658,3080194,3145730,3211266,3276802,3670017,5177345,5373953,5439489],"public":[131073,262145,327681,458755,655363,720899,786435,851971,917509,983043,1048579,1114115,1179651,1245187,1310724,1376261,1441797,1507331,1572867,1638403,1703939,1769475,1835011,1900547,1966083,2031619,2097155,2555905,2621443,2686979,2752515,2818051,2883587,2949123,3014659,3080195,3145731,3211267,3276801,3866627,3932163,3997699,4063235,4128769,4521987,4587523,4653061,4718595,5046273,5111809,5177348,5242883,5308419,5373964,5439492,5505027,5570563],"parameterinfo":[131074,1769479,3276802,3735554],"property":[131073,196609,393220,458753,589825,2555905,2752513,3014657,3080193,3211265,3342337,3407876,3866627,3932163,3997699,4063235,4128771,4194307,4259843,4325379,4390915,4456451,4521987,4587523,4653059,4718595],"protected":[524291,2162691,2228227,2293763,2359299,2424835,2490371,2555907,4128771,4194307,4259843,4325379,4390915,4456451],"parameter":[917505],"params":[1179649,1310721,2949121],"paramarray":[1179649,1310721,2949121],"predefined":[1245185],"propertyinfo":[3014660]} \ No newline at end of file diff --git a/Help/fti/FTI_114.json b/Help/fti/FTI_114.json new file mode 100644 index 0000000..97aa19b --- /dev/null +++ b/Help/fti/FTI_114.json @@ -0,0 +1 @@ +{"resolution":[131074,851969,983041,3276801,3604481,4063233],"required":[131074,1900545,1966081,3276802],"removemock":[131073,2097156,3276801],"remove":[131073,2097154,3276801],"return":[917505,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2621441,2686977,2752513,2818049,2883585,3014657,3080193],"reset":[2031620],"require":[2031617,5373953],"returns":[2031618,2555905,5373953],"removed":[2097153],"readonly":[3997697,4390913],"ref":[5177345,5242881,5308417,5373953,5439489,5505025,5570561]} \ No newline at end of file diff --git a/Help/fti/FTI_115.json b/Help/fti/FTI_115.json new file mode 100644 index 0000000..4892e79 --- /dev/null +++ b/Help/fti/FTI_115.json @@ -0,0 +1 @@ +{"sets":[2,65538,131073,196614,262147,327683,393218,2555905,3145729,3211265,3342337,3407874,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4456449,4521985,4587521,4653057,4718593,4784130,4849666,4915201,4980741,5046275,5111811],"specific":[131073,851969,983041,2031617,3604481,5373953],"specified":[131075,1507329,2031617,2097153,3276803],"system":[131073,458753,589825,983042,1048578,1114114,1245185,1376259,1441795,1769474,1835010,1900546,1966082,2031617,2752513,2818049],"strict":[131076,458753,589825,4063239,4915203],"setup":[196611,2031619,2228226,2293761,2359297,2490369,2555906,3342337,3801089,4456450,4980737,5373953],"setupmocksaction":[196609,2228228,2293764,2359300,2490372,4456452,4980737],"setfieldvalue":[393217,3145732,3407873],"setpropertyvalue":[393217,3211268,3407873],"syntax":[458753,524289,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,5177345,5242881,5308417,5373953,5439489,5505025,5570561],"sub":[655361,720897,786433,851969,983041,2162689,2228225,2293761,2359297,2424833,2490369,2555905,3145729,3211265],"set":[917505,1245185,1376257,2031617,3866627,3932163,4063235,4128771,4194307,4259843,4325379,4456451,4521987,4587523,4653059,4718595,5373955],"static":[1507330,2621442,2686978,2752514,2818050,2883586,2949122,3014658,3080194,3145730,3211266,5570561],"shared":[1507329,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265],"startcar":[2031617,2555905,5373954],"stopcar":[2031617],"successfully":[2097153],"string":[2621444,2686980,2883588,2949124,3014660,3080196,3145732,3211268],"service":[4128769],"sealed":[5570561]} \ No newline at end of file diff --git a/Help/fti/FTI_116.json b/Help/fti/FTI_116.json new file mode 100644 index 0000000..a6eadb2 --- /dev/null +++ b/Help/fti/FTI_116.json @@ -0,0 +1 @@ +{"tclass":[8,131073,655364,720905,983049,3276801,3473409,3538952,3866631,4784131,5177351],"type":[2,65538,131085,196609,262147,327683,393217,589825,720897,851975,917509,983044,1048581,1114127,1179651,1245186,1310723,1376264,1441809,1507332,1572867,1638412,1703938,1769474,1835021,1900549,1966094,2031620,2097155,2228225,2293762,2359298,2424834,2490371,2621444,2686981,2752516,2818051,2883588,2949125,3014660,3080197,3145733,3211269,3276812,3342337,3407873,3473409,3604481,3735554,3997702,4718603,4784130,4849666,4915201,4980737,5046275,5111811,5177346,5373954,5439489,5505025],"typemap":[131075,851974,983041,3276801,3604482],"tinterface":[131073,983046,3276801],"throws":[131074,1376257,1441793,3276802],"tcomponent":[196629,2162692,2228228,2293769,2359305,2424846,2490382,2555906,3342339,3473409,3801109,4128775,4194311,4259847,4325378,4390914,4456450,4980739,5373958],"test":[196609,2555905,3473409,4128769,4980737,5373953],"testclassextensions":[393219,2621442,2686978,2752514,2818050,2883586,2949122,3014658,3080194,3145730,3211266,3407875,3473409,5570565],"tobject":[393224,2621449,2686989,2883593,2949129,3014665,3080201,3145737,3211273,3407880],"tvalue":[393218,2752522,2818057,3407874],"typename":[917505,983042,1048577,1179649,1245185,1310721,1376257,1507329,1572865,1703937,1900545,2031617,2097153,2621441,2686977,2752514,2818050,2883585,2949121,3014657,3080193,3145729,3211265,5177345,5373953,5439489],"throw":[917505],"true":[917505,1048577,1114113,1245185,1376257,1441793,2031617,2097153,2555905,4063233,4653057,5373953],"types":[983041],"tostring":[1507329],"testcar":[5373953]} \ No newline at end of file diff --git a/Help/fti/FTI_117.json b/Help/fti/FTI_117.json new file mode 100644 index 0000000..6193864 --- /dev/null +++ b/Help/fti/FTI_117.json @@ -0,0 +1 @@ +{"using":[131076,851969,1179649,1310721,1507329,3276803,3604481,3670017],"used":[131073,458753,589825,983041,1179649,1376257,1441793],"unless":[131073,458753,589825],"uses":[131073,917505,4063234,4915201],"usually":[917505,1048577,1114113,1179649,1310721,1376257,1507329,1572865,1703937,1900545,1966081,2031617,2097153],"usepredefinedfilesystem":[1245188],"unable":[1769473,1835009]} \ No newline at end of file diff --git a/Help/fti/FTI_118.json b/Help/fti/FTI_118.json new file mode 100644 index 0000000..afde139 --- /dev/null +++ b/Help/fti/FTI_118.json @@ -0,0 +1 @@ +{"values":[131074,1179649,1310721,3276802,3670017],"virtual":[131073,458753,589825,4063233],"value":[131073,262145,327681,393221,917505,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2621441,2686979,2752515,2818050,2883585,3014657,3080195,3145734,3211270,3407877,3866626,3932162,3997697,4063235,4128770,4194306,4259842,4325378,4390913,4456450,4521986,4587522,4653059,4718594,4915201,5046273,5111809],"void":[983042,2555907,3145730,3211266,3866625,3932161,4063233,4128769,4194305,4259841,4325377,4456449,4521985,4587521,4653057,4718593,5373953]} \ No newline at end of file diff --git a/Help/fti/FTI_120.json b/Help/fti/FTI_120.json new file mode 100644 index 0000000..b06fdd8 --- /dev/null +++ b/Help/fti/FTI_120.json @@ -0,0 +1 @@ +{"xxxx":[2097153]} \ No newline at end of file diff --git a/Help/fti/FTI_97.json b/Help/fti/FTI_97.json new file mode 100644 index 0000000..54bd74c --- /dev/null +++ b/Help/fti/FTI_97.json @@ -0,0 +1 @@ +{"assists":[131073,851969,3604481],"addmock":[131073,917509,3276801],"addtype":[131073,983044,3276801],"adds":[131073,983041,3276801],"array":[131073,1179651,1310722,2949122,3276801,3670017],"allow":[131074,1179649,1310721,3276802,3670017],"action":[196623,2031625,2228231,2293767,2359308,2424840,2490381,3801097,4194307,4259848,4456456,4980742],"added":[196609,4325377,4980737],"assembly":[458753,524289,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,5177345,5242881,5308417,5373953,5439489,5505025,5570561],"add":[917505],"argumentexception":[917505,983042,1048577,1114113,1376258,1441794,1900545,1966081],"argumentnullexception":[1048577,1114113,1769473,1835009,2818049],"args":[1179652,1310724,2949124],"arguments":[1179649,1310721],"applicationexception":[1376257,1441793],"allows":[2555905],"automatic":[3473410,5308417,5373953],"auto":[3473409,5373954],"abstract":[5373954,5570561]} \ No newline at end of file diff --git a/Help/fti/FTI_98.json b/Help/fti/FTI_98.json new file mode 100644 index 0000000..47b31b3 --- /dev/null +++ b/Help/fti/FTI_98.json @@ -0,0 +1 @@ +{"boolean":[131077,917510,1048577,1114113,1245187,1376259,1441795,2031618,2097153,3276805,3670017,4063233,4653057],"based":[393217,2752513,3407873],"bool":[917508,1048578,1114114,1245186,1376258,1441794,2031618,2097154,4063236,4653060,5373953],"base":[2555905,3473409,5373955],"built":[4063233],"basic":[5373953]} \ No newline at end of file diff --git a/Help/fti/FTI_99.json b/Help/fti/FTI_99.json new file mode 100644 index 0000000..2751563 --- /dev/null +++ b/Help/fti/FTI_99.json @@ -0,0 +1 @@ +{"constructors":[1,131076,196609,917505,1179649,1310722,1376257,1441793,3276803,3670017],"class":[3,65537,131076,196615,262145,327681,393217,458753,524289,589825,655362,720898,786434,851970,917505,983045,1048578,1114114,1179649,1245185,1310721,1376258,1441794,1507329,1572865,1638401,1703937,1769473,1835009,1900546,1966082,2031617,2097153,2162690,2228226,2293762,2359298,2424834,2490370,2555906,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276802,3342337,3407873,3473413,3538947,3604483,3670017,3735553,3801095,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177350,5242885,5308421,5373961,5439493,5505028,5570564],"createfunc":[1,65537,720900,983044,3866628,3932164,4784129,4849665],"create":[1,65537,196610,720897,983042,1179649,1376257,1441793,1507329,2293761,2424834,2490369,3801089,3866626,3932162,4194306,4784129,4849665,4980737],"creates":[131081,917505,1179649,1245185,1310721,1376257,1441793,1572865,1638401,2031617,3276809,3473409,3670018,5308417],"contains":[131076,1048582,1114118,3276804,3473409,5505025],"createinstance":[131074,1179654,1245189,3276802,3670019],"creation":[131074,1179649,1310721,3276802,3670017],"createinstancenonpublic":[131073,1310725,3276801],"creating":[131073,1310721,1507329,2555905,3276801,5373953],"createmock":[131074,1376261,1441797,3276802],"custom":[131073,196609,1507329,3276801,3473409,4325378,4980737,5308417],"createaction":[196609,2162689,3801089],"createdaction":[196609,2424833,3801089],"createcomponent":[196609,2555910,3342337],"component":[196617,2293761,2359297,2424834,2490370,2555906,3342337,4128773,4194307,4259843,4325377,4456449,4980744,5373955],"constructor":[196609,655361,720897,786433,851969,2162689,2228225,2293761,2359297,2424833,2490369,2555906,3342337,3538945,3604481,3801089],"changes":[196609,2555905,3342337],"createcomponentaction":[196609,2293764,2424836,2490372,4194308,4980737],"created":[196613,983041,2359297,2424833,2490369,4194305,4259843,4325377,4456449,4980741],"createdcomponentaction":[196609,2359300,2424836,2490372,4259844,4980737],"custommocks":[196609,4325380,4980737],"condition":[983041,1048577,1114113,1376257,1441793,1769473,1835009,1900545,1966081,2031617,2818049],"count":[1507332],"classes":[3473409],"car":[5373957],"cartest":[5373955],"color":[5373959],"carservice":[5373958]} \ No newline at end of file diff --git a/Help/fti/FTI_Files.json b/Help/fti/FTI_Files.json new file mode 100644 index 0000000..ff4cf45 --- /dev/null +++ b/Help/fti/FTI_Files.json @@ -0,0 +1 @@ +["InstanceModel(TClass) Members\u0000AllMembers.T-FastMoq.InstanceModel-1.htm\u0000290","InstanceModel Members\u0000AllMembers.T-FastMoq.InstanceModel.htm\u000044","Mocker Members\u0000AllMembers.T-FastMoq.Mocker.htm\u0000857","MockerTestBase(TComponent) Members\u0000AllMembers.T-FastMoq.MockerTestBase-1.htm\u00001038","MockModel(T) Members\u0000AllMembers.T-FastMoq.MockModel-1.htm\u0000133","MockModel Members\u0000AllMembers.T-FastMoq.MockModel.htm\u000053","TestClassExtensions Members\u0000AllMembers.T-FastMoq.TestClassExtensions.htm\u0000306","fileSystem Field\u0000F-FastMoq.Mocker.fileSystem.htm\u000076","mockCollection Field\u0000F-FastMoq.Mocker.mockCollection.htm\u000080","Mocker Fields\u0000Fields.T-FastMoq.Mocker.htm\u000050","InstanceModel(TClass) Constructor\u0000M-FastMoq.InstanceModel-1.-ctor.htm\u0000147","InstanceModel(TClass) Constructor (Nullable(Func(Mocker, TClass)))\u0000M-FastMoq.InstanceModel-1.-ctor_1.htm\u0000305","Mocker Constructor\u0000M-FastMoq.Mocker.-ctor.htm\u000059","Mocker Constructor (Dictionary(Type, InstanceModel))\u0000M-FastMoq.Mocker.-ctor_1.htm\u0000178","AddMock(T) Method (Mock(T), Boolean, Boolean)\u0000M-FastMoq.Mocker.AddMock--1.htm\u0000323","AddType(TInterface, TClass) Method\u0000M-FastMoq.Mocker.AddType--2.htm\u0000295","Contains(T) Method\u0000M-FastMoq.Mocker.Contains--1.htm\u0000165","Contains Method (Type)\u0000M-FastMoq.Mocker.Contains.htm\u0000149","CreateInstance(T) Method (Object[])\u0000M-FastMoq.Mocker.CreateInstance--1.htm\u0000267","CreateInstance(T) Method (Boolean)\u0000M-FastMoq.Mocker.CreateInstance--1_1.htm\u0000193","CreateInstanceNonPublic(T) Method\u0000M-FastMoq.Mocker.CreateInstanceNonPublic--1.htm\u0000235","CreateMock(T) Method (Boolean)\u0000M-FastMoq.Mocker.CreateMock--1.htm\u0000231","CreateMock Method (Type, Boolean)\u0000M-FastMoq.Mocker.CreateMock.htm\u0000206","GetList(T) Method\u0000M-FastMoq.Mocker.GetList--1.htm\u0000336","GetMock(T) Method\u0000M-FastMoq.Mocker.GetMock--1.htm\u0000144","GetMock Method (Type)\u0000M-FastMoq.Mocker.GetMock.htm\u0000112","GetObject(T) Method\u0000M-FastMoq.Mocker.GetObject--1.htm\u0000138","GetObject Method (ParameterInfo)\u0000M-FastMoq.Mocker.GetObject.htm\u0000150","GetObject Method (Type)\u0000M-FastMoq.Mocker.GetObject_1.htm\u0000147","GetRequiredMock(T) Method\u0000M-FastMoq.Mocker.GetRequiredMock--1.htm\u0000166","GetRequiredMock Method (Type)\u0000M-FastMoq.Mocker.GetRequiredMock.htm\u0000137","Initialize(T) Method\u0000M-FastMoq.Mocker.Initialize--1.htm\u0000331","RemoveMock(T) Method\u0000M-FastMoq.Mocker.RemoveMock--1.htm\u0000191","MockerTestBase(TComponent) Constructor\u0000M-FastMoq.MockerTestBase-1.-ctor.htm\u0000151","MockerTestBase(TComponent) Constructor (Action(Mocker))\u0000M-FastMoq.MockerTestBase-1.-ctor_1.htm\u0000242","MockerTestBase(TComponent) Constructor (Action(Mocker), Func(Mocker, TComponent))\u0000M-FastMoq.MockerTestBase-1.-ctor_2.htm\u0000336","MockerTestBase(TComponent) Constructor (Nullable(Action(Mocker)), Nullable(Action(Nullable(TComponent))))\u0000M-FastMoq.MockerTestBase-1.-ctor_3.htm\u0000490","MockerTestBase(TComponent) Constructor (Func(Mocker, TComponent), Nullable(Action(Nullable(TComponent))))\u0000M-FastMoq.MockerTestBase-1.-ctor_4.htm\u0000451","MockerTestBase(TComponent) Constructor (Nullable(Action(Mocker)), Nullable(Func(Mocker, Nullable(TComponent))), Nullable(Action(Nullable(TComponent))))\u0000M-FastMoq.MockerTestBase-1.-ctor_5.htm\u0000700","CreateComponent Method\u0000M-FastMoq.MockerTestBase-1.CreateComponent.htm\u0000180","GetField(TObject) Method\u0000M-FastMoq.TestClassExtensions.GetField--1.htm\u0000184","GetFieldValue(TObject) Method\u0000M-FastMoq.TestClassExtensions.GetFieldValue--1.htm\u0000243","GetMember(T, TValue) Method\u0000M-FastMoq.TestClassExtensions.GetMember--2.htm\u0000260","GetMemberInfo(T, TValue) Method\u0000M-FastMoq.TestClassExtensions.GetMemberInfo--2.htm\u0000245","GetMethod(TObject) Method\u0000M-FastMoq.TestClassExtensions.GetMethod--1.htm\u0000184","GetMethodValue(TObject) Method\u0000M-FastMoq.TestClassExtensions.GetMethodValue--1.htm\u0000270","GetProperty(TObject) Method\u0000M-FastMoq.TestClassExtensions.GetProperty--1.htm\u0000184","GetPropertyValue(TObject) Method\u0000M-FastMoq.TestClassExtensions.GetPropertyValue--1.htm\u0000249","SetFieldValue(TObject) Method\u0000M-FastMoq.TestClassExtensions.SetFieldValue--1.htm\u0000183","SetPropertyValue(TObject) Method\u0000M-FastMoq.TestClassExtensions.SetPropertyValue--1.htm\u0000183","Mocker Methods\u0000Methods.T-FastMoq.Mocker.htm\u0000713","MockerTestBase(TComponent) Methods\u0000Methods.T-FastMoq.MockerTestBase-1.htm\u0000111","TestClassExtensions Methods\u0000Methods.T-FastMoq.TestClassExtensions.htm\u0000306","FastMoq Namespace\u0000N-FastMoq.htm\u0000138","InstanceModel(TClass) Constructor\u0000Overload-FastMoq.InstanceModel-1.-ctor.htm\u0000257","Mocker Constructor\u0000Overload-FastMoq.Mocker.-ctor.htm\u000094","CreateInstance Method\u0000Overload-FastMoq.Mocker.CreateInstance-.htm\u0000135","GetObject Method\u0000Overload-FastMoq.Mocker.GetObject.htm\u0000103","MockerTestBase(TComponent) Constructor\u0000Overload-FastMoq.MockerTestBase-1.-ctor.htm\u0000919","CreateFunc Property\u0000P-FastMoq.InstanceModel-1.CreateFunc.htm\u0000210","CreateFunc Property\u0000P-FastMoq.InstanceModel.CreateFunc.htm\u0000174","InstanceType Property\u0000P-FastMoq.InstanceModel.InstanceType.htm\u000099","Strict Property\u0000P-FastMoq.Mocker.Strict.htm\u0000156","Component Property\u0000P-FastMoq.MockerTestBase-1.Component.htm\u0000167","CreateComponentAction Property\u0000P-FastMoq.MockerTestBase-1.CreateComponentAction.htm\u0000218","CreatedComponentAction Property\u0000P-FastMoq.MockerTestBase-1.CreatedComponentAction.htm\u0000221","CustomMocks Property\u0000P-FastMoq.MockerTestBase-1.CustomMocks.htm\u0000188","Mocks Property\u0000P-FastMoq.MockerTestBase-1.Mocks.htm\u0000136","SetupMocksAction Property\u0000P-FastMoq.MockerTestBase-1.SetupMocksAction.htm\u0000212","Mock Property\u0000P-FastMoq.MockModel-1.Mock.htm\u0000165","Mock Property\u0000P-FastMoq.MockModel.Mock.htm\u0000107","NonPublic Property\u0000P-FastMoq.MockModel.NonPublic.htm\u0000122","Type Property\u0000P-FastMoq.MockModel.Type.htm\u0000107","InstanceModel(TClass) Properties\u0000Properties.T-FastMoq.InstanceModel-1.htm\u0000117","InstanceModel Properties\u0000Properties.T-FastMoq.InstanceModel.htm\u000044","Mocker Properties\u0000Properties.T-FastMoq.Mocker.htm\u000064","MockerTestBase(TComponent) Properties\u0000Properties.T-FastMoq.MockerTestBase-1.htm\u0000181","MockModel(T) Properties\u0000Properties.T-FastMoq.MockModel-1.htm\u0000133","MockModel Properties\u0000Properties.T-FastMoq.MockModel.htm\u000053","InstanceModel(TClass) Class\u0000T-FastMoq.InstanceModel-1.htm\u0000190","InstanceModel Class\u0000T-FastMoq.InstanceModel.htm\u000062","Mocker Class\u0000T-FastMoq.Mocker.htm\u000061","MockerTestBase(TComponent) Class\u0000T-FastMoq.MockerTestBase-1.htm\u0000334","MockModel(T) Class\u0000T-FastMoq.MockModel-1.htm\u0000183","MockModel Class\u0000T-FastMoq.MockModel.htm\u000049","TestClassExtensions Class\u0000T-FastMoq.TestClassExtensions.htm\u000047"] \ No newline at end of file diff --git a/Help/html/AllMembers.T-FastMoq.InstanceModel-1.htm b/Help/html/AllMembers.T-FastMoq.InstanceModel-1.htm new file mode 100644 index 0000000..a8eb8e5 --- /dev/null +++ b/Help/html/AllMembers.T-FastMoq.InstanceModel-1.htm @@ -0,0 +1,288 @@ + + + + + + InstanceModel(TClass) Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

InstanceModel<(Of <(<'TClass>)>)> Members

+
+
+

+

The InstanceModel<(Of <(<'TClass>)>)> type exposes the following members.

+
+
+

Constructors

+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public method + + InstanceModel<(Of <(<'TClass>)>)>()()()() + +
+ Initializes a new instance of the InstanceModel<(Of <(<'TClass>)>)> class. +
+
+ Public method + + InstanceModel<(Of <(<'TClass>)>)>(Nullable<(Of <<'(Func<(Of <<'(Mocker, TClass>)>>)>)>>)) + +
+ Initializes a new instance of the InstanceModel<(Of <(<'TClass>)>)> class. +
+
+
+
+
+

Properties

+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public property + + CreateFunc + +
+ Gets or sets the create function. +
+
+ Public property + + InstanceType + +
+ Gets or sets the type of the instance. +
(Inherited from InstanceModel.)
+
+ +
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/AllMembers.T-FastMoq.InstanceModel.htm b/Help/html/AllMembers.T-FastMoq.InstanceModel.htm new file mode 100644 index 0000000..55f832b --- /dev/null +++ b/Help/html/AllMembers.T-FastMoq.InstanceModel.htm @@ -0,0 +1,235 @@ + + + + + + InstanceModel Members + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

InstanceModel Members

+
+
+

+

The InstanceModel type exposes the following members.

+
+
+

Properties

+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public property + + CreateFunc + +
+ Gets or sets the create function. +
+
+ Public property + + InstanceType + +
+ Gets or sets the type of the instance. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/AllMembers.T-FastMoq.MockModel-1.htm b/Help/html/AllMembers.T-FastMoq.MockModel-1.htm new file mode 100644 index 0000000..d4c3822 --- /dev/null +++ b/Help/html/AllMembers.T-FastMoq.MockModel-1.htm @@ -0,0 +1,249 @@ + + + + + + MockModel(T) Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockModel<(Of <(<'T>)>)> Members

+
+
+

+

The MockModel<(Of <(<'T>)>)> type exposes the following members.

+
+
+

Properties

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public property + + Mock + +
+ Gets or sets the mock. +
+
+ Public property + + NonPublic + +
+ Gets or sets a value indicating whether [non public]. +
(Inherited from MockModel.)
+ Public property + + Type + +
+ Gets or sets the type. +
(Inherited from MockModel.)
+
+
+
+

See Also

+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/AllMembers.T-FastMoq.MockModel.htm b/Help/html/AllMembers.T-FastMoq.MockModel.htm new file mode 100644 index 0000000..f9e536e --- /dev/null +++ b/Help/html/AllMembers.T-FastMoq.MockModel.htm @@ -0,0 +1,248 @@ + + + + + + MockModel Members + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockModel Members

+
+
+

+

The MockModel type exposes the following members.

+
+
+

Properties

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public property + + Mock + +
+ Gets or sets the mock. +
+
+ Public property + + NonPublic + +
+ Gets or sets a value indicating whether [non public]. +
+
+ Public property + + Type + +
+ Gets or sets the type. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/AllMembers.T-FastMoq.Mocker.htm b/Help/html/AllMembers.T-FastMoq.Mocker.htm new file mode 100644 index 0000000..6e406e3 --- /dev/null +++ b/Help/html/AllMembers.T-FastMoq.Mocker.htm @@ -0,0 +1,600 @@ + + + + + + Mocker Members + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

Mocker Members

+
+
+

+

The Mocker type exposes the following members.

+
+
+

Constructors

+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public method + + Mocker()()()() + +
+ Initializes a new instance of the Mocker class. +
+
+ Public method + + Mocker(Dictionary<(Of <<'(Type, InstanceModel>)>>)) + +
+ Initializes a new instance of the Mocker class using the specific typeMap. + The typeMap assists in resolution of interfaces to instances. +
+
+
+
+
+

Methods

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public method + + AddMock<(Of <<'(T>)>>)(Mock<(Of <<'(T>)>>), Boolean, Boolean) + +
+ Creates a MockModel with the given [Mock] with the option of overwriting an existing MockModel
+
+ Public method + + AddType<(Of <<'(TInterface, TClass>)>>) + +
+ Adds an interface to Class mapping to the typeMap()()()() for easier resolution. +
+
+ Public method + + Contains(Type) + +
+ Determines whether this instance contains the Mock of type. +
+
+ Public method + + Contains<(Of <<'(T>)>>)()()()() + +
+ Determines whether this instance contains a Mock of T. +
+
+ Public method + + CreateInstance<(Of <<'(T>)>>)(array<Object>[]()[][]) + +
+ Creates an instance of T. Parameters allow matching of constructors and using those values in the creation of the instance. +
+
+ Public method + + CreateInstance<(Of <<'(T>)>>)(Boolean) + +
+ Creates an instance of [IFileSystem]. +
+
+ Public method + + CreateInstanceNonPublic<(Of <<'(T>)>>) + +
+ Creates an instance of T. + Non public constructors are included as options for creating the instance. + Parameters allow matching of constructors and using those values in the creation of the instance. +
+
+ Public method + + CreateMock(Type, Boolean) + +
+ Creates the MockModel from the Type. This throws an exception if the mock already exists. +
+
+ Public method + + CreateMock<(Of <<'(T>)>>)(Boolean) + +
+ Creates the MockModel from the type T. This throws an exception if the mock already exists. +
+
+ Public method + Static member + + GetList<(Of <<'(T>)>>) + +
+ Gets a list with the specified number of list items, using a custom function. +
+
+ Public method + + GetMock(Type) + +
+ Gets of creates the mock of type. +
+
+ Public method + + GetMock<(Of <<'(T>)>>)()()()() + +
+ Gets or creates the mock of type T. +
+
+ Public method + + GetObject(ParameterInfo) + +
+ Gets the instance for the given [ParameterInfo]. +
+
+ Public method + + GetObject(Type) + +
+ Gets the instance for the given type. +
+
+ Public method + + GetObject<(Of <<'(T>)>>)()()()() + +
+ Gets the instance for the given T. +
+
+ Public method + + GetRequiredMock(Type) + +
+ Gets the required mock. +
+
+ Public method + + GetRequiredMock<(Of <<'(T>)>>)()()()() + +
+ Gets the required mock. +
+
+ Public method + + Initialize<(Of <<'(T>)>>) + +
+ Gets or Creates then Initializes the specified Mock of T. +
+
+ Public method + + RemoveMock<(Of <<'(T>)>>) + +
+ Remove specified Mock of T. +
+
+
+
+
+

Fields

+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public field + + fileSystem + +
+ The virtual mock file system that is used by mocker unless overridden with the Strict property. +
+
+ Protected field + + mockCollection + +
+ List of MockModel. +
+
+
+
+
+

Properties

+
+
+
+
+ + + + + + + + + + + + + + +
+   + NameDescription
+ Public property + + Strict + +
+ Gets or sets a value indicating whether this Mocker is strict. If strict, the mock [IFileSystem] does + not use [MockFileSystem] and uses [Mock] of [IFileSystem]. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/AllMembers.T-FastMoq.MockerTestBase-1.htm b/Help/html/AllMembers.T-FastMoq.MockerTestBase-1.htm new file mode 100644 index 0000000..808837c --- /dev/null +++ b/Help/html/AllMembers.T-FastMoq.MockerTestBase-1.htm @@ -0,0 +1,432 @@ + + + + + + MockerTestBase(TComponent) Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)> Members

+
+
+

+

The MockerTestBase<(Of <(<'TComponent>)>)> type exposes the following members.

+
+
+

Constructors

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Protected method + + MockerTestBase<(Of <(<'TComponent>)>)>()()()() + +
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class with the default createAction. +
+
+ Protected method + + MockerTestBase<(Of <(<'TComponent>)>)>(Action<(Of <<'(Mocker>)>>)) + +
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class with a setup action. +
+
+ Protected method + + MockerTestBase<(Of <(<'TComponent>)>)>(Action<(Of <<'(Mocker>)>>), Func<(Of <<'(Mocker, TComponent>)>>)) + +
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class. +
+
+ Protected method + + MockerTestBase<(Of <(<'TComponent>)>)>(Nullable<(Of <<'(Action<(Of <<'(Mocker>)>>)>)>>), Nullable<(Of <<'(Action<(Of <<'(Nullable<(Of <<'(TComponent>)>>)>)>>)>)>>)) + +
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class. +
+
+ Protected method + + MockerTestBase<(Of <(<'TComponent>)>)>(Func<(Of <<'(Mocker, TComponent>)>>), Nullable<(Of <<'(Action<(Of <<'(Nullable<(Of <<'(TComponent>)>>)>)>>)>)>>)) + +
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class with a create action and optional + createdAction. +
+
+ Protected method + + MockerTestBase<(Of <(<'TComponent>)>)>(Nullable<(Of <<'(Action<(Of <<'(Mocker>)>>)>)>>), Nullable<(Of <<'(Func<(Of <<'(Mocker, Nullable<(Of <<'(TComponent>)>>)>)>>)>)>>), Nullable<(Of <<'(Action<(Of <<'(Nullable<(Of <<'(TComponent>)>>)>)>>)>)>>)) + +
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class. +
+
+
+
+
+

Methods

+
+
+
+
+ + + + + + + + + + + + + + +
+   + NameDescription
+ Protected method + + CreateComponent + +
+ Sets the Component property with a new instance while maintaining the constructor setup and any other changes. +
+
+
+
+
+

Properties

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Protected property + + Component + +
+ Gets or sets the component under test. +
+
+ Protected property + + CreateComponentAction + +
+ Gets or sets the create component action. This action is run whenever the component is created. +
+
+ Protected property + + CreatedComponentAction + +
+ Gets or sets the created component action. This action is run after the component is created. +
+
+ Protected property + + CustomMocks + +
+ Gets or sets the custom mocks. These are added whenever the component is created. +
+
+ Protected property + + Mocks + +
+ Gets the Mocker. +
+
+ Protected property + + SetupMocksAction + +
+ Gets or sets the setup mocks action. This action is run before the component is created. +
+
+
+ +
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/AllMembers.T-FastMoq.TestClassExtensions.htm b/Help/html/AllMembers.T-FastMoq.TestClassExtensions.htm new file mode 100644 index 0000000..c8beeae --- /dev/null +++ b/Help/html/AllMembers.T-FastMoq.TestClassExtensions.htm @@ -0,0 +1,345 @@ + + + + + + TestClassExtensions Members + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

TestClassExtensions Members

+
+
+

+

The TestClassExtensions type exposes the following members.

+
+
+

Methods

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public method + Static member + + GetField<(Of <<'(TObject>)>>) + +
+ Gets the field. +
+
+ Public method + Static member + + GetFieldValue<(Of <<'(TObject>)>>) + +
+ Gets the field value. +
+
+ Public method + Static member + + GetMember<(Of <<'(T, TValue>)>>) + +
+ Gets the property value based on lambda. +
+
+ Public method + Static member + + GetMemberInfo<(Of <<'(T, TValue>)>>) + +
+ Get Member Info from expression. +
+
+ Public method + Static member + + GetMethod<(Of <<'(TObject>)>>) + +
+ Gets the method. +
+
+ Public method + Static member + + GetMethodValue<(Of <<'(TObject>)>>) + +
+ Public method + Static member + + GetProperty<(Of <<'(TObject>)>>) + +
+ Gets the property. +
+
+ Public method + Static member + + GetPropertyValue<(Of <<'(TObject>)>>) + +
+ Gets the property value. +
+
+ Public method + Static member + + SetFieldValue<(Of <<'(TObject>)>>) + +
+ Sets the field value. +
+
+ Public method + Static member + + SetPropertyValue<(Of <<'(TObject>)>>) + +
+ Sets the property value. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/F-FastMoq.Mocker.fileSystem.htm b/Help/html/F-FastMoq.Mocker.fileSystem.htm new file mode 100644 index 0000000..4b53e89 --- /dev/null +++ b/Help/html/F-FastMoq.Mocker.fileSystem.htm @@ -0,0 +1,202 @@ + + + + + + fileSystem Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

Mocker..::..fileSystem Field

+
+
+
+ The virtual mock file system that is used by mocker unless overridden with the Strict property. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public MockFileSystem fileSystem
Public fileSystem As MockFileSystem
public:
+MockFileSystem^ fileSystem
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/F-FastMoq.Mocker.mockCollection.htm b/Help/html/F-FastMoq.Mocker.mockCollection.htm new file mode 100644 index 0000000..72a69ab --- /dev/null +++ b/Help/html/F-FastMoq.Mocker.mockCollection.htm @@ -0,0 +1,202 @@ + + + + + + mockCollection Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

Mocker..::..mockCollection Field

+
+
+
+ List of MockModel. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected List<MockModel> mockCollection
Protected mockCollection As List(Of MockModel)
protected:
+List<MockModel^>^ mockCollection
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Fields.T-FastMoq.Mocker.htm b/Help/html/Fields.T-FastMoq.Mocker.htm new file mode 100644 index 0000000..b07eabd --- /dev/null +++ b/Help/html/Fields.T-FastMoq.Mocker.htm @@ -0,0 +1,252 @@ + + + + + + Mocker Fields + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

Mocker Fields

+
+
+

The Mocker type exposes the following members.

+
+
+

Fields

+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public field + + fileSystem + +
+ The virtual mock file system that is used by mocker unless overridden with the Strict property. +
+
+ Protected field + + mockCollection + +
+ List of MockModel. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.InstanceModel-1.-ctor.htm b/Help/html/M-FastMoq.InstanceModel-1.-ctor.htm new file mode 100644 index 0000000..2d089d3 --- /dev/null +++ b/Help/html/M-FastMoq.InstanceModel-1.-ctor.htm @@ -0,0 +1,188 @@ + + + + + + InstanceModel(TClass) Constructor + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

InstanceModel<(Of <(<'TClass>)>)> Constructor

+
+
+
+ Initializes a new instance of the InstanceModel<(Of <(<'TClass>)>)> class. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public InstanceModel()
Public Sub New
public:
+InstanceModel()
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.InstanceModel-1.-ctor_1.htm b/Help/html/M-FastMoq.InstanceModel-1.-ctor_1.htm new file mode 100644 index 0000000..ed5eda7 --- /dev/null +++ b/Help/html/M-FastMoq.InstanceModel-1.-ctor_1.htm @@ -0,0 +1,194 @@ + + + + + + InstanceModel(TClass) Constructor (Nullable(Func(Mocker, TClass))) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

InstanceModel<(Of <(<'TClass>)>)> Constructor (Nullable<(Of <(<'Func<(Of <(<'Mocker, TClass>)>)>>)>)>)

+
+
+
+ Initializes a new instance of the InstanceModel<(Of <(<'TClass>)>)> class. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public InstanceModel(
+	Nullable<Func<Mocker, TClass>> createFunc
+)
Public Sub New ( _
+	createFunc As Nullable(Of Func(Of Mocker, TClass)) _
+)
public:
+InstanceModel(
+	Nullable<Func<Mocker^, TClass>^> createFunc
+)

Parameters

createFunc
Type: Nullable<(Of <(<'Func<(Of <(<'Mocker, TClass>)>)>>)>)>
The create function.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.-ctor.htm b/Help/html/M-FastMoq.Mocker.-ctor.htm new file mode 100644 index 0000000..573c6db --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.-ctor.htm @@ -0,0 +1,198 @@ + + + + + + Mocker Constructor + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

Mocker Constructor

+
+
+
+ Initializes a new instance of the Mocker class. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Mocker()
Public Sub New
public:
+Mocker()
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.-ctor_1.htm b/Help/html/M-FastMoq.Mocker.-ctor_1.htm new file mode 100644 index 0000000..89eb05e --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.-ctor_1.htm @@ -0,0 +1,205 @@ + + + + + + Mocker Constructor (Dictionary(Type, InstanceModel)) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

Mocker Constructor (Dictionary<(Of <(<'Type, InstanceModel>)>)>)

+
+
+
+ Initializes a new instance of the Mocker class using the specific typeMap. + The typeMap assists in resolution of interfaces to instances. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Mocker(
+	Dictionary<Type, InstanceModel> typeMap
+)
Public Sub New ( _
+	typeMap As Dictionary(Of Type, InstanceModel) _
+)
public:
+Mocker(
+	Dictionary<Type^, InstanceModel^>^ typeMap
+)

Parameters

typeMap
Type: Dictionary<(Of <(<'Type, InstanceModel>)>)>
The type map.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.AddMock--1.htm b/Help/html/M-FastMoq.Mocker.AddMock--1.htm new file mode 100644 index 0000000..e613500 --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.AddMock--1.htm @@ -0,0 +1,254 @@ + + + + + + AddMock(T) Method (Mock(T), Boolean, Boolean) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..AddMock<(Of <(<'T>)>)> Method (Mock<(Of <(<'T>)>)>, Boolean, Boolean)

+
+
+
+ Creates a MockModel with the given [Mock] with the option of overwriting an existing MockModel
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public MockModel<T> AddMock<T>(
+	Mock<T> mock,
+	bool overwrite,
+	bool nonPublic
+)
+
Public Function AddMock(Of T) ( _
+	mock As Mock(Of T), _
+	overwrite As Boolean, _
+	nonPublic As Boolean _
+) As MockModel(Of T)
public:
+generic<typename T>
+MockModel<T>^ AddMock(
+	Mock<T>^ mock, 
+	bool^ overwrite, 
+	bool^ nonPublic
+)

Type Parameters

T
The Mock Type, usually an interface.

Parameters

mock
Type: Mock<(Of <(<'T>)>)>
Mock to Add.
overwrite
Type: Boolean
Overwrite if the mock exists or throw [ArgumentException] if this parameter is + false.
nonPublic
Type: Boolean
if set to true uses public and non public constructors.

Return Value

MockModel<(Of <(<'T>)>)>.

See Also


AddMock Overload
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.AddType--2.htm b/Help/html/M-FastMoq.Mocker.AddType--2.htm new file mode 100644 index 0000000..fd01238 --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.AddType--2.htm @@ -0,0 +1,254 @@ + + + + + + AddType(TInterface, TClass) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..AddType<(Of <(<'TInterface, TClass>)>)> Method

+
+
+
+ Adds an interface to Class mapping to the typeMap()()()() for easier resolution. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public void AddType<TInterface, TClass>(
+	Nullable<Func<Mocker, TClass>> createFunc
+)
+
Public Sub AddType(Of TInterface, TClass) ( _
+	createFunc As Nullable(Of Func(Of Mocker, TClass)) _
+)
public:
+generic<typename TInterface, typename TClass>
+void AddType(
+	Nullable<Func<Mocker^, TClass>^> createFunc
+)

Type Parameters

TInterface
The interface Type which can be mapped to a specific Class.
TClass
The Class Type (cannot be an interface) that can be created from TInterface.

Parameters

createFunc
Type: Nullable<(Of <(<'Func<(Of <(<'Mocker, TClass>)>)>>)>)>
An optional create function used to create the class.

Exceptions


ExceptionCondition
[System.ArgumentException]Must be different types.
[System.ArgumentException]
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.Contains--1.htm b/Help/html/M-FastMoq.Mocker.Contains--1.htm new file mode 100644 index 0000000..ceae685 --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.Contains--1.htm @@ -0,0 +1,242 @@ + + + + + + Contains(T) Method + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..Contains<(Of <(<'T>)>)> Method

+
+
+
+ Determines whether this instance contains a Mock of T. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public bool Contains<T>()
+
Public Function Contains(Of T) As Boolean
public:
+generic<typename T>
+bool^ Contains()

Type Parameters

T
The Mock Type, usually an interface.

Return Value

true if the Mock<T> exists; otherwise, false.

Exceptions


ExceptionCondition
[System.ArgumentNullException]type is null.
[System.ArgumentException]type must be a class. - type
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.Contains.htm b/Help/html/M-FastMoq.Mocker.Contains.htm new file mode 100644 index 0000000..6adc1ea --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.Contains.htm @@ -0,0 +1,246 @@ + + + + + + Contains Method (Type) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..Contains Method (Type)

+
+
+
+ Determines whether this instance contains the Mock of type. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public bool Contains(
+	Type type
+)
Public Function Contains ( _
+	type As Type _
+) As Boolean
public:
+bool^ Contains(
+	Type^ type
+)

Parameters

type
Type: Type
The Type, usually an interface.

Return Value

true if [Mock{T}] exists; otherwise, false.

Exceptions


ExceptionCondition
[System.ArgumentNullException]type
[System.ArgumentException]type must be a class. - type
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.CreateInstance--1.htm b/Help/html/M-FastMoq.Mocker.CreateInstance--1.htm new file mode 100644 index 0000000..7b853a4 --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.CreateInstance--1.htm @@ -0,0 +1,257 @@ + + + + + + CreateInstance(T) Method (Object[]) + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..CreateInstance<(Of <(<'T>)>)> Method (array<Object>[]()[][])

+
+
+
+ Creates an instance of T. Parameters allow matching of constructors and using those values in the creation of the instance. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Nullable<T> CreateInstance<T>(
+	params Object[] args
+)
+where T : IFileSystem
+
Public Function CreateInstance(Of T As IFileSystem) ( _
+	ParamArray args As Object() _
+) As Nullable(Of T)
public:
+generic<typename T>
+where T : IFileSystem
+Nullable<T> CreateInstance(
+	... array<Object^>^ args
+)

Type Parameters

T
The Mock Type, usually an interface.

Parameters

args
Type: array<Object>[]()[][]
The optional arguments used to create the instance.

Return Value

[Nullable{T}].

Examples


C#
IFileSystem fileSystem = CreateInstance<IFileSystem>();
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.CreateInstance--1_1.htm b/Help/html/M-FastMoq.Mocker.CreateInstance--1_1.htm new file mode 100644 index 0000000..f919356 --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.CreateInstance--1_1.htm @@ -0,0 +1,256 @@ + + + + + + CreateInstance(T) Method (Boolean) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..CreateInstance<(Of <(<'T>)>)> Method (Boolean)

+
+
+
+ Creates an instance of [IFileSystem]. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Nullable<IFileSystem> CreateInstance<T>(
+	bool usePredefinedFileSystem
+)
+where T : IFileSystem
+
Public Function CreateInstance(Of T As IFileSystem) ( _
+	usePredefinedFileSystem As Boolean _
+) As Nullable(Of IFileSystem)
public:
+generic<typename T>
+where T : IFileSystem
+Nullable<IFileSystem^> CreateInstance(
+	bool^ usePredefinedFileSystem
+)

Type Parameters

T
[IFileSystem].

Parameters

usePredefinedFileSystem
Type: Boolean
if set to true [use predefined file system].

Return Value

[Nullable{IFileSystem}].
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.CreateInstanceNonPublic--1.htm b/Help/html/M-FastMoq.Mocker.CreateInstanceNonPublic--1.htm new file mode 100644 index 0000000..e73a3b0 --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.CreateInstanceNonPublic--1.htm @@ -0,0 +1,257 @@ + + + + + + CreateInstanceNonPublic(T) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..CreateInstanceNonPublic<(Of <(<'T>)>)> Method

+
+
+
+ Creates an instance of T. + Non public constructors are included as options for creating the instance. + Parameters allow matching of constructors and using those values in the creation of the instance. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Nullable<T> CreateInstanceNonPublic<T>(
+	params Object[] args
+)
+
Public Function CreateInstanceNonPublic(Of T) ( _
+	ParamArray args As Object() _
+) As Nullable(Of T)
public:
+generic<typename T>
+Nullable<T> CreateInstanceNonPublic(
+	... array<Object^>^ args
+)

Type Parameters

T
The Mock Type, usually an interface.

Parameters

args
Type: array<Object>[]()[][]
The arguments.

Return Value

[Nullable{T}]

Examples


C#
IModel model = CreateInstanceNonPublic<IModel>();
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.CreateMock--1.htm b/Help/html/M-FastMoq.Mocker.CreateMock--1.htm new file mode 100644 index 0000000..fc9fd3a --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.CreateMock--1.htm @@ -0,0 +1,248 @@ + + + + + + CreateMock(T) Method (Boolean) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..CreateMock<(Of <(<'T>)>)> Method (Boolean)

+
+
+
+ Creates the MockModel from the type T. This throws an exception if the mock already exists. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public List<MockModel> CreateMock<T>(
+	bool nonPublic
+)
+
Public Function CreateMock(Of T) ( _
+	nonPublic As Boolean _
+) As List(Of MockModel)
public:
+generic<typename T>
+List<MockModel^>^ CreateMock(
+	bool^ nonPublic
+)

Type Parameters

T
The Mock Type, usually an interface.

Parameters

nonPublic
Type: Boolean
if set to true public and non public constructors are used.

Return Value

[List{T}].

Exceptions


ExceptionCondition
[System.ArgumentException]type must be a class. - type
[System.ArgumentException]type already exists. - type
[System.ApplicationException]Cannot create instance.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.CreateMock.htm b/Help/html/M-FastMoq.Mocker.CreateMock.htm new file mode 100644 index 0000000..8510caa --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.CreateMock.htm @@ -0,0 +1,249 @@ + + + + + + CreateMock Method (Type, Boolean) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..CreateMock Method (Type, Boolean)

+
+
+
+ Creates the MockModel from the Type. This throws an exception if the mock already exists. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public List<MockModel> CreateMock(
+	Type type,
+	bool nonPublic
+)
Public Function CreateMock ( _
+	type As Type, _
+	nonPublic As Boolean _
+) As List(Of MockModel)
public:
+List<MockModel^>^ CreateMock(
+	Type^ type, 
+	bool^ nonPublic
+)

Parameters

type
Type: Type
The type.
nonPublic
Type: Boolean
true if non public and public constructors are used.

Return Value

[List{Mock}].

Exceptions


ExceptionCondition
[System.ArgumentException]type must be a class. - type
[System.ArgumentException]type already exists. - type
[System.ApplicationException]Cannot create instance.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.GetList--1.htm b/Help/html/M-FastMoq.Mocker.GetList--1.htm new file mode 100644 index 0000000..c64eeda --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.GetList--1.htm @@ -0,0 +1,262 @@ + + + + + + GetList(T) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..GetList<(Of <(<'T>)>)> Method

+
+
+
+ Gets a list with the specified number of list items, using a custom function. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public static List<T> GetList<T>(
+	int count,
+	Nullable<Func<T>> func
+)
+
Public Shared Function GetList(Of T) ( _
+	count As Integer, _
+	func As Nullable(Of Func(Of T)) _
+) As List(Of T)
public:
+generic<typename T>
+static List<T>^ GetList(
+	int^ count, 
+	Nullable<Func<T>^> func
+)

Type Parameters

T
The Mock Type, usually an interface.

Parameters

count
Type: Int32
The number of list items.
func
Type: Nullable<(Of <(<'Func<(Of <(<'T>)>)>>)>)>
The function for creating the list items.

Return Value

[List{T}].

Examples


+ Example of how to create a list. +
C#
GetList<Model>(3, () => new Model(name: Guid.NewGuid().ToString()));
+ or +
C#
GetList<IModel>(3, () => Mocks.GetObject<IModel>());
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.GetMock--1.htm b/Help/html/M-FastMoq.Mocker.GetMock--1.htm new file mode 100644 index 0000000..8da6f7d --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.GetMock--1.htm @@ -0,0 +1,242 @@ + + + + + + GetMock(T) Method + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..GetMock<(Of <(<'T>)>)> Method

+
+
+
+ Gets or creates the mock of type T. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Mock<T> GetMock<T>()
+
Public Function GetMock(Of T) As Mock(Of T)
public:
+generic<typename T>
+Mock<T>^ GetMock()

Type Parameters

T
The Mock Type, usually an interface.

Return Value

[Mock{T}].
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.GetMock.htm b/Help/html/M-FastMoq.Mocker.GetMock.htm new file mode 100644 index 0000000..5d051f1 --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.GetMock.htm @@ -0,0 +1,246 @@ + + + + + + GetMock Method (Type) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..GetMock Method (Type)

+
+
+
+ Gets of creates the mock of type. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Mock GetMock(
+	Type type
+)
Public Function GetMock ( _
+	type As Type _
+) As Mock
public:
+Mock^ GetMock(
+	Type^ type
+)

Parameters

type
Type: Type
The type.

Return Value

[Mock].
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.GetObject--1.htm b/Help/html/M-FastMoq.Mocker.GetObject--1.htm new file mode 100644 index 0000000..670edbf --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.GetObject--1.htm @@ -0,0 +1,251 @@ + + + + + + GetObject(T) Method + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..GetObject<(Of <(<'T>)>)> Method

+
+
+
+ Gets the instance for the given T. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Nullable<T> GetObject<T>()
+
Public Function GetObject(Of T) As Nullable(Of T)
public:
+generic<typename T>
+Nullable<T> GetObject()

Type Parameters

T
The Mock Type, usually an interface.

Return Value

T.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.GetObject.htm b/Help/html/M-FastMoq.Mocker.GetObject.htm new file mode 100644 index 0000000..7cbe943 --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.GetObject.htm @@ -0,0 +1,255 @@ + + + + + + GetObject Method (ParameterInfo) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..GetObject Method (ParameterInfo)

+
+
+
+ Gets the instance for the given [ParameterInfo]. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Nullable<Object> GetObject(
+	ParameterInfo info
+)
Public Function GetObject ( _
+	info As ParameterInfo _
+) As Nullable(Of Object)
public:
+Nullable<Object^> GetObject(
+	ParameterInfo^ info
+)

Parameters

info
Type: ParameterInfo
The [ParameterInfo].

Return Value

[Nullable{Object}]

Exceptions


ExceptionCondition
[System.ArgumentNullException]type
[System.InvalidProgramException]Unable to get the Mock.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.GetObject_1.htm b/Help/html/M-FastMoq.Mocker.GetObject_1.htm new file mode 100644 index 0000000..63f9637 --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.GetObject_1.htm @@ -0,0 +1,255 @@ + + + + + + GetObject Method (Type) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..GetObject Method (Type)

+
+
+
+ Gets the instance for the given type. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Nullable<Object> GetObject(
+	Type type
+)
Public Function GetObject ( _
+	type As Type _
+) As Nullable(Of Object)
public:
+Nullable<Object^> GetObject(
+	Type^ type
+)

Parameters

type
Type: Type
The type.

Return Value

[Nullable{Object}].

Exceptions


ExceptionCondition
[System.ArgumentNullException]type
[System.InvalidProgramException]Unable to get the Mock.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.GetRequiredMock--1.htm b/Help/html/M-FastMoq.Mocker.GetRequiredMock--1.htm new file mode 100644 index 0000000..19f74cf --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.GetRequiredMock--1.htm @@ -0,0 +1,242 @@ + + + + + + GetRequiredMock(T) Method + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..GetRequiredMock<(Of <(<'T>)>)> Method

+
+
+
+ Gets the required mock. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Mock<T> GetRequiredMock<T>()
+
Public Function GetRequiredMock(Of T) As Mock(Of T)
public:
+generic<typename T>
+Mock<T>^ GetRequiredMock()

Type Parameters

T
The Mock Type, usually an interface.

Return Value

[Mock{T}].

Exceptions


ExceptionCondition
[System.ArgumentException]type must be a class. - type
[System.InvalidOperationException]Mock must exist. - type
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.GetRequiredMock.htm b/Help/html/M-FastMoq.Mocker.GetRequiredMock.htm new file mode 100644 index 0000000..b15646e --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.GetRequiredMock.htm @@ -0,0 +1,246 @@ + + + + + + GetRequiredMock Method (Type) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..GetRequiredMock Method (Type)

+
+
+
+ Gets the required mock. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Mock GetRequiredMock(
+	Type type
+)
Public Function GetRequiredMock ( _
+	type As Type _
+) As Mock
public:
+Mock^ GetRequiredMock(
+	Type^ type
+)

Parameters

type
Type: Type
The mock type, usually an interface.

Return Value

Mock.

Exceptions


ExceptionCondition
[System.ArgumentException]type must be a class. - type
[System.InvalidOperationException]Mock must exist. - type
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.Initialize--1.htm b/Help/html/M-FastMoq.Mocker.Initialize--1.htm new file mode 100644 index 0000000..e518eb4 --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.Initialize--1.htm @@ -0,0 +1,263 @@ + + + + + + Initialize(T) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..Initialize<(Of <(<'T>)>)> Method

+
+
+
+ Gets or Creates then Initializes the specified Mock of T. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Mock<T> Initialize<T>(
+	Action<Mock<T>> action,
+	bool reset
+)
+
Public Function Initialize(Of T) ( _
+	action As Action(Of Mock(Of T)), _
+	reset As Boolean _
+) As Mock(Of T)
public:
+generic<typename T>
+Mock<T>^ Initialize(
+	Action<Mock<T>^>^ action, 
+	bool^ reset
+)

Type Parameters

T
The Mock Type, usually an interface.

Parameters

action
Type: Action<(Of <(<'Mock<(Of <(<'T>)>)>>)>)>
The action.
reset
Type: Boolean
False to keep the existing setup.

Return Value

[Mock{T}]

Exceptions


ExceptionCondition
[System.InvalidOperationException]Invalid Mock.

Examples


+ Example of how to set up for mocks that require specific functionality. +
C#
mocks.Initialize<ICarService>(mock => {
+    mock.Setup(x => x.StartCar).Returns(true));
+    mock.Setup(x => x.StopCar).Returns(false));
+}
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.Mocker.RemoveMock--1.htm b/Help/html/M-FastMoq.Mocker.RemoveMock--1.htm new file mode 100644 index 0000000..f03583b --- /dev/null +++ b/Help/html/M-FastMoq.Mocker.RemoveMock--1.htm @@ -0,0 +1,254 @@ + + + + + + RemoveMock(T) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..RemoveMock<(Of <(<'T>)>)> Method

+
+
+
+ Remove specified Mock of T. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public bool RemoveMock<T>(
+	Mock<T> mock
+)
+
Public Function RemoveMock(Of T) ( _
+	mock As Mock(Of T) _
+) As Boolean
public:
+generic<typename T>
+bool^ RemoveMock(
+	Mock<T>^ mock
+)

Type Parameters

T
The Mock Type, usually an interface.

Parameters

mock
Type: Mock<(Of <(<'T>)>)>
Mock to Remove.

Return Value

true if the mock is successfully removed, false otherwise.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.MockerTestBase-1.-ctor.htm b/Help/html/M-FastMoq.MockerTestBase-1.-ctor.htm new file mode 100644 index 0000000..3a9f591 --- /dev/null +++ b/Help/html/M-FastMoq.MockerTestBase-1.-ctor.htm @@ -0,0 +1,205 @@ + + + + + + MockerTestBase(TComponent) Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)> Constructor

+
+
+
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class with the default createAction. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected MockerTestBase()
Protected Sub New
protected:
+MockerTestBase()
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.MockerTestBase-1.-ctor_1.htm b/Help/html/M-FastMoq.MockerTestBase-1.-ctor_1.htm new file mode 100644 index 0000000..b00d7f8 --- /dev/null +++ b/Help/html/M-FastMoq.MockerTestBase-1.-ctor_1.htm @@ -0,0 +1,211 @@ + + + + + + MockerTestBase(TComponent) Constructor (Action(Mocker)) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)> Constructor (Action<(Of <(<'Mocker>)>)>)

+
+
+
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class with a setup action. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected MockerTestBase(
+	Action<Mocker> setupMocksAction
+)
Protected Sub New ( _
+	setupMocksAction As Action(Of Mocker) _
+)
protected:
+MockerTestBase(
+	Action<Mocker^>^ setupMocksAction
+)

Parameters

setupMocksAction
Type: Action<(Of <(<'Mocker>)>)>
The setup mocks action.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.MockerTestBase-1.-ctor_2.htm b/Help/html/M-FastMoq.MockerTestBase-1.-ctor_2.htm new file mode 100644 index 0000000..8732698 --- /dev/null +++ b/Help/html/M-FastMoq.MockerTestBase-1.-ctor_2.htm @@ -0,0 +1,214 @@ + + + + + + MockerTestBase(TComponent) Constructor (Action(Mocker), Func(Mocker, TComponent)) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)> Constructor (Action<(Of <(<'Mocker>)>)>, Func<(Of <(<'Mocker, TComponent>)>)>)

+
+
+
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected MockerTestBase(
+	Action<Mocker> setupMocksAction,
+	Func<Mocker, TComponent> createComponentAction
+)
Protected Sub New ( _
+	setupMocksAction As Action(Of Mocker), _
+	createComponentAction As Func(Of Mocker, TComponent) _
+)
protected:
+MockerTestBase(
+	Action<Mocker^>^ setupMocksAction, 
+	Func<Mocker^, TComponent>^ createComponentAction
+)

Parameters

setupMocksAction
Type: Action<(Of <(<'Mocker>)>)>
The setup mocks action.
createComponentAction
Type: Func<(Of <(<'Mocker, TComponent>)>)>
The create component action.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.MockerTestBase-1.-ctor_3.htm b/Help/html/M-FastMoq.MockerTestBase-1.-ctor_3.htm new file mode 100644 index 0000000..5aabea5 --- /dev/null +++ b/Help/html/M-FastMoq.MockerTestBase-1.-ctor_3.htm @@ -0,0 +1,214 @@ + + + + + + MockerTestBase(TComponent) Constructor (Nullable(Action(Mocker)), Nullable(Action(Nullable(TComponent)))) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)> Constructor (Nullable<(Of <(<'Action<(Of <(<'Mocker>)>)>>)>)>, Nullable<(Of <(<'Action<(Of <(<'Nullable<(Of <(<'TComponent>)>)>>)>)>>)>)>)

+
+
+
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected MockerTestBase(
+	Nullable<Action<Mocker>> setupMocksAction,
+	Nullable<Action<Nullable<TComponent>>> createdComponentAction
+)
Protected Sub New ( _
+	setupMocksAction As Nullable(Of Action(Of Mocker)), _
+	createdComponentAction As Nullable(Of Action(Of Nullable(Of TComponent))) _
+)
protected:
+MockerTestBase(
+	Nullable<Action<Mocker^>^> setupMocksAction, 
+	Nullable<Action<Nullable<TComponent>>^> createdComponentAction
+)

Parameters

setupMocksAction
Type: Nullable<(Of <(<'Action<(Of <(<'Mocker>)>)>>)>)>
The setup mocks action.
createdComponentAction
Type: Nullable<(Of <(<'Action<(Of <(<'Nullable<(Of <(<'TComponent>)>)>>)>)>>)>)>
The created component action.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.MockerTestBase-1.-ctor_4.htm b/Help/html/M-FastMoq.MockerTestBase-1.-ctor_4.htm new file mode 100644 index 0000000..1e83499 --- /dev/null +++ b/Help/html/M-FastMoq.MockerTestBase-1.-ctor_4.htm @@ -0,0 +1,215 @@ + + + + + + MockerTestBase(TComponent) Constructor (Func(Mocker, TComponent), Nullable(Action(Nullable(TComponent)))) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)> Constructor (Func<(Of <(<'Mocker, TComponent>)>)>, Nullable<(Of <(<'Action<(Of <(<'Nullable<(Of <(<'TComponent>)>)>>)>)>>)>)>)

+
+
+
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class with a create action and optional + createdAction. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected MockerTestBase(
+	Func<Mocker, TComponent> createComponentAction,
+	Nullable<Action<Nullable<TComponent>>> createdComponentAction
+)
Protected Sub New ( _
+	createComponentAction As Func(Of Mocker, TComponent), _
+	createdComponentAction As Nullable(Of Action(Of Nullable(Of TComponent))) _
+)
protected:
+MockerTestBase(
+	Func<Mocker^, TComponent>^ createComponentAction, 
+	Nullable<Action<Nullable<TComponent>>^> createdComponentAction
+)

Parameters

createComponentAction
Type: Func<(Of <(<'Mocker, TComponent>)>)>
The create component action.
createdComponentAction
Type: Nullable<(Of <(<'Action<(Of <(<'Nullable<(Of <(<'TComponent>)>)>>)>)>>)>)>
The created component action.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.MockerTestBase-1.-ctor_5.htm b/Help/html/M-FastMoq.MockerTestBase-1.-ctor_5.htm new file mode 100644 index 0000000..907c682 --- /dev/null +++ b/Help/html/M-FastMoq.MockerTestBase-1.-ctor_5.htm @@ -0,0 +1,217 @@ + + + + + + MockerTestBase(TComponent) Constructor (Nullable(Action(Mocker)), Nullable(Func(Mocker, Nullable(TComponent))), Nullable(Action(Nullable(TComponent)))) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)> Constructor (Nullable<(Of <(<'Action<(Of <(<'Mocker>)>)>>)>)>, Nullable<(Of <(<'Func<(Of <(<'Mocker, Nullable<(Of <(<'TComponent>)>)>>)>)>>)>)>, Nullable<(Of <(<'Action<(Of <(<'Nullable<(Of <(<'TComponent>)>)>>)>)>>)>)>)

+
+
+
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected MockerTestBase(
+	Nullable<Action<Mocker>> setupMocksAction,
+	Nullable<Func<Mocker, Nullable<TComponent>>> createComponentAction,
+	Nullable<Action<Nullable<TComponent>>> createdComponentAction
+)
Protected Sub New ( _
+	setupMocksAction As Nullable(Of Action(Of Mocker)), _
+	createComponentAction As Nullable(Of Func(Of Mocker, Nullable(Of TComponent))), _
+	createdComponentAction As Nullable(Of Action(Of Nullable(Of TComponent))) _
+)
protected:
+MockerTestBase(
+	Nullable<Action<Mocker^>^> setupMocksAction, 
+	Nullable<Func<Mocker^, Nullable<TComponent>>^> createComponentAction, 
+	Nullable<Action<Nullable<TComponent>>^> createdComponentAction
+)

Parameters

setupMocksAction
Type: Nullable<(Of <(<'Action<(Of <(<'Mocker>)>)>>)>)>
The setup mocks action.
createComponentAction
Type: Nullable<(Of <(<'Func<(Of <(<'Mocker, Nullable<(Of <(<'TComponent>)>)>>)>)>>)>)>
The create component action.
createdComponentAction
Type: Nullable<(Of <(<'Action<(Of <(<'Nullable<(Of <(<'TComponent>)>)>>)>)>>)>)>
The created component action.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.MockerTestBase-1.CreateComponent.htm b/Help/html/M-FastMoq.MockerTestBase-1.CreateComponent.htm new file mode 100644 index 0000000..0f3af8a --- /dev/null +++ b/Help/html/M-FastMoq.MockerTestBase-1.CreateComponent.htm @@ -0,0 +1,201 @@ + + + + + + CreateComponent Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)>..::..CreateComponent Method

+
+
+
+ Sets the Component property with a new instance while maintaining the constructor setup and any other changes. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected void CreateComponent()
Protected Sub CreateComponent
protected:
+void CreateComponent()

Examples


+ CreateComponent allows creating the component when desired, instead of in the base class constructor. +
C#
public void Test() {
+    Mocks.Initialize<ICarService>(mock => mock.Setup(x => x.StartCar).Returns(true));
+    CreateComponent();
+}
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.TestClassExtensions.GetField--1.htm b/Help/html/M-FastMoq.TestClassExtensions.GetField--1.htm new file mode 100644 index 0000000..2dd166a --- /dev/null +++ b/Help/html/M-FastMoq.TestClassExtensions.GetField--1.htm @@ -0,0 +1,224 @@ + + + + + + GetField(TObject) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

TestClassExtensions..::..GetField<(Of <(<'TObject>)>)> Method

+
+
+
+ Gets the field. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public static Nullable<FieldInfo> GetField<TObject>(
+	TObject obj,
+	string name
+)
+
Public Shared Function GetField(Of TObject) ( _
+	obj As TObject, _
+	name As String _
+) As Nullable(Of FieldInfo)
public:
+generic<typename TObject>
+static Nullable<FieldInfo^> GetField(
+	TObject obj, 
+	String^ name
+)

Type Parameters

TObject
The type of the t object.

Parameters

obj
Type: TObject
name
Type: String
The name.

Return Value

[Nullable{FieldInfo}].
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.TestClassExtensions.GetFieldValue--1.htm b/Help/html/M-FastMoq.TestClassExtensions.GetFieldValue--1.htm new file mode 100644 index 0000000..facf18d --- /dev/null +++ b/Help/html/M-FastMoq.TestClassExtensions.GetFieldValue--1.htm @@ -0,0 +1,227 @@ + + + + + + GetFieldValue(TObject) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

TestClassExtensions..::..GetFieldValue<(Of <(<'TObject>)>)> Method

+
+
+
+ Gets the field value. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public static Nullable<Object> GetFieldValue<TObject>(
+	TObject obj,
+	string name,
+	Nullable<TObject> defaultValue
+)
+
Public Shared Function GetFieldValue(Of TObject) ( _
+	obj As TObject, _
+	name As String, _
+	defaultValue As Nullable(Of TObject) _
+) As Nullable(Of Object)
public:
+generic<typename TObject>
+static Nullable<Object^> GetFieldValue(
+	TObject obj, 
+	String^ name, 
+	Nullable<TObject> defaultValue
+)

Type Parameters

TObject
The type of the t object.

Parameters

obj
Type: TObject
The object.
name
Type: String
The name.
defaultValue
Type: Nullable<(Of <(<'TObject>)>)>
The default value.

Return Value

[Nullable{Object}].
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.TestClassExtensions.GetMember--2.htm b/Help/html/M-FastMoq.TestClassExtensions.GetMember--2.htm new file mode 100644 index 0000000..4e69337 --- /dev/null +++ b/Help/html/M-FastMoq.TestClassExtensions.GetMember--2.htm @@ -0,0 +1,224 @@ + + + + + + GetMember(T, TValue) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

TestClassExtensions..::..GetMember<(Of <(<'T, TValue>)>)> Method

+
+
+
+ Gets the property value based on lambda. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public static MemberInfo GetMember<T, TValue>(
+	T obj,
+	Expression<Func<T, TValue>> memberLambda
+)
+
Public Shared Function GetMember(Of T, TValue) ( _
+	obj As T, _
+	memberLambda As Expression(Of Func(Of T, TValue)) _
+) As MemberInfo
public:
+generic<typename T, typename TValue>
+static MemberInfo^ GetMember(
+	T obj, 
+	Expression<Func<T, TValue>^>^ memberLambda
+)

Type Parameters

T
TValue
The type of the t value.

Parameters

obj
Type: T
memberLambda
Type: Expression<(Of <(<'Func<(Of <(<'T, TValue>)>)>>)>)>
The member lambda.

Return Value

System.Nullable<TValue>.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.TestClassExtensions.GetMemberInfo--2.htm b/Help/html/M-FastMoq.TestClassExtensions.GetMemberInfo--2.htm new file mode 100644 index 0000000..69ad663 --- /dev/null +++ b/Help/html/M-FastMoq.TestClassExtensions.GetMemberInfo--2.htm @@ -0,0 +1,221 @@ + + + + + + GetMemberInfo(T, TValue) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

TestClassExtensions..::..GetMemberInfo<(Of <(<'T, TValue>)>)> Method

+
+
+
+ Get Member Info from expression. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public static MemberExpression GetMemberInfo<T, TValue>(
+	Expression<Func<T, TValue>> method
+)
+
Public Shared Function GetMemberInfo(Of T, TValue) ( _
+	method As Expression(Of Func(Of T, TValue)) _
+) As MemberExpression
public:
+generic<typename T, typename TValue>
+static MemberExpression^ GetMemberInfo(
+	Expression<Func<T, TValue>^>^ method
+)

Type Parameters

T
TValue
The type of the t value.

Parameters

method
Type: Expression<(Of <(<'Func<(Of <(<'T, TValue>)>)>>)>)>
The method.

Return Value

MemberExpression.

Exceptions


ExceptionCondition
[System.ArgumentNullException]method
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.TestClassExtensions.GetMethod--1.htm b/Help/html/M-FastMoq.TestClassExtensions.GetMethod--1.htm new file mode 100644 index 0000000..3b00119 --- /dev/null +++ b/Help/html/M-FastMoq.TestClassExtensions.GetMethod--1.htm @@ -0,0 +1,224 @@ + + + + + + GetMethod(TObject) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

TestClassExtensions..::..GetMethod<(Of <(<'TObject>)>)> Method

+
+
+
+ Gets the method. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public static Nullable<MethodInfo> GetMethod<TObject>(
+	TObject obj,
+	string name
+)
+
Public Shared Function GetMethod(Of TObject) ( _
+	obj As TObject, _
+	name As String _
+) As Nullable(Of MethodInfo)
public:
+generic<typename TObject>
+static Nullable<MethodInfo^> GetMethod(
+	TObject obj, 
+	String^ name
+)

Type Parameters

TObject
The type of the t object.

Parameters

obj
Type: TObject
name
Type: String
The name.

Return Value

[Nullable{MethodInfo}].
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.TestClassExtensions.GetMethodValue--1.htm b/Help/html/M-FastMoq.TestClassExtensions.GetMethodValue--1.htm new file mode 100644 index 0000000..737d519 --- /dev/null +++ b/Help/html/M-FastMoq.TestClassExtensions.GetMethodValue--1.htm @@ -0,0 +1,226 @@ + + + + + + GetMethodValue(TObject) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

TestClassExtensions..::..GetMethodValue<(Of <(<'TObject>)>)> Method

+
+
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public static Nullable<Object> GetMethodValue<TObject>(
+	TObject obj,
+	string name,
+	Nullable<Object> defaultValue,
+	params Object[] args
+)
+
Public Shared Function GetMethodValue(Of TObject) ( _
+	obj As TObject, _
+	name As String, _
+	defaultValue As Nullable(Of Object), _
+	ParamArray args As Object() _
+) As Nullable(Of Object)
public:
+generic<typename TObject>
+static Nullable<Object^> GetMethodValue(
+	TObject obj, 
+	String^ name, 
+	Nullable<Object^> defaultValue, 
+	... array<Object^>^ args
+)

Type Parameters

TObject

Parameters

obj
Type: TObject
name
Type: String
defaultValue
Type: Nullable<(Of <(<'Object>)>)>
args
Type: array<Object>[]()[][]
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.TestClassExtensions.GetProperty--1.htm b/Help/html/M-FastMoq.TestClassExtensions.GetProperty--1.htm new file mode 100644 index 0000000..f3f61a6 --- /dev/null +++ b/Help/html/M-FastMoq.TestClassExtensions.GetProperty--1.htm @@ -0,0 +1,224 @@ + + + + + + GetProperty(TObject) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

TestClassExtensions..::..GetProperty<(Of <(<'TObject>)>)> Method

+
+
+
+ Gets the property. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public static Nullable<PropertyInfo> GetProperty<TObject>(
+	TObject obj,
+	string name
+)
+
Public Shared Function GetProperty(Of TObject) ( _
+	obj As TObject, _
+	name As String _
+) As Nullable(Of PropertyInfo)
public:
+generic<typename TObject>
+static Nullable<PropertyInfo^> GetProperty(
+	TObject obj, 
+	String^ name
+)

Type Parameters

TObject
The type of the t object.

Parameters

obj
Type: TObject
name
Type: String
The name.

Return Value

[Nullable{PropertyInfo}].
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.TestClassExtensions.GetPropertyValue--1.htm b/Help/html/M-FastMoq.TestClassExtensions.GetPropertyValue--1.htm new file mode 100644 index 0000000..2fa1291 --- /dev/null +++ b/Help/html/M-FastMoq.TestClassExtensions.GetPropertyValue--1.htm @@ -0,0 +1,227 @@ + + + + + + GetPropertyValue(TObject) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

TestClassExtensions..::..GetPropertyValue<(Of <(<'TObject>)>)> Method

+
+
+
+ Gets the property value. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public static Nullable<Object> GetPropertyValue<TObject>(
+	TObject obj,
+	string name,
+	Nullable<Object> defaultValue
+)
+
Public Shared Function GetPropertyValue(Of TObject) ( _
+	obj As TObject, _
+	name As String, _
+	defaultValue As Nullable(Of Object) _
+) As Nullable(Of Object)
public:
+generic<typename TObject>
+static Nullable<Object^> GetPropertyValue(
+	TObject obj, 
+	String^ name, 
+	Nullable<Object^> defaultValue
+)

Type Parameters

TObject
The type of the t object.

Parameters

obj
Type: TObject
The object.
name
Type: String
The name.
defaultValue
Type: Nullable<(Of <(<'Object>)>)>
The default value.

Return Value

[Nullable{Object}].
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.TestClassExtensions.SetFieldValue--1.htm b/Help/html/M-FastMoq.TestClassExtensions.SetFieldValue--1.htm new file mode 100644 index 0000000..c326959 --- /dev/null +++ b/Help/html/M-FastMoq.TestClassExtensions.SetFieldValue--1.htm @@ -0,0 +1,227 @@ + + + + + + SetFieldValue(TObject) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

TestClassExtensions..::..SetFieldValue<(Of <(<'TObject>)>)> Method

+
+
+
+ Sets the field value. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public static void SetFieldValue<TObject>(
+	TObject obj,
+	string name,
+	Object value
+)
+
Public Shared Sub SetFieldValue(Of TObject) ( _
+	obj As TObject, _
+	name As String, _
+	value As Object _
+)
public:
+generic<typename TObject>
+static void SetFieldValue(
+	TObject obj, 
+	String^ name, 
+	Object^ value
+)

Type Parameters

TObject
The type of the t object.

Parameters

obj
Type: TObject
The object.
name
Type: String
The name.
value
Type: Object
The value.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/M-FastMoq.TestClassExtensions.SetPropertyValue--1.htm b/Help/html/M-FastMoq.TestClassExtensions.SetPropertyValue--1.htm new file mode 100644 index 0000000..33b4b9b --- /dev/null +++ b/Help/html/M-FastMoq.TestClassExtensions.SetPropertyValue--1.htm @@ -0,0 +1,227 @@ + + + + + + SetPropertyValue(TObject) Method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

TestClassExtensions..::..SetPropertyValue<(Of <(<'TObject>)>)> Method

+
+
+
+ Sets the property value. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public static void SetPropertyValue<TObject>(
+	TObject obj,
+	string name,
+	Object value
+)
+
Public Shared Sub SetPropertyValue(Of TObject) ( _
+	obj As TObject, _
+	name As String, _
+	value As Object _
+)
public:
+generic<typename TObject>
+static void SetPropertyValue(
+	TObject obj, 
+	String^ name, 
+	Object^ value
+)

Type Parameters

TObject
The type of the t object.

Parameters

obj
Type: TObject
The object.
name
Type: String
The name.
value
Type: Object
The value.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Methods.T-FastMoq.Mocker.htm b/Help/html/Methods.T-FastMoq.Mocker.htm new file mode 100644 index 0000000..01115da --- /dev/null +++ b/Help/html/Methods.T-FastMoq.Mocker.htm @@ -0,0 +1,517 @@ + + + + + + Mocker Methods + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker Methods

+
+
+

The Mocker type exposes the following members.

+
+
+

Methods

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public method + + AddMock<(Of <<'(T>)>>)(Mock<(Of <<'(T>)>>), Boolean, Boolean) + +
+ Creates a MockModel with the given [Mock] with the option of overwriting an existing MockModel
+
+ Public method + + AddType<(Of <<'(TInterface, TClass>)>>) + +
+ Adds an interface to Class mapping to the typeMap()()()() for easier resolution. +
+
+ Public method + + Contains(Type) + +
+ Determines whether this instance contains the Mock of type. +
+
+ Public method + + Contains<(Of <<'(T>)>>)()()()() + +
+ Determines whether this instance contains a Mock of T. +
+
+ Public method + + CreateInstance<(Of <<'(T>)>>)(array<Object>[]()[][]) + +
+ Creates an instance of T. Parameters allow matching of constructors and using those values in the creation of the instance. +
+
+ Public method + + CreateInstance<(Of <<'(T>)>>)(Boolean) + +
+ Creates an instance of [IFileSystem]. +
+
+ Public method + + CreateInstanceNonPublic<(Of <<'(T>)>>) + +
+ Creates an instance of T. + Non public constructors are included as options for creating the instance. + Parameters allow matching of constructors and using those values in the creation of the instance. +
+
+ Public method + + CreateMock(Type, Boolean) + +
+ Creates the MockModel from the Type. This throws an exception if the mock already exists. +
+
+ Public method + + CreateMock<(Of <<'(T>)>>)(Boolean) + +
+ Creates the MockModel from the type T. This throws an exception if the mock already exists. +
+
+ Public method + Static member + + GetList<(Of <<'(T>)>>) + +
+ Gets a list with the specified number of list items, using a custom function. +
+
+ Public method + + GetMock(Type) + +
+ Gets of creates the mock of type. +
+
+ Public method + + GetMock<(Of <<'(T>)>>)()()()() + +
+ Gets or creates the mock of type T. +
+
+ Public method + + GetObject(ParameterInfo) + +
+ Gets the instance for the given [ParameterInfo]. +
+
+ Public method + + GetObject(Type) + +
+ Gets the instance for the given type. +
+
+ Public method + + GetObject<(Of <<'(T>)>>)()()()() + +
+ Gets the instance for the given T. +
+
+ Public method + + GetRequiredMock(Type) + +
+ Gets the required mock. +
+
+ Public method + + GetRequiredMock<(Of <<'(T>)>>)()()()() + +
+ Gets the required mock. +
+
+ Public method + + Initialize<(Of <<'(T>)>>) + +
+ Gets or Creates then Initializes the specified Mock of T. +
+
+ Public method + + RemoveMock<(Of <<'(T>)>>) + +
+ Remove specified Mock of T. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Methods.T-FastMoq.MockerTestBase-1.htm b/Help/html/Methods.T-FastMoq.MockerTestBase-1.htm new file mode 100644 index 0000000..d67048b --- /dev/null +++ b/Help/html/Methods.T-FastMoq.MockerTestBase-1.htm @@ -0,0 +1,232 @@ + + + + + + MockerTestBase(TComponent) Methods + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)> Methods

+
+
+

The MockerTestBase<(Of <(<'TComponent>)>)> type exposes the following members.

+
+
+

Methods

+
+
+
+
+ + + + + + + + + + + + + + +
+   + NameDescription
+ Protected method + + CreateComponent + +
+ Sets the Component property with a new instance while maintaining the constructor setup and any other changes. +
+
+
+ +
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Methods.T-FastMoq.TestClassExtensions.htm b/Help/html/Methods.T-FastMoq.TestClassExtensions.htm new file mode 100644 index 0000000..afc1dee --- /dev/null +++ b/Help/html/Methods.T-FastMoq.TestClassExtensions.htm @@ -0,0 +1,371 @@ + + + + + + TestClassExtensions Methods + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

TestClassExtensions Methods

+
+
+

The TestClassExtensions type exposes the following members.

+
+
+

Methods

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public method + Static member + + GetField<(Of <<'(TObject>)>>) + +
+ Gets the field. +
+
+ Public method + Static member + + GetFieldValue<(Of <<'(TObject>)>>) + +
+ Gets the field value. +
+
+ Public method + Static member + + GetMember<(Of <<'(T, TValue>)>>) + +
+ Gets the property value based on lambda. +
+
+ Public method + Static member + + GetMemberInfo<(Of <<'(T, TValue>)>>) + +
+ Get Member Info from expression. +
+
+ Public method + Static member + + GetMethod<(Of <<'(TObject>)>>) + +
+ Gets the method. +
+
+ Public method + Static member + + GetMethodValue<(Of <<'(TObject>)>>) + +
+ Public method + Static member + + GetProperty<(Of <<'(TObject>)>>) + +
+ Gets the property. +
+
+ Public method + Static member + + GetPropertyValue<(Of <<'(TObject>)>>) + +
+ Gets the property value. +
+
+ Public method + Static member + + SetFieldValue<(Of <<'(TObject>)>>) + +
+ Sets the field value. +
+
+ Public method + Static member + + SetPropertyValue<(Of <<'(TObject>)>>) + +
+ Sets the property value. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/N-FastMoq.htm b/Help/html/N-FastMoq.htm new file mode 100644 index 0000000..0072266 --- /dev/null +++ b/Help/html/N-FastMoq.htm @@ -0,0 +1,267 @@ + + + + + + FastMoq Namespace + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

FastMoq Namespace

+
+
+
+
+

Classes

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   + ClassDescription
+ Public class + + InstanceModel + +
+ Class InstanceModel. + Implements the InstanceModel
+
+ Public class + + InstanceModel<(Of <(<'TClass>)>)> + +
+ Class InstanceModel. + Implements the InstanceModel
+
+ Public class + + Mocker + +
+ Initializes the mocking helper object. This class creates and manages the automatic mocking and custom mocking. +
+
+ Public class + + MockerTestBase<(Of <(<'TComponent>)>)> + +
+ Auto Mocking Test Base with Fast Automatic Mocking Mocker. +
+
+ Public class + + MockModel + +
+ Contains Mock and Type information. +
+
+ Public class + + MockModel<(Of <(<'T>)>)> + +
+ Class MockModel. + Implements the MockModel
+
+ Public class + + TestClassExtensions + +
+
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Overload-FastMoq.InstanceModel-1.-ctor.htm b/Help/html/Overload-FastMoq.InstanceModel-1.-ctor.htm new file mode 100644 index 0000000..4158612 --- /dev/null +++ b/Help/html/Overload-FastMoq.InstanceModel-1.-ctor.htm @@ -0,0 +1,248 @@ + + + + + + InstanceModel(TClass) Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

InstanceModel<(Of <(<'TClass>)>)> Constructor

+
+
+
+
+

Overload List

+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public method + + InstanceModel<(Of <(<'TClass>)>)>()()()() + +
+ Initializes a new instance of the InstanceModel<(Of <(<'TClass>)>)> class. +
+
+ Public method + + InstanceModel<(Of <(<'TClass>)>)>(Nullable<(Of <<'(Func<(Of <<'(Mocker, TClass>)>>)>)>>)) + +
+ Initializes a new instance of the InstanceModel<(Of <(<'TClass>)>)> class. +
+
+
+ +
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Overload-FastMoq.Mocker.-ctor.htm b/Help/html/Overload-FastMoq.Mocker.-ctor.htm new file mode 100644 index 0000000..0804ef0 --- /dev/null +++ b/Help/html/Overload-FastMoq.Mocker.-ctor.htm @@ -0,0 +1,257 @@ + + + + + + Mocker Constructor + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

Mocker Constructor

+
+
+
+
+

Overload List

+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public method + + Mocker()()()() + +
+ Initializes a new instance of the Mocker class. +
+
+ Public method + + Mocker(Dictionary<(Of <<'(Type, InstanceModel>)>>)) + +
+ Initializes a new instance of the Mocker class using the specific typeMap. + The typeMap assists in resolution of interfaces to instances. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Overload-FastMoq.Mocker.CreateInstance-.htm b/Help/html/Overload-FastMoq.Mocker.CreateInstance-.htm new file mode 100644 index 0000000..d2bf46c --- /dev/null +++ b/Help/html/Overload-FastMoq.Mocker.CreateInstance-.htm @@ -0,0 +1,304 @@ + + + + + + CreateInstance Method + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..CreateInstance Method

+
+
+
+
+

Overload List

+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public method + + CreateInstance<(Of <<'(T>)>>)(array<Object>[]()[][]) + +
+ Creates an instance of T. Parameters allow matching of constructors and using those values in the creation of the instance. +
+
+ Public method + + CreateInstance<(Of <<'(T>)>>)(Boolean) + +
+ Creates an instance of [IFileSystem]. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Overload-FastMoq.Mocker.GetObject.htm b/Help/html/Overload-FastMoq.Mocker.GetObject.htm new file mode 100644 index 0000000..6da0947 --- /dev/null +++ b/Help/html/Overload-FastMoq.Mocker.GetObject.htm @@ -0,0 +1,320 @@ + + + + + + GetObject Method + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

Mocker..::..GetObject Method

+
+
+
+
+

Overload List

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public method + + GetObject(ParameterInfo) + +
+ Gets the instance for the given [ParameterInfo]. +
+
+ Public method + + GetObject(Type) + +
+ Gets the instance for the given type. +
+
+ Public method + + GetObject<(Of <<'(T>)>>)()()()() + +
+ Gets the instance for the given T. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Overload-FastMoq.MockerTestBase-1.-ctor.htm b/Help/html/Overload-FastMoq.MockerTestBase-1.-ctor.htm new file mode 100644 index 0000000..4b23ae3 --- /dev/null +++ b/Help/html/Overload-FastMoq.MockerTestBase-1.-ctor.htm @@ -0,0 +1,318 @@ + + + + + + MockerTestBase(TComponent) Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)> Constructor

+
+
+
+
+

Overload List

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Protected method + + MockerTestBase<(Of <(<'TComponent>)>)>()()()() + +
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class with the default createAction. +
+
+ Protected method + + MockerTestBase<(Of <(<'TComponent>)>)>(Action<(Of <<'(Mocker>)>>)) + +
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class with a setup action. +
+
+ Protected method + + MockerTestBase<(Of <(<'TComponent>)>)>(Action<(Of <<'(Mocker>)>>), Func<(Of <<'(Mocker, TComponent>)>>)) + +
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class. +
+
+ Protected method + + MockerTestBase<(Of <(<'TComponent>)>)>(Nullable<(Of <<'(Action<(Of <<'(Mocker>)>>)>)>>), Nullable<(Of <<'(Action<(Of <<'(Nullable<(Of <<'(TComponent>)>>)>)>>)>)>>)) + +
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class. +
+
+ Protected method + + MockerTestBase<(Of <(<'TComponent>)>)>(Func<(Of <<'(Mocker, TComponent>)>>), Nullable<(Of <<'(Action<(Of <<'(Nullable<(Of <<'(TComponent>)>>)>)>>)>)>>)) + +
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class with a create action and optional + createdAction. +
+
+ Protected method + + MockerTestBase<(Of <(<'TComponent>)>)>(Nullable<(Of <<'(Action<(Of <<'(Mocker>)>>)>)>>), Nullable<(Of <<'(Func<(Of <<'(Mocker, Nullable<(Of <<'(TComponent>)>>)>)>>)>)>>), Nullable<(Of <<'(Action<(Of <<'(Nullable<(Of <<'(TComponent>)>>)>)>>)>)>>)) + +
+ Initializes a new instance of the MockerTestBase<(Of <(<'TComponent>)>)> class. +
+
+
+ +
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.InstanceModel-1.CreateFunc.htm b/Help/html/P-FastMoq.InstanceModel-1.CreateFunc.htm new file mode 100644 index 0000000..507ac9b --- /dev/null +++ b/Help/html/P-FastMoq.InstanceModel-1.CreateFunc.htm @@ -0,0 +1,197 @@ + + + + + + CreateFunc Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

InstanceModel<(Of <(<'TClass>)>)>..::..CreateFunc Property

+
+
+
+ Gets or sets the create function. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Nullable<Func<Mocker, TClass>> CreateFunc { get; set; }
Public Property CreateFunc As Nullable(Of Func(Of Mocker, TClass))
+	Get
+	Set
public:
+property Nullable<Func<Mocker^, TClass>^> CreateFunc {
+	Nullable<Func<Mocker^, TClass>^> get ();
+	void set (Nullable<Func<Mocker^, TClass>^> value);
+}

Field Value

The create function.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.InstanceModel.CreateFunc.htm b/Help/html/P-FastMoq.InstanceModel.CreateFunc.htm new file mode 100644 index 0000000..648a10c --- /dev/null +++ b/Help/html/P-FastMoq.InstanceModel.CreateFunc.htm @@ -0,0 +1,194 @@ + + + + + + CreateFunc Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

InstanceModel..::..CreateFunc Property

+
+
+
+ Gets or sets the create function. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Nullable<Func<Mocker, Object>> CreateFunc { get; set; }
Public Property CreateFunc As Nullable(Of Func(Of Mocker, Object))
+	Get
+	Set
public:
+property Nullable<Func<Mocker^, Object^>^> CreateFunc {
+	Nullable<Func<Mocker^, Object^>^> get ();
+	void set (Nullable<Func<Mocker^, Object^>^> value);
+}

Field Value

The create function.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.InstanceModel.InstanceType.htm b/Help/html/P-FastMoq.InstanceModel.InstanceType.htm new file mode 100644 index 0000000..6ddf5ff --- /dev/null +++ b/Help/html/P-FastMoq.InstanceModel.InstanceType.htm @@ -0,0 +1,191 @@ + + + + + + InstanceType Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

InstanceModel..::..InstanceType Property

+
+
+
+ Gets or sets the type of the instance. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Type InstanceType { get; }
Public ReadOnly Property InstanceType As Type
+	Get
public:
+property Type^ InstanceType {
+	Type^ get ();
+}

Field Value

The type of the instance.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.MockModel-1.Mock.htm b/Help/html/P-FastMoq.MockModel-1.Mock.htm new file mode 100644 index 0000000..809936b --- /dev/null +++ b/Help/html/P-FastMoq.MockModel-1.Mock.htm @@ -0,0 +1,192 @@ + + + + + + Mock Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockModel<(Of <(<'T>)>)>..::..Mock Property

+
+
+
+ Gets or sets the mock. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Mock<T> Mock { get; set; }
Public Property Mock As Mock(Of T)
+	Get
+	Set
public:
+property Mock<T>^ Mock {
+	Mock<T>^ get ();
+	void set (Mock<T>^ value);
+}

Field Value

The mock.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.MockModel.Mock.htm b/Help/html/P-FastMoq.MockModel.Mock.htm new file mode 100644 index 0000000..9d9ded1 --- /dev/null +++ b/Help/html/P-FastMoq.MockModel.Mock.htm @@ -0,0 +1,197 @@ + + + + + + Mock Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockModel..::..Mock Property

+
+
+
+ Gets or sets the mock. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Mock Mock { get; set; }
Public Property Mock As Mock
+	Get
+	Set
public:
+property Mock^ Mock {
+	Mock^ get ();
+	void set (Mock^ value);
+}

Field Value

The mock.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.MockModel.NonPublic.htm b/Help/html/P-FastMoq.MockModel.NonPublic.htm new file mode 100644 index 0000000..784065d --- /dev/null +++ b/Help/html/P-FastMoq.MockModel.NonPublic.htm @@ -0,0 +1,197 @@ + + + + + + NonPublic Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockModel..::..NonPublic Property

+
+
+
+ Gets or sets a value indicating whether [non public]. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public bool NonPublic { get; set; }
Public Property NonPublic As Boolean
+	Get
+	Set
public:
+property bool^ NonPublic {
+	bool^ get ();
+	void set (bool^ value);
+}

Field Value

true if [non public]; otherwise, false.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.MockModel.Type.htm b/Help/html/P-FastMoq.MockModel.Type.htm new file mode 100644 index 0000000..8c657ad --- /dev/null +++ b/Help/html/P-FastMoq.MockModel.Type.htm @@ -0,0 +1,197 @@ + + + + + + Type Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockModel..::..Type Property

+
+
+
+ Gets or sets the type. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public Type Type { get; set; }
Public Property Type As Type
+	Get
+	Set
public:
+property Type^ Type {
+	Type^ get ();
+	void set (Type^ value);
+}

Field Value

The type.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.Mocker.Strict.htm b/Help/html/P-FastMoq.Mocker.Strict.htm new file mode 100644 index 0000000..5e65136 --- /dev/null +++ b/Help/html/P-FastMoq.Mocker.Strict.htm @@ -0,0 +1,207 @@ + + + + + + Strict Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

Mocker..::..Strict Property

+
+
+
+ Gets or sets a value indicating whether this Mocker is strict. If strict, the mock [IFileSystem] does + not use [MockFileSystem] and uses [Mock] of [IFileSystem]. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public bool Strict { get; set; }
Public Property Strict As Boolean
+	Get
+	Set
public:
+property bool^ Strict {
+	bool^ get ();
+	void set (bool^ value);
+}

Field Value

true if strict [IFileSystem] resolution; otherwise, false uses the built-in virtual [MockFileSystem].
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.MockerTestBase-1.Component.htm b/Help/html/P-FastMoq.MockerTestBase-1.Component.htm new file mode 100644 index 0000000..d8b744e --- /dev/null +++ b/Help/html/P-FastMoq.MockerTestBase-1.Component.htm @@ -0,0 +1,217 @@ + + + + + + Component Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)>..::..Component Property

+
+
+
+ Gets or sets the component under test. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected internal Nullable<TComponent> Component { get; set; }
Protected Friend Property Component As Nullable(Of TComponent)
+	Get
+	Set
protected public:
+property Nullable<TComponent> Component {
+	Nullable<TComponent> get ();
+	void set (Nullable<TComponent> value);
+}

Field Value

The service.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.MockerTestBase-1.CreateComponentAction.htm b/Help/html/P-FastMoq.MockerTestBase-1.CreateComponentAction.htm new file mode 100644 index 0000000..4c2ab65 --- /dev/null +++ b/Help/html/P-FastMoq.MockerTestBase-1.CreateComponentAction.htm @@ -0,0 +1,217 @@ + + + + + + CreateComponentAction Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)>..::..CreateComponentAction Property

+
+
+
+ Gets or sets the create component action. This action is run whenever the component is created. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected Func<Mocker, Nullable<TComponent>> CreateComponentAction { get; set; }
Protected Property CreateComponentAction As Func(Of Mocker, Nullable(Of TComponent))
+	Get
+	Set
protected:
+property Func<Mocker^, Nullable<TComponent>>^ CreateComponentAction {
+	Func<Mocker^, Nullable<TComponent>>^ get ();
+	void set (Func<Mocker^, Nullable<TComponent>>^ value);
+}

Field Value

The create component action.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.MockerTestBase-1.CreatedComponentAction.htm b/Help/html/P-FastMoq.MockerTestBase-1.CreatedComponentAction.htm new file mode 100644 index 0000000..b0fc0b9 --- /dev/null +++ b/Help/html/P-FastMoq.MockerTestBase-1.CreatedComponentAction.htm @@ -0,0 +1,217 @@ + + + + + + CreatedComponentAction Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)>..::..CreatedComponentAction Property

+
+
+
+ Gets or sets the created component action. This action is run after the component is created. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected Nullable<Action<Nullable<TComponent>>> CreatedComponentAction { get; set; }
Protected Property CreatedComponentAction As Nullable(Of Action(Of Nullable(Of TComponent)))
+	Get
+	Set
protected:
+property Nullable<Action<Nullable<TComponent>>^> CreatedComponentAction {
+	Nullable<Action<Nullable<TComponent>>^> get ();
+	void set (Nullable<Action<Nullable<TComponent>>^> value);
+}

Field Value

The created component action.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.MockerTestBase-1.CustomMocks.htm b/Help/html/P-FastMoq.MockerTestBase-1.CustomMocks.htm new file mode 100644 index 0000000..7de7c9c --- /dev/null +++ b/Help/html/P-FastMoq.MockerTestBase-1.CustomMocks.htm @@ -0,0 +1,217 @@ + + + + + + CustomMocks Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)>..::..CustomMocks Property

+
+
+
+ Gets or sets the custom mocks. These are added whenever the component is created. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected IEnumerable<MockModel> CustomMocks { get; set; }
Protected Property CustomMocks As IEnumerable(Of MockModel)
+	Get
+	Set
protected:
+property IEnumerable<MockModel^>^ CustomMocks {
+	IEnumerable<MockModel^>^ get ();
+	void set (IEnumerable<MockModel^>^ value);
+}

Field Value

The custom mocks.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.MockerTestBase-1.Mocks.htm b/Help/html/P-FastMoq.MockerTestBase-1.Mocks.htm new file mode 100644 index 0000000..316892b --- /dev/null +++ b/Help/html/P-FastMoq.MockerTestBase-1.Mocks.htm @@ -0,0 +1,214 @@ + + + + + + Mocks Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)>..::..Mocks Property

+
+
+
+ Gets the Mocker. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected Mocker Mocks { get; }
Protected ReadOnly Property Mocks As Mocker
+	Get
protected:
+property Mocker^ Mocks {
+	Mocker^ get ();
+}

Field Value

The mocks.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/P-FastMoq.MockerTestBase-1.SetupMocksAction.htm b/Help/html/P-FastMoq.MockerTestBase-1.SetupMocksAction.htm new file mode 100644 index 0000000..aa83ac0 --- /dev/null +++ b/Help/html/P-FastMoq.MockerTestBase-1.SetupMocksAction.htm @@ -0,0 +1,217 @@ + + + + + + SetupMocksAction Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)>..::..SetupMocksAction Property

+
+
+
+ Gets or sets the setup mocks action. This action is run before the component is created. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


protected Nullable<Action<Mocker>> SetupMocksAction { get; set; }
Protected Property SetupMocksAction As Nullable(Of Action(Of Mocker))
+	Get
+	Set
protected:
+property Nullable<Action<Mocker^>^> SetupMocksAction {
+	Nullable<Action<Mocker^>^> get ();
+	void set (Nullable<Action<Mocker^>^> value);
+}

Field Value

The setup mocks action.
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Properties.T-FastMoq.InstanceModel-1.htm b/Help/html/Properties.T-FastMoq.InstanceModel-1.htm new file mode 100644 index 0000000..4625c9e --- /dev/null +++ b/Help/html/Properties.T-FastMoq.InstanceModel-1.htm @@ -0,0 +1,239 @@ + + + + + + InstanceModel(TClass) Properties + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

InstanceModel<(Of <(<'TClass>)>)> Properties

+
+
+

The InstanceModel<(Of <(<'TClass>)>)> type exposes the following members.

+
+
+

Properties

+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public property + + CreateFunc + +
+ Gets or sets the create function. +
+
+ Public property + + InstanceType + +
+ Gets or sets the type of the instance. +
(Inherited from InstanceModel.)
+
+ +
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Properties.T-FastMoq.InstanceModel.htm b/Help/html/Properties.T-FastMoq.InstanceModel.htm new file mode 100644 index 0000000..7a36b98 --- /dev/null +++ b/Help/html/Properties.T-FastMoq.InstanceModel.htm @@ -0,0 +1,237 @@ + + + + + + InstanceModel Properties + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

InstanceModel Properties

+
+
+

The InstanceModel type exposes the following members.

+
+
+

Properties

+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public property + + CreateFunc + +
+ Gets or sets the create function. +
+
+ Public property + + InstanceType + +
+ Gets or sets the type of the instance. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Properties.T-FastMoq.MockModel-1.htm b/Help/html/Properties.T-FastMoq.MockModel-1.htm new file mode 100644 index 0000000..f607de2 --- /dev/null +++ b/Help/html/Properties.T-FastMoq.MockModel-1.htm @@ -0,0 +1,246 @@ + + + + + + MockModel(T) Properties + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockModel<(Of <(<'T>)>)> Properties

+
+
+

The MockModel<(Of <(<'T>)>)> type exposes the following members.

+
+
+

Properties

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public property + + Mock + +
+ Gets or sets the mock. +
+
+ Public property + + NonPublic + +
+ Gets or sets a value indicating whether [non public]. +
(Inherited from MockModel.)
+ Public property + + Type + +
+ Gets or sets the type. +
(Inherited from MockModel.)
+
+
+
+

See Also

+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Properties.T-FastMoq.MockModel.htm b/Help/html/Properties.T-FastMoq.MockModel.htm new file mode 100644 index 0000000..82ed191 --- /dev/null +++ b/Help/html/Properties.T-FastMoq.MockModel.htm @@ -0,0 +1,253 @@ + + + + + + MockModel Properties + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockModel Properties

+
+
+

The MockModel type exposes the following members.

+
+
+

Properties

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Public property + + Mock + +
+ Gets or sets the mock. +
+
+ Public property + + NonPublic + +
+ Gets or sets a value indicating whether [non public]. +
+
+ Public property + + Type + +
+ Gets or sets the type. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Properties.T-FastMoq.Mocker.htm b/Help/html/Properties.T-FastMoq.Mocker.htm new file mode 100644 index 0000000..8954fa5 --- /dev/null +++ b/Help/html/Properties.T-FastMoq.Mocker.htm @@ -0,0 +1,237 @@ + + + + + + Mocker Properties + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

Mocker Properties

+
+
+

The Mocker type exposes the following members.

+
+
+

Properties

+
+
+
+
+ + + + + + + + + + + + + + +
+   + NameDescription
+ Public property + + Strict + +
+ Gets or sets a value indicating whether this Mocker is strict. If strict, the mock [IFileSystem] does + not use [MockFileSystem] and uses [Mock] of [IFileSystem]. +
+
+
+
+
+

See Also

+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/Properties.T-FastMoq.MockerTestBase-1.htm b/Help/html/Properties.T-FastMoq.MockerTestBase-1.htm new file mode 100644 index 0000000..46f4c71 --- /dev/null +++ b/Help/html/Properties.T-FastMoq.MockerTestBase-1.htm @@ -0,0 +1,312 @@ + + + + + + MockerTestBase(TComponent) Properties + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)> Properties

+
+
+

The MockerTestBase<(Of <(<'TComponent>)>)> type exposes the following members.

+
+
+

Properties

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   + NameDescription
+ Protected property + + Component + +
+ Gets or sets the component under test. +
+
+ Protected property + + CreateComponentAction + +
+ Gets or sets the create component action. This action is run whenever the component is created. +
+
+ Protected property + + CreatedComponentAction + +
+ Gets or sets the created component action. This action is run after the component is created. +
+
+ Protected property + + CustomMocks + +
+ Gets or sets the custom mocks. These are added whenever the component is created. +
+
+ Protected property + + Mocks + +
+ Gets the Mocker. +
+
+ Protected property + + SetupMocksAction + +
+ Gets or sets the setup mocks action. This action is run before the component is created. +
+
+
+ +
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/T-FastMoq.InstanceModel-1.htm b/Help/html/T-FastMoq.InstanceModel-1.htm new file mode 100644 index 0000000..6df22cd --- /dev/null +++ b/Help/html/T-FastMoq.InstanceModel-1.htm @@ -0,0 +1,193 @@ + + + + + + InstanceModel(TClass) Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

InstanceModel<(Of <(<'TClass>)>)> Class

+
+
+
+ Class InstanceModel. + Implements the InstanceModel
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public class InstanceModel<TClass> : InstanceModel
+
Public Class InstanceModel(Of TClass) _
+	Inherits InstanceModel
generic<typename TClass>
+public ref class InstanceModel : public InstanceModel

Type Parameters

TClass
The type of the t class.

Inheritance Hierarchy


FastMoq..::..InstanceModel
  FastMoq..::..InstanceModel<(Of <(<'TClass>)>)>
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/T-FastMoq.InstanceModel.htm b/Help/html/T-FastMoq.InstanceModel.htm new file mode 100644 index 0000000..6ea206b --- /dev/null +++ b/Help/html/T-FastMoq.InstanceModel.htm @@ -0,0 +1,182 @@ + + + + + + InstanceModel Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

InstanceModel Class

+
+
+
+ Class InstanceModel. + Implements the InstanceModel
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public class InstanceModel
Public Class InstanceModel
public ref class InstanceModel

See Also


FastMoq..::..InstanceModel
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/T-FastMoq.MockModel-1.htm b/Help/html/T-FastMoq.MockModel-1.htm new file mode 100644 index 0000000..52c8733 --- /dev/null +++ b/Help/html/T-FastMoq.MockModel-1.htm @@ -0,0 +1,188 @@ + + + + + + MockModel(T) Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockModel<(Of <(<'T>)>)> Class

+
+
+
+ Class MockModel. + Implements the MockModel
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public class MockModel<T> : MockModel
+
Public Class MockModel(Of T) _
+	Inherits MockModel
generic<typename T>
+public ref class MockModel : public MockModel

Type Parameters

T

Inheritance Hierarchy


FastMoq..::..MockModel
  FastMoq..::..MockModel<(Of <(<'T>)>)>
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/T-FastMoq.MockModel.htm b/Help/html/T-FastMoq.MockModel.htm new file mode 100644 index 0000000..86e90f8 --- /dev/null +++ b/Help/html/T-FastMoq.MockModel.htm @@ -0,0 +1,182 @@ + + + + + + MockModel Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockModel Class

+
+
+
+ Contains Mock and Type information. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public class MockModel
Public Class MockModel
public ref class MockModel
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/T-FastMoq.Mocker.htm b/Help/html/T-FastMoq.Mocker.htm new file mode 100644 index 0000000..f1472e0 --- /dev/null +++ b/Help/html/T-FastMoq.Mocker.htm @@ -0,0 +1,197 @@ + + + + + + Mocker Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

Mocker Class

+
+
+
+ Initializes the mocking helper object. This class creates and manages the automatic mocking and custom mocking. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public class Mocker
Public Class Mocker
public ref class Mocker
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/T-FastMoq.MockerTestBase-1.htm b/Help/html/T-FastMoq.MockerTestBase-1.htm new file mode 100644 index 0000000..76c5072 --- /dev/null +++ b/Help/html/T-FastMoq.MockerTestBase-1.htm @@ -0,0 +1,226 @@ + + + + + + MockerTestBase(TComponent) Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

MockerTestBase<(Of <(<'TComponent>)>)> Class

+
+
+
+ Auto Mocking Test Base with Fast Automatic Mocking Mocker. +
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public abstract class MockerTestBase<TComponent>
+
Public MustInherit Class MockerTestBase(Of TComponent)
generic<typename TComponent>
+public ref class MockerTestBase abstract

Type Parameters

TComponent
The type of the t component.

Examples


+ Basic example of the base class creating the Car class and auto mocking ICarService. +
C#
public class CarTest : MockerTestBase<Car> {
+     [Fact]
+     public void TestCar() {
+         Component.Color.Should().Be(Color.Green);
+         Component.CarService.Should().NotBeNull();
+     }
+}
+
+public class Car {
+     public Color Color { get; set; } = Color.Green;
+     public ICarService CarService { get; }
+     public Car(ICarService carService) => CarService = carService;
+}
+
+public interface ICarService
+{
+     Color Color { get; set; }
+     ICarService CarService { get; }
+     bool StartCar();
+}
+ + Example of how to set up for mocks that require specific functionality. +
C#
public class CarTest : MockerTestBase<Car> {
+     public CarTest() : base(mocks => {
+             mocks.Initialize<ICarService>(mock => mock.Setup(x => x.StartCar).Returns(true));
+     }
+}
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/html/T-FastMoq.TestClassExtensions.htm b/Help/html/T-FastMoq.TestClassExtensions.htm new file mode 100644 index 0000000..820e67a --- /dev/null +++ b/Help/html/T-FastMoq.TestClassExtensions.htm @@ -0,0 +1,178 @@ + + + + + + TestClassExtensions Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

+

TestClassExtensions Class

+
+
+

+ Namespace: +  FastMoq
+ Assembly: +  FastMoq (in FastMoq.dll)

Syntax


public static class TestClassExtensions
Public NotInheritable Class TestClassExtensions
public ref class TestClassExtensions abstract sealed
+
+
+
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/Help/icons/CFW.gif b/Help/icons/CFW.gif new file mode 100644 index 0000000..cbcabf1 Binary files /dev/null and b/Help/icons/CFW.gif differ diff --git a/Help/icons/Caution.gif b/Help/icons/Caution.gif new file mode 100644 index 0000000..a313922 Binary files /dev/null and b/Help/icons/Caution.gif differ diff --git a/Help/icons/CopyCode.gif b/Help/icons/CopyCode.gif new file mode 100644 index 0000000..1678162 Binary files /dev/null and b/Help/icons/CopyCode.gif differ diff --git a/Help/icons/CopyCode_h.gif b/Help/icons/CopyCode_h.gif new file mode 100644 index 0000000..be87230 Binary files /dev/null and b/Help/icons/CopyCode_h.gif differ diff --git a/Help/icons/LastChild.gif b/Help/icons/LastChild.gif new file mode 100644 index 0000000..0b9af7e Binary files /dev/null and b/Help/icons/LastChild.gif differ diff --git a/Help/icons/adm.gif b/Help/icons/adm.gif new file mode 100644 index 0000000..558dbd1 Binary files /dev/null and b/Help/icons/adm.gif differ diff --git a/Help/icons/adm_arch.gif b/Help/icons/adm_arch.gif new file mode 100644 index 0000000..918f568 Binary files /dev/null and b/Help/icons/adm_arch.gif differ diff --git a/Help/icons/adm_dev.gif b/Help/icons/adm_dev.gif new file mode 100644 index 0000000..e7398bb Binary files /dev/null and b/Help/icons/adm_dev.gif differ diff --git a/Help/icons/adm_dev_arch.gif b/Help/icons/adm_dev_arch.gif new file mode 100644 index 0000000..9beb941 Binary files /dev/null and b/Help/icons/adm_dev_arch.gif differ diff --git a/Help/icons/alert_caution.gif b/Help/icons/alert_caution.gif new file mode 100644 index 0000000..df964df Binary files /dev/null and b/Help/icons/alert_caution.gif differ diff --git a/Help/icons/alert_note.gif b/Help/icons/alert_note.gif new file mode 100644 index 0000000..80fbdee Binary files /dev/null and b/Help/icons/alert_note.gif differ diff --git a/Help/icons/alert_security.gif b/Help/icons/alert_security.gif new file mode 100644 index 0000000..1b143e7 Binary files /dev/null and b/Help/icons/alert_security.gif differ diff --git a/Help/icons/arch.gif b/Help/icons/arch.gif new file mode 100644 index 0000000..a75cdf8 Binary files /dev/null and b/Help/icons/arch.gif differ diff --git a/Help/icons/big_adm.gif b/Help/icons/big_adm.gif new file mode 100644 index 0000000..9351c4b Binary files /dev/null and b/Help/icons/big_adm.gif differ diff --git a/Help/icons/big_arch.gif b/Help/icons/big_arch.gif new file mode 100644 index 0000000..8ba260d Binary files /dev/null and b/Help/icons/big_arch.gif differ diff --git a/Help/icons/big_dev.gif b/Help/icons/big_dev.gif new file mode 100644 index 0000000..221a4dd Binary files /dev/null and b/Help/icons/big_dev.gif differ diff --git a/Help/icons/big_kw.gif b/Help/icons/big_kw.gif new file mode 100644 index 0000000..365cca2 Binary files /dev/null and b/Help/icons/big_kw.gif differ diff --git a/Help/icons/box.gif b/Help/icons/box.gif new file mode 100644 index 0000000..c022894 Binary files /dev/null and b/Help/icons/box.gif differ diff --git a/Help/icons/collall.gif b/Help/icons/collall.gif new file mode 100644 index 0000000..66a6f11 Binary files /dev/null and b/Help/icons/collall.gif differ diff --git a/Help/icons/collapse.gif b/Help/icons/collapse.gif new file mode 100644 index 0000000..d57c046 Binary files /dev/null and b/Help/icons/collapse.gif differ diff --git a/Help/icons/collapse_all.gif b/Help/icons/collapse_all.gif new file mode 100644 index 0000000..5d0be1f Binary files /dev/null and b/Help/icons/collapse_all.gif differ diff --git a/Help/icons/copycodeHighlight.gif b/Help/icons/copycodeHighlight.gif new file mode 100644 index 0000000..be87230 Binary files /dev/null and b/Help/icons/copycodeHighlight.gif differ diff --git a/Help/icons/dev.gif b/Help/icons/dev.gif new file mode 100644 index 0000000..376241d Binary files /dev/null and b/Help/icons/dev.gif differ diff --git a/Help/icons/dev_arch.gif b/Help/icons/dev_arch.gif new file mode 100644 index 0000000..12b5520 Binary files /dev/null and b/Help/icons/dev_arch.gif differ diff --git a/Help/icons/dropdown.gif b/Help/icons/dropdown.gif new file mode 100644 index 0000000..3163858 Binary files /dev/null and b/Help/icons/dropdown.gif differ diff --git a/Help/icons/dropdownHover.gif b/Help/icons/dropdownHover.gif new file mode 100644 index 0000000..0608c90 Binary files /dev/null and b/Help/icons/dropdownHover.gif differ diff --git a/Help/icons/drpdown.gif b/Help/icons/drpdown.gif new file mode 100644 index 0000000..9d3bbb6 Binary files /dev/null and b/Help/icons/drpdown.gif differ diff --git a/Help/icons/drpdown_orange.gif b/Help/icons/drpdown_orange.gif new file mode 100644 index 0000000..cf50c20 Binary files /dev/null and b/Help/icons/drpdown_orange.gif differ diff --git a/Help/icons/drpdown_orange_up.gif b/Help/icons/drpdown_orange_up.gif new file mode 100644 index 0000000..a173df1 Binary files /dev/null and b/Help/icons/drpdown_orange_up.gif differ diff --git a/Help/icons/drpup.gif b/Help/icons/drpup.gif new file mode 100644 index 0000000..de77198 Binary files /dev/null and b/Help/icons/drpup.gif differ diff --git a/Help/icons/exp.gif b/Help/icons/exp.gif new file mode 100644 index 0000000..023b837 Binary files /dev/null and b/Help/icons/exp.gif differ diff --git a/Help/icons/expall.gif b/Help/icons/expall.gif new file mode 100644 index 0000000..1a91b12 Binary files /dev/null and b/Help/icons/expall.gif differ diff --git a/Help/icons/expand_all.gif b/Help/icons/expand_all.gif new file mode 100644 index 0000000..c69304b Binary files /dev/null and b/Help/icons/expand_all.gif differ diff --git a/Help/icons/filter1a.gif b/Help/icons/filter1a.gif new file mode 100644 index 0000000..8a2f9b5 Binary files /dev/null and b/Help/icons/filter1a.gif differ diff --git a/Help/icons/filter1c.gif b/Help/icons/filter1c.gif new file mode 100644 index 0000000..49de223 Binary files /dev/null and b/Help/icons/filter1c.gif differ diff --git a/Help/icons/footer.gif b/Help/icons/footer.gif new file mode 100644 index 0000000..7092cde Binary files /dev/null and b/Help/icons/footer.gif differ diff --git a/Help/icons/gradient.gif b/Help/icons/gradient.gif new file mode 100644 index 0000000..847eb3c Binary files /dev/null and b/Help/icons/gradient.gif differ diff --git a/Help/icons/greencheck.gif b/Help/icons/greencheck.gif new file mode 100644 index 0000000..4ba1751 Binary files /dev/null and b/Help/icons/greencheck.gif differ diff --git a/Help/icons/greychck.gif b/Help/icons/greychck.gif new file mode 100644 index 0000000..adb8fa1 Binary files /dev/null and b/Help/icons/greychck.gif differ diff --git a/Help/icons/header_prev_next.jpg b/Help/icons/header_prev_next.jpg new file mode 100644 index 0000000..2f53424 Binary files /dev/null and b/Help/icons/header_prev_next.jpg differ diff --git a/Help/icons/header_sql_tutorial_blank.jpg b/Help/icons/header_sql_tutorial_blank.jpg new file mode 100644 index 0000000..aca0566 Binary files /dev/null and b/Help/icons/header_sql_tutorial_blank.jpg differ diff --git a/Help/icons/header_sql_tutorial_logo.GIF b/Help/icons/header_sql_tutorial_logo.GIF new file mode 100644 index 0000000..e0b0bcc Binary files /dev/null and b/Help/icons/header_sql_tutorial_logo.GIF differ diff --git a/Help/icons/kw.gif b/Help/icons/kw.gif new file mode 100644 index 0000000..40a943c Binary files /dev/null and b/Help/icons/kw.gif differ diff --git a/Help/icons/kw_adm.gif b/Help/icons/kw_adm.gif new file mode 100644 index 0000000..6e05cc8 Binary files /dev/null and b/Help/icons/kw_adm.gif differ diff --git a/Help/icons/kw_adm_arch.gif b/Help/icons/kw_adm_arch.gif new file mode 100644 index 0000000..162c7d8 Binary files /dev/null and b/Help/icons/kw_adm_arch.gif differ diff --git a/Help/icons/kw_adm_dev.gif b/Help/icons/kw_adm_dev.gif new file mode 100644 index 0000000..2d67824 Binary files /dev/null and b/Help/icons/kw_adm_dev.gif differ diff --git a/Help/icons/kw_adm_dev_arch.gif b/Help/icons/kw_adm_dev_arch.gif new file mode 100644 index 0000000..358f2fa Binary files /dev/null and b/Help/icons/kw_adm_dev_arch.gif differ diff --git a/Help/icons/kw_arch.gif b/Help/icons/kw_arch.gif new file mode 100644 index 0000000..ab5d3bb Binary files /dev/null and b/Help/icons/kw_arch.gif differ diff --git a/Help/icons/kw_dev.gif b/Help/icons/kw_dev.gif new file mode 100644 index 0000000..6ff27ed Binary files /dev/null and b/Help/icons/kw_dev.gif differ diff --git a/Help/icons/kw_dev_arch.gif b/Help/icons/kw_dev_arch.gif new file mode 100644 index 0000000..99f017a Binary files /dev/null and b/Help/icons/kw_dev_arch.gif differ diff --git a/Help/icons/load.gif b/Help/icons/load.gif new file mode 100644 index 0000000..9492447 Binary files /dev/null and b/Help/icons/load.gif differ diff --git a/Help/icons/load_hover.gif b/Help/icons/load_hover.gif new file mode 100644 index 0000000..65f44aa Binary files /dev/null and b/Help/icons/load_hover.gif differ diff --git a/Help/icons/note.gif b/Help/icons/note.gif new file mode 100644 index 0000000..3393af3 Binary files /dev/null and b/Help/icons/note.gif differ diff --git a/Help/icons/pencil.GIF b/Help/icons/pencil.GIF new file mode 100644 index 0000000..000dcb4 Binary files /dev/null and b/Help/icons/pencil.GIF differ diff --git a/Help/icons/privclass.gif b/Help/icons/privclass.gif new file mode 100644 index 0000000..0939694 Binary files /dev/null and b/Help/icons/privclass.gif differ diff --git a/Help/icons/privdelegate.gif b/Help/icons/privdelegate.gif new file mode 100644 index 0000000..d3aa8a6 Binary files /dev/null and b/Help/icons/privdelegate.gif differ diff --git a/Help/icons/privenum.gif b/Help/icons/privenum.gif new file mode 100644 index 0000000..47f387e Binary files /dev/null and b/Help/icons/privenum.gif differ diff --git a/Help/icons/privenumeration.gif b/Help/icons/privenumeration.gif new file mode 100644 index 0000000..47f387e Binary files /dev/null and b/Help/icons/privenumeration.gif differ diff --git a/Help/icons/privevent.gif b/Help/icons/privevent.gif new file mode 100644 index 0000000..30db46d Binary files /dev/null and b/Help/icons/privevent.gif differ diff --git a/Help/icons/privextension.gif b/Help/icons/privextension.gif new file mode 100644 index 0000000..51dd267 Binary files /dev/null and b/Help/icons/privextension.gif differ diff --git a/Help/icons/privfield.gif b/Help/icons/privfield.gif new file mode 100644 index 0000000..cbf70f7 Binary files /dev/null and b/Help/icons/privfield.gif differ diff --git a/Help/icons/privinterface.gif b/Help/icons/privinterface.gif new file mode 100644 index 0000000..f3b7950 Binary files /dev/null and b/Help/icons/privinterface.gif differ diff --git a/Help/icons/privmethod.gif b/Help/icons/privmethod.gif new file mode 100644 index 0000000..71f8822 Binary files /dev/null and b/Help/icons/privmethod.gif differ diff --git a/Help/icons/privproperty.gif b/Help/icons/privproperty.gif new file mode 100644 index 0000000..b1e8074 Binary files /dev/null and b/Help/icons/privproperty.gif differ diff --git a/Help/icons/privstructure.gif b/Help/icons/privstructure.gif new file mode 100644 index 0000000..ed6d1ef Binary files /dev/null and b/Help/icons/privstructure.gif differ diff --git a/Help/icons/protclass.gif b/Help/icons/protclass.gif new file mode 100644 index 0000000..0f92942 Binary files /dev/null and b/Help/icons/protclass.gif differ diff --git a/Help/icons/protdelegate.gif b/Help/icons/protdelegate.gif new file mode 100644 index 0000000..b209f2d Binary files /dev/null and b/Help/icons/protdelegate.gif differ diff --git a/Help/icons/protenum.gif b/Help/icons/protenum.gif new file mode 100644 index 0000000..cc96bb6 Binary files /dev/null and b/Help/icons/protenum.gif differ diff --git a/Help/icons/protenumeration.gif b/Help/icons/protenumeration.gif new file mode 100644 index 0000000..cc96bb6 Binary files /dev/null and b/Help/icons/protenumeration.gif differ diff --git a/Help/icons/protevent.gif b/Help/icons/protevent.gif new file mode 100644 index 0000000..0e510b2 Binary files /dev/null and b/Help/icons/protevent.gif differ diff --git a/Help/icons/protextension.gif b/Help/icons/protextension.gif new file mode 100644 index 0000000..dcd07f5 Binary files /dev/null and b/Help/icons/protextension.gif differ diff --git a/Help/icons/protfield.gif b/Help/icons/protfield.gif new file mode 100644 index 0000000..9ae6833 Binary files /dev/null and b/Help/icons/protfield.gif differ diff --git a/Help/icons/protinterface.gif b/Help/icons/protinterface.gif new file mode 100644 index 0000000..a1b96d2 Binary files /dev/null and b/Help/icons/protinterface.gif differ diff --git a/Help/icons/protmethod.gif b/Help/icons/protmethod.gif new file mode 100644 index 0000000..2bc9468 Binary files /dev/null and b/Help/icons/protmethod.gif differ diff --git a/Help/icons/protoperator.gif b/Help/icons/protoperator.gif new file mode 100644 index 0000000..2cb75ab Binary files /dev/null and b/Help/icons/protoperator.gif differ diff --git a/Help/icons/protproperty.gif b/Help/icons/protproperty.gif new file mode 100644 index 0000000..55473d1 Binary files /dev/null and b/Help/icons/protproperty.gif differ diff --git a/Help/icons/protstructure.gif b/Help/icons/protstructure.gif new file mode 100644 index 0000000..af356a1 Binary files /dev/null and b/Help/icons/protstructure.gif differ diff --git a/Help/icons/pubclass.gif b/Help/icons/pubclass.gif new file mode 100644 index 0000000..1a968ab Binary files /dev/null and b/Help/icons/pubclass.gif differ diff --git a/Help/icons/pubdelegate.gif b/Help/icons/pubdelegate.gif new file mode 100644 index 0000000..0a43eb2 Binary files /dev/null and b/Help/icons/pubdelegate.gif differ diff --git a/Help/icons/pubenum.gif b/Help/icons/pubenum.gif new file mode 100644 index 0000000..46888ad Binary files /dev/null and b/Help/icons/pubenum.gif differ diff --git a/Help/icons/pubenumeration.gif b/Help/icons/pubenumeration.gif new file mode 100644 index 0000000..46888ad Binary files /dev/null and b/Help/icons/pubenumeration.gif differ diff --git a/Help/icons/pubevent.gif b/Help/icons/pubevent.gif new file mode 100644 index 0000000..b9226da Binary files /dev/null and b/Help/icons/pubevent.gif differ diff --git a/Help/icons/pubextension.gif b/Help/icons/pubextension.gif new file mode 100644 index 0000000..6262d1c Binary files /dev/null and b/Help/icons/pubextension.gif differ diff --git a/Help/icons/pubfield.gif b/Help/icons/pubfield.gif new file mode 100644 index 0000000..5aed175 Binary files /dev/null and b/Help/icons/pubfield.gif differ diff --git a/Help/icons/pubinterface.gif b/Help/icons/pubinterface.gif new file mode 100644 index 0000000..c38a4c4 Binary files /dev/null and b/Help/icons/pubinterface.gif differ diff --git a/Help/icons/pubmethod.gif b/Help/icons/pubmethod.gif new file mode 100644 index 0000000..2c72988 Binary files /dev/null and b/Help/icons/pubmethod.gif differ diff --git a/Help/icons/puboperator.gif b/Help/icons/puboperator.gif new file mode 100644 index 0000000..0ebe10a Binary files /dev/null and b/Help/icons/puboperator.gif differ diff --git a/Help/icons/pubproperty.gif b/Help/icons/pubproperty.gif new file mode 100644 index 0000000..dfad7b4 Binary files /dev/null and b/Help/icons/pubproperty.gif differ diff --git a/Help/icons/pubstructure.gif b/Help/icons/pubstructure.gif new file mode 100644 index 0000000..1344416 Binary files /dev/null and b/Help/icons/pubstructure.gif differ diff --git a/Help/icons/requirements1a.gif b/Help/icons/requirements1a.gif new file mode 100644 index 0000000..3b08793 Binary files /dev/null and b/Help/icons/requirements1a.gif differ diff --git a/Help/icons/requirements1c.gif b/Help/icons/requirements1c.gif new file mode 100644 index 0000000..d62bda3 Binary files /dev/null and b/Help/icons/requirements1c.gif differ diff --git a/Help/icons/save.gif b/Help/icons/save.gif new file mode 100644 index 0000000..6a5177e Binary files /dev/null and b/Help/icons/save.gif differ diff --git a/Help/icons/save_hover.gif b/Help/icons/save_hover.gif new file mode 100644 index 0000000..7b62e92 Binary files /dev/null and b/Help/icons/save_hover.gif differ diff --git a/Help/icons/security.gif b/Help/icons/security.gif new file mode 100644 index 0000000..48661ce Binary files /dev/null and b/Help/icons/security.gif differ diff --git a/Help/icons/seealso1a.gif b/Help/icons/seealso1a.gif new file mode 100644 index 0000000..2f5d50a Binary files /dev/null and b/Help/icons/seealso1a.gif differ diff --git a/Help/icons/seealso1c.gif b/Help/icons/seealso1c.gif new file mode 100644 index 0000000..84f79e7 Binary files /dev/null and b/Help/icons/seealso1c.gif differ diff --git a/Help/icons/slMobile.gif b/Help/icons/slMobile.gif new file mode 100644 index 0000000..5edc31f Binary files /dev/null and b/Help/icons/slMobile.gif differ diff --git a/Help/icons/static.gif b/Help/icons/static.gif new file mode 100644 index 0000000..33723a9 Binary files /dev/null and b/Help/icons/static.gif differ diff --git a/Help/icons/xna.gif b/Help/icons/xna.gif new file mode 100644 index 0000000..9e6a9d4 Binary files /dev/null and b/Help/icons/xna.gif differ diff --git a/Help/images/030c41d9079671d09a62d8e2c1db6973.gif b/Help/images/030c41d9079671d09a62d8e2c1db6973.gif new file mode 100644 index 0000000..916e1be Binary files /dev/null and b/Help/images/030c41d9079671d09a62d8e2c1db6973.gif differ diff --git a/Help/images/GhostDoc Community Help File watermark.gif b/Help/images/GhostDoc Community Help File watermark.gif new file mode 100644 index 0000000..ec90a7f Binary files /dev/null and b/Help/images/GhostDoc Community Help File watermark.gif differ diff --git a/Help/images/LT_tab.gif b/Help/images/LT_tab.gif new file mode 100644 index 0000000..d156407 Binary files /dev/null and b/Help/images/LT_tab.gif differ diff --git a/Help/images/LT_tab_white.gif b/Help/images/LT_tab_white.gif new file mode 100644 index 0000000..953401e Binary files /dev/null and b/Help/images/LT_tab_white.gif differ diff --git a/Help/images/RT_tab.gif b/Help/images/RT_tab.gif new file mode 100644 index 0000000..e734c75 Binary files /dev/null and b/Help/images/RT_tab.gif differ diff --git a/Help/images/RT_tab_white.gif b/Help/images/RT_tab_white.gif new file mode 100644 index 0000000..b2ca721 Binary files /dev/null and b/Help/images/RT_tab_white.gif differ diff --git a/Help/images/alert_note.gif b/Help/images/alert_note.gif new file mode 100644 index 0000000..3393af3 Binary files /dev/null and b/Help/images/alert_note.gif differ diff --git a/Help/images/lightweight_topnav.png b/Help/images/lightweight_topnav.png new file mode 100644 index 0000000..57c4804 Binary files /dev/null and b/Help/images/lightweight_topnav.png differ diff --git a/Help/images/lightweight_topnav_slice.gif b/Help/images/lightweight_topnav_slice.gif new file mode 100644 index 0000000..7485826 Binary files /dev/null and b/Help/images/lightweight_topnav_slice.gif differ diff --git a/Help/images/lt_search.gif b/Help/images/lt_search.gif new file mode 100644 index 0000000..19c6518 Binary files /dev/null and b/Help/images/lt_search.gif differ diff --git a/Help/images/msdn2010branding-stripe.png b/Help/images/msdn2010branding-stripe.png new file mode 100644 index 0000000..5092e8a Binary files /dev/null and b/Help/images/msdn2010branding-stripe.png differ diff --git a/Help/images/msdn2010branding-stripe1.png b/Help/images/msdn2010branding-stripe1.png new file mode 100644 index 0000000..6dd3edc Binary files /dev/null and b/Help/images/msdn2010branding-stripe1.png differ diff --git a/Help/images/msg-icon.gif b/Help/images/msg-icon.gif new file mode 100644 index 0000000..41b5f43 Binary files /dev/null and b/Help/images/msg-icon.gif differ diff --git a/Help/images/msg-incoming.gif b/Help/images/msg-incoming.gif new file mode 100644 index 0000000..dfdb49f Binary files /dev/null and b/Help/images/msg-incoming.gif differ diff --git a/Help/images/msg-outgoing.gif b/Help/images/msg-outgoing.gif new file mode 100644 index 0000000..8cbdd57 Binary files /dev/null and b/Help/images/msg-outgoing.gif differ diff --git a/Help/images/rt_search.gif b/Help/images/rt_search.gif new file mode 100644 index 0000000..dd3c40b Binary files /dev/null and b/Help/images/rt_search.gif differ diff --git a/Help/images/searchicon.gif b/Help/images/searchicon.gif new file mode 100644 index 0000000..0e64c9f Binary files /dev/null and b/Help/images/searchicon.gif differ diff --git a/Help/images/slice_search.gif b/Help/images/slice_search.gif new file mode 100644 index 0000000..a588305 Binary files /dev/null and b/Help/images/slice_search.gif differ diff --git a/Help/index.html b/Help/index.html new file mode 100644 index 0000000..1db889a --- /dev/null +++ b/Help/index.html @@ -0,0 +1,14 @@ + + + + + + + A FastMoq - Redirect + + +

If you are not redirected automatically, follow this link to the default topic.

+ + diff --git a/Help/scripts/CheckboxMenu.js b/Help/scripts/CheckboxMenu.js new file mode 100644 index 0000000..e206a7e --- /dev/null +++ b/Help/scripts/CheckboxMenu.js @@ -0,0 +1,157 @@ + +function CheckboxMenu(id, data, persistkeys, globals) +{ + this.id = id; + this.menuCheckboxIds = new Array(); + this.data = data; + this.count = 0; + + var element = document.getElementById(id); + var checkboxNodes = element.getElementsByTagName("input"); + + for(var checkboxCount=0; checkboxCount < checkboxNodes.length; checkboxCount++) + { + var checkboxId = checkboxNodes[checkboxCount].getAttribute('id'); + var checkboxData = checkboxNodes[checkboxCount].getAttribute('data'); + var dataSplits = checkboxData.split(','); + var defaultValue = checkboxNodes[checkboxCount].getAttribute('value'); + if (checkboxData != null && checkboxData.indexOf("persist") != -1) + persistkeys.push(checkboxId); + + this.menuCheckboxIds[dataSplits[0]] = checkboxId; + + // try to get the value for this checkbox id from globals + var persistedValue = (globals == null) ? null : globals.VariableExists(checkboxId) ? globals.VariableValue(checkboxId) : null; + var currentValue = (persistedValue != null) ? persistedValue : (defaultValue == null) ? "on" : defaultValue; + + // set the checkbox's check state + this.SetCheckState(checkboxId, currentValue); + + this.count++; + } +} + +CheckboxMenu.prototype.SetCheckState=function(id, value) +{ + var checkbox = document.getElementById(id); + if(checkbox != null) + { + checkbox.checked = (value == "on") ? true : false; + } + + // set the value for the checkbox id in the data array + this.data[id] = value; +} + +CheckboxMenu.prototype.GetCheckState=function(id) +{ + var checkbox = document.getElementById(id); + if(checkbox != null) + return checkbox.checked; + return false; +} + +CheckboxMenu.prototype.ToggleCheckState=function(id) +{ + // at least one checkbox must always be checked + var checkedCount = this.GetCheckedCount(); + + if(this.data[id] == "on" && checkedCount > 1) + this.SetCheckState(id, "off"); + else + this.SetCheckState(id, "on"); +} + +// returns the checkbox id associated with a key +CheckboxMenu.prototype.GetCheckboxId=function(key) +{ + return this.menuCheckboxIds[key]; +} + +// returns the array of checkbox ids +CheckboxMenu.prototype.GetCheckboxIds=function() +{ + return this.menuCheckboxIds; +} + +// returns the @data attribute of the checkbox element +CheckboxMenu.prototype.GetCheckboxData=function(checkboxId) +{ + var checkbox = document.getElementById(checkboxId); + if (checkbox == null) return ""; + return checkbox.getAttribute('data'); +} + +CheckboxMenu.prototype.GetDropdownLabelId=function() +{ + var checkboxCount = this.count; + var checkedCount = this.GetCheckedCount(); + var idPrefix = this.id; + + // if all boxes checked, use showall label + if (checkedCount == checkboxCount) + return idPrefix.concat("AllLabel"); + + // if only one is checked, use label appropriate for that one checkbox + if (checkedCount == 1) + { + for(var key in this.menuCheckboxIds) + { + if (this.data[this.menuCheckboxIds[key]] == "on") + { + return idPrefix.concat(key,'Label'); + } + } + } + + // if multiple or zero checked, use multiple label + return idPrefix.concat("MultipleLabel"); +} + +CheckboxMenu.prototype.GetCheckedCount=function() +{ + var count = 0; + for(var key in this.menuCheckboxIds) + { + if (this.data[this.menuCheckboxIds[key]] == "on") + count++; + } + return (count); +} + +// returns an array containing the ids of the checkboxes that are checked +CheckboxMenu.prototype.GetCheckedIds=function() +{ + var idArray = new Array(); + for(var key in this.menuCheckboxIds) + { + if (this.data[this.menuCheckboxIds[key]] == "on") + idArray.push(this.menuCheckboxIds[key]); + } + return idArray; +} + +CheckboxMenu.prototype.GetGroupCheckedCount=function(checkboxGroup) +{ + var count = 0; + for(var i = 0; i < checkboxGroup.length; i++) + { + if (this.data[checkboxGroup[i]] == "on") + count++; + } + return (count); +} + +CheckboxMenu.prototype.ToggleGroupCheckState=function(id, checkboxGroup) +{ + // at least one checkbox must always be checked + var checkedCount = this.GetGroupCheckedCount(checkboxGroup); + + // if the group has multiple checkboxes, one must always be checked; so toggle to "off" only if more than one currently checked + // if the group has only one checkbox, it's okay to toggle it on/off + if(this.data[id] == "on" && (checkedCount > 1 || checkboxGroup.length == 1)) + this.SetCheckState(id, "off"); + else + this.SetCheckState(id, "on"); +} + diff --git a/Help/scripts/CommonUtilities.js b/Help/scripts/CommonUtilities.js new file mode 100644 index 0000000..df9c223 --- /dev/null +++ b/Help/scripts/CommonUtilities.js @@ -0,0 +1,363 @@ +//function codeBlockHandler(id, data, value) +function codeBlockHandler() +{ + // handle groups of snippets to make sure at least one from the group is always shown + HandleSnippetGroups(); + + // handle any remaining snippets that aren't in groups + var spanElements = document.getElementsByTagName("span"); + for(var i = 0; i < spanElements.length; ++i) + { + var devlang = spanElements[i].getAttribute("codeLanguage"); + if (devlang == null) continue; + + if (HasSnippetGroupAncestor(spanElements[i])) continue; + + var checkboxId = GetDevlangCheckboxId(devlang); + if (checkboxId != null && checkboxId != "") + { + if (docSettings[checkboxId] == "on") + spanElements[i].style.display = ""; + else + spanElements[i].style.display = "none"; + } + } +} + +function HasSnippetGroupAncestor(object) +{ + var parent = object.parentElement; + if (parent == null) return false; + + var className = parent.className; + if (className != null && className == "snippetgroup") + return true + + return HasSnippetGroupAncestor(parent); +} + +function HandleSnippetGroups() +{ + var divs = document.getElementsByTagName("DIV"); + var divclass; + for (var i = 0; i < divs.length; i++) + { + divclass = divs[i].className; + if (divclass == null || divclass != "snippetgroup") continue; + + // if all snippets in this group would be hidden by filtering display them all anyhow + var unfilteredCount = GetUnfilteredSnippetCount(divs[i]); + + var spanElements = divs[i].getElementsByTagName("span"); + for(var j = 0; j < spanElements.length; ++j) + { + var devlang = spanElements[j].getAttribute("codeLanguage"); + if (devlang == null) continue; + + var checkboxId = GetDevlangCheckboxId(devlang); + + // for filtered devlangs, determine whether they should be shown/hidden + if (checkboxId != null && checkboxId != "") + { + if (unfilteredCount == 0 || docSettings[checkboxId] == "on") + spanElements[j].style.display = ""; + else + spanElements[j].style.display = "none"; + } + } + } +} + +function GetUnfilteredSnippetCount(group) +{ + var count = 0; + var spanElements = group.getElementsByTagName("span"); + for(var i = 0; i < spanElements.length; ++i) + { + var devlang = spanElements[i].getAttribute("codeLanguage"); + var checkboxId = GetDevlangCheckboxId(devlang); + if (checkboxId != null && checkboxId != "") + { + if (docSettings[checkboxId] == "on") + count++; + } + } + return count; +} + +function GetDevlangCheckboxId(devlang) +{ + switch (devlang) + { + case "VisualBasic": + case "VisualBasicDeclaration": + case "VisualBasicUsage": + return devlangsMenu.GetCheckboxId("VisualBasic"); + case "CSharp": + return devlangsMenu.GetCheckboxId("CSharp"); + case "ManagedCPlusPlus": + return devlangsMenu.GetCheckboxId("ManagedCPlusPlus"); + case "JScript": + return devlangsMenu.GetCheckboxId("JScript"); + case "JSharp": + return devlangsMenu.GetCheckboxId("JSharp"); + case "JavaScript": + return devlangsMenu.GetCheckboxId("JavaScript"); + case "XAML": + return devlangsMenu.GetCheckboxId("XAML"); + case "FSharp": + return devlangsMenu.GetCheckboxId("FSharp"); + default: + return ""; + } +} + +// update stylesheet display settings for spans to show according to user's devlang preference +function styleSheetHandler(oneDevlang) +{ + var devlang = (oneDevlang != "") ? oneDevlang : GetDevlangPreference(); + + var sd = getStyleDictionary(); + + // Ignore if not found (Help Viewer 2) + if(typeof(sd['span.cs']) == "undefined") + return; + + if (devlang == 'cs') { + sd['span.cs'].display = 'inline'; + sd['span.vb'].display = 'none'; + sd['span.cpp'].display = 'none'; + sd['span.nu'].display = 'none'; + sd['span.fs'].display = 'none'; + } else if (devlang == 'vb') { + sd['span.cs'].display = 'none'; + sd['span.vb'].display = 'inline'; + sd['span.cpp'].display = 'none'; + sd['span.nu'].display = 'none'; + sd['span.fs'].display = 'none'; + } else if (devlang == 'cpp') { + sd['span.cs'].display = 'none'; + sd['span.vb'].display = 'none'; + sd['span.cpp'].display = 'inline'; + sd['span.nu'].display = 'none'; + sd['span.fs'].display = 'none'; + } else if (devlang == 'nu') { + sd['span.cs'].display = 'none'; + sd['span.vb'].display = 'none'; + sd['span.cpp'].display = 'none'; + sd['span.nu'].display = 'inline'; + sd['span.fs'].display = 'none'; + } else if (devlang == 'fs') { + sd['span.cs'].display = 'none'; + sd['span.vb'].display = 'none'; + sd['span.cpp'].display = 'none'; + sd['span.nu'].display = 'none'; + sd['span.fs'].display = 'inline'; + } +} + +function getStyleDictionary() { + var styleDictionary = new Array(); + + try + { + // iterate through stylesheets + var sheets = document.styleSheets; + + for(var i=0; i 1) + devlang = dataSplits[1]; + } + } + return (checkedCount == 1 ? devlang : "nu"); +} + + + +function memberlistHandler() +{ + // get all the nodes in the document + var allRows = document.getElementsByTagName("tr"); + var i; + + for(i = 0; i < allRows.length; ++i) + { + var memberdata = allRows[i].getAttribute("data"); + if (memberdata != null) + { + if ((ShowBasedOnInheritance(memberdata) == false) || + (ShowBasedOnVisibility(memberdata) == false) || + (ShowBasedOnFramework(memberdata) == false) ) + allRows[i].style.display = "none"; + else + allRows[i].style.display = ""; + } + } + + ShowHideFrameworkImages(); + ShowHideFrameworkSpans(); +} + +function ShowHideFrameworkImages() +{ + // show/hide img nodes for filtered framework icons + // get all the nodes in the document + var allImgs = document.getElementsByTagName("img"); + + for(var i = 0; i < allImgs.length; i++) + { + var imgdata = allImgs[i].getAttribute("data"); + if (imgdata != null) + { + var checkboxId = imgdata + "Checkbox"; + if (docSettings[checkboxId] != "on") + { + allImgs[i].style.display = "none"; + } + else + allImgs[i].style.display = ""; + } + } +} + +function ShowHideFrameworkSpans() +{ + // show/hide img nodes for filtered framework icons + // get all the nodes in the document + var allImgs = document.getElementsByTagName("span"); + + for(var i = 0; i < allImgs.length; i++) + { + var imgdata = allImgs[i].getAttribute("data"); + if (imgdata != null) + { + var checkboxId = imgdata + "Checkbox"; + if (docSettings[checkboxId] != "on") + { + allImgs[i].style.display = "none"; + } + else + allImgs[i].style.display = ""; + } + } +} + +function ShowBasedOnVisibility(memberdata) +{ + var isPublic = (memberdata.indexOf("public") != -1); + var isProtected = (memberdata.indexOf("protected") != -1); + var isPrivate = (memberdata.indexOf("private") != -1); + var isExplicitII = (memberdata.indexOf("explicit") != -1); + + // if the public checkbox doesn't exist, default to showPublic == true + var publicCheck = docSettings["PublicCheckbox"]; + var showPublic = (publicCheck == null) ? true : (publicCheck == "on"); + + // if the protected checkbox doesn't exist, default to showProtected == true + var protectedCheck = docSettings["ProtectedCheckbox"]; + var showProtected = (protectedCheck == null) ? true : (protectedCheck == "on"); + + if ( (showProtected && isProtected) || (showPublic && isPublic) || isExplicitII || isPrivate) + return true; + + return false; +} + +function ShowBasedOnInheritance(memberdata) +{ + var isInherited = (memberdata.indexOf("inherited") != -1); + var isDeclared = (memberdata.indexOf("declared") != -1); + + // if the inherited checkbox doesn't exist, default to showInherited == true + var inheritedCheck = docSettings["InheritedCheckbox"]; + var showInherited = (inheritedCheck == null) ? true : (inheritedCheck == "on"); + + // if the declared checkbox doesn't exist, default to showDeclared == true + var declaredCheck = docSettings["DeclaredCheckbox"]; + var showDeclared = (declaredCheck == null) ? true : (declaredCheck == "on"); + + if ( (showInherited && isInherited) || (showDeclared && isDeclared) ) + return true; + + return false; +} + +function ShowBasedOnFramework(memberdata) { + + var splitData = memberdata.split(";"); + var foundNotNetfw = false; + var frameworkFilter = document.getElementById('memberFrameworksMenu') != null; + + for (var i = 0; i < splitData.length; i++) { + + if (splitData[i] == "notNetfw") { + foundNotNetfw = true; + continue; + } + if (docSettings[splitData[i] + "Checkbox"] == "on") + return true; + } + if (!foundNotNetfw && docSettings["netfwCheckbox"] == "on") + return true; + if (foundNotNetfw && docSettings["netfwCheckbox"] == null && !frameworkFilter) + return true; + + return false; +} + + +function SetDropdownMenuLabel(menu, dropdown) +{ + var dropdownLabelId = menu.GetDropdownLabelId(); + dropdown.SetActivatorLabel(dropdownLabelId); + for (var i = 0; i < dropdowns.length; i++) + { + dropdowns[i].reposition(); + } +} diff --git a/Help/scripts/Dropdown.js b/Help/scripts/Dropdown.js new file mode 100644 index 0000000..c52203d --- /dev/null +++ b/Help/scripts/Dropdown.js @@ -0,0 +1,90 @@ + +// Dropdown menu control + +function Dropdown(activatorId, dropdownId, containerId) { + + // store activator and dropdown elements + this.activator = document.getElementById(activatorId); + this.dropdown = document.getElementById(dropdownId); + this.container = document.getElementById(containerId); + this.activatorImage = document.getElementById(activatorId + "Image"); + + // wire up show/hide events + registerEventHandler(this.activator,'mouseover', getInstanceDelegate(this, "show")); + registerEventHandler(this.activator,'mouseout', getInstanceDelegate(this, "requestHide")); + registerEventHandler(this.dropdown,'mouseover', getInstanceDelegate(this, "show")); + registerEventHandler(this.dropdown,'mouseout', getInstanceDelegate(this, "requestHide")); + + // fix visibility and position + this.dropdown.style.visibility = 'hidden'; + this.dropdown.style.position = 'absolute'; + this.reposition(null); + + // wire up repositioning event + registerEventHandler(window, 'resize', getInstanceDelegate(this, "reposition")); + + +} + +Dropdown.prototype.show = function(e) { + clearTimeout(this.timer); + this.dropdown.style.visibility = 'visible'; + if (this.activatorImage != null) + this.activatorImage.src = dropDownHoverImage.src; + if (this.activator != null) + this.activator.className = "filterOnHover"; +} + +Dropdown.prototype.hide = function(e) { + this.dropdown.style.visibility = 'hidden'; + if (this.activatorImage != null) + this.activatorImage.src = dropDownImage.src; + if (this.activator != null) + this.activator.className = "filter"; +} + +Dropdown.prototype.requestHide = function(e) { + this.timer = setTimeout( getInstanceDelegate(this, "hide"), 250); +} + +Dropdown.prototype.reposition = function(e) { + + // get position of activator + var offsetLeft = 0; + var offsetTop = 0; + var offsetElement = this.activator; + + while (offsetElement && offsetElement != this.container) { + offsetLeft += offsetElement.offsetLeft; + offsetTop += offsetElement.offsetTop; + offsetElement = offsetElement.offsetParent; + } + + // set position of dropdown relative to it + this.dropdown.style.left = offsetLeft; + this.dropdown.style.top = offsetTop + this.activator.offsetHeight; +} + +Dropdown.prototype.SetActivatorLabel = function(labelId) +{ + // get the children of the activator node, which includes the label nodes + var labelNodes = this.activator.childNodes; + + + for(var labelCount=0; labelCount < labelNodes.length; labelCount++) + { + if(labelNodes[labelCount].tagName == 'LABEL') + { + var labelNodeId = labelNodes[labelCount].getAttribute('id'); + if (labelNodeId == labelId) + { + labelNodes[labelCount].style.display = "inline"; + } + else + { + labelNodes[labelCount].style.display = "none"; + } + } + } +} + \ No newline at end of file diff --git a/Help/scripts/EventUtilities.js b/Help/scripts/EventUtilities.js new file mode 100644 index 0000000..1828a11 --- /dev/null +++ b/Help/scripts/EventUtilities.js @@ -0,0 +1,23 @@ + + // attach a handler to a particular event on an element + // in a browser-independent way + function registerEventHandler (element, event, handler) { + if (element.attachEvent) { + // MS registration model + element.attachEvent('on' + event, handler); + } else if (element.addEventListener) { + // NN (W4C) regisration model + element.addEventListener(event, handler, false); + } else { + // old regisration model as fall-back + element[event] = handler; + } + } + + // get a delegate that refers to an instance method + function getInstanceDelegate (obj, methodName) { + return( function(e) { + e = e || window.event; + return obj[methodName](e); + } ); + } diff --git a/Help/scripts/SplitScreen.js b/Help/scripts/SplitScreen.js new file mode 100644 index 0000000..764e209 --- /dev/null +++ b/Help/scripts/SplitScreen.js @@ -0,0 +1,31 @@ + + function SplitScreen (nonScrollingRegionId, scrollingRegionId) { + + // store references to the two regions + this.nonScrollingRegion = document.getElementById(nonScrollingRegionId); + this.scrollingRegion = document.getElementById(scrollingRegionId); + + // set the scrolling settings + this.scrollingRegion.parentElement.style.margin = "0px"; + this.scrollingRegion.parentElement.style.overflow = "hidden"; + this.scrollingRegion.style.overflow = "auto"; + + // fix the size of the scrolling region + this.resize(null); + + // add an event handler to resize the scrolling region when the window is resized + registerEventHandler(window, 'resize', getInstanceDelegate(this, "resize")); + + // Added by ComponentOne + this.resize(null); + } + + SplitScreen.prototype.resize = function(e) { + var height = document.body.clientHeight - this.nonScrollingRegion.offsetHeight; + if (height > 0) { + this.scrollingRegion.style.height = height; + } else { + this.scrollingRegion.style.height = 0; + } + this.scrollingRegion.style.width = this.scrollingRegion.parentElement.clientWidth; + } diff --git a/Help/scripts/highlight.js b/Help/scripts/highlight.js new file mode 100644 index 0000000..467fb20 --- /dev/null +++ b/Help/scripts/highlight.js @@ -0,0 +1,187 @@ +//============================================================================= +// System : Color Syntax Highlighter +// File : Highlight.js +// Author : Eric Woodruff (Eric@EWoodruff.us) +// Updated : 11/13/2007 +// Note : Copyright 2006, Eric Woodruff, All rights reserved +// +// This contains the script to expand and collapse the regions in the +// syntax highlighted code. +// +//============================================================================= + +// Expand/collapse a region +function HighlightExpandCollapse(showId, hideId) +{ + var showSpan = document.getElementById(showId), + hideSpan = document.getElementById(hideId); + + showSpan.style.display = "inline"; + hideSpan.style.display = "none"; +} + +// Copy the code if Enter or Space is hit with the image focused +function CopyColorizedCodeCheckKey(titleDiv, eventObj) +{ + if(eventObj != undefined && (eventObj.keyCode == 13 || + eventObj.keyCode == 32)) + CopyColorizedCode(titleDiv); +} + +// Change the icon as the mouse moves in and out of the Copy Code link +// There should be an image with the same name but an "_h" suffix just +// before the extension. +function CopyCodeChangeIcon(linkSpan) +{ + var image = linkSpan.firstChild.src; + var pos = image.lastIndexOf("."); + + if(linkSpan.className == "highlight-copycode") + { + linkSpan.className = "highlight-copycode_h"; + linkSpan.firstChild.src = image.substr(0, pos) + "_h" + + image.substr(pos); + } + else + { + linkSpan.className = "highlight-copycode"; + linkSpan.firstChild.src = image.substr(0, pos - 2) + image.substr(pos); + } +} + +// Copy the code from a colorized code block to the clipboard. +function CopyColorizedCode(titleDiv) +{ + var preTag, idx, line, block, htmlLines, lines, codeText, hasLineNos, + hasRegions, clip, trans, copyObject, clipID; + var reLineNo = /^\s*\d{1,4}/; + var reRegion = /^\s*\d{1,4}\+.*?\d{1,4}-/; + var reRegionText = /^\+.*?\-/; + + // Find the
 tag containing the code.  It should be in the next
+    // element or one of its children.
+    block = titleDiv.nextSibling;
+
+    while(block.nodeName == "#text")
+        block = block.nextSibling;
+
+    while(block.tagName != "PRE")
+    {
+        block = block.firstChild;
+
+        while(block.nodeName == "#text")
+            block = block.nextSibling;
+    }
+
+    if(block.innerText != undefined)
+        codeText = block.innerText;
+    else
+        codeText = block.textContent;
+
+    hasLineNos = block.innerHTML.indexOf("highlight-lineno");
+    hasRegions = block.innerHTML.indexOf("highlight-collapsebox");
+    htmlLines = block.innerHTML.split("\n");
+    lines = codeText.split("\n");
+
+    // Remove the line numbering and collapsible regions if present
+    if(hasLineNos != -1 || hasRegions != -1)
+    {
+        codeText = "";
+
+        for(idx = 0; idx < lines.length; idx++)
+        {
+            line = lines[idx];
+
+            if(hasRegions && reRegion.test(line))
+                line = line.replace(reRegion, "");
+            else
+            {
+                line = line.replace(reLineNo, "");
+
+                // Lines in expanded blocks have an extra space
+                if(htmlLines[idx].indexOf("highlight-expanded") != -1 ||
+                  htmlLines[idx].indexOf("highlight-endblock") != -1)
+                    line = line.substr(1);
+            }
+
+            if(hasRegions && reRegionText.test(line))
+                line = line.replace(reRegionText, "");
+
+            codeText += line;
+
+            // Not all browsers keep the line feed when split
+            if(line[line.length - 1] != "\n")
+                codeText += "\n";
+        }
+    }
+
+    // IE or FireFox/Netscape?
+    if(window.clipboardData)
+        window.clipboardData.setData("Text", codeText);
+    else
+        if(window.netscape)
+        {
+            // Give unrestricted access to browser APIs using XPConnect
+            try
+            {
+                netscape.security.PrivilegeManager.enablePrivilege(
+                    "UniversalXPConnect");
+            }
+            catch(e)
+            {
+                alert("Universal Connect was refused, cannot copy to " +
+                    "clipboard.  Go to about:config and set " +
+                    "signed.applets.codebase_principal_support to true to " +
+                    "enable clipboard support.");
+                return;
+            }
+
+            // Creates an instance of nsIClipboard
+            clip = Components.classes[
+                "@mozilla.org/widget/clipboard;1"].createInstance(
+                Components.interfaces.nsIClipboard);
+
+            // Creates an instance of nsITransferable
+            if(clip)
+                trans = Components.classes[
+                    "@mozilla.org/widget/transferable;1"].createInstance(
+                    Components.interfaces.nsITransferable);
+
+            if(!trans)
+            {
+                alert("Copy to Clipboard is not supported by this browser");
+                return;
+            }
+
+            // Register the data flavor
+            trans.addDataFlavor("text/unicode");
+
+            // Create object to hold the data
+            copyObject = new Object();
+
+            // Creates an instance of nsISupportsString
+            copyObject = Components.classes[
+                "@mozilla.org/supports-string;1"].createInstance(
+                Components.interfaces.nsISupportsString);
+
+            // Assign the data to be copied
+            copyObject.data = codeText;
+
+            // Add data objects to transferable
+            trans.setTransferData("text/unicode", copyObject,
+                codeText.length * 2);
+
+            clipID = Components.interfaces.nsIClipboard;
+
+            if(!clipID)
+            {
+                alert("Copy to Clipboard is not supported by this browser");
+                return;
+            }
+
+            // Transfer the data to the clipboard
+            clip.setData(trans, null, clipID.kGlobalClipboard);
+        }
+        else
+            alert("Copy to Clipboard is not supported by this browser");
+}
diff --git a/Help/scripts/languageSelector.js b/Help/scripts/languageSelector.js
new file mode 100644
index 0000000..e6988a5
--- /dev/null
+++ b/Help/scripts/languageSelector.js
@@ -0,0 +1,61 @@
+
+
+function setActiveTab(baseClass,activeClassName,activeTab) {
+
+  // set defalt for all tabs
+  var classElements = getElementsByClass("CodeSnippetContainerTab", null, 'div');
+  if(classElements != null) {
+    for(i=0; i a.indexOf(".chm::")) 
+		{
+			if (a.indexOf("\\")==-1)
+			{
+				break;
+			}
+			a = a.substring(a.indexOf("\\")+1,a.length);
+		}
+		return("ms-its:"+a)
+	}
+	else if (URL.indexOf("file:///")!=-1) 
+	{
+		a = URL;
+
+		b = a.substring(a.lastIndexOf("html")+5,a.length);
+		return("file:///"+b);
+	}
+	else return(URL);
+}
+
+function GetLanguage()
+{
+	var langauge;
+  	if(navigator.userAgent.indexOf("Firefox")!=-1)
+  	{
+  		var index = navigator.userAgent.indexOf('(');
+   		var string = navigator.userAgent.substring(navigator.userAgent.indexOf('('), navigator.userAgent.length);
+   		var splitString = string.split(';');
+	   	language = splitString[3].substring(1, splitString[3].length);
+  	}
+  	else language = navigator.systemLanguage;
+	return(language);
+}
+
+
+//---Gets topic rating.---
+function GetRating()
+{
+
+	sRating = "0";
+	for(var x = 0;x < 5;x++)
+  	{
+		if(document.formRating) {
+		if(document.formRating.fbRating[x].checked) {sRating = x + 1;}}
+		else return sRating;
+  	}
+	return sRating;
+}
+
+function SubmitFeedback(alias, product, deliverable, productVersion, documentationVersion, defaultBody, defaultSubject)
+{
+	var subject = defaultSubject
+  		+ " ("
+		+ "/1:"
+  		+ product
+  		+ "/2:"
+  		+ productVersion
+  		+ "/3:"
+  		+ documentationVersion
+  		+ "/4:"
+  		+ DeliverableValue(deliverable)
+  		+ "/5:"
+  		+ URLValue()
+  		+ "/6:"
+  		+ GetRating() 
+  		+ "/7:"
+  		+ DeliveryType()
+  		+ "/8:"
+  		+ GetLanguage()
+		+ "/9:"
+  		+ version
+		+ ")"; 
+  
+	location.href = "mailto:" + alias + "?subject=" + subject
+	+ "&body=" + defaultBody;
+}
+
+function AltFeedback(src, title) {
+	src.title=title;
+	return;
+	}
diff --git a/Help/scripts/script_manifold.js b/Help/scripts/script_manifold.js
new file mode 100644
index 0000000..7fb45ae
--- /dev/null
+++ b/Help/scripts/script_manifold.js
@@ -0,0 +1,1293 @@
+registerEventHandler(window, 'load', getInstanceDelegate(this, "LoadPage"));
+registerEventHandler(window, 'unload', getInstanceDelegate(this, "Window_Unload"));
+registerEventHandler(window, 'beforeprint', getInstanceDelegate(this, "set_to_print"));
+registerEventHandler(window, 'afterprint', getInstanceDelegate(this, "reset_form"));
+
+var scrollPos = 0;
+
+var inheritedMembers;
+var protectedMembers;
+var netcfMembersOnly;
+var netXnaMembersOnly;
+
+// Help 1 and website persistence support
+// http://www.helpware.net/FAR/far_faq.htm
+// http://msdn.microsoft.com/en-us/library/ms533007.aspx
+// http://msdn.microsoft.com/en-us/library/ms644690.aspx
+var curLoc = document.location + ".";
+
+if(curLoc.indexOf("mk:@MSITStore") == 0)
+{
+    curLoc = "ms-its:" + curLoc.substring(14, curLoc.length - 1);
+    document.location.replace(curLoc);
+}
+
+// Initialize array of section states
+
+var sectionStates = new Array();
+var sectionStatesInitialized = false;
+
+//Hide sample source in select element
+function HideSelect()
+{
+	var selectTags = document.getElementsByTagName("SELECT");
+	var spanEles = document.getElementsByTagName("span");
+	var i = 10;
+	var m;
+	
+	if (selectTags.length != null || selectTags.length >0)
+	{
+		for (n=0; n0)
+	{
+		for (n=0; n node ids begin with "sectionToggle", so the same id can refer to different sections in different topics
+    // we don't want to persist their state; set it to expanded 
+    if (itemId.indexOf("sectionToggle", 0) == 0) return "e";
+    
+    // the default state for new section ids is expanded 
+    if (sectionStates[itemId] == null) return "e";
+    
+    // otherwise, persist the passed in state 
+    return sectionStates[itemId];
+}
+
+var noReentry = false;
+
+function OnLoadImage(eventObj)
+{
+    if (noReentry) return;
+    
+    if (!sectionStatesInitialized) 
+	    InitSectionStates(); 
+   
+    var elem;
+    if(document.all) elem = eventObj.srcElement;
+    else elem = eventObj.target;
+        
+    if ((sectionStates[elem.id] == "e"))
+		ExpandSection(elem);
+	else
+		CollapseSection(elem);
+}
+
+/*	
+**********
+**********   Begin
+**********
+*/
+
+var docSettings;
+var mainSection;
+
+function LoadPage()
+{
+	// If not initialized, grab the DTE.Globals object
+    if (globals == null)
+        globals = GetGlobals();
+
+	// docSettings has settings for the current document,
+	//     which include persistent and non-persistent keys for checkbox filters and expand/collapse section states
+	// persistKeys is an array of the checkbox ids to persist
+	if (docSettings == null)
+	{
+        docSettings = new Array();
+        persistKeys = new Array();
+	}
+
+    if (!sectionStatesInitialized)
+	    InitSectionStates();
+
+	var imgElements = document.getElementsByName("toggleSwitch");
+
+	for (i = 0; i < imgElements.length; i++)
+	{
+		if ((sectionStates[imgElements[i].id] == "e"))
+			ExpandSection(imgElements[i]);
+		else
+			CollapseSection(imgElements[i]);
+	}
+	
+	SetCollapseAll();
+
+	// split screen
+	mainSection = document.getElementById("mainSection");
+	if (!mainSection)
+	    mainSection = document.getElementById("mainSectionMHS");
+	    
+	// var screen = new SplitScreen('header', mainSection.id);
+
+	// init devlang filter checkboxes
+	SetupDevlangsFilter();
+	
+	// init memberlist filter checkboxes for protected, inherited, etc
+	SetupMemberOptionsFilter();
+	
+	// init memberlist platforms filter checkboxes, e.g. .Net Framework, CompactFramework, XNA, Silverlight, etc.
+	SetupMemberFrameworksFilter();
+
+	// removes blank target from in the self links for Microsoft Help System
+	RemoveTargetBlank();
+
+    // set gradient image to the bottom of header for Microsoft Help System
+	SetBackground('headerBottom');
+	
+	// vs70.js did this to allow up/down arrow scrolling, I think
+	try { mainSection.setActive(); } catch(e) { }
+
+	//set the scroll position
+	try{mainSection.scrollTop = scrollPos;}
+	catch(e){}
+}
+
+function Window_Unload()
+{
+    // for each key in persistArray, write the key/value pair to globals
+    for (var i = 0; i < persistKeys.length; i++)
+        Save(persistKeys[i],docSettings[persistKeys[i]]);
+    
+    // save the expand/collapse section states
+    SaveSections();
+}
+
+// removes blank target from in the self links for Microsoft Help System
+function RemoveTargetBlank() {
+    var elems = document.getElementsByTagName("a");
+    for (var i = 0; i < elems.length; i++) {
+        if (elems[i].getAttribute("target") == "_blank" &&
+        elems[i].getAttribute("href", 2).indexOf("#", 0) == 0)
+            elems[i].removeAttribute("target");
+    }
+}
+
+function set_to_print()
+{
+	//breaks out of divs to print
+	var i;
+
+	if (window.text)document.all.text.style.height = "auto";
+			
+	for (i=0; i < document.all.length; i++)
+	{
+		if (document.all[i].tagName == "body")
+		{
+			document.all[i].scroll = "yes";
+		}
+		if (document.all[i].id == "header")
+		{
+			document.all[i].style.margin = "0px 0px 0px 0px";
+			document.all[i].style.width = "100%";
+		}
+		if (document.all[i].id == mainSection.id)
+		{
+			document.all[i].style.overflow = "visible";
+			document.all[i].style.top = "5px";
+			document.all[i].style.width = "100%";
+			document.all[i].style.padding = "0px 10px 0px 30px";
+		}
+	}
+}
+
+function reset_form()
+{
+	//returns to the div nonscrolling region after print
+	 document.location.reload();
+}
+
+/*	
+**********
+**********   End
+**********
+*/
+
+
+/*	
+**********
+**********   Begin Language Filtering
+**********
+*/
+
+var devlangsMenu;
+var devlangsDropdown;
+var memberOptionsMenu;
+var memberOptionsDropdown;
+var memberFrameworksMenu;
+var memberFrameworksDropdown;
+var dropdowns = new Array();
+
+// initialize the devlang filter dropdown menu
+function SetupDevlangsFilter()
+{
+    var divNode = document.getElementById('devlangsMenu');
+	if (divNode == null)
+	    return;
+
+	var checkboxNodes = divNode.getElementsByTagName("input");
+	
+	if (checkboxNodes.length == 1)
+	{
+	    // only one checkbox, so we don't need a menu
+	    // get the devlang and use it to display the correct devlang spans
+	    // a one-checkbox setting like this is NOT persisted, nor is it set from the persisted globals
+	    var checkboxData = checkboxNodes[0].getAttribute('data');
+        var dataSplits = checkboxData.split(',');
+        var devlang = "";
+        if (dataSplits.length > 1)
+            devlang = dataSplits[1];
+	    styleSheetHandler(devlang);
+	}
+	else
+	{
+	    // setup the dropdown menu
+        devlangsMenu = new CheckboxMenu("devlangsMenu", docSettings, persistKeys, globals);
+		devlangsDropdown = new Dropdown('devlangsDropdown', 'devlangsMenu', 'header');
+		dropdowns.push(devlangsDropdown);
+
+        // update the label of the dropdown menu
+        SetDropdownMenuLabel(devlangsMenu, devlangsDropdown);
+        
+        // toggle the document's display docSettings
+	    codeBlockHandler();
+	    styleSheetHandler("");
+	}
+}
+
+
+// called onclick in a devlang filter checkbox
+// tasks to perform at this event are:
+//   toggle the check state of the checkbox that was clicked
+//   update the user's devlang preference, based on devlang checkbox states
+//   update stylesheet based on user's devlang preference
+//   show/hide snippets/syntax based on user's devlang preference
+//   
+function SetLanguage(checkbox)
+{
+    // toggle the check state of the checkbox that was clicked
+    devlangsMenu.ToggleCheckState(checkbox.id);
+    
+    // update the label of the dropdown menu
+    SetDropdownMenuLabel(devlangsMenu, devlangsDropdown);
+	
+    // update the display of the document's items that are dependent on the devlang setting
+	codeBlockHandler();
+	styleSheetHandler("");
+	
+}
+/*	
+**********
+**********   End Language Filtering
+**********
+*/
+
+
+/*	
+**********
+**********   Begin Members Options Filtering
+**********
+*/
+
+// initialize the memberlist dropdown menu for protected, inherited, etc
+function SetupMemberOptionsFilter()
+{
+	if (document.getElementById('memberOptionsMenu') != null) {
+        memberOptionsMenu = new CheckboxMenu("memberOptionsMenu", docSettings, persistKeys, globals);
+		memberOptionsDropdown = new Dropdown('memberOptionsDropdown', 'memberOptionsMenu', 'header');
+		dropdowns.push(memberOptionsDropdown);
+
+        // update the label of the dropdown menu
+        SetDropdownMenuLabel(memberOptionsMenu, memberOptionsDropdown);
+        
+        // show/hide memberlist rows based on the current docSettings
+	    memberlistHandler();
+	}
+}
+
+// sets the background to an element for Microsoft Help 3 system
+function SetBackground(id) {
+    var elem = document.getElementById(id);
+    if (elem) {
+        var img = document.getElementById(id + "Image");
+        if (img) {
+            elem.setAttribute("background", img.getAttribute("src"));
+        }
+    }
+}
+
+function SetupMemberFrameworksFilter()
+{
+	if (document.getElementById('memberFrameworksMenu') != null) 
+	{
+        memberFrameworksMenu = new CheckboxMenu("memberFrameworksMenu", docSettings, persistKeys, globals);
+		memberFrameworksDropdown = new Dropdown('memberFrameworksDropdown', 'memberFrameworksMenu', 'header');
+		dropdowns.push(memberFrameworksDropdown);
+
+        // update the label of the dropdown menu
+        SetDropdownMenuLabel(memberFrameworksMenu, memberFrameworksDropdown);
+        
+        // show/hide memberlist rows based on the current docSettings
+	    memberlistHandler();
+	}
+}
+
+function SetMemberOptions(checkbox, groupName)
+{
+    var checkboxGroup = new Array();
+    if (groupName == "vis")
+    {
+        if (document.getElementById('PublicCheckbox') != null)
+            checkboxGroup.push('PublicCheckbox');
+        if (document.getElementById('ProtectedCheckbox') != null)
+            checkboxGroup.push('ProtectedCheckbox');
+    }
+    else if (groupName == "decl")
+    {
+        if (document.getElementById('DeclaredCheckbox') != null)
+            checkboxGroup.push('DeclaredCheckbox');
+        if (document.getElementById('InheritedCheckbox') != null)
+            checkboxGroup.push('InheritedCheckbox');
+    }
+    
+    // toggle the check state of the checkbox that was clicked
+    memberOptionsMenu.ToggleGroupCheckState(checkbox.id, checkboxGroup);
+    
+    // update the label of the dropdown menu
+    SetDropdownMenuLabel(memberOptionsMenu, memberOptionsDropdown);
+	
+    // update the display of the document's items that are dependent on the member options settings
+    memberlistHandler();
+}
+
+function SetMemberFrameworks(checkbox)
+{
+    // toggle the check state of the checkbox that was clicked
+    memberFrameworksMenu.ToggleCheckState(checkbox.id);
+    
+    // update the label of the dropdown menu
+    SetDropdownMenuLabel(memberFrameworksMenu, memberFrameworksDropdown);
+	
+    // update the display of the document's items that are dependent on the member platforms settings
+    memberlistHandler();
+}
+
+function DisplayFilteredMembers()
+{
+	var iAllMembers = document.getElementsByTagName("tr");
+	var i;
+	
+	for(i = 0; i < iAllMembers.length; ++i)
+	{
+		if (((iAllMembers[i].notSupportedOnXna == "true") && (netXnaMembersOnly == "on")) ||
+			((iAllMembers[i].getAttribute("name") == "inheritedMember") && (inheritedMembers == "off")) ||
+			((iAllMembers[i].getAttribute("notSupportedOn") == "netcf") && (netcfMembersOnly == "on")))
+			iAllMembers[i].style.display = "none";
+		else
+			iAllMembers[i].style.display = "";
+	}
+	
+	// protected members are in separate collapseable sections in vs2005, so expand or collapse the sections
+	ExpandCollapseProtectedMemberSections();
+}
+
+function ExpandCollapseProtectedMemberSections()
+{
+	var imgElements = document.getElementsByName("toggleSwitch");
+	var i;
+	// Family
+	for(i = 0; i < imgElements.length; ++i)
+	{
+		if(imgElements[i].id.indexOf("protected", 0) == 0)
+		{
+	        if ((sectionStates[imgElements[i].id] == "e" && protectedMembers == "off") || 
+	            (sectionStates[imgElements[i].id] == "c" && protectedMembers == "on"))
+			{
+				ExpandCollapse(imgElements[i]);
+			}
+		}
+	}
+}
+
+/*	
+**********
+**********   End Members Options Filtering
+**********
+*/
+
+
+/*	
+**********
+**********   Begin Expand/Collapse
+**********
+*/
+
+// expand or collapse a section
+function ExpandCollapse(imageItem)
+{
+	if (sectionStates[imageItem.id] == "e")
+		CollapseSection(imageItem);
+	else
+		ExpandSection(imageItem);
+	
+	SetCollapseAll();
+}
+
+// expand or collapse all sections
+function ExpandCollapseAll(imageItem)
+{
+    var collapseAllImage = document.getElementById("collapseAllImage");
+    var expandAllImage = document.getElementById("expandAllImage");
+    if (imageItem == null || collapseAllImage == null || expandAllImage == null) return;
+    noReentry = true; // Prevent entry to OnLoadImage
+    
+	var imgElements = document.getElementsByName("toggleSwitch");
+	var i;
+	var collapseAll = (imageItem.src == collapseAllImage.src);
+	if (collapseAll)
+	{
+		imageItem.src = expandAllImage.src;
+		imageItem.alt = expandAllImage.alt;
+
+		for (i = 0; i < imgElements.length; ++i)
+		{
+			CollapseSection(imgElements[i]);
+		}
+	}
+	else
+	{
+		imageItem.src = collapseAllImage.src;
+		imageItem.alt = collapseAllImage.alt;
+
+		for (i = 0; i < imgElements.length; ++i)
+		{
+			ExpandSection(imgElements[i]);
+		}
+	}
+	SetAllSectionStates(collapseAll);
+	SetToggleAllLabel(collapseAll);
+	
+	noReentry = false;
+}
+
+function ExpandCollapse_CheckKey(imageItem, eventObj)
+{
+	if(eventObj.keyCode == 13)
+		ExpandCollapse(imageItem);
+}
+
+function ExpandCollapseAll_CheckKey(imageItem, eventObj)
+{
+	if(eventObj.keyCode == 13)
+		ExpandCollapseAll(imageItem);
+}
+
+function SetAllSectionStates(collapsed)
+{
+    for (var sectionId in sectionStates) 
+        sectionStates[sectionId] = (collapsed) ? "c" : "e";
+}
+
+function ExpandSection(imageItem)
+{
+    noReentry = true; // Prevent re-entry to OnLoadImage
+    try
+    {
+        var collapseImage = document.getElementById("collapseImage");
+		imageItem.src = collapseImage.src;
+		imageItem.alt = collapseImage.alt;
+		
+	    imageItem.parentNode.parentNode.nextSibling.style.display = "";
+	    sectionStates[imageItem.id] = "e";
+    }
+    catch (e)
+    {
+    }
+    noReentry = false;
+}
+
+function CollapseSection(imageItem)
+{
+    noReentry = true; // Prevent re-entry to OnLoadImage
+    var expandImage = document.getElementById("expandImage");
+	imageItem.src = expandImage.src;
+	imageItem.alt = expandImage.alt;
+	imageItem.parentNode.parentNode.nextSibling.style.display = "none";
+	sectionStates[imageItem.id] = "c";
+    noReentry = false;
+}
+
+function AllCollapsed()
+{
+	var imgElements = document.getElementsByName("toggleSwitch");
+	var allCollapsed = true;
+	var i;
+		
+	for (i = 0; i < imgElements.length; i++) allCollapsed = allCollapsed && (sectionStates[imgElements[i].id] == "c");
+	
+	return allCollapsed;
+}
+
+function SetCollapseAll()
+{
+	var imageElement = document.getElementById("toggleAllImage");
+	if (imageElement == null) return;
+	
+	var allCollapsed = AllCollapsed();
+	if (allCollapsed)
+	{
+        var expandAllImage = document.getElementById("expandAllImage");
+	    if (expandAllImage == null) return;
+		imageElement.src = expandAllImage.src;
+		imageElement.alt = expandAllImage.alt;
+	}
+	else
+	{
+        var collapseAllImage = document.getElementById("collapseAllImage");
+	    if (collapseAllImage == null) return;
+		imageElement.src = collapseAllImage.src;
+		imageElement.alt = collapseAllImage.alt;
+	}
+	
+	SetToggleAllLabel(allCollapsed);
+}
+
+function SetToggleAllLabel(allCollapsed)
+{
+	var collapseLabelElement = document.getElementById("collapseAllLabel");
+	var expandLabelElement = document.getElementById("expandAllLabel");
+	
+	if (collapseLabelElement == null || expandLabelElement == null) return;
+		
+	if (allCollapsed)
+	{
+		collapseLabelElement.style.display = "none";
+		expandLabelElement.style.display = "inline";
+	}
+	else
+	{
+		collapseLabelElement.style.display = "inline";
+		expandLabelElement.style.display = "none";
+	}
+}
+
+function SaveSections()
+{
+    try
+    {
+        var states = "";
+    
+        for (var sectionId in sectionStates) states += sectionId + ":" + sectionStates[sectionId] + ";";
+
+        Save("SectionStates", states.substring(0, states.length - 1));
+    }
+    catch (e)
+    {
+    }
+    
+}
+
+function OpenSection(imageItem)
+{
+	if (sectionStates[imageItem.id] == "c") ExpandCollapse(imageItem);
+}
+
+/*	
+**********
+**********   End Expand/Collapse
+**********
+*/
+
+
+
+/*	
+**********
+**********   Begin Copy Code
+**********
+*/
+
+function CopyCode(key)
+{
+	var trElements = document.getElementsByTagName("tr");
+	var i;
+	for(i = 0; i < trElements.length; ++i)
+	{
+		if(key.parentNode.parentNode.parentNode == trElements[i].parentNode)
+		{
+		    if (window.clipboardData) 
+            {
+                // the IE-manner
+                window.clipboardData.setData("Text", trElements[i].innerText);
+            }
+            else if (window.netscape) 
+            { 
+                // Gives unrestricted access to browser APIs using XPConnect
+		try
+		{
+			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+		}
+	        catch(e)
+		{
+			alert("Universal Connect was refused, cannot copy to " +
+				"clipboard.  Go to about:config and set " +
+				"signed.applets.codebase_principal_support to true to " +
+				"enable clipboard support.");
+			return;
+		}
+                
+                // Creates an instance of nsIClipboard
+                var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
+                if (!clip) return;
+   
+                // Creates an instance of nsITransferable
+                var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
+                if (!trans) return;
+   
+                // register the data flavor
+                trans.addDataFlavor('text/unicode');
+   
+                // Create object to hold the data
+                var str = new Object();
+                                
+                // Creates an instance of nsISupportsString
+                var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
+                
+                //Assigns the data to be copied
+                var copytext = trElements[i].textContent;
+                str.data = copytext;
+                
+                // Add data objects to transferable
+                trans.setTransferData("text/unicode",str,copytext.length*2);
+                var clipid = Components.interfaces.nsIClipboard;
+                if (!clip) return false;
+        
+                // Transfer the data to clipboard
+                clip.setData(trans,null,clipid.kGlobalClipboard);
+            }
+        }
+	}
+}
+
+function ChangeCopyCodeIcon(key)
+{
+	var i;
+	var imageElements = document.getElementsByName("ccImage")
+	for(i=0; i
"); + oNewDialog=document.body.children(document.body.children.length-1); + oNewDialog.className="clsTooltip"; + oNewDialog.style.width=iWidth; + oNewDialog.dlg_status=false; + return oNewDialog; +} + +function sendfeedback(subject, id,alias){ + var rExp = /\"/gi; + var url = location.href; + // Need to replace the double quotes with single quotes for the mailto to work. + var rExpSingleQuotes = /\'\'"/gi; + var title = document.getElementsByTagName("TITLE")[0].innerText.replace(rExp, "''"); + location.href = "mailto:" + alias + "?subject=" + subject + title + "&body=Topic%20ID:%20" + id + "%0d%0aURL:%20" + url + "%0d%0a%0d%0aComments:%20"; +} + diff --git a/Help/splitter_bar.png b/Help/splitter_bar.png new file mode 100644 index 0000000..b9e6cb2 Binary files /dev/null and b/Help/splitter_bar.png differ diff --git a/Help/splitter_dot.png b/Help/splitter_dot.png new file mode 100644 index 0000000..99435a5 Binary files /dev/null and b/Help/splitter_dot.png differ diff --git a/Help/styles/Presentation.css b/Help/styles/Presentation.css new file mode 100644 index 0000000..d4cb3f1 --- /dev/null +++ b/Help/styles/Presentation.css @@ -0,0 +1,1115 @@ +/* * * This file was autogenerated by Styler at 02:02 on 02/15/2003 * * */ + + +/*********************************************************** + * SCRIPT-SUPPORTING STYLES + ***********************************************************/ + +/* Defines the userData cache persistence mechanism. */ +.userDataStyle +{ + behavior: url(#default#userData); +} + +/* Used to save the scroll bar position when navigating away from a page. */ +div.saveHistory +{ + behavior: url(#default#savehistory); +} + +/* Formats the expand/collapse images for all collapsible regions. */ +img.toggle +{ + border: 0; + margin-right: 5; +} + +/* Formats the Collapse All/Expand All images. */ +img#toggleAllImage +{ + margin-left: 0; + vertical-align: middle; +} + +/* Supports XLinks */ +MSHelp\:link +{ + text-decoration: underline; + color: #0000ff; + hoverColor: #3366ff; + filterString: ; +} + + +/*********************************************************** + * CONTENT PRESENTATION STYLES + ***********************************************************/ + +body +{ + background: #FFFFFF; + color: #000000; + font-family: Verdana; + font-size: medium; + font-style: normal; + font-weight: normal; + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: 0; + width: 100%; +} + +dl +{ + margin-top: 15; + margin-bottom:5; + padding-left: 1; +} + +dl.authored dt { + font-style: bold; + margin-top: 2; +} + +dd { + margin-left: 0; +} + +ul +{ + margin-top:0; + margin-bottom:0; + margin-left: 17; + list-style-type: disc; +} + +ul ul +{ + margin-bottom: 4; + margin-left: 17; + margin-top: 3; + list-style-type: disc; +} + +ol { + margin-top:0; + margin-bottom:0; + margin-left: 28; + list-style-type: decimal; +} + +ol ol { + margin-bottom: 4; + margin-left: 28; + margin-top: 3; + list-style-type: lower-alpha; +} + +li { + margin-top: 5; + margin-bottom: 5; +} + +p { + margin-top: 10; + margin-bottom: 5; +} + +a:link { + color: #0000FF; +} + +a:visited { + color: #DD7C3B; +} + +a:hover { + color: #3366FF; +} + +div#header a, div#mainSectionMHS a { + text-decoration: underline; +} + +code +{ + font-family: Monospace, Courier New, Courier; + font-size: 105%; + color: #000066; +} + +span.parameter { + font-style: italic; +} + +span.italic { + font-style: italic; +} + +span.selflink { + font-weight: bold; +} + +span.nolink { + font-weight: bold; +} + +/*********************************************************** + * STRUCTURE PRESENTATION STYLES + ***********************************************************/ + +/* Applies to everything below the non-scrolling header region. */ +div#mainSection +{ + /*font-size: 62.5%; + width: 100%;*/ +} +div#mainSectionMHS +{ + font-family: Verdana; + font-size: 81%; + width: 100%; +} +html>body #mainSection, html>body #mainSectionMHS +{ + font-size:73%; + width: 100%; +} + +/* Applies to everything below the non-scrolling header region, minus the footer. */ +div#mainBody +{ + font-size: 100%; + margin-left: 15; + margin-top: 10; + /*padding-bottom: 20;*/ +} + +/*html>body #mainBody +{ + font-size: 93%; + margin-left: 15; + margin-top: 10; + padding-bottom: 20; +}*/ + +/* Adds right padding for all blocks in mainBody */ +div#mainBody p, div#mainBody ol, div#mainBody ul, div#mainBody dl +{ + padding-right: 5; +} + +/*------------------------------ Begin Non-scrolling Header Region Styles -------------------------------*/ +/* Applies to the entire non-scrolling header region. */ +div#header +{ + font-family: Verdana; + background-color: #FFFFFF; + padding-top: 0; + padding-bottom: 0; + padding-left: 0; + padding-right: 0; + width: 100%; +} + +/* Applies to both tables in the non-scrolling header region. */ +div#header table +{ + width: 100%; +} + +/* Applies to cells in both tables in the non-scrolling header region. */ +div#header table td +{ + color: #0000FF; + font-size: 70%; + margin-top: 0; + margin-bottom: 0; + padding-right: 20; +} +/* Applies to second row in the upper table of the non-scrolling header region. */ +div#header table tr#headerTableRow2 td +{ + padding-left: 13px; +} + +/* Applies to the last row in the upper table of the non-scrolling header region. Text + in this row includes See Also, Constructors, Methods, and Properties. */ +div#header table tr#headerTableRow3 td +{ + padding-top: 2px; + padding-left: 15; +} + +/* Applies to the lower table in the non-scrolling header region. Text in this table + includes Collapse All/Expand All, Language Filter, and Members Options. */ +div#header table#bottomTable +{ + border-top-color: #FFFFFF; + border-top-style: solid; + border-top-width: 1; + text-align: left; + padding-left: 15; + padding-top: 5px; + padding-bottom: 5px; +} + +/* Formats the first column--the one that displays icons--in mref list tables (such as Public Constructors, + Protected Constructors, Public Properties, Protected Properties, and so on). */ +div#mainSection table td.imageCell, div#mainSectionMHS table td.imageCell +{ + white-space: nowrap; +} +/*------------------------------ End General Table Styles -------------------------------*/ + +/*------------------------------ Begin General Table Styles -------------------------------*/ + +div#mainBody div.alert, div#mainBody div.code, div#mainBody div.tableSection +{ + width:98.9%; +} + +div#mainBody div.section div.alert, div#mainBody div.section div.code, +div#mainBody div.section div.tableSection +{ + width:100%; +} + +div#mainBody div.section ul div.alert, div#mainBody div.section ul div.code, +div#mainBody div.section ul div.tableSection, div#mainBody div.section ol div.alert, +div#mainBody div.section ol div.code, div#mainBody div.section ol div.tableSection +{ + width:100%; +} + +div.alert p, div.code p +{ + margin-top:5; + margin-bottom:8; +} +dd p +{ + margin-top:2; + margin-bottom:8; +} +div.tableSection p +{ + margin-top:1; + margin-bottom:4; +} +li p +{ + margin-top:2; + margin-bottom:2; +} +div.seeAlsoNoToggleSection dl +{ + margin-top:8; + margin-bottom:1; + padding-left:1; +} +div.seeAlsoNoToggleSection dd p +{ + margin-top:2; + margin-bottom:8; +} +div.section dl +{ + margin-top:8; + margin-bottom:1; + padding-left:1; +} +div.section dd p +{ + margin-top:2; + margin-bottom:8; +} +/*------------------------------ End General Table Styles -------------------------------*/ + + + +/*------------------------------ Begin Syntax and Snipper Code Block Styles -------------------------------*/ +div.code table +{ + border: 0; + font-size: 95%; + margin-bottom: 5; + margin-top:-.4em; + width: 100% +} + +div.code table th +{ + background: #EFEFF7; + border-bottom-color: #C8CDDE; + border-bottom-style: solid; + border-bottom-width: 1; + color: #000066; + font-weight: bold; + padding-left: 5; + padding-right: 5; +} + +div.code table td +{ + background: #F7F7FF; + border-top-color: #FFFFFF; + border-top-style: solid; + border-top-width: 1; + padding-left: 5; + padding-right: 5; + padding-top: 5; +} +/* Applies to the running header text in the first row of the upper table in the + non-scrolling header region. */ +span#runningHeaderText +{ + color: #8C8C8C; + font-size: 90%; + padding-left: 13; +} + +/* Applies to the topic title in the second row of the upper table in the + non-scrolling header region. */ +span#nsrTitle +{ + color: #000000; + font-size: 160%; + font-weight: 400; + font-family: arial; +} +/*------------------------------ End Non-scrolling Header Region Styles -------------------------------*/ + + +/* Formats the footer. Currently, the transforms pass in two parameters to the + footer SSC, but the default footer SSC doesn't use either parameter. + TODO: Investigate whether the default footer SSC has any impact on doc spec. */ +div#footer +{ + font-size: 80%; + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: 0; + padding-top: 8; + padding-bottom: 6; + padding-left: 1; + padding-right: 1; + width: 100%; +} + +html>body div#footer +{ + font-size: 80%; + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: 0; + padding-top: 2; + padding-bottom: 6; + padding-left: 1; + padding-right: 1; + width: 98%; +} + +/* Unable to find this style in the transforms. The default footer SSC adds a plain horizontal rule. + TODO: Determine whether this style is required by the doc spec. */ +/* +hr#footerHR +{ + border-bottom-color: #EEEEFF; + border-bottom-style: solid; + border-bottom-width: 1; + border-top-color: C8CDDE; + border-top-style: solid; + border-top-width: 1; + height: 3; + color: #D4DFFF; +} +*/ + +/******************************************************************************************************************** + Collapsible Section Structure + +

// Format of the collapsible section text + // Defines the onclick procedure for the expand/collapse section + // Expand/collapse image + + +

+ +
// The body of the collapsible section; hidden by default +
+ + + The ExpandCollapse() function is responsible for toggling the expand/collapse image, and for + displaying/hiding the body of the collapsible section. +********************************************************************************************************************/ + +/* Applies to the body of a collapsible section */ +div.seeAlsoNoToggleSection +{ + margin-left:0; + padding-top: 2; + padding-bottom: 2; + padding-left: 0; + padding-right: 15; + width: 100%; +} + +div.section +{ + margin-left:0; + padding-top: 0; + padding-bottom: 0; + padding-left: 16; + padding-right: 15; + width: 100%; +} +html>body div.section +{ + margin-left:0; + padding-top: 2; + padding-bottom: 2; + padding-left: 16; + padding-right: 15; + width: 97%; +} +div.seeSection +{ + margin-left:0; + padding-top: 0; + padding-bottom: 2; + padding-left: 16; + padding-right: 15; + width: 100%; +} + + +/*------------------------------ Begin Heading Styles -------------------------------*/ +/* As far as I can tell, only

tags use this class. + TODO: Decide whether to roll these attributes into the h1.heading style */ +.heading +{ + font-weight: bold; + margin-top: 18; + margin-bottom: 8; +} + +/* All

headings. */ +h1.heading +{ + font-family: Verdana; + color: #000000; + font-size: 130%; +} + +/* Applies to table titles and subsection titles. */ +.subHeading +{ + font-weight: bold; + margin-bottom: 4; +} +.procedureSubHeading +{ + font-weight: bold; + margin-bottom: 4; +} + +/* Formats the titles of author-generated tables. */ +h3.subHeading +{ + font-family: Verdana; + color: #000000; + font-size: 120%; + font-weight:800; +} + +h3.procedureSubHeading +{ + font-family: Verdana; + color: #000000; + font-size: 120%; +} + +/* Formats the titles of all subsections. */ +h4.subHeading +{ + font-family: Verdana; + color: #000000; + font-size: 110%; + font-weight:800; +} +span.labelheading, div.labelheading +{ + font-size:100%; + color:#003399; +} + +/*------------------------------ End Heading Styles -------------------------------*/ + + +/*------------------------------ Begin Image Styles -------------------------------*/ +img.copyCodeImage +{ + border: 0; + margin: 1; + margin-right: 3; +} + +img.downloadCodeImage +{ + border: 0; + margin-right: 3; +} + +img.viewCodeImage +{ + border: 0; + margin-right: 3; +} + +img.note +{ + border: 0; + margin-right: 3; +} +/*------------------------------ End Image Styles -------------------------------*/ + + +/*------------------------------ Begin General Table Styles -------------------------------*/ +div#mainSection table, div#mainSectionMHS table +{ + border: 0; + font-size: 100%; + width: 98.9%; + margin-top: 5px; + margin-bottom: 5px; +} + +div#mainSection table tr, div#mainSectionMHS table tr +{ + vertical-align: top; +} + +div#mainSection table th, div#mainSectionMHS table th +{ + background-color: #EFEFF7; + border-bottom: 1px solid #C8CDDE; + border-left: 1px none #D5D5D3; + color: #000066; + padding-left: 5px; + padding-right: 5px; + text-align: left; +} + +div#mainSection table td, div#mainSectionMHS table td +{ + background-color: #F7F7FF; + border-bottom: 1px solid #D5D5D3; + border-left: 1px none #D5D5D3; + padding-left: 5px; + padding-right: 5px; +} + +/* Formats the first column--the one that displays icons--in mref list tables (such as Public Constructors, + Protected Constructors, Public Properties, Protected Properties, and so on). */ +div#mainSection table td.imageCell, div#mainSectionMHS table td.imageCell +{ + white-space: nowrap; +} +/*------------------------------ End General Table Styles -------------------------------*/ + + +/*------------------------------ Begin Syntax and Snipper Code Block Styles -------------------------------*/ +div.code table +{ + border: 0; + font-size: 95%; + margin-bottom: 5; + width: 100% +} + +div.code table th +{ + background: #EFEFF7; + border-bottom-color: #C8CDDE; + border-bottom-style: solid; + border-bottom-width: 1; + color: #000066; + font-weight: bold; + padding-left: 5; + padding-right: 5; +} + +div.code table td +{ + background: #F7F7FF; + border-top-color: #FFFFFF; + border-top-style: solid; + border-top-width: 1; + padding-left: 5; + padding-right: 5; + padding-top: 5; +} +/*------------------------------ End Syntax and Snipper Code Block Styles -------------------------------*/ + + +/*------------------------------ Begin Note Styles -------------------------------*/ +div.alert table +{ + border: 0; + font-size: 100%; + width: 100%; +} + +div.alert table th +{ + background: #EFEFF7; + border-bottom-width: 0; + color: #000066; + padding-left: 5; + padding-right: 5; +} + +div.alert table td +{ + background: #F7F7FF; + border-top-color: #FFFFFF; + border-top-style: solid; + border-top-width: 1; + padding-left: 5; + padding-right: 5; +} + + +/*------------------------------ End Note Styles -------------------------------*/ + + +/* Applies to the copy code text and image. */ +span.copyCode +{ + color: #0000ff; + font-size: 90%; + font-weight: normal; + cursor: pointer; + float: right; + display: inline; + text-align: right; + text-decoration: underline; +} + +span.copyCodeOnHover +{ + color: #E85F17; + font-size:xx-small; + font-weight: normal; + cursor: pointer; + float: right; + display: inline; + text-align: right; + text-decoration: underline; +} + +.downloadCode +{ + color: #0000ff; + font-size: 90%; + font-weight: normal; + cursor: pointer; +} + +.viewCode +{ + color: #0000ff; + font-size: 90%; + font-weight: normal; + cursor: pointer; +} + +/* Formats the code in syntax and usage blocks, and the code in non-snipper code blocks. */ +div.code pre +{ + font-family: Monospace, Courier New, Courier; + font-size: 105%; + color: #000066; + word-wrap: break-word; + background: #F7F7FF; +} + +/* Formats parameter tooltips. */ +.tip +{ + color: #0000FF; + font-style: italic; + cursor: pointer; + text-decoration:underline; +} + +/* Applies to text styled as math. This text is passed as a parameter to the italics SSC definition */ +.math +{ + font-family: Times New Roman; + font-size: 125% +} + +/* The sourceCodeList class doesn't appear in the transforms. + TODO: Find out whether this style is needed for the doc spec. */ +/* +.sourceCodeList +{ + font-family: Verdana; + font-size: 90%; +} +*/ + +/* The viewCode class doesn't appear in the transforms. + TODO: Find out whether this style is needed for the doc spec. */ +/* +pre.viewCode +{ + width: 100%; + overflow: auto; +} +*/ + +/* Dropdown areas */ + +#devlangsMenu { + position: absolute; + visibility: hidden; + border-style: solid; + border-width: 1px; + border-color: #f3cbb5; + background: #FCECE4; + padding-top: 4px; + padding-bottom: 4px; + padding-left: 4px; + padding-right:8px; + font-size: 70%; +} + +div.OH_outerContent #devlangsMenu { + font-size: 91%; +} + +#memberOptionsMenu { + position: absolute; + visibility: hidden; + border-style: solid; + border-width: 1px; + border-color: #f3cbb5; + background: #FCECE4; + padding-top: 4px; + padding-bottom: 4px; + padding-left: 4px; + padding-right:8px; + font-size: 70%; +} + +div.OH_outerContent #memberOptionsMenu { + font-size: 91%; +} + +#memberFrameworksMenu { + position: absolute; + visibility: hidden; + border-style: solid; + border-width: 1px; + border-color: #f3cbb5; + background: #FCECE4; + padding-top: 4px; + padding-bottom: 4px; + padding-left: 4px; + padding-right:8px; + font-size: 70%; +} + +div.OH_outerContent #memberFrameworksMenu { + font-size: 91%; +} + +/* Applies to the checkbox labels in the filter drop-downs for devlang, member options, and member platforms. */ +.checkboxLabel +{ + color: #0000FF; + cursor: pointer; + text-decoration:underline; + padding-bottom:4; + font-size:90%; +} + +img#devlangsDropdownImage +{ + border: 0; + margin-left: 0; + vertical-align: middle; +} + +/* Formats the Members Options filter drop-down image. */ +img#memberOptionsDropdownImage +{ + border: 0; + margin-left: 0; + vertical-align: middle; +} + +/* Formats the Members Platforms filter drop-down image. */ +img#memberFrameworksDropdownImage +{ + border: 0; + margin-left: 0; + vertical-align: middle; +} + +/* Line seperating footer from main body */ + +div.footerLine { + margin: 0; + width: 100%; + padding-top: 8; + padding-bottom: 6; + /*padding-left: 5; + padding-right: 2;*/ + +} + +div.hr1 { + margin: 0; + width: 100%; + height: 1px; + padding: 0; + background: #C8CDDE; + font-size: 1px; +} + +div.hr2 { + margin: 0; + width: 100%; + height: 1px; + padding: 0; + background: #D4DFFF; + font-size: 1px; +} + +div.hr3 { + margin: 0; + width: 100%; + height: 1px; + padding: 0; + background: #EEEEFF; + font-size: 1px; +} + +span.cs { + display: none; +} + +span.vb { + display: none; +} + +span.cpp { + display: none; +} + +span.nu { + display: inline; +} + +span.fs +{ + display: none; +} + +span.code { + font-family: Monospace, Courier New, Courier; + font-size: 105%; + color: #000066; +} +span.ui { + font-weight: bold; +} +span.math { + font-style: italic; +} +span.input { + font-weight: bold; +} +span.term { + font-style: italic; +} +span.label +{ + font-weight: bold; +} +span.foreignPhrase { + font-style: italic; +} +span.placeholder { + font-style: italic; +} +span.keyword +{ + font-weight: bold; +} +span.typeparameter +{ + font-style:italic; +} + +div.caption +{ + font-weight: bold; + font-size:100%; + color:#003399; +} + +/* syntax styles */ + +div.code span.identifier +{ + /*font-weight: bold;*/ +} + +div.code span.keyword +{ + /*color: green;*/ + color: #871F78; +} + +div.code span.parameter +{ + font-style: italic; + /*color: purple;*/ +} + +div.code span.literal +{ + /*color: purple;*/ + color:#8B0000; +} + +div.code span.comment +{ + /*color: red;*/ + color: #006400; +} + +span.syntaxLabel +{ + color:#0481DA; + font-weight:bold; +} +span.introStyle +{ + color:DarkGray; +} + +div.seeAlsoStyle +{ + padding-top:5px; + +} + +td.nsrBottom +{ + height: 0.6em; + width: 100%; +} + +/* end of syntax styles */ + +/* Glossary */ +SPAN.clsGlossary {cursor: default; color: #509950; font-weight: bold;} +DIV.clsTooltip {border: 1px solid black; padding: 2px; position: absolute; top: 0; left: 0; display: none; background-color: #FFFFAA; color: black; font-size: 8pt; font-family: Arial;} + + +/* FB STYLES */ +span.feedbackcss +{ + font-size: 110%; + width:100%; + margin-left: 15px; +/* + border-width: 1px 1px 1px 1px; + border-style: solid; + border-color:#C8CDDE; +*/ +} + +div#feedbackarea table +{ + margin-bottom:0px; + margin-top:0px; + margin-left: 0; + width:300; + border-width: 0px 0px 0px 0px; +} + +div#feedbackarea table td +{ + /*background-color: #D4DFFF;*/ + font-family:Verdana; + font-size:100%; + text-align:center; + /*color: #003399;*/ + border-bottom:0px; +} + +div#feedbackarea p +{ + font-size:100%; + /*background-color: #D4DFFF;*/ + width: 100%; + margin-bottom: 0; + margin-top: 0; + margin-left: 6; + margin-right: 5; +} +div#feedbackarea H5 +{ +margin-top:0px; + margin-bottom:0.7em; + font-size:10pt; + margin-left: 6; +} +p.feedbackarea +{ + width:expression(document.body.clientWidth-27); + font-size:100%; + background-color: #D4DFFF; +} + +input#submitFeedback +{ + font-size:100%; + text-align:center; + /*background-color:#D4DFFF; */ +} + +span#feedbackarea +{ +/* + background-color: #D4DFFF; + color: #003399; + border-color:#C8CDDE; +*/ + width:100%; +} +div#feedbackarea +{ + /*background-color: #D4DFFF; + color: #003399;*/ + width:100%; +} +span.filterOnHover +{ + color: #E85F17; +} +span.filter +{ + color: #0000FF; +} + diff --git a/Help/styles/Whidbey/presentation.css b/Help/styles/Whidbey/presentation.css new file mode 100644 index 0000000..b0d9c11 --- /dev/null +++ b/Help/styles/Whidbey/presentation.css @@ -0,0 +1,1061 @@ +/* * * This file was autogenerated by Styler at 02:02 on 02/15/2003 * * */ + + +/*********************************************************** + * SCRIPT-SUPPORTING STYLES + ***********************************************************/ + +/* Defines the userData cache persistence mechanism. */ +.userDataStyle +{ + behavior: url(#default#userData); +} + +/* Used to save the scroll bar position when navigating away from a page. */ +div.saveHistory +{ + behavior: url(#default#saveHistory); +} + +/* Formats the expand/collapse images for all collapsible regions. */ +img.toggle +{ + border: 0; + margin-right: 5; +} + +/* Formats the Collapse All/Expand All images. */ +img#toggleAllImage +{ + margin-left: 0; + vertical-align: middle; +} + +/* Supports XLinks */ +MSHelp\:link +{ + text-decoration: underline; + color: #0000ff; + hoverColor: #3366ff; + filterString: ; +} + + +/*********************************************************** + * CONTENT PRESENTATION STYLES + ***********************************************************/ + +body +{ + background: #FFFFFF; + color: #000000; + font-family: Verdana; + font-size: medium; + font-style: normal; + font-weight: normal; + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: 0; + width: 100%; +} + +dl +{ + margin-top: 15; + margin-bottom:5; + padding-left: 1; +} + +dl.authored dt { + font-style: bold; +} + +dd { + margin-left: 0; +} + +ul +{ + margin-top:0; + margin-bottom:0; + margin-left: 17; + list-style-type: disc; +} + +ul ul +{ + margin-bottom: 4; + margin-left: 17; + margin-top: 3; + list-style-type: disc; +} + +ol { + margin-top:0; + margin-bottom:0; + margin-left: 28; + list-style-type: decimal; +} + +ol ol { + margin-bottom: 4; + margin-left: 28; + margin-top: 3; + list-style-type: lower-alpha; +} + +li { + margin-top: 5; + margin-bottom: 5; +} + +p { + margin-top: 10; + margin-bottom: 5; +} + +a[href] { + color: #0000FF; +} + +a:visited { + color: #0000FF; +} + +a:hover { + color: #3366FF; +} + +code +{ + font-family: Monospace, Courier New, Courier; + font-size: 105%; + color: #000066; +} + +span.parameter { + font-style: italic; + font-weight:bold; +} + +span.italic { + font-style: italic; +} + +span.selflink { + font-weight: bold; +} + +span.nolink { + +} + +/*********************************************************** + * STRUCTURE PRESENTATION STYLES + ***********************************************************/ + +/* Applies to everything below the non-scrolling header region. */ +div#mainSection +{ + font-size: 62.5%; + width: 100%; +} +html>body #mainSection +{ + font-size:73%; + width: 100%; +} + +/* Applies to everything below the non-scrolling header region, minus the footer. */ +div#mainBody +{ + font-size: 100%; + margin-left: 15; + margin-top: 10; + padding-bottom: 20; +} + +html>body #mainBody +{ + font-size: 93%; + margin-left: 15; + margin-top: 10; + padding-bottom: 20; +} + +/* Adds right padding for all blocks in mainBody */ +div#mainBody p, div#mainBody ol, div#mainBody ul, div#mainBody dl +{ + padding-right: 5; +} + +/*------------------------------ Begin Non-scrolling Header Region Styles -------------------------------*/ +/* Applies to the entire non-scrolling header region. */ +div#header +{ + background-color: #D4DFFF; + padding-top: 0; + padding-bottom: 0; + padding-left: 0; + padding-right: 0; + width: 100%; +} + +/* Applies to both tables in the non-scrolling header region. */ +div#header table +{ + border-bottom-color: #C8CDDE; + border-bottom-style: solid; + border-bottom-width: 1; + width: 100%; +} + +/* Applies to cells in both tables in the non-scrolling header region. */ +div#header table td +{ + color: #0000FF; + font-size: 70%; + margin-top: 0; + margin-bottom: 0; + padding-right: 20; +} +/* Applies to second row in the upper table of the non-scrolling header region. */ +div#header table tr#headerTableRow2 td +{ + padding-left: 13px; +} + +/* Applies to the last row in the upper table of the non-scrolling header region. Text + in this row includes See Also, Constructors, Methods, and Properties. */ +div#header table tr#headerTableRow3 td +{ + padding-bottom: 2; + padding-top: 5; + padding-left: 15; +} + +/* Applies to the lower table in the non-scrolling header region. Text in this table + includes Collapse All/Expand All, Language Filter, and Members Options. */ +div#header table#bottomTable +{ + border-top-color: #FFFFFF; + border-top-style: solid; + border-top-width: 1; + text-align: left; + padding-left: 15; +} + +/* Formats the first column--the one that displays icons--in mref list tables (such as Public Constructors, + Protected Constructors, Public Properties, Protected Properties, and so on). */ +div#mainSection table td.imageCell +{ + white-space: nowrap; +} +/*------------------------------ End General Table Styles -------------------------------*/ + +/*------------------------------ Begin General Table Styles -------------------------------*/ + +div#mainBody div.alert, div#mainBody div.code, div#mainBody div.tableSection +{ + width:98.9%; +} + +div#mainBody div.section div.alert, div#mainBody div.section div.code, +div#mainBody div.section div.tableSection +{ + width:100%; +} + +div#mainBody div.section ul div.alert, div#mainBody div.section ul div.code, +div#mainBody div.section ul div.tableSection, div#mainBody div.section ol div.alert, +div#mainBody div.section ol div.code, div#mainBody div.section ol div.tableSection +{ + width:100%; +} + +div.alert p, div.code p +{ + margin-top:5; + margin-bottom:8; +} +dd p +{ + margin-top:2; + margin-bottom:8; +} +div.tableSection p +{ + margin-top:1; + margin-bottom:4; +} +li p +{ + margin-top:2; + margin-bottom:2; +} +div.seeAlsoNoToggleSection dl +{ + margin-top:8; + margin-bottom:1; + padding-left:1; +} +div.seeAlsoNoToggleSection dd p +{ + margin-top:2; + margin-bottom:8; +} +div.section dl +{ + margin-top:8; + margin-bottom:1; + padding-left:1; +} +div.section dd p +{ + margin-top:2; + margin-bottom:8; +} +/*------------------------------ End General Table Styles -------------------------------*/ + + + +/*------------------------------ Begin Syntax and Snipper Code Block Styles -------------------------------*/ +div.code table +{ + border: 0; + font-size: 95%; + margin-bottom: 5; + margin-top:-.4em; + width: 100% +} + +div.code table th +{ + background: #EFEFF7; + border-bottom-color: #C8CDDE; + border-bottom-style: solid; + border-bottom-width: 1; + color: #000066; + font-weight: bold; + padding-left: 5; + padding-right: 5; +} + +div.code table td +{ + background: #F7F7FF; + border-top-color: #FFFFFF; + border-top-style: solid; + border-top-width: 1; + padding-left: 5; + padding-right: 5; + padding-top: 5; +} +/* Applies to the running header text in the first row of the upper table in the + non-scrolling header region. */ +span#runningHeaderText +{ + color: #003399; + font-size: 90%; + padding-left: 13; +} + +/* Applies to the topic title in the second row of the upper table in the + non-scrolling header region. */ +span#nsrTitle +{ + color: #003399; + font-size: 120%; + font-weight: 600; +} +/*------------------------------ End Non-scrolling Header Region Styles -------------------------------*/ + + +/* Formats the footer. Currently, the transforms pass in two parameters to the + footer SSC, but the default footer SSC doesn't use either parameter. + TODO: Investigate whether the default footer SSC has any impact on doc spec. */ +div#footer +{ + font-size: 80%; + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: 0; + padding-top: 8; + padding-bottom: 6; + padding-left: 5; + padding-right: 2; + width: 100%; +} + +html>body div#footer +{ + font-size: 80%; + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: 0; + padding-top: 2; + padding-bottom: 6; + padding-left: 5; + padding-right: 2; + width: 98%; +} + +/* Unable to find this style in the transforms. The default footer SSC adds a plain horizontal rule. + TODO: Determine whether this style is required by the doc spec. */ +/* +hr#footerHR +{ + border-bottom-color: #EEEEFF; + border-bottom-style: solid; + border-bottom-width: 1; + border-top-color: C8CDDE; + border-top-style: solid; + border-top-width: 1; + height: 3; + color: #D4DFFF; +} +*/ + +/******************************************************************************************************************** + Collapsible Section Structure + +

// Format of the collapsible section text + // Defines the onclick procedure for the expand/collapse section + // Expand/collapse image + + +

+ +
// The body of the collapsible section; hidden by default +
+ + + The ExpandCollapse() function is responsible for toggling the expand/collapse image, and for + displaying/hiding the body of the collapsible section. +********************************************************************************************************************/ + +/* Applies to the body of a collapsible section */ +div.seeAlsoNoToggleSection +{ + margin-left:0; + padding-top: 2; + padding-bottom: 2; + padding-left: 0; + padding-right: 15; + width: 100%; +} + +div.section +{ + margin-left:0; + padding-top: 0; + padding-bottom: 0; + padding-left: 16; + padding-right: 15; + width: 100%; +} +html>body div.section +{ + margin-left:0; + padding-top: 2; + padding-bottom: 2; + padding-left: 16; + padding-right: 15; + width: 97%; +} +div.seeSection +{ + margin-left:0; + padding-top: 0; + padding-bottom: 2; + padding-left: 16; + padding-right: 15; + width: 100%; +} + +div.section p +{ + margin-top: 0 px; + margin-bottom: 0px; +} + +/*------------------------------ Begin Heading Styles -------------------------------*/ +/* As far as I can tell, only

tags use this class. + TODO: Decide whether to roll these attributes into the h1.heading style */ +.heading +{ + font-weight: bold; + margin-top: 18; + margin-bottom: 8; +} + +/* All

headings. */ +h1.heading +{ + color: #003399; + font-size: 130%; +} + +/* Applies to table titles and subsection titles. */ +.subHeading +{ + font-weight: bold; + margin-bottom: 4; +} +.procedureSubHeading +{ + font-weight: bold; + margin-bottom: 4; +} + +/* Formats the titles of author-generated tables. */ +h3.subHeading +{ + color: #000000; + font-size: 120%; + font-weight:800; +} + +h3.procedureSubHeading +{ + color: #003399; + font-size: 120%; +} + +/* Formats the titles of all subsections. */ +h4.subHeading +{ + color: #000000; + font-size: 110%; + font-weight:800; +} +span.labelheading, div.labelheading +{ + font-size:100%; + color:#003399; +} + +/*------------------------------ End Heading Styles -------------------------------*/ + + +/*------------------------------ Begin Image Styles -------------------------------*/ +img.copyCodeImage +{ + border: 0; + margin: 1; + margin-right: 3; +} + +img.downloadCodeImage +{ + border: 0; + margin-right: 3; +} + +img.viewCodeImage +{ + border: 0; + margin-right: 3; +} + +img.note +{ + border: 0; + margin-right: 3; +} +/*------------------------------ End Image Styles -------------------------------*/ + + +/*------------------------------ Begin General Table Styles -------------------------------*/ +div#mainSection table +{ + border: 0; + font-size: 100%; + width: 98.9%; + margin-top: 5px; + margin-bottom: 5px; +} + +div#mainSection table tr +{ + vertical-align: top; +} + +div#mainSection table th +{ + background-color: #EFEFF7; + border-bottom: 1px solid #C8CDDE; + border-left: 1px none #D5D5D3; + color: #000066; + padding-left: 5px; + padding-right: 5px; + text-align: left; +} + +div#mainSection table td +{ + background-color: #F7F7FF; + border-bottom: 1px solid #D5D5D3; + border-left: 1px none #D5D5D3; + padding-left: 5px; + padding-right: 5px; +} + +/* Formats the first column--the one that displays icons--in mref list tables (such as Public Constructors, + Protected Constructors, Public Properties, Protected Properties, and so on). */ +div#mainSection table td.imageCell +{ + white-space: nowrap; +} +/*------------------------------ End General Table Styles -------------------------------*/ + + +/*------------------------------ Begin Syntax and Snipper Code Block Styles -------------------------------*/ +div.code table +{ + border: 0; + font-size: 95%; + margin-bottom: 5; + width: 100% +} + +div.code table th +{ + background: #EFEFF7; + border-bottom-color: #C8CDDE; + border-bottom-style: solid; + border-bottom-width: 1; + color: #000066; + font-weight: bold; + padding-left: 5; + padding-right: 5; +} + +div.code table td +{ + background: #F7F7FF; + border-top-color: #FFFFFF; + border-top-style: solid; + border-top-width: 1; + padding-left: 5; + padding-right: 5; + padding-top: 5; +} +/*------------------------------ End Syntax and Snipper Code Block Styles -------------------------------*/ + + +/*------------------------------ Begin Note Styles -------------------------------*/ +div.alert table +{ + border: 0; + font-size: 100%; + width: 100%; +} + +div.alert table th +{ + background: #EFEFF7; + border-bottom-width: 0; + color: #000066; + padding-left: 5; + padding-right: 5; +} + +div.alert table td +{ + background: #F7F7FF; + border-top-color: #FFFFFF; + border-top-style: solid; + border-top-width: 1; + padding-left: 5; + padding-right: 5; +} + + +/*------------------------------ End Note Styles -------------------------------*/ + + +/* Applies to the copy code text and image. */ +span.copyCode +{ + color: #0000ff; + font-size: 90%; + font-weight: normal; + cursor: pointer; + float: right; + display: inline; + text-align: right; +} + +span.copyCodeOnHover +{ + color: #E85F17; + font-size:xx-small; + font-weight: normal; + cursor: pointer; + float: right; + display: inline; + text-align: right; + text-decoration: underline; +} + +.downloadCode +{ + color: #0000ff; + font-size: 90%; + font-weight: normal; + cursor: pointer; +} + +.viewCode +{ + color: #0000ff; + font-size: 90%; + font-weight: normal; + cursor: pointer; +} + +/* Formats the code in syntax and usage blocks, and the code in non-snipper code blocks. */ +div.code pre +{ + font-family: Monospace, Courier New, Courier; + font-size: 105%; + color: #000066; + word-wrap: break-word; + background: #F7F7FF; +} + +/* Formats parameter tooltips. */ +.tip +{ + color: #0000FF; + font-style: italic; + cursor: pointer; + text-decoration:underline; +} + +/* Applies to text styled as math. This text is passed as a parameter to the italics SSC definition */ +.math +{ + font-family: Times New Roman; + font-size: 125% +} + +/* The sourceCodeList class doesn't appear in the transforms. + TODO: Find out whether this style is needed for the doc spec. */ +/* +.sourceCodeList +{ + font-family: Verdana; + font-size: 90%; +} +*/ + +/* The viewCode class doesn't appear in the transforms. + TODO: Find out whether this style is needed for the doc spec. */ +/* +pre.viewCode +{ + width: 100%; + overflow: auto; +} +*/ + +/* Dropdown areas */ + +#devlangsMenu { + position: absolute; + visibility: hidden; + border-style: solid; + border-width: 1px; + border-color: #C8CDDE; + background: #d4dfff; + padding: 4px; + font-size: 70%; +} + +#memberOptionsMenu { + position: absolute; + visibility: hidden; + border-style: solid; + border-width: 1px; + border-color: #C8CDDE; + background: #d4dfff; + padding: 4px; + font-size: 70%; +} + +#memberFrameworksMenu { + position: absolute; + visibility: hidden; + border-style: solid; + border-width: 1px; + border-color: #C8CDDE; + background: #d4dfff; + padding: 4px; + font-size: 70%; +} + +/* Applies to the checkbox labels in the filter drop-downs for devlang, member options, and member platforms. */ +.checkboxLabel +{ + color: #0000FF; + cursor: pointer; + text-decoration:underline; + padding-bottom:4; +} + +img#devlangsDropdownImage +{ + border: 0; + margin-left: 0; + vertical-align: middle; +} + +/* Formats the Members Options filter drop-down image. */ +img#memberOptionsDropdownImage +{ + border: 0; + margin-left: 0; + vertical-align: middle; +} + +/* Formats the Members Platforms filter drop-down image. */ +img#memberFrameworksDropdownImage +{ + border: 0; + margin-left: 0; + vertical-align: middle; +} + +/* Line seperating footer from main body */ + +div.footerLine { + margin: 0; + width: 100%; + padding-top: 8; + padding-bottom: 6; + padding-left: 5; + padding-right: 2; + +} + +div.hr1 { + margin: 0; + width: 100%; + height: 1px; + padding: 0; + background: #C8CDDE; + font-size: 1px; +} + +div.hr2 { + margin: 0; + width: 100%; + height: 1px; + padding: 0; + background: #D4DFFF; + font-size: 1px; +} + +div.hr3 { + margin: 0; + width: 100%; + height: 1px; + padding: 0; + background: #EEEEFF; + font-size: 1px; +} + +span.cs { + display: none; +} + +span.vb { + display: none; +} + +span.cpp { + display: none; +} + +span.nu { + display: inline; +} + +span.code { + font-family: Monospace, Courier New, Courier; + font-size: 105%; + color: #000066; +} +span.ui { + font-weight: bold; +} +span.math { + font-style: italic; +} +span.input { + font-weight: bold; +} +span.term { + font-style: italic; +} +span.label +{ + font-weight: bold; +} +span.foreignPhrase { + font-style: italic; +} +span.placeholder { + font-style: italic; +} +span.keyword +{ + font-weight: bold; +} +span.typeparameter +{ + font-style:italic; +} + +div.caption +{ + font-weight: bold; + font-size:100%; + color:#003399; +} + +/* syntax styles */ + +div.code span.identifier +{ + font-weight: bold; +} + +div.code span.keyword +{ + color: green; +} + +div.code span.parameter +{ + font-style: italic; + color: purple; +} + +div.code span.literal +{ + color: purple; +} + +div.code span.comment +{ + color: red; +} + +span.syntaxLabel +{ + color:#0481DA; + font-weight:bold; +} +span.introStyle +{ + color:DarkGray; +} + +div.seeAlsoStyle +{ + padding-top:5px; + +} +/* end of syntax styles */ + +/* Glossary */ +SPAN.clsGlossary {cursor: default; color: #509950; font-weight: bold;} +DIV.clsTooltip {border: 1px solid black; padding: 2px; position: absolute; top: 0; left: 0; display: none; background-color: #FFFFAA; color: black; font-size: 8pt; font-family: Arial;} + + +/* FB STYLES */ +span.feedbackcss +{ + width:100%; + margin-left: 5px; +/* + border-width: 1px 1px 1px 1px; + border-style: solid; + border-color:#C8CDDE; +*/ +} + +div#feedbackarea table +{ + margin-bottom:0px; + margin-top:0px; + margin-left: 0; + width:300; + border-width: 0px 0px 0px 0px; +} + +div#feedbackarea table td +{ + background-color: #D4DFFF; + font-family:Verdana; + font-size:100%; + text-align:center; + color: #003399; + border-bottom:0px; +} + +div#feedbackarea p +{ + font-size:100%; + background-color: #D4DFFF; + width: 100%; + margin-bottom: 0; + margin-top: 0; + margin-left: 6; + margin-right: 5; +} +div#feedbackarea H5 +{ + margin-bottom:0.7em; + margin-left: 6; +} +p.feedbackarea +{ + width:expression(document.body.clientWidth-27); + font-size:100%; + background-color: #D4DFFF; +} + +input#submitFeedback +{ + font-size:105%; + text-align:center; + background-color:#D4DFFF; +} + +span#feedbackarea +{ +/* + background-color: #D4DFFF; + color: #003399; + border-color:#C8CDDE; +*/ + width:100%; +} + +div#feedbackarea +{ + background-color: #D4DFFF; + color: #003399; + width:100%; +} + + + + diff --git a/Help/styles/highlight.css b/Help/styles/highlight.css new file mode 100644 index 0000000..4ef650c --- /dev/null +++ b/Help/styles/highlight.css @@ -0,0 +1,28 @@ +.highlight-inline { color: #000066; font-size: 12pt; font-family: Menlo,Monaco,Consolas,"Courier New",monospace !important; } +.code pre { clear: both; width: 99.5%; background-color: #fff; padding: 0.4em; font-size: 9pt; font-family: Menlo,Monaco,Consolas,"Courier New",monospace !important; margin-top: 0px; margin-bottom: 1em; } /* this one to edit for Example code */ +.highlight-pre { clear: both; width: 99.5%; background-color: #EFEFF7; padding: 0.4em; font-size: 9pt; font-family: Menlo,Monaco,Consolas,"Courier New",monospace !important; margin-top: 0px; margin-bottom: 1em; } +.highlight-comment { color: #006633; } +.highlight-literal { color: #CC0000; } +.highlight-number { color: #009966; } +.highlight-keyword { color: #0000FF; } +.highlight-preprocessor { color: #996666; } +.highlight-xml-tag { color: #AA4400 } +.highlight-xml-bracket { color: #0000FF } +.highlight-xml-comment { color: #008800 } +.highlight-xml-cdata { color: #AA0088 } +.highlight-xml-attribute-name { color: #0000FF } +.highlight-xml-attribute-equal { color: #000000 } +.highlight-xml-attribute-value {color: #CC0000 } +.highlight-title { font-weight: bold; margin-top: 1em; margin-bottom: 2px; border-bottom: #ccc 1px solid; padding-bottom: 3px; } +.highlight-copycode { float: right; padding-right: 10px; font-weight: normal; cursor: pointer; } +.highlight-copycode_h { float: right; padding-right: 10px; font-weight: normal; cursor: pointer; text-decoration: underline} +.highlight-lineno { font-size: 80%; color: black } +.highlight-lnborder { border-right-style: solid; border-right-width: 1px; border-color: gray; padding-right: 4px; margin-right: 4px; width: 4px;} +.highlight-spacer { padding-right: 20px; } +.highlight-spacerShort { padding-right: 5px; } +.highlight-collapsebox { cursor: pointer; color: black; text-align: center; border-style: solid; border-width: 1px; border-color: gray; margin-left: 2px; margin-right: 5px; } +.highlight-collapsed { border-style: solid; border-width: 1px; border-color: gray; margin: 2px; color: gray; } +.highlight-expanded { border-left-style: solid; border-left-width: 1px; border-color: gray; margin-left: 2px; margin-right: 10px; } +.highlight-endblock { border-left-style: solid; border-left-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; border-color: gray; margin-left: 2px; margin-right: 10px; } +.highlight-pshell-cmdlet { color: #5A9EA5; font-weight: bold; } +.highlight-namespace { color: #008284; } diff --git a/Help/styles/highlight.js b/Help/styles/highlight.js new file mode 100644 index 0000000..467fb20 --- /dev/null +++ b/Help/styles/highlight.js @@ -0,0 +1,187 @@ +//============================================================================= +// System : Color Syntax Highlighter +// File : Highlight.js +// Author : Eric Woodruff (Eric@EWoodruff.us) +// Updated : 11/13/2007 +// Note : Copyright 2006, Eric Woodruff, All rights reserved +// +// This contains the script to expand and collapse the regions in the +// syntax highlighted code. +// +//============================================================================= + +// Expand/collapse a region +function HighlightExpandCollapse(showId, hideId) +{ + var showSpan = document.getElementById(showId), + hideSpan = document.getElementById(hideId); + + showSpan.style.display = "inline"; + hideSpan.style.display = "none"; +} + +// Copy the code if Enter or Space is hit with the image focused +function CopyColorizedCodeCheckKey(titleDiv, eventObj) +{ + if(eventObj != undefined && (eventObj.keyCode == 13 || + eventObj.keyCode == 32)) + CopyColorizedCode(titleDiv); +} + +// Change the icon as the mouse moves in and out of the Copy Code link +// There should be an image with the same name but an "_h" suffix just +// before the extension. +function CopyCodeChangeIcon(linkSpan) +{ + var image = linkSpan.firstChild.src; + var pos = image.lastIndexOf("."); + + if(linkSpan.className == "highlight-copycode") + { + linkSpan.className = "highlight-copycode_h"; + linkSpan.firstChild.src = image.substr(0, pos) + "_h" + + image.substr(pos); + } + else + { + linkSpan.className = "highlight-copycode"; + linkSpan.firstChild.src = image.substr(0, pos - 2) + image.substr(pos); + } +} + +// Copy the code from a colorized code block to the clipboard. +function CopyColorizedCode(titleDiv) +{ + var preTag, idx, line, block, htmlLines, lines, codeText, hasLineNos, + hasRegions, clip, trans, copyObject, clipID; + var reLineNo = /^\s*\d{1,4}/; + var reRegion = /^\s*\d{1,4}\+.*?\d{1,4}-/; + var reRegionText = /^\+.*?\-/; + + // Find the
 tag containing the code.  It should be in the next
+    // element or one of its children.
+    block = titleDiv.nextSibling;
+
+    while(block.nodeName == "#text")
+        block = block.nextSibling;
+
+    while(block.tagName != "PRE")
+    {
+        block = block.firstChild;
+
+        while(block.nodeName == "#text")
+            block = block.nextSibling;
+    }
+
+    if(block.innerText != undefined)
+        codeText = block.innerText;
+    else
+        codeText = block.textContent;
+
+    hasLineNos = block.innerHTML.indexOf("highlight-lineno");
+    hasRegions = block.innerHTML.indexOf("highlight-collapsebox");
+    htmlLines = block.innerHTML.split("\n");
+    lines = codeText.split("\n");
+
+    // Remove the line numbering and collapsible regions if present
+    if(hasLineNos != -1 || hasRegions != -1)
+    {
+        codeText = "";
+
+        for(idx = 0; idx < lines.length; idx++)
+        {
+            line = lines[idx];
+
+            if(hasRegions && reRegion.test(line))
+                line = line.replace(reRegion, "");
+            else
+            {
+                line = line.replace(reLineNo, "");
+
+                // Lines in expanded blocks have an extra space
+                if(htmlLines[idx].indexOf("highlight-expanded") != -1 ||
+                  htmlLines[idx].indexOf("highlight-endblock") != -1)
+                    line = line.substr(1);
+            }
+
+            if(hasRegions && reRegionText.test(line))
+                line = line.replace(reRegionText, "");
+
+            codeText += line;
+
+            // Not all browsers keep the line feed when split
+            if(line[line.length - 1] != "\n")
+                codeText += "\n";
+        }
+    }
+
+    // IE or FireFox/Netscape?
+    if(window.clipboardData)
+        window.clipboardData.setData("Text", codeText);
+    else
+        if(window.netscape)
+        {
+            // Give unrestricted access to browser APIs using XPConnect
+            try
+            {
+                netscape.security.PrivilegeManager.enablePrivilege(
+                    "UniversalXPConnect");
+            }
+            catch(e)
+            {
+                alert("Universal Connect was refused, cannot copy to " +
+                    "clipboard.  Go to about:config and set " +
+                    "signed.applets.codebase_principal_support to true to " +
+                    "enable clipboard support.");
+                return;
+            }
+
+            // Creates an instance of nsIClipboard
+            clip = Components.classes[
+                "@mozilla.org/widget/clipboard;1"].createInstance(
+                Components.interfaces.nsIClipboard);
+
+            // Creates an instance of nsITransferable
+            if(clip)
+                trans = Components.classes[
+                    "@mozilla.org/widget/transferable;1"].createInstance(
+                    Components.interfaces.nsITransferable);
+
+            if(!trans)
+            {
+                alert("Copy to Clipboard is not supported by this browser");
+                return;
+            }
+
+            // Register the data flavor
+            trans.addDataFlavor("text/unicode");
+
+            // Create object to hold the data
+            copyObject = new Object();
+
+            // Creates an instance of nsISupportsString
+            copyObject = Components.classes[
+                "@mozilla.org/supports-string;1"].createInstance(
+                Components.interfaces.nsISupportsString);
+
+            // Assign the data to be copied
+            copyObject.data = codeText;
+
+            // Add data objects to transferable
+            trans.setTransferData("text/unicode", copyObject,
+                codeText.length * 2);
+
+            clipID = Components.interfaces.nsIClipboard;
+
+            if(!clipID)
+            {
+                alert("Copy to Clipboard is not supported by this browser");
+                return;
+            }
+
+            // Transfer the data to the clipboard
+            clip.setData(trans, null, clipID.kGlobalClipboard);
+        }
+        else
+            alert("Copy to Clipboard is not supported by this browser");
+}
diff --git a/Help/styles/lightweight.css b/Help/styles/lightweight.css
new file mode 100644
index 0000000..7a78479
--- /dev/null
+++ b/Help/styles/lightweight.css
@@ -0,0 +1,1063 @@
+
+html {
+    font-size: 100%;
+	margin:0;
+	padding:0;
+}
+
+body {
+	font:.875em/1.35 'Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif;
+	margin:0;
+	padding:0;
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+	font-size:0.8125em;
+   line-height: 153.8%;
+	color:#000;
+	font-style:normal;
+	padding-right:0;
+	padding-left:0;
+	word-wrap:break-word;
+        /*overflow: auto;*/
+        /*overflow-x: hidden;*/
+}
+
+p {
+	color:#2a2a2a;
+/*
+	margin-top:0;
+	margin-bottom:0;
+	padding-bottom:15px;
+*/
+	line-height:138.5%;
+}
+
+a#syntaxSection, a#exceptionsSection, a#remarksSection, a#seeAlsoSection, a#familySection {
+	color: blue; display: none !important; visibility: hidden !important; overflow: hidden; position: absolute; clip: rect(0 0 0 0); height: 1px; width: 1px; margin: -1px; padding: 0; border: 0;
+}
+
+a:link {
+	color:#3390B1;
+	text-decoration:none
+}
+
+a:hover {
+	text-decoration:underline !important
+}
+
+a:visited {
+	color:#3390B1;
+	text-decoration:none
+}
+
+img {
+	border:0
+}
+
+.h1, h1 {
+	margin:0;
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+	font-size:2.0em;
+	color:#000;
+	font-weight:400;
+	line-height:100%;
+}
+
+.h2, h2 {
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+	font-size:1.3em;
+	color:#000;
+	font-weight:bold;
+	line-height:100%;
+}
+
+.h3, h3 {
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+	font-size:1.1em;
+	color:#000;
+	font-weight:bold;
+	line-height:100%;
+}
+
+.title table {
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+	font-size:1.1em;
+	color:#333;
+	font-style:normal
+}
+
+table {
+	border-style:solid;
+	border-width:1px;
+	border-color:#bbb;
+	border-collapse:collapse
+}
+
+table th {
+	border-style:solid;
+	border-width:1px;
+	border-color:#bbb;
+	padding: 10px 8px;
+	font-weight:bold;
+}
+
+table td {
+	border-style:solid;
+	border-width:1px;
+	border-color:#bbb;
+	padding: 10px 8px;
+}
+
+td p {
+	margin-top:0;
+	margin-bottom:0;
+}
+
+
+.borderLine {
+	border-width:1px;
+	border-color:#e5e5e5;
+}
+
+.orange {
+	color:#707070;
+}
+
+.black {
+	color:#333;
+}
+
+.blueLink {
+	color:#3390B1;
+}
+
+.blueTitle {
+	color:#68217a;
+}
+
+.gray {
+	color:#7d7d7d;
+}
+
+.header {
+}
+
+.footer {
+	float:none;
+	clear:both
+}
+
+.navigation {
+	border-right:1px Solid #bbb;
+	margin-right:-1px;
+	float:left;
+	overflow:hidden;
+	width:280px;
+	vertical-align:top;
+	text-align:left;
+	padding-bottom:96px
+}
+
+.searchBoxContainer {
+	border:none;
+	height:23px;
+	margin:13px;
+	padding:0;
+	white-space:nowrap;
+	width:256px;
+}
+
+.SearchButton {
+	margin-left:1px;
+	vertical-align:middle;
+	margin-top:2px;
+	border:solid 0 #333;
+	text-decoration:none;
+	cursor:pointer;
+	border-width:0;
+	position:relative;
+	overflow:hidden;
+	width:19px;
+	height:19px;
+	display:inline-block
+}
+
+.SearchButton img, .SearchButton input {
+	position:absolute;
+	margin:0;
+	width:auto;
+	height:auto
+}
+
+.SearchPanel {
+	float:left;
+	font-style:italic
+}
+
+.searchBox {
+	border: none;
+	width:100%;
+}
+
+.searchBox td {
+	border:none;
+	margin:0;
+	padding:0;
+}
+
+.searchBox td.searchTextBoxTd {
+	width:100%;
+}
+
+.searchBox td.searchButtonTd {
+	width:19px;
+}
+
+.searchTextBox {
+	border:1px solid white;
+	margin: 0;
+	width:100%;
+}
+
+.cl_slice_Search a {
+	display: block;
+	overflow: hidden;
+	width: 19px;
+	height: 19px;
+	position: relative;
+	padding: 0pt;
+	margin: 0pt;
+}
+.cl_search_icon {
+	left:-272px;
+	top:-3px;
+	position: relative;
+}
+
+.nav {
+	padding-top:8px;
+	padding-bottom:13px
+}
+
+.nav a {
+	text-decoration:none;
+	text-align:left;
+	white-space:nowrap;
+	overflow:hidden;
+	padding-top:4pt;
+	padding-bottom:4pt
+}
+
+.nav a:hover {
+	text-decoration:underline
+}
+
+.nav .toclevel0 {
+	padding-left:13px
+}
+
+.nav .toclevel1 {
+	padding-left:23px
+}
+
+.nav .toclevel2 {
+	padding-left:29px
+}
+
+.nav .ancestry {
+}
+
+.nav .current {
+}
+
+.nav .current a {
+	font-weight:bold;
+	color:#707070
+}
+
+.nav .children {
+	padding-bottom:13px
+}
+
+.nav .related {
+	padding-top:5px;
+	padding-left:13px;
+	float:left
+}
+
+.nav .related .subheader {
+	color:#333;
+	font-weight:bold;
+	padding-bottom:5px
+}
+
+.nav .navSeperator {
+	height:4px;
+	width:100%;
+	float:left
+}
+
+.contentPlaceHolder {
+	border-width:1px;
+	text-align:left;
+	width:100%;
+	border-bottom-style:none;
+	overflow:hidden
+}
+
+.content {
+	padding-top:13px;
+	text-align:left;
+	border-width:1px;
+	overflow:hidden;
+	width:auto;
+	border-left:1px solid #bbb;
+	border-bottom:0
+}
+
+.content .summary {
+	color:#333;
+}
+
+.logo {
+	float:right;
+	margin-right:13px;
+	margin-left:50px
+}
+
+.topicContainer {
+	padding-left:10pt;
+	padding-right:10pt;
+	padding-bottom:96px
+}
+
+.topicContainer .topic {
+}
+
+.topicContainer .topic #mainSection {
+	padding-top:30px
+}
+
+.topicContainer .topic .title {
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+	font-size:2.77em;
+	color:#000;
+	font-weight:400;
+}
+
+.topicContainer .topic .majorTitle {
+	font-weight:bold;
+	color:#5d5d5d;
+	margin: 0;
+}
+
+.topicContainer table {
+	width:100%
+}
+
+.topicContainer table th {
+	background-color:#eDeDeD;
+	padding: 10px 8px 10px 8px;
+	text-align:left;
+	height:21px;
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+	font-size:1.0em;
+	color:#636363;
+	font-style:normal;
+	font-weight:bold;
+}
+
+.topicContainer table th.iconColumn {
+	width:21px;
+}
+
+.topicContainer table tr {
+	vertical-align:top
+}
+
+.topicContainer table td {
+	background-color:#fff;
+	line-height:140%;
+	padding: 10px 8px 10px 8px;
+	margin:1px;
+}
+
+.topicContainer table td.imageCell {
+	white-space:nowrap
+}
+
+.topicEndLine {
+	clear:both
+}
+
+.hierarchy ul li {
+	list-style-type:none
+}
+
+.hierarchy {
+	margin-left:-26px
+}
+
+.LW_CollapsibleArea_TitleDiv {
+	margin-top:19px;
+	margin-bottom:19px;
+}
+
+.LW_CollapsibleArea_Title {
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+	font-size:2.16em;
+	color:#000;
+	font-weight:normal;
+	float:left;
+	padding-top: 15px;
+	padding-bottom: 5px;
+	margin: 0;
+}
+
+.LW_CollapsibleArea_HrDiv {
+	padding-top:12px;
+	clear:both;
+}
+
+.LW_CollapsibleArea_Hr {
+	border:none;
+	color:#e5e5e5;
+	margin-left:4px;
+	clear:both;
+	display: none;
+}
+
+dl {
+	margin-top: 0.5em;
+	margin-bottom: 0.5em;
+}
+
+.paging {
+	display:inline
+}
+
+.paging .page {
+	padding-right:3px;
+	padding-left:3px;
+	color:#3390B1
+}
+
+.paging a:hover {
+	color:#707070
+}
+
+.paging .rangeStart, .paging .rangeEnd, .paging .totalCount {
+	font-weight:bold
+}
+
+.paging .currentPage {
+	padding-right:3px;
+	padding-left:3px;
+	border:1px solid #ccc;
+	color:#707070;
+	font-weight:bold;
+	background-color:#eff5ff;
+	min-height:15px;
+	min-width:15px
+}
+
+.LW_CodeSnippetContainerTabs {
+	vertical-align:middle;
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+	font-size:10pt!important;
+	height:22px;
+	position:relative;
+	z-index:1
+}
+
+.LW_CodeSnippetContainerTabLeft, .LW_CodeSnippetContainerTabRight, .LW_CodeSnippetContainerTabLeftActive, .LW_CodeSnippetContainerTabRightActive {
+	width:1px;
+	height:20px;
+	float:left;
+	border-left:solid 1px red;
+	border-bottom:solid 1px red;
+	border-top:solid 1px red;
+}
+
+.LW_CodeSnippetContainerTabLeft {
+}
+
+.LW_CodeSnippetContainerTabRight {
+}
+
+.LW_CodeSnippetContainerTabLeftActive {
+	border-bottom:none
+}
+
+.LW_CodeSnippetContainerTabRightActive {
+	border-bottom:none
+}
+
+.LW_CodeSnippetContainerTabFirst, .LW_CodeSnippetContainerTabLast, .LW_CodeSnippetContainerTab, .LW_CodeSnippetContainerTabActiveFirst, .LW_CodeSnippetContainerTabActiveLast, .LW_CodeSnippetContainerTabActive {
+	height:19px;
+	float:left;
+	width:auto;
+	border-top:solid 1px #ccc;
+	border-bottom:solid 1px #ccc;
+	padding:0 1px 0 1px;
+	background:#eff5ff
+}
+
+.LW_CodeSnippetContainerTabFirst, .LW_CodeSnippetContainerTabActiveFirst {
+	padding:0 8px 0 6px
+}
+
+.LW_CodeSnippetContainerTabLast, .LW_CodeSnippetContainerTabActiveLast {
+	padding:0 6px 0 8px
+}
+
+.LW_CodeSnippetContainerTabActiveFirst, .LW_CodeSnippetContainerTabActiveLast, .LW_CodeSnippetContainerTabActive {
+	background:#fff;
+	border-bottom:solid 2px #fff
+}
+
+.LW_CodeSnippetContainerTab, .LW_CodeSnippetContainerTabActive, .LW_CodeSnippetContainerTabLast, .LW_CodeSnippetContainerTabActiveLast {
+	border-left:solid 1px #929292
+}
+
+.LW_CodeSnippetContainerTabActiveFirst a, .LW_CodeSnippetContainerTabActiveLast a, .LW_CodeSnippetContainerTabActive a {
+	color:#707070;
+	text-decoration:none
+}
+
+.LW_CodeSnippetContainerTab a, .LW_CodeSnippetContainerTab a:link, .LW_CodeSnippetContainerTab a:visited, .LW_CodeSnippetContainerTab a:active {
+	color:#3390B1;
+	text-decoration:none
+}
+
+.LW_CodeSnippetContainerTab a:hover {
+	color:#707070
+}
+
+.LW_CodeSnippetContainerTabFirst a:link, .LW_CodeSnippetContainerTabFirst a:visited, .LW_CodeSnippetContainerTabFirst a:active, .LW_CodeSnippetContainerTabLast a:link, .LW_CodeSnippetContainerTabLast a:visited, .LW_CodeSnippetContainerTabLast a:active {
+	color:#3390B1;
+	text-decoration:none
+}
+
+.LW_CodeSnippetContainerTabFirst a:hover, .LW_CodeSnippetContainerTabLast a:hover {
+	color:#707070
+}
+
+.LW_CodeSnippetToolBar {
+	width:auto;
+	height:auto;
+	border-top:solid 1px red;
+	border-left:solid 1px red;
+	border-right:solid 1px red;
+}
+
+.LW_CodeSnippetToolBarText {
+	float:right;
+	top:-10px;
+	position:relative;
+	background-color:#fff;
+	width:auto;
+	padding-left:4px;
+	padding-right:4px;
+	height:0
+}
+
+.LW_CodeSnippetToolBarText a:link, .LW_CodeSnippetToolBarText a:visited, .LW_CodeSnippetToolBarText a:active {
+	margin-left:5px;
+	margin-right:5px;
+	text-decoration:none;
+	color:#3390B1;
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+	font-size:10pt;
+	background-color:White;
+	padding-left:4px;
+	padding-right:4px
+}
+
+.LW_CodeSnippetToolBarText a:hover {
+	margin-left:5px;
+	margin-right:5px;
+	text-decoration:none;
+	color:#707070;
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+	font-size:10pt;
+	padding-left:4px;
+	padding-right:4px
+}
+
+.LW_CodeSnippetContainerCodeCollection {
+	border-left:solid 1px red;
+	border-bottom:solid 1px red;
+	border-right:solid 1px red;
+	clear:both;
+	margin-bottom:12px;
+	position:relative;
+	top:-3px
+}
+
+.LW_CodeSnippetContainerCode {
+	width:auto;
+	margin:0;
+	padding-right:21px;
+	padding-left:21px
+}
+
+.LW_CodeSnippetContainerTabLinkBold {
+	font-weight:bold!important
+}
+
+.LW_CodeSnippetContainerTabLinkNormal {
+	font-weight:normal!important
+}
+
+.LW_CodeSnippetContainerCode div {
+	padding:0;
+	margin:0
+}
+
+.LW_CodeSnippetContainerCode pre {
+	padding:5px;
+	margin:0;
+	font-family: Menlo,Monaco,Consolas,"Courier New",monospace !important;
+	word-break:break-all;
+	word-wrap:break-word;
+	font-style:normal;
+	font-weight:normal
+}
+
+.topicContainer .alert {
+	color: #636363;
+	border-left:solid 2px #bbb;
+	background-color:#E0DEDE;
+}
+
+.topicContainer div.alert {
+	padding:5px 10px 5px 10px;
+	margin-bottom: 5px;
+}
+
+.topicContainer .alert img {
+	padding-right:5px;
+}
+
+.topicContainer .alert p {
+	margin:0;
+}
+
+.Error {
+	padding-top:13px;
+	padding-left:13px;
+	padding-bottom:96px;
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+}
+
+.Error .titleContainer .pageTitle {
+	line-height:34px
+}
+
+.Error .body {
+	font-size:10pt;
+	padding-right:13px;
+	padding-top:48px
+}
+
+.contentNotFound {
+	padding-top:13px;
+	padding-left:13px
+}
+
+.contentNotFound .image {
+	float:right;
+	padding-right:13px
+}
+
+.contentNotFound .sectionHeader {
+	float:left;
+	padding-bottom:18px
+}
+
+.contentNotFound .mainMessage {
+	clear:both
+}
+
+.contentNotFound .searchcontainer .Search {
+	margin:0
+}
+
+.contentNotFound .subMessage .badRequestAddress {
+	color:#7d7d7d
+}
+
+.contentNotFound .subMessage .badRequestAddress .pageIdHighlight {
+	color:#707070;
+	font-weight:bold
+}
+
+.searchContent {
+	padding-top:17px;
+	padding-right:13px;
+	padding-bottom:96px;
+	padding-left:13px
+}
+
+.searchContent .line {
+	border-top-style:solid;
+	border-top-width:1px;
+	border-top-color:#bfbfbf;
+	margin-top:16px;
+	margin-bottom:22px;
+	height:1px
+}
+
+.searchContent .sectionHeader {
+	padding-bottom:13px
+}
+
+.searchContent .pageTitle {
+	padding-bottom:20px
+}
+
+.searchContent .Search {
+	width:256px;
+	margin-left:0;
+	margin-right:0;
+	height:24px;
+	padding-top:0;
+	border-width:0
+}
+
+.searchContent .info {
+	padding-top:16px;
+	padding-bottom:24px
+}
+
+.searchContent .info .term {
+	color:#707070;
+	font-weight:bold;
+	padding-right:15px
+}
+
+.searchContent .info .invalidTerm {
+	color:#333;
+	font-weight:bold
+}
+
+.searchContent .info .page {
+	padding-right:3px;
+	padding-left:3px;
+	color:#3390B1
+}
+
+.searchContent .info a:hover {
+	color:#707070
+}
+
+.searchContent .info .rangeStart, .searchContent .info .rangeEnd, .searchContent .info .totalCount {
+	font-weight:bold
+}
+
+.searchContent .info .currentPage {
+	padding-right:3px;
+	padding-left:3px;
+	border:1px solid #bbb;
+	color:#707070;
+	font-weight:bold;
+	background-color:#eff5ff;
+	min-height:15px;
+	min-width:15px
+}
+
+.searchContent .results {
+}
+
+.searchContent .results .result {
+	padding-top:5px;
+	padding-bottom:5px
+}
+
+.searchContent .results .result a {
+	color:#3390B1;
+	font-weight:bold
+}
+
+.searchContent .results .result a:visited {
+	color:#3390B1;
+	text-decoration:none
+}
+
+.searchContent .results .result .abstract {
+}
+
+.searchContent .results .result .url {
+	color:#7d7d7d;
+	font-style:italic
+}
+
+.searchContent .tips {
+	padding-top:32px
+}
+
+.searchContent .tips .tipsHeading {
+	padding-top:26px;
+	font-weight:bold
+}
+
+.searchContent .tips ul {
+	padding-left:0;
+	list-style-type:none;
+	margin-top:0
+}
+
+.contentNotFoundNoResults {
+	padding-bottom:96px
+}
+
+.localeSwitcher .titleContainer .expDescription {
+	clear:both;
+	color:#7d7d7d
+}
+
+.localeSwitcher .bodyContainer {
+	padding:0;
+	margin-top:30px
+}
+
+.localeSwitcher .bodyContainer ul {
+	margin:19px 0 30px 13px;
+	padding:0
+}
+
+.localeSwitcher .bodyContainer ul {
+	color:#333
+}
+
+.switchExperience, .localeSwitcher {
+	padding-left:13px;
+	padding-bottom:96px
+}
+
+.switchExperience .bodyContainer .radioButton {
+	float:left
+}
+
+.switchExperience .bodyContainer, .localeSwitcher .bodyContainer {
+	padding-left:13px
+}
+
+.switchExperience .expTitleHeight, .localeSwitcher .expTitleHeight {
+	float:left;
+	padding-top:13px
+}
+
+.switchExperience .titleContainer .image, .localeSwitcher .titleContainer .image {
+	padding-top:13px;
+	float:right
+}
+
+.switchExperience .titleContainer .expDescription {
+	clear:both;
+	padding-top:41px;
+	padding-bottom:13px
+}
+
+.switchExperience .bodyContainer .radioButtonText {
+	font-weight:bold;
+	overflow:hidden;
+	padding-left:13px
+}
+
+.switchExperience .bodyContainer .radioButtonDesc {
+	padding-left:32px;
+	padding-top:3px;
+	padding-bottom:26px
+}
+
+.switchExperience .buttonContainer .button {
+	width:70px
+}
+
+.field-validation-error {
+	color:#900;
+	font-weight:bold
+}
+
+.lw_mt_Disclaimer {
+	clear:both;
+	border-style:solid;
+	border-width:3px;
+	border-color:#fc9;
+	margin:5px;
+	padding:5px
+}
+
+div.mtps-table {
+	display:inline-table
+}
+
+div.mtps-thead {
+	display:table-header-group
+}
+
+span.mtps-caption {
+	display:table-caption;
+	padding:4pt
+}
+
+div.mtps-row {
+	display:table-row;
+	padding:4pt
+}
+
+span.mtps-cell {
+	display:table-cell;
+	padding:4pt
+}
+
+span.mtps-th {
+	display:table-cell;
+	padding:4pt
+}
+
+.MetricsContainer {
+	display:none
+}
+
+.radeditor td {
+	border:none
+}
+
+.headerBar {
+	margin:0;
+	padding:0;
+	height:176.9%;
+	width:100%;
+	font-size:1.0em;
+	font-family:'Segoe UI',Tahoma,Helvetica,Sans-Serif;
+	color:#fff;
+	border:none;
+	border-bottom:1px #505050 solid;
+	background-color:#232323;
+	min-width:700px
+}
+
+.headerBar td {
+	border:none!important;
+	padding-top:6px
+}
+
+.headerBar a:link, .headerBar a:visited, .headerBar a:hover, .headerBar a:active {
+	color:#fff;
+	margin:0
+}
+
+.headerBar a:hover {
+	text-decoration:underline
+}
+
+.headerBar .leftSection {
+	width:100%
+}
+
+.headerBar .leftSectionImageClusterOverride {
+	background-repeat:no-repeat;
+	background-position:100% -113px;
+	height:auto
+}
+
+.headerBar .rightSection {
+	white-space:nowrap;
+	padding-right:13px;
+	font-family: wf_segoe-ui_light,"Segoe UI Light","Segoe WP Light",wf_segoe-ui_normal,"Segoe UI",Segoe,"Segoe WP",Tahoma,Verdana,Arial,sans-serif !important;
+	font-size:1.5em;
+}
+
+.headerBar .rightSectionImageClusterOverride {
+	height:176.9%;
+	overflow:inherit
+}
+
+.headerBar .rightSection .tabContainer, .headerBar .leftSection .tabContainer {
+	overflow:hidden;
+	width:auto;
+	height:auto;
+}
+
+.headerBar .leftSection .tabContainer .headerTab, .headerBar .leftSection .tabContainer .headerTabSelected {
+	padding-left:13px;
+	padding-right:13px;
+	float:left;
+	margin-bottom:10px;
+	height:176.9%;
+}
+
+.headerBar .leftSection .tabContainer .headerTabSelected {
+	background-color:#09a7e1;
+	background-repeat:no-repeat
+}
+
+.headerBar .rightSection .tabContainer .pipe {
+	padding-right:6px;
+	padding-left:6px
+}
+
+.footerContainer {
+	margin:0;
+	padding-left:0;
+	padding-right:0;
+	min-width:700px;
+	border-top-width:1px;
+	border-top-color:#ccc;
+	border-top-style:solid
+}
+
+.footerContainer .footerLogoContainer {
+	margin-left:13px;
+	margin-right:13px
+}
+
+.footerContainer .footerContent {
+	float:left;
+	margin-top:5px
+}
+
+.footerContainer .footerLogo {
+	float:right
+}
+
+.footerContainer .pipe {
+	color:#7d7d7d
+}
+
+.topicMetaVersion, .curversion {
+    color: #5D5D5D;
+    font-size: 1em;
+    font-weight: bold;
+}
+span.code {
+	font-family: Menlo,Monaco,Consolas,"Courier New",monospace !important;
+	font-size: 105%;
+	color:	#333066; 
+}
+/* Applies to table titles and subsection titles. */
+.subHeading
+{
+	font-weight:	bold;
+	margin-bottom:	4;
+	color:#333;
+}
+span.parameterItalic {
+	font-style: italic;
+}
+.copyrightFooter
+{
+	font-weight:	bold;
+	margin-bottom:	4;
+	color:#bbb;
+	font-size: 92.3%;
+}
+.customCopyrightFooter
+{
+	font-weight:	normal;
+	margin-bottom:	4;
+	color: #333;
+	font-size: 107.7%;
+}
\ No newline at end of file
diff --git a/Help/styles/lightweight_gd.css b/Help/styles/lightweight_gd.css
new file mode 100644
index 0000000..7da1a88
--- /dev/null
+++ b/Help/styles/lightweight_gd.css
@@ -0,0 +1,2257 @@
+
+.clip19x19, .clip20x21 {
+	position:relative;
+	overflow:hidden
+}
+
+.clip19x19 {
+	width:19px;
+	height:19px
+}
+
+.clip20x21 {
+	width:20px;
+	height:21px
+}
+
+.clip19x19 img, .clip19x19 input, .clip20x21 img, .clip20x21 input {
+	position:absolute;
+	margin:0;
+	padding:0;
+	width:auto;
+	height:auto
+}
+
+.cl_msdn_lightweight_logo {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -3px -3px;
+	width:117px;
+	height:31px;
+	overflow:hidden
+}
+
+.cl_footer_logo {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -126px -3px;
+	width:124px;
+	height:41px;
+	overflow:hidden
+}
+
+.cl_lt_search {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -256px -3px;
+	width:2px;
+	height:23px;
+	overflow:hidden
+}
+
+.cl_rt_search {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -264px -3px;
+	width:2px;
+	height:23px;
+	overflow:hidden
+}
+
+.cl_search_icon {
+	top:-3px;
+	left:-272px
+}
+
+.cl_rss_button {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -297px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_default_avatar {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -319px -3px;
+	width:24px;
+	height:24px;
+	overflow:hidden
+}
+
+.cl_footer_feedback_icon {
+	top:-3px;
+	left:-349px
+}
+
+.cl_lw_codesnippet_lt_tab {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -375px -3px;
+	width:6px;
+	height:22px;
+	overflow:hidden
+}
+
+.cl_lw_codesnippet_rt_tab {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -387px -3px;
+	width:6px;
+	height:22px;
+	overflow:hidden
+}
+
+.cl_lw_codesnippet_lt_tab_active {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -399px -3px;
+	width:6px;
+	height:22px;
+	overflow:hidden
+}
+
+.cl_lw_codesnippet_rt_tab_active {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -411px -3px;
+	width:6px;
+	height:22px;
+	overflow:hidden
+}
+
+.cl_online_scale {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -423px -3px;
+	width:269px;
+	height:23px;
+	overflow:hidden
+}
+
+.cl_lt_cc_line_top {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -698px -3px;
+	width:280px;
+	height:1px;
+	overflow:hidden
+}
+
+.cl_rt_cc_line_top {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -984px -3px;
+	width:553px;
+	height:1px;
+	overflow:hidden
+}
+
+.cl_IC46226 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1543px -3px;
+	width:11px;
+	height:11px;
+	overflow:hidden
+}
+
+.cl_IC28506 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1560px -3px;
+	width:11px;
+	height:11px;
+	overflow:hidden
+}
+
+.cl_IC90381 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1577px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC131682 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1599px -3px;
+	width:15px;
+	height:15px;
+	overflow:hidden
+}
+
+.cl_IC160177 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1620px -3px;
+	width:10px;
+	height:10px;
+	overflow:hidden
+}
+
+.cl_IC131792 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1636px -3px;
+	width:17px;
+	height:11px;
+	overflow:hidden
+}
+
+.cl_IC128933 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1659px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC169559 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1681px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC116110 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1703px -3px;
+	width:12px;
+	height:10px;
+	overflow:hidden
+}
+
+.cl_IC101471 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1721px -3px;
+	width:10px;
+	height:10px;
+	overflow:hidden
+}
+
+.cl_IC103139 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1737px -3px;
+	width:10px;
+	height:10px;
+	overflow:hidden
+}
+
+.cl_IC6709 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1753px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC115567 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1775px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC155188 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1797px -3px;
+	width:17px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC9948 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1820px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC100399 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1842px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC166620 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1864px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC29808 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1886px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC11304 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1908px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC134134 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1930px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC90369 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1952px -3px;
+	width:10px;
+	height:12px;
+	overflow:hidden
+}
+
+.cl_IC79755 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1968px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC157541 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -1990px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC141795 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2012px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC89523 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2034px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC157062 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2056px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC34952 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2078px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC91302 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2100px -3px;
+	width:16px;
+	height:11px;
+	overflow:hidden
+}
+
+.cl_IC53205 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2122px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC148674 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2144px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC74937 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2166px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC82306 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2188px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC36774 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2210px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC169559 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2232px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC101171 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2254px -3px;
+	width:7px;
+	height:10px;
+	overflow:hidden
+}
+
+.cl_IC130242 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2267px -3px;
+	width:13px;
+	height:10px;
+	overflow:hidden
+}
+
+.cl_IC150820 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2286px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC25161 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2308px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC64394 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2330px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_IC153696 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2352px -3px;
+	width:14px;
+	height:18px;
+	overflow:hidden
+}
+
+.cl_IC37116 {
+	background:url('../images/msdn2010branding-stripe1.png') no-repeat scroll -2372px -3px;
+	width:16px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_lightweight_topnav_slice {
+	/*background:url('../images/msdn2010branding-stripe.png') repeat-x scroll 0 0;*/
+	height:29px
+}
+
+.cl_slice_Search {
+	background:url('../images/msdn2010branding-stripe.png') repeat-x scroll 0 -29px;
+	height:23px
+}
+
+.cl_nav_offline_nav_slice {
+	background:url('../images/msdn2010branding-stripe.png') repeat-x scroll 0 -52px;
+	height:4px
+}
+
+.cl_footer_slice {
+	background:url('../images/msdn2010branding-stripe.png') repeat-x scroll 0 -56px;
+	height:41px
+}
+
+.cl_lightweight_selected_tab_repeatX {
+	background:url('../images/msdn2010branding-stripe.png') no-repeat scroll 0 -97px;
+	height:16px;
+	overflow:hidden
+}
+
+.cl_lightweight_header_leftSection_wave {
+	/*background:url('../images/msdn2010branding-stripe.png') no-repeat scroll 0 -113px;*/
+	height:29px;
+	overflow:hidden
+}
+
+.cl_lightweight_header_rightSection_wave {
+	/*background:url('../images/msdn2010branding-stripe.png') no-repeat scroll 0 -142px;*/
+	height:29px;
+	overflow:hidden
+}
+
+body {
+	margin:0;
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:0.8em;
+	color:#000;
+	font-style:normal;
+	padding-right:0;
+	padding-left:0;
+	word-wrap:break-word;
+}
+
+a:link {
+	color:#1364c4;
+	text-decoration:none
+}
+
+a:hover {
+	text-decoration:underline !important
+}
+
+a:visited {
+	color:#960bb4;
+	text-decoration:none
+}
+
+img {
+	border:0
+}
+
+.h1, h1 {
+	margin:0;
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:1.5em;
+	color:#3f529c;
+	font-weight:bold
+}
+
+.h2, h2 {
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:1.3em;
+	color:#3f529c;
+	font-weight:bold
+}
+
+.h3, h3 {
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:1.1em;
+	color:#3f529c;
+	font-weight:bold
+}
+
+.title table {
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:1.1em;
+	color:#000;
+	font-style:normal
+}
+
+table {
+	border-style:solid;
+	border-width:1px;
+	border-color:#bbb;
+	border-collapse:collapse
+}
+
+table th {
+	border-style:solid;
+	border-width:1px;
+	border-color:#bbb
+}
+
+table td {
+	border-style:solid;
+	border-width:1px;
+	border-color:#bbb
+}
+
+.borderLine {
+	border-width:1px;
+	border-color:#e5e5e5
+}
+
+.orange {
+	color:#e66a38
+}
+
+.black {
+	color:#000
+}
+
+.blueLink {
+	color:#1364c4
+}
+
+.blueTitle {
+	color:#3f529c
+}
+
+.gray {
+	color:#7d7d7d
+}
+
+.header {
+}
+
+.footer {
+	float:none;
+	clear:both
+}
+
+.navigation {
+	border-right:1px Solid #bbb;
+	margin-right:-1px;
+	float:left;
+	overflow:hidden;
+	width:280px;
+	vertical-align:top;
+	text-align:left;
+	padding-bottom:96px
+}
+
+.searchBoxContainer {
+	border:none;
+	height:23px;
+	margin:13px;
+	padding:0;
+	white-space:nowrap;
+	width:256px;
+}
+
+.SearchButton {
+	margin-left:1px;
+	vertical-align:middle;
+	margin-top:2px;
+	border:solid 0 #000;
+	text-decoration:none;
+	cursor:pointer;
+	border-width:0;
+	position:relative;
+	overflow:hidden;
+	width:19px;
+	height:19px;
+	display:inline-block
+}
+
+.SearchButton img, .SearchButton input {
+	position:absolute;
+	margin:0;
+	padding:0;
+	width:auto;
+	height:auto
+}
+
+.SearchPanel {
+	float:left;
+	font-style:italic
+}
+
+.searchBox {
+	border: none;
+	width:100%;
+}
+
+.searchBox td {
+	border:none;
+	margin:0;
+	padding:0;
+}
+
+.searchBox td.searchTextBoxTd {
+	width:100%;
+}
+
+.searchBox td.searchButtonTd {
+	width:19px;
+}
+
+.searchTextBox {
+	border:1px solid white;
+	margin: 0;
+	width:100%;
+}
+
+.cl_slice_Search a {
+	display: block;
+	overflow: hidden;
+	width: 19px;
+	height: 19px;
+	position: relative;
+	padding: 0pt;
+	margin: 0pt;
+}
+.cl_search_icon {
+	left:-272px;
+	top:-3px;
+	position: relative;
+}
+
+.nav {
+	padding-top:8px;
+	padding-bottom:13px
+}
+
+.nav a {
+	text-decoration:none;
+	text-align:left;
+	white-space:nowrap;
+	overflow:hidden;
+	padding-top:4pt;
+	padding-bottom:4pt
+}
+
+.nav a:hover {
+	text-decoration:underline
+}
+
+.nav .toclevel0 {
+	padding-left:13px
+}
+
+.nav .toclevel1 {
+	padding-left:23px
+}
+
+.nav .toclevel2 {
+	padding-left:29px
+}
+
+.nav .ancestry {
+}
+
+.nav .current {
+}
+
+.nav .current a {
+	font-weight:bold;
+	color:#e66a38
+}
+
+.nav .children {
+	padding-bottom:13px
+}
+
+.nav .related {
+	padding-top:5px;
+	padding-left:13px;
+	float:left
+}
+
+.nav .related .subheader {
+	color:#3f529c;
+	font-weight:bold;
+	padding-bottom:5px
+}
+
+.nav .navSeperator {
+	height:4px;
+	width:100%;
+	float:left
+}
+
+.contentPlaceHolder {
+	border-width:1px;
+	text-align:left;
+	width:100%;
+	border-bottom-style:none;
+	overflow:hidden
+}
+
+.content {
+	padding-top:13px;
+	text-align:left;
+	border-width:1px;
+	overflow:hidden;
+	width:auto;
+	border-left:1px solid #bbb;
+	border-bottom:0
+}
+
+.content .summary {
+	color:#000
+}
+
+.logo {
+	float:right;
+	margin-right:13px;
+	margin-left:50px
+}
+
+.topicContainer {
+	padding-left:10pt;
+	padding-right:10pt;
+	padding-bottom:96px
+}
+
+.topicContainer .topic {
+}
+
+.topicContainer .topic #mainSection {
+	padding-top:30px
+}
+
+.topicContainer .topic .title {
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:1.65em;
+	color:#3f529c;
+	font-weight:bold
+}
+
+.topicContainer .topic .majorTitle {
+	font-weight:bold;
+	color:#5d5d5d;
+	margin: 0;
+}
+
+.topicContainer table {
+	width:100%
+}
+
+.topicContainer table th {
+	background-color:#e5e5e5;
+	padding-right:4px;
+	padding-left:4px;
+	padding-bottom:4px;
+	padding-top:4px;
+	text-align:left;
+	height:21px;
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:1.1em;
+	color:#000;
+	font-style:normal;
+	font-weight:normal
+}
+
+.topicContainer table th.iconColumn {
+	width:75px
+}
+
+.topicContainer table tr {
+	vertical-align:top
+}
+
+.topicContainer table td {
+	/*background-color:#fff;*/
+	line-height:140%;
+	padding-right:4px;
+	padding-left:4px;
+	padding-bottom:4px;
+	margin:1px;
+	padding-top:4px
+}
+
+.topicContainer table td.imageCell {
+	white-space:nowrap
+}
+
+.topicEndLine {
+	clear:both
+}
+
+.hierarchy ul li {
+	list-style-type:none
+}
+
+.hierarchy {
+	margin-left:-26px
+}
+
+.LW_CollapsibleArea_TitleDiv {
+	margin-top:19px;
+	margin-bottom:19px
+}
+
+.LW_CollapsibleArea_Title {
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:1.5em;
+	color:#3f529c;
+	font-weight:bold;
+	float:left;
+	margin: 0;
+}
+
+.LW_CollapsibleArea_HrDiv {
+	padding-top:12px
+}
+
+.LW_CollapsibleArea_Hr {
+	border-bottom:#e5e5e5 1px solid;
+	border-left:none;
+	border-top:none;
+	border-right:none;
+	color:#e5e5e5;
+	margin-left:4px;
+        visibility: hidden;
+}
+
+.paging {
+	display:inline
+}
+
+.paging .page {
+	padding-right:3px;
+	padding-left:3px;
+	color:#1364c4
+}
+
+.paging a:hover {
+	color:#e66a38
+}
+
+.paging .rangeStart, .paging .rangeEnd, .paging .totalCount {
+	font-weight:bold
+}
+
+.paging .currentPage {
+	padding-right:3px;
+	padding-left:3px;
+	border:1px solid #bbb;
+	color:#e66a38;
+	font-weight:bold;
+	background-color:#eff5ff;
+	min-height:15px;
+	min-width:15px
+}
+
+.LW_CodeSnippetContainerTabs {
+	vertical-align:middle;
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:10pt!important;
+	height:22px;
+	position:relative;
+	z-index:1
+}
+
+.LW_CodeSnippetContainerTabLeft, .LW_CodeSnippetContainerTabRight, .LW_CodeSnippetContainerTabLeftActive, .LW_CodeSnippetContainerTabRightActive {
+	width:6px;
+	height:20px;
+	float:left;
+	border-bottom:solid 2px #d0d2d2
+}
+
+.LW_CodeSnippetContainerTabLeft {
+}
+
+.LW_CodeSnippetContainerTabRight {
+}
+
+.LW_CodeSnippetContainerTabLeftActive {
+	border-bottom:none
+}
+
+.LW_CodeSnippetContainerTabRightActive {
+	border-bottom:none
+}
+
+.LW_CodeSnippetContainerTabFirst, .LW_CodeSnippetContainerTabLast, .LW_CodeSnippetContainerTab, .LW_CodeSnippetContainerTabActiveFirst, .LW_CodeSnippetContainerTabActiveLast, .LW_CodeSnippetContainerTabActive {
+	height:19px;
+	float:left;
+	width:auto;
+	border-top:solid 1px #bbb;
+	border-bottom:solid 2px #d0d2d2;
+	padding:0 8px 0 8px;
+	background:#eff5ff
+}
+
+.LW_CodeSnippetContainerTabFirst, .LW_CodeSnippetContainerTabActiveFirst {
+	padding:0 8px 0 6px
+}
+
+.LW_CodeSnippetContainerTabLast, .LW_CodeSnippetContainerTabActiveLast {
+	padding:0 6px 0 8px
+}
+
+.LW_CodeSnippetContainerTabActiveFirst, .LW_CodeSnippetContainerTabActiveLast, .LW_CodeSnippetContainerTabActive {
+	background:#fff;
+	border-bottom:solid 2px #fff
+}
+
+.LW_CodeSnippetContainerTab, .LW_CodeSnippetContainerTabActive, .LW_CodeSnippetContainerTabLast, .LW_CodeSnippetContainerTabActiveLast {
+	border-left:solid 1px #929292
+}
+
+.LW_CodeSnippetContainerTabActiveFirst a, .LW_CodeSnippetContainerTabActiveLast a, .LW_CodeSnippetContainerTabActive a {
+	color:#e66a38;
+	text-decoration:none
+}
+
+.LW_CodeSnippetContainerTab a, .LW_CodeSnippetContainerTab a:link, .LW_CodeSnippetContainerTab a:visited, .LW_CodeSnippetContainerTab a:active {
+	color:#1364c4;
+	text-decoration:none
+}
+
+.LW_CodeSnippetContainerTab a:hover {
+	color:#e66a38
+}
+
+.LW_CodeSnippetContainerTabFirst a:link, .LW_CodeSnippetContainerTabFirst a:visited, .LW_CodeSnippetContainerTabFirst a:active, .LW_CodeSnippetContainerTabLast a:link, .LW_CodeSnippetContainerTabLast a:visited, .LW_CodeSnippetContainerTabLast a:active {
+	color:#1364c4;
+	text-decoration:none
+}
+
+.LW_CodeSnippetContainerTabFirst a:hover, .LW_CodeSnippetContainerTabLast a:hover {
+	color:#e66a38
+}
+
+.LW_CodeSnippetToolBar {
+	width:auto;
+	height:auto;
+	border-top:solid 3px #e5e5e5;
+	border-left:solid 1px #bbb;
+	border-right:solid 3px #e5e5e5
+}
+
+.LW_CodeSnippetToolBarText {
+	float:right;
+	top:-10px;
+	position:relative;
+	background-color:#fff;
+	width:auto;
+	padding-left:4px;
+	padding-right:4px;
+	height:0
+}
+
+.LW_CodeSnippetToolBarText a:link, .LW_CodeSnippetToolBarText a:visited, .LW_CodeSnippetToolBarText a:active {
+	margin-left:5px;
+	margin-right:5px;
+	text-decoration:none;
+	color:#1364c4;
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:10pt;
+	background-color:White;
+	padding-left:4px;
+	padding-right:4px
+}
+
+.LW_CodeSnippetToolBarText a:hover {
+	margin-left:5px;
+	margin-right:5px;
+	text-decoration:none;
+	color:#e66a38;
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:10pt;
+	padding-left:4px;
+	padding-right:4px
+}
+
+.LW_CodeSnippetContainerCodeCollection {
+	border-left:solid 1px #bbb;
+	border-bottom:solid 3px #e5e5e5;
+	border-right:solid 1px #e5e5e5;
+	clear:both;
+	margin-bottom:12px;
+	position:relative;
+	top:-3px
+}
+
+.LW_CodeSnippetContainerCode {
+	width:auto;
+	margin:0;
+	padding-right:21px;
+	padding-left:21px
+}
+
+.LW_CodeSnippetContainerTabLinkBold {
+	font-weight:bold!important
+}
+
+.LW_CodeSnippetContainerTabLinkNormal {
+	font-weight:normal!important
+}
+
+.LW_CodeSnippetContainerCode div {
+	padding:0;
+	margin:0
+}
+
+.LW_CodeSnippetContainerCode pre {
+	padding:5px;
+	margin:0;
+	font-family:Consolas, Courier, monospace;
+	word-break:break-all;
+	word-wrap:break-word;
+	font-style:normal;
+	font-weight:normal
+}
+
+.topicContainer .alert {
+	border-style:solid;
+	border-width:1px;
+	border-color:#bbb;
+	background-color:#fcfec5
+}
+
+.topicContainer .alert table {
+	border-width:0
+}
+
+.topicContainer .alert th {
+	background-color:#fcfec5;
+	border-width:0;
+	border-collapse:collapse;
+	border-spacing:0;
+	border-style:hidden;
+	padding-top:10px;
+	padding-left:11px;
+	padding-right:11px;
+	padding-bottom:1px;
+	font-weight:bold
+}
+
+.topicContainer .alert td {
+	background-color:#fcfec5;
+	border-width:0;
+	padding-top:1px;
+	padding-bottom:10px;
+	padding-left:11px;
+	padding-right:11px
+}
+
+.topicContainer .alert img {
+	padding-right:5px
+}
+
+.topicContainer .alert p {
+	margin:0
+}
+
+.Error {
+	padding-top:13px;
+	padding-left:13px;
+	padding-bottom:96px;
+	font-family:"Segoe UI", Verdana, Arial
+}
+
+.Error .titleContainer .pageTitle {
+	line-height:34px
+}
+
+.Error .body {
+	font-size:10pt;
+	padding-right:13px;
+	padding-top:48px
+}
+
+.contentNotFound {
+	padding-top:13px;
+	padding-left:13px
+}
+
+.contentNotFound .image {
+	float:right;
+	padding-right:13px
+}
+
+.contentNotFound .sectionHeader {
+	float:left;
+	padding-bottom:18px
+}
+
+.contentNotFound .mainMessage {
+	clear:both
+}
+
+.contentNotFound .searchcontainer .Search {
+	margin:0
+}
+
+.contentNotFound .subMessage .badRequestAddress {
+	color:#7d7d7d
+}
+
+.contentNotFound .subMessage .badRequestAddress .pageIdHighlight {
+	color:#e66a38;
+	font-weight:bold
+}
+
+.searchContent {
+	padding-top:17px;
+	padding-right:13px;
+	padding-bottom:96px;
+	padding-left:13px
+}
+
+.searchContent .line {
+	border-top-style:solid;
+	border-top-width:1px;
+	border-top-color:#bfbfbf;
+	margin-top:16px;
+	margin-bottom:22px;
+	height:1px
+}
+
+.searchContent .sectionHeader {
+	padding-bottom:13px
+}
+
+.searchContent .pageTitle {
+	padding-bottom:20px
+}
+
+.searchContent .Search {
+	width:256px;
+	margin-left:0;
+	margin-right:0;
+	height:24px;
+	padding-top:0;
+	border-width:0
+}
+
+.searchContent .info {
+	padding-top:16px;
+	padding-bottom:24px
+}
+
+.searchContent .info .term {
+	color:#e66a38;
+	font-weight:bold;
+	padding-right:15px
+}
+
+.searchContent .info .invalidTerm {
+	color:#000;
+	font-weight:bold
+}
+
+.searchContent .info .page {
+	padding-right:3px;
+	padding-left:3px;
+	color:#1364c4
+}
+
+.searchContent .info a:hover {
+	color:#e66a38
+}
+
+.searchContent .info .rangeStart, .searchContent .info .rangeEnd, .searchContent .info .totalCount {
+	font-weight:bold
+}
+
+.searchContent .info .currentPage {
+	padding-right:3px;
+	padding-left:3px;
+	border:1px solid #bbb;
+	color:#e66a38;
+	font-weight:bold;
+	background-color:#eff5ff;
+	min-height:15px;
+	min-width:15px
+}
+
+.searchContent .results {
+}
+
+.searchContent .results .result {
+	padding-top:5px;
+	padding-bottom:5px
+}
+
+.searchContent .results .result a {
+	color:#1364c4;
+	font-weight:bold
+}
+
+.searchContent .results .result a:visited {
+	color:#960bb4;
+	text-decoration:none
+}
+
+.searchContent .results .result .abstract {
+}
+
+.searchContent .results .result .url {
+	color:#7d7d7d;
+	font-style:italic
+}
+
+.searchContent .tips {
+	padding-top:32px
+}
+
+.searchContent .tips .tipsHeading {
+	padding-top:26px;
+	font-weight:bold
+}
+
+.searchContent .tips ul {
+	padding-left:0;
+	list-style-type:none;
+	margin-top:0
+}
+
+.contentNotFoundNoResults {
+	padding-bottom:96px
+}
+
+.CommunityContent {
+	padding-bottom:96px
+}
+
+.CommunityContentHeader a {
+	margin-left:13px
+}
+
+.CommunityContentContainer {
+	border-top-style:solid;
+	border-top-width:1px;
+	border-top-color:#bbb;
+	border-left-color:#bbb
+}
+
+.CommunityContentHeader {
+	padding-left:13px;
+	padding-top:13px;
+	padding-bottom:13px;
+	border-bottom:1px;
+	border-bottom-color:#e5e5e5;
+	border-bottom-style:solid
+}
+
+.CommunityContentHeaderTitleContainer {
+	float:left
+}
+
+.CommunityContentHeaderTitle {
+	font-weight:bold;
+	color:#389a4c
+}
+
+.communityContentNavigation {
+	margin-left:13px
+}
+
+.communityContentNavigationSeparator {
+	padding-top:17px
+}
+
+.communityContentNavigationHeader {
+	padding-top:13px;
+	color:#389a4c;
+	font-weight:bold
+}
+
+.communityContentNavigationPost {
+	clear:both;
+	margin-top:14px;
+	padding-right:13px
+}
+
+.communityContentNavigationAvatarContainer {
+	float:left
+}
+
+.communityContentNavigationLinkAvatar img {
+	margin-right:13px;
+	margin-top:4px;
+	float:left;
+	border-top-color:#bbb;
+	border-right-color:#bbb;
+	border-bottom-color:#bbb;
+	border-left-color:#bbb;
+	border-width:1px;
+	border-top-style:solid;
+	border-right-style:solid;
+	border-bottom-style:solid;
+	border-left-style:solid;
+	overflow:hidden
+}
+
+.communityContentNavigationLinkAbstract {
+	float:none;
+	margin-left:51px;
+	color:#1364c4
+}
+
+.communityContentNavigationLinkAbstractAdvertisement {
+	float:none;
+	color:#1364c4
+}
+
+.communityContentNavigationLinkAbstractAdvertisement ul {
+	list-style-type:none;
+	margin-top:0;
+	padding-top:0
+}
+
+.communityContentNavigationLink {
+	float:none;
+	color:Black;
+	font-size:.86em
+}
+
+.communityContentNavigationLink ul {
+	list-style-type:none;
+	margin-top:0
+}
+
+.communityContentNavigationLink ul p {
+	clear:none;
+	vertical-align:top;
+	margin-top:0
+}
+
+.communityContentNavigationLink a:link {
+	font-weight:bold;
+	white-space:normal
+}
+
+.communityContentNavigationLink a:visited {
+	font-weight:bold;
+	text-decoration:none
+}
+
+.communityContentNavigationLink a:hover {
+	text-decoration:underline
+}
+
+.communityContentNavigationMoreLink {
+	float:right;
+	margin-right:4px;
+	margin-bottom:6px
+}
+
+.CommunityContentFaq {
+	float:right;
+	padding-right:13px;
+	vertical-align:bottom;
+	padding-top:4px
+}
+
+.CommunityContentFaq img {
+	vertical-align:bottom
+}
+
+.Annotation {
+}
+
+.AnnotationTitle {
+	padding-left:13px;
+	padding-top:13px;
+	padding-bottom:13px;
+	padding-right:13px
+}
+
+.AnnotationTitle a {
+}
+
+.AnnotationBody {
+	word-wrap:break-word;
+	padding-left:13px
+}
+
+.AnnotationHistory {
+	padding-right:13px;
+	text-align:right
+}
+
+.AnnotationComplete {
+	clear:both;
+	width:100%
+}
+
+.AnnotationAddedContainer {
+}
+
+.AnnotationEditedContainer {
+	float:right;
+	padding-top:9px;
+	padding-bottom:0;
+	margin-bottom:0
+}
+
+.AnnotationEditedContainer ul {
+	margin-top:8px;
+	padding-top:5px;
+	margin-right:5px;
+	margin-left:0;
+	padding-left:0
+}
+
+.AnnotationAddedContainer ul {
+	margin-top:16px;
+	padding-top:14px;
+	margin-right:5px;
+	margin-left:0;
+	padding-left:0
+}
+
+.HistoryGraphic {
+	margin-top:11px;
+	text-align:right
+}
+
+.ModificationHistory {
+	height:60px
+}
+
+.ModificationHistory ul {
+	margin-top:0;
+	list-style-type:none;
+	float:right;
+	padding-right:5px;
+	text-align:right
+}
+
+.AddedUserAvatar {
+	margin-top:9px;
+	border:1px solid #bbb;
+	float:right;
+	height:34px;
+	width:34px;
+	margin-right:13px
+}
+
+.EditedUserAvatar {
+	margin-top:9px;
+	border:1px solid #bbb;
+	height:25px;
+	width:25px;
+	float:right;
+	margin-right:26px
+}
+
+.CreateProfileWrapper {
+	margin-top:13px
+}
+
+.CreateProfileContainer {
+	color:#000;
+	margin-left:13px;
+	margin-right:13px
+}
+
+.CreateProfileContainer .image {
+	padding-top:13px
+}
+
+.CreateProfileContainer .separator {
+	border-bottom:#dedede 1px solid;
+	border-left:none;
+	border-top:none;
+	border-right:none;
+	color:#dedede
+}
+
+.CreateProfileContainer .Intro {
+	float:left;
+	display:inline
+}
+
+.CreateProfileContainer .Intro .Title {
+	display:inline
+}
+
+.CreateProfileContainer .Intro .Subtitle {
+	color:#7d7d7d;
+	display:inline
+}
+
+.CreateProfileContainer .Text {
+	clear:both;
+	padding-top:37px
+}
+
+.CreateProfileContainer .Step1 .Title {
+	color:#3f529c;
+	font-weight:bold
+}
+
+.CreateProfileContainer .Step1 .Subtitle {
+	color:#7d7d7d;
+	font-weight:bold
+}
+
+.CreateProfileContainer .Step2 .Title {
+	color:#3f529c;
+	font-weight:bold
+}
+
+.CreateProfileContainer .Step2 .Subtitle {
+	color:#7d7d7d;
+	font-weight:bold
+}
+
+.CreateProfileContainer .ButtonContainer {
+	margin-top:30px;
+	margin-bottom:96px
+}
+
+.CreateProfileContainer .Step1 .UsernameTextBox {
+	border:1px solid #bbb;
+	height:20px;
+	width:427px;
+	color:#7d7d7d;
+	font-style:italic;
+	padding-left:13px
+}
+
+.CreateProfileContainer .Step1 .NonEmptyUsernameTextBox {
+	border:1px solid #bbb;
+	height:20px;
+	width:427px;
+	padding-left:13px
+}
+
+.CreateProfileContainer .DisplayNameTextBox {
+	border:1px solid #bbb;
+	color:#7d7d7d;
+	font-style:italic;
+	height:20px;
+	width:427px;
+	padding-left:13px
+}
+
+.CreateProfileContainer .NonEmptyDisplayNameTextBox {
+	border:1px solid #bbb;
+	height:20px;
+	width:427px;
+	padding-left:13px
+}
+
+.AddCommunityContentContainer {
+	padding-top:13px;
+	padding-left:13px;
+	padding-bottom:96px
+}
+
+.AddCommunityContentContainer .image {
+	float:right;
+	padding-top:13px
+}
+
+.AddCommunityContentContainer .AddCommunityContentContainerHeader {
+}
+
+.AddCommunityContentContainer .AddCommunityContentTopicTitle {
+	color:#000;
+	margin-top:19px;
+	margin-bottom:19px
+}
+
+.AddCommunityContentContainer .TitleTextBox {
+	border:1px solid #bbb;
+	color:#7d7d7d;
+	font-style:italic;
+	height:20px;
+	width:427px;
+	padding-left:13px;
+	padding-top:3px
+}
+
+.AddCommunityContentContainer .NonEmptyTitleTextBox {
+	border:1px solid #bbb;
+	color:#000;
+	font-style:normal;
+	height:20px;
+	width:427px;
+	padding-left:13px;
+	padding-top:3px
+}
+
+.AddCommunityContentContainer .ContentTextBoxContainer {
+	margin-top:19px
+}
+
+.AddCommunityContentContainer .ButtonContainer {
+	margin-top:16px
+}
+
+.AddCommunityContentContainer .ButtonContainer #SubmitButton, .AddCommunityContentContainer .ButtonContainer #CancelButton {
+	margin-right:13px
+}
+
+.AddEditErrorContainer {
+	padding-top:22px
+}
+
+.CommunityContentHistoryContainer {
+	padding-left:13px;
+	margin-top:18px;
+	padding-bottom:96px
+}
+
+.CommunityContentHistoryContainer .HistoryPageTitle {
+	word-wrap:break-word
+}
+
+.CommunityContentHistoryContainer .HistoryPageTitle .HistoryText {
+}
+
+.CommunityContentHistoryContainer .HistoryPageTitle .HistoryPostText {
+	color:#7d7d7d;
+	padding-right:13px;
+	word-wrap:break-word
+}
+
+.CommunityContentHistoryContainer .CloseHistoryVersion {
+	padding-right:13px
+}
+
+.CommunityContentHistoryContainer .OpenHistoryVersion {
+	padding-right:13px
+}
+
+.CommunityContentHistoryContainer .HistoryTopicTitle {
+	color:#000;
+	padding-top:13px;
+	padding-bottom:13px
+}
+
+.CommunityContentHistoryContainer .HistoryVersionWrapper {
+	padding-right:13px
+}
+
+.CommunityContentHistoryContainer .HistoryVersion {
+	border-top-style:solid;
+	border-top-width:1px;
+	border-top-color:#dedede
+}
+
+.CommunityContentHistoryContainer .HistoryLastVersion {
+	border-bottom-style:solid;
+	border-bottom-width:1px;
+	border-bottom-color:#dedede;
+	height:0
+}
+
+.CommunityContentHistoryContainer .HistoryVersionExpanded {
+	background-color:#eaf4ff;
+	border-top-style:solid;
+	border-top-width:1px;
+	border-top-color:#dedede;
+	word-wrap:break-word
+}
+
+.CommunityContentHistoryContainer hr {
+	font-size:1px;
+	color:#dedede;
+	padding-right:13px
+}
+
+.CommunityContentHistoryContainer .HistoryModificationItems {
+	padding-top:13px;
+	padding-bottom:13px
+}
+
+.CommunityContentHistoryContainer .HistoryModificationOn {
+	padding-left:11px
+}
+
+.CommunityContentHistoryContainer .HistoryDiscription {
+	padding-bottom:22px;
+	word-wrap:break-word;
+	padding-right:13px
+}
+
+.CommunityContentHistoryContainer .ArrowGraphicDown {
+	background:url('/Hash/80c7c62937c18329b000793bd90f7715.gif') no-repeat;
+	height:8px;
+	width:9px;
+	padding-left:5px;
+	padding-top:3px;
+	cursor:pointer
+}
+
+.CommunityContentHistoryContainer .ArrowGraphicUp {
+	background:url('/Hash/4b6a8d71112da9e1251f9d4d0c7f4d00.gif') no-repeat;
+	height:8px;
+	width:9px;
+	padding-left:5px;
+	padding-top:3px;
+	cursor:pointer
+}
+
+.CommunityContentHistoryContainer .HistoryCollapsed {
+	display:none;
+	padding-bottom:22px
+}
+
+.CommunityContentHistoryContainer .HistoryExpanded {
+	padding-left:27px;
+	padding-top:22px;
+	padding-bottom:22px
+}
+
+.CommunityContentHistoryContainer .HistoryVersionTitle {
+	color:#7d7d7d;
+	font-weight:bold;
+	padding-left:27px;
+	word-wrap:break-word
+}
+
+.CommunityContentHistoryContainer .HistoryModifiedNormal {
+	color:#1364c4
+}
+
+.CommunityContentHistoryContainer .HistoryModifiedBold {
+	color:#1364c4;
+	font-weight:bold
+}
+
+.FeedbackButton {
+	position:relative;
+	overflow:hidden;
+	width:20px;
+	height:21px;
+	display:inline-block;
+	margin-left:5px
+}
+
+.FeedbackLink {
+	display:inline-block;
+	vertical-align:top
+}
+
+.FeedbackButton img, .FeedbackButton input {
+	position:absolute;
+	margin:0;
+	padding:0;
+	width:auto;
+	height:auto
+}
+
+.FeedbackContainer {
+	position:absolute;
+	border:1px solid #7d7d7d;
+	min-height:35em;
+	width:24.8em;
+	background-color:White;
+	display:none;
+	top:50%;
+	margin-top:-17.5em;
+	left:50%;
+	margin-left:-26em
+}
+
+.FeedbackContainer .FeedbackTitleContainer {
+	font-size:1.24em;
+	color:#646364;
+	font-weight:bold;
+	padding-left:11px;
+	background-color:#f4b432;
+	height:1.5em
+}
+
+.FeedbackContainer .FeedbackTitle {
+	float:left
+}
+
+.FeedbackContainer .FeedbackCancel {
+	float:right;
+	text-align:right;
+	padding-right:10px;
+	cursor:pointer
+}
+
+.FeedbackContainer .FeedbackCancel a:link, .FeedbackContainer .FeedbackCancel a:hover, .FeedbackContainer .FeedbackCancel a:visited {
+	color:#646364;
+	text-decoration:none
+}
+
+.FeedbackContainer .FeedbackData {
+	padding-left:10px;
+	padding-right:10px
+}
+
+.FeedbackContainer .FeedbackInfoText {
+	padding-top:11px;
+	font-size:1.08em;
+	color:#5a5a5a
+}
+
+.FeedbackContainer .QuestionText {
+	margin-top:11px;
+	font-size:1.08em;
+	color:#2d2d2d
+}
+
+.FeedbackContainer .AnswerText {
+	vertical-align:bottom
+}
+
+.FeedbackContainer .FeedbackTextArea {
+	font-family:'Segoe UI', Verdana, Arial;
+	height:5.4em;
+	width:99%;
+	background-color:#f1f1f1;
+	border:solid 1px #dcdcdc;
+	overflow:hidden
+}
+
+.FeedbackContainer .FeedbackSubmit {
+	font-family:'Segoe UI', Verdana, Arial;
+	margin-top:11px;
+	float:right;
+	font-size:1.08em
+}
+
+.FeedbackContainer .FeedbackTextAreaContainer {
+}
+
+.FeedbackContainer .FeedbackSiderGraphic {
+}
+
+.FeedbackContainer .FeedbackGraphicHolder {
+	padding-top:11px;
+	padding-bottom:11px
+}
+
+.FeedbackContainer .RateRadio {
+	margin:0;
+	padding:0;
+	padding-left:40px
+}
+
+.FeedbackContainer .RateRadioOne {
+	margin:0;
+	padding:0
+}
+
+.FeedbackContainer .RadioButton {
+	margin:0;
+	padding:0
+}
+
+.FeedbackContainer .TellUsMoreText {
+	clear:both;
+	padding-top:11px
+}
+
+.FeedbackContainer .FeedbackCollapse {
+	display:none
+}
+
+.FeedbackContainer .RadioButtonHolder {
+	height:22px
+}
+
+.localeSwitcher .titleContainer .expDescription {
+	clear:both;
+	color:#7d7d7d
+}
+
+.localeSwitcher .bodyContainer {
+	padding:0;
+	margin-top:30px
+}
+
+.localeSwitcher .bodyContainer ul {
+	margin:19px 0 30px 13px;
+	padding:0
+}
+
+.localeSwitcher .bodyContainer ul {
+	color:#3f529c
+}
+
+.switchExperience, .localeSwitcher {
+	padding-left:13px;
+	padding-bottom:96px
+}
+
+.switchExperience .bodyContainer .radioButton {
+	float:left
+}
+
+.switchExperience .bodyContainer, .localeSwitcher .bodyContainer {
+	padding-left:13px
+}
+
+.switchExperience .expTitleHeight, .localeSwitcher .expTitleHeight {
+	float:left;
+	padding-top:13px
+}
+
+.switchExperience .titleContainer .image, .localeSwitcher .titleContainer .image {
+	padding-top:13px;
+	float:right
+}
+
+.switchExperience .titleContainer .expDescription {
+	clear:both;
+	padding-top:41px;
+	padding-bottom:13px
+}
+
+.switchExperience .bodyContainer .radioButtonText {
+	font-weight:bold;
+	overflow:hidden;
+	padding-left:13px
+}
+
+.switchExperience .bodyContainer .radioButtonDesc {
+	padding-left:32px;
+	padding-top:3px;
+	padding-bottom:26px
+}
+
+.switchExperience .buttonContainer .button {
+	width:70px
+}
+
+.userPage .navigation {
+	border:none;
+	padding-left:13px;
+	padding-top:13px;
+	min-width:15.38em;
+	max-width:30em;
+	width:auto
+}
+
+.userPage .content {
+	border:none;
+	padding-left:13px
+}
+
+.userPage .userImage {
+	width:2.5em;
+	height:2.5em;
+	border:1px solid #bbb;
+	vertical-align:middle;
+	margin:0
+}
+
+.userPage .displayName {
+	margin:0;
+	padding:0;
+	padding-left:10px;
+	display:inline;
+	vertical-align:middle
+}
+
+.userPage .profileText {
+	clear:both;
+	display:block;
+	padding-top:6px;
+	padding-bottom:6px
+}
+
+.userPage .statisticsHeader {
+	color:#389a4d;
+	font-weight:bold
+}
+
+.userPage .navigation .statisticsSeprator {
+	border-top:1px solid #e5e5e5;
+	margin:10px 26px 10px 0
+}
+
+.userPage p {
+	margin:0;
+	padding:0
+}
+
+.userPage .activityTitle {
+	color:#389a4d;
+	display:block;
+	padding:0;
+	margin:0;
+	padding:0;
+	display:inline;
+	float:left
+}
+
+.userPage .userPostContainer {
+	clear:both;
+	padding-top:27px;
+	padding-right:13px
+}
+
+.userPage .lastModified {
+	color:#7d7d7d
+}
+
+.userPage .pager {
+	margin-top:27px;
+	margin-bottom:96px
+}
+
+.userPage .pager .rangeStart {
+	font-weight:bold
+}
+
+.userPage .pager .rangeEnd {
+	font-weight:bold
+}
+
+.userPage .pager .totalCount {
+	font-weight:bold
+}
+
+.multiViewDetails {
+	margin-top:15px
+}
+
+.multiViewItemHeading {
+	margin-top:15px;
+	font-style:italic;
+	margin-bottom:3px
+}
+
+.multiViewDetails .multiViewItem th {
+	font-size:.9em;
+	vertical-align:middle
+}
+
+.multiViewTableEnd {
+	clear:both
+}
+
+.multiViewTable .multiViewNavItem {
+	padding-top:2px;
+	padding-bottom:2px;
+	border-top:#69c 1px solid
+}
+
+.field-validation-error {
+	color:#900;
+	font-weight:bold
+}
+
+.lw_mt_Disclaimer {
+	clear:both;
+	border-style:solid;
+	border-width:3px;
+	border-color:#fc9;
+	margin:5px;
+	padding:5px
+}
+
+div.mtps-table {
+	display:inline-table
+}
+
+div.mtps-thead {
+	display:table-header-group
+}
+
+span.mtps-caption {
+	display:table-caption;
+	padding:4pt
+}
+
+div.mtps-row {
+	display:table-row;
+	padding:4pt
+}
+
+span.mtps-cell {
+	display:table-cell;
+	padding:4pt
+}
+
+span.mtps-th {
+	display:table-cell;
+	padding:4pt
+}
+
+.MetricsContainer {
+	display:none
+}
+
+.radeditor td {
+	border:none
+}
+
+.headerBar {
+	margin:0;
+	padding:0;
+	height:30px;
+	width:100%;
+	font-size:1.0em;
+	font-family:"Segoe UI", Verdana, Arial;
+	color:#3f529c;
+	border:none;
+	/*border-bottom:1px #445a9d solid;*/
+	/*background-color:#362b60;*/
+	min-width:700px
+}
+
+.headerBar td {
+	border:none!important;
+	padding-top:6px
+}
+
+.headerBar a:link, .headerBar a:visited, .headerBar a:hover, .headerBar a:active {
+	color:#fff;
+	margin:0
+}
+
+.headerBar a:hover {
+	text-decoration:underline
+}
+
+.headerBar .leftSection {
+	width:100%
+}
+
+.headerBar .leftSectionImageClusterOverride {
+	background-repeat:no-repeat;
+	background-position:100% -113px;
+	height:auto
+}
+
+.headerBar .rightSection {
+	white-space:nowrap;
+	padding-right:13px
+}
+
+.headerBar .rightSectionImageClusterOverride {
+	height:23px;
+	overflow:inherit
+}
+
+.headerBar .rightSection .tabContainer, .headerBar .leftSection .tabContainer {
+	overflow:hidden;
+	height:23px;
+	width:auto
+}
+
+.headerBar .leftSection .tabContainer .headerTab, .headerBar .leftSection .tabContainer .headerTabSelected {
+	padding-left:13px;
+	padding-right:13px;
+	float:left;
+	margin-bottom:10px;
+	height:23px
+}
+
+.headerBar .leftSection .tabContainer .headerTabSelected {
+	background-color:#09a7e1;
+	background-repeat:no-repeat
+}
+
+.headerBar .rightSection .tabContainer .pipe {
+	padding-right:6px;
+	padding-left:6px
+}
+
+.footerContainer {
+	margin:0;
+	padding-left:0;
+	padding-right:0;
+	min-width:700px;
+	border-top-width:1px;
+	border-top-color:#bbb;
+	border-top-style:solid
+}
+
+.footerContainer .footerLogoContainer {
+	margin-left:13px;
+	margin-right:13px
+}
+
+.footerContainer .footerContent {
+	float:left;
+	margin-top:5px
+}
+
+.footerContainer .footerLogo {
+	float:right
+}
+
+.footerContainer .pipe {
+	color:#7d7d7d
+}
+
+.topicMetaVersion, .curversion {
+    color: #5D5D5D;
+    font-size: 1em;
+    font-weight: bold;
+}
+span.code {
+	font-family:	Monospace, Courier New, Courier;
+	font-size: 105%;
+	color:	#000066; 
+}
+/* Applies to table titles and subsection titles. */
+.subHeading
+{
+	font-weight:	bold;
+	margin-bottom:	4;
+	color:#3f529c;
+}
+span.parameterItalic {
+	font-style: italic;
+}
+.copyrightFooter
+{
+	font-weight:	bold;
+	margin-bottom:	4;
+	/*color:#3f529c;*/
+	color:#bbbbbb;
+	font-size: 12px;
+}
+.customCopyrightFooter
+{
+	font-weight:	normal;
+	margin-bottom:	4;
+	color:black;
+	font-size: 14px;
+}
+body {
+        background-position: 60px 40px; 
+        background-size: 528pxpx 371px;
+        background-image: url("../images/GhostDoc Community Help File watermark.gif");
+	background-repeat: no-repeat;
+}
\ No newline at end of file
diff --git a/Help/styles/lw-code.css b/Help/styles/lw-code.css
new file mode 100644
index 0000000..442ddd1
--- /dev/null
+++ b/Help/styles/lw-code.css
@@ -0,0 +1,237 @@
+/*
+ * VS 2010 Presentation Template for Sandcastle
+ * (styles for the Syntax code section)
+ *
+ * Based on the MSDN Library Lightweight style.
+ */
+
+/**
+ * Hide othe code than .cs
+ */
+
+.cpp, .vb, .nu, .fs {
+    display: none
+}
+
+pre.libCScode {
+    font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
+	font-size: 92.3%;
+	white-space:-moz-pre-wrap;
+	word-wrap:break-word;
+	overflow:hidden;
+	margin: 0;
+}
+
+.libCScode .keyword {
+    color: Navy;
+}
+
+
+div.CodeSnippetContainerCode {
+    display: none;
+}
+
+div.CodeSnippetContainerCode.CSharpCode,
+div.CodeSnippetContainerCode.JSharpCode {
+    display: block;
+}
+
+
+div.CodeSnippetContainerTab.CSharpTab {
+    background:white;
+    border-bottom-color:White;
+}
+
+/**
+ * Code snippet window
+ */
+
+.CodeSnippetContainer {
+	clear:both;
+	width:100%;
+	margin-top:20px;
+}
+
+div.CodeSnippetContainerTabs {
+	vertical-align:middle;
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:10pt!important;
+	height:192.3%;
+	position:relative;
+	z-index:1
+}
+.codeSnippetContainerTabs>div:first-child{
+	border-left:1px solid #939393;
+}
+.codeSnippetContainerTabs>div:last-child {
+    border-right: 1px solid #939393;
+    border-top-right-radius: 4px;
+}
+.CodeSnippetContainerTabLeft, .CodeSnippetContainerTabRight, .CodeSnippetContainerTabLeftActive, .CodeSnippetContainerTabRightActive, .CodeSnippetContainerTabRightActiveDisabled, .CodeSnippetContainerTabLeftUnrecognized, .CodeSnippetContainerTabRightUnrecognized, .CodeSnippetContainerTabLeftDisabled, .CodeSnippetContainerTabRightDisabled {
+	width:6px;
+	height:23px;
+	float:left;
+	border-bottom:none;
+}
+.CodeSnippetContainerTabLeft {
+	background-image:url(../Images/LT_tab_white.gif)
+}
+.CodeSnippetContainerTabRight {
+	background-image:url(../Images/RT_tab_white.gif)
+}
+.CodeSnippetContainerTabLeftActive {
+	height:184.6%;
+	border-bottom:none;
+	background-image:url(../Images/LT_tab_white.gif)
+}
+.CodeSnippetContainerTabRightActive, .CodeSnippetContainerTabRightActiveDisabled {
+	height:184.6%;
+	border-bottom:none;
+	background-image:url(../Images/RT_tab_white.gif)
+}
+.CodeSnippetContainerTabLeftUnrecognized {
+	height:184.6%;
+	border-bottom:none;
+	background-image:url(../Images/LT_tab_white.gif)
+}
+.CodeSnippetContainerTabRightUnrecognized {
+	height:184.6%;
+	border-bottom:none;
+	background-image:url(../Images/RT_tab_white.gif)
+}
+.CodeSnippetContainerTabLeftDisabled {
+	background-image:url(../Images/LT_tab_white.gif)
+}
+.CodeSnippetContainerTabRightDisabled {
+	background-image:url(../Images/RT_tab_white.gif)
+}
+.CodeSnippetContainerTabFirst, .CodeSnippetContainerTab, .CodeSnippetContainerTabUnrecognized, .CodeSnippetContainerTabUnrecognizedNotFirst, .CodeSnippetContainerTabActive, .CodeSnippetContainerTabActiveNotFirst, .CodeSnippetContainerTabDisabled, .CodeSnippetContainerTabDisabledNotFirst, .CodeSnippetContainerTabDisabledActive, .CodeSnippetContainerTabDisabledActiveNotFirst {
+	height:161.5%;
+	float:left;
+	width:auto;
+	border-top:solid 1px #939393;
+	border-bottom:solid 1px #939393;
+	padding:0 12px 0 12px;
+	background: #fff;
+}
+.CodeSnippetContainerTabDisabledActive A {
+	FONT-WEIGHT:bold;
+	COLOR:#707070;
+	TEXT-DECORATION:none
+}
+.CodeSnippetContainerTabFirst {
+	padding:0 12px 0 6px
+}
+.CodeSnippetContainerTabDisabled, .CodeSnippetContainerTabDisabledNotFirst {
+	background:#fff;
+}
+.CodeSnippetContainerTabActive, .CodeSnippetContainerTabActiveNotFirst, .CodeSnippetContainerTabDisabledActive, .CodeSnippetContainerTabDisabledActiveNotFirst {
+	background:#fff;
+	border-bottom:solid 1px #fff
+}
+.CodeSnippetContainerTabUnrecognized {
+	background:#fff;
+	border-bottom:solid 2px #fff
+}
+.CodeSnippetContainerTab, .CodeSnippetContainerTabUnrecognizedNotFirst, .CodeSnippetContainerTabActiveNotFirst, .CodeSnippetContainerTabDisabledNotFirst, .CodeSnippetContainerTabDisabledActiveNotFirst {
+	border-left:solid 1px #939393;
+}
+div.CodeSnippetContainerTabUnrecognized a, div.CodeSnippetContainerTabActive a, div.CodeSnippetContainerTabActiveNotFirst a, div.CodeSnippetContainerTabDisabledActiveNotFirst a {
+	color:#000;
+	font-weight:bold;
+	text-decoration:none
+}
+div.CodeSnippetContainerTab a, div.CodeSnippetContainerTab a:link, div.CodeSnippetContainerTab a:visited, div.CodeSnippetContainerTab a:active {
+	color:#3390b1;
+	font-weight:bold;
+	text-decoration:none
+}
+div.CodeSnippetContainerTab a:hover {
+	color:#707070
+}
+div.CodeSnippetContainerTabFirst a:link, div.CodeSnippetContainerTabFirst a:visited, div.CodeSnippetContainerTabFirst a:active {
+	color:#3390b1;
+	font-weight:bold;
+	text-decoration:none
+}
+div.CodeSnippetContainerTabFirst a:hover {
+	font-weight:bold;
+	color:#707070
+}
+div.CodeSnippetContainerTabDisabled a, div.CodeSnippetContainerTabDisabledNotFirst a {
+	color:#3390b1;
+	text-decoration:none
+}
+div.CodeSnippetContainerTabDisabled a, div.CodeSnippetContainerTabDisabledNotFirst a {
+	color:#3390b1;
+	text-decoration:none
+}
+div.CodeSnippetContainerTabDisabledNotFirst a:hover {
+	color:#707070
+}
+.CodeSnippetToolBar {
+	width:auto;
+	height:auto;
+	border-top:solid 1px #939393;
+	border-left:solid 0px #939393;
+	border-right:solid 0px #939393;
+}
+.CodeSnippetToolBarText {
+	float:right;
+	top:-10px;
+	position:relative;
+	background-color:#fff;
+	width:auto;
+	margin-right:8px;
+	padding-left:8px;
+	padding-right:8px;
+	height:0;
+	z-index:20
+}
+div.CodeSnippetToolBarText a:link, div.CodeSnippetToolBarText a:visited, div.CodeSnippetToolBarText a:active {
+	margin-left:5px;
+	margin-right:5px;
+	text-decoration:none;
+	color:#3390b1;
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:10pt;
+	background-color:White
+}
+div.CodeSnippetToolBarText a:hover {
+	margin-left:5px;
+	margin-right:5px;
+	text-decoration:none;
+	color:#707070;
+	font-family:'Segoe UI', Verdana, Arial;
+	font-size:10pt
+}
+.CodeSnippetContainerCodeCollection {
+	border-left:solid 1px #939393;
+	border-bottom:solid 1px #939393;
+	border-right:solid 1px #939393;
+	clear:both;
+	margin-bottom:12px;
+	position:relative;
+	top:-3px
+}
+.CodeSnippetContainerCode {
+	font-size:1.1em;
+	padding:0.8em;
+	width:auto;
+	margin:0
+}
+kbd {
+	display: inline-block;
+	margin: 0 1px;
+	padding: 1px 3px;
+	font-family: 'Consolas',monospace;
+	font-size: 8pt;
+	line-height: 10pt;
+	color: #444d56;
+	vertical-align: middle;
+	background-color: #f4f4f4;
+	border: solid 1px #d0d0d0;
+	border-right-color: #a0a0a0;
+	border-bottom-color: #808080;
+	border-radius: 3px;
+}
\ No newline at end of file
diff --git a/Help/styles/lw-miranda.css b/Help/styles/lw-miranda.css
new file mode 100644
index 0000000..07481a6
--- /dev/null
+++ b/Help/styles/lw-miranda.css
@@ -0,0 +1,16 @@
+div.imhistory
+{
+    border: 1px solid #BBB;
+}
+
+.imhistory-title 
+{
+    border-bottom: 1px solid #BBB;
+    padding: 3px;
+}
+
+
+.imhistory-content
+{
+    margin: 3px;
+}
\ No newline at end of file
diff --git a/Help/styles/msdn10/Msdn10-bn20091118.css b/Help/styles/msdn10/Msdn10-bn20091118.css
new file mode 100644
index 0000000..897a6fd
--- /dev/null
+++ b/Help/styles/msdn10/Msdn10-bn20091118.css
@@ -0,0 +1,589 @@
+
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
+	border:0;
+	font-weight:inherit;
+	font-style:inherit;
+	font-family:inherit;
+	margin:0;
+	outline:0;
+	padding:0
+}
+
+table {
+	border-collapse:separate;
+	border-spacing:0
+}
+
+img {
+	border:none
+}
+
+a, a:link, a:visited {
+	color:#06d;
+	cursor:pointer;
+	text-decoration:none
+}
+
+a:hover, a:active {
+	color:#f60;
+	text-decoration:none
+}
+
+.bold, strong {
+	font-weight:bold
+}
+
+em {
+	font-style:italic
+}
+
+h1, h2, h3, h4, h5, h6 {
+	clear:both;
+	color:#3a3e43;
+	font-family:'Segoe UI Semibold', 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;
+	font-weight:bold;
+	line-height:125%
+}
+
+h1 {
+	font-size:22px;
+	line-height:130%;
+	margin:5px 0
+}
+
+h2 {
+	font-size:20px;
+	margin:4px 0
+}
+
+h3 {
+	font-size:18px;
+	margin:3px 0
+}
+
+h4 {
+	font-size:16px;
+	margin:2px 0
+}
+
+h5 {
+	font-size:14px
+}
+
+h6 {
+	font-size:13px
+}
+
+.Clear {
+	clear:both
+}
+
+.ClearBreak {
+	clear:both;
+	padding-bottom:1px
+}
+
+.ClearLeft {
+	clear:left
+}
+
+.ClearRight {
+	clear:right
+}
+
+.ClearRightBreak {
+	clear:right;
+	height:16px
+}
+
+.Left {
+	float:left
+}
+
+.Right {
+	float:right
+}
+
+.Center {
+	text-align:center
+}
+
+.no_wrap {
+	white-space:nowrap
+}
+
+p {
+	margin:0 0 12px 0
+}
+
+.absolute {
+	position:absolute
+}
+
+ol, ul {
+	line-height:125%;
+	margin:0 0 12px 0;
+	padding-left:18px
+}
+
+li {
+	padding:0 0 3px 0
+}
+
+ul li {
+	list-style-image:url('bullet.gif')
+}
+
+ul li ol li {
+	list-style-image:none;
+	list-style-type:hebrew
+}
+
+.BulletList {
+	line-height:125%;
+	list-style-type:disc;
+	margin:12px 0 12px 18px;
+	padding-left:18px
+}
+
+.NumberList {
+	margin:12px 0 12px 24px
+}
+
+.DropDownArrow {
+	padding-bottom:2px;
+	padding-left:5px
+}
+
+a:hover .DropDownArrow {
+	text-decoration:none
+}
+
+.hidden {
+	display:none;
+	visibility:hidden
+}
+
+.pre {
+	margin:10px;
+	padding:10px
+}
+
+.code {
+	background:#ddd;
+	display:block;
+	font-family:Lucida Console, Courier New;
+	font-size:100%;
+	line-height:100%;
+	margin:10px;
+	padding:10px
+}
+
+html {
+	font-size:100.01%
+}
+
+body {
+	color:#333;
+	font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;
+	font-size:84%;
+	line-height:125%
+}
+
+#Msdn10Background {
+	background:#fff url('bg.png') repeat-x top;
+	padding:0 483px
+}
+
+#JelloSizer {
+	margin:0 auto;
+	max-width:0;
+	padding:0;
+	width:0
+}
+
+#JelloExpander {
+	margin:0 -483px;
+	min-width:966px;
+	position:relative
+}
+
+#JelloWrapper {
+	background:url('bg_msdn.png') no-repeat 200px 0;
+	width:100%
+}
+
+.topleftcorner {
+	background:transparent url('contentpane.png') 0 0 no-repeat;
+	height:17px;
+	margin-top:-2px;
+	margin-right:21px
+}
+
+.toprightcorner {
+	background:transparent url('contentpane.png') 100% 0 no-repeat;
+	float:right;
+	height:17px;
+	margin-top:-17px;
+	width:21px
+}
+
+.alley {
+	background:url('contentpaneleft.png') repeat-y left;
+	min-height:768px;
+	padding-left:19px
+}
+
+.wrapper {
+	background:url('contentpaneright.png') repeat-y right;
+	min-height:768px;
+	padding-right:21px
+}
+
+.inner {
+	background:#fff;
+	min-height:768px;
+	padding:1px
+}
+
+.bottomleftcorner {
+	background:transparent url('contentpane.png') 0 -17px no-repeat;
+	height:21px;
+	margin-right:21px
+}
+
+.bottomrightcorner {
+	background:transparent url('contentpane.png') 100% -17px no-repeat;
+	float:right;
+	height:21px;
+	margin-top:-21px;
+	width:21px
+}
+
+table.multicol {
+	border-collapse:collapse
+}
+
+.innercol {
+	padding:0 12px 0 0
+}
+
+.fullwidth {
+	width:924px;
+	overflow:hidden
+}
+
+.MainColumn, .maincolumn {
+	width:612px;
+	overflow:hidden
+}
+
+.MiddleColumn, .middlecolumn {
+	width:420px;
+	overflow:hidden
+}
+
+.leftnavigation {
+	width:180px;
+	overflow:hidden
+}
+
+.ColumnFifty, .columnfifty, .RightAdRail {
+	width:300px;
+	overflow:hidden
+}
+
+.BostonPostCard {
+	margin:0 0 12px 0;
+	overflow:hidden
+}
+
+.BostonPostCard h1, .BostonPostCard h2, .BostonPostCard h3, .BostonPostCard h4, .BostonPostCard h5, .BostonPostCard h6 {
+	background:#260859 url('headers.gif') 0 0 no-repeat;
+	color:#260859;
+	height:26px;
+	margin:0 0 10px 0;
+	overflow:hidden;
+	padding:5px 0 0 0;
+	position:relative;
+	white-space:nowrap
+}
+
+.BostonPostCard h1 a, .BostonPostCard h2 a, .BostonPostCard h3 a, .BostonPostCard h4 a, .BostonPostCard h5 a, .BostonPostCard h6 a {
+	color:#260859
+}
+
+.MainColumn .BostonPostCard, .maincolumn .BostonPostCard, .MiddleColumn .BostonPostCard, .middlecolumn .BostonPostCard {
+	margin:0 -12px 12px 0;
+	padding:0 12px 0 0
+}
+
+.fullwidth .BostonPostCard h1, .fullwidth .BostonPostCard h2, .MainColumn .BostonPostCard h1, .maincolumn .BostonPostCard h1, .MainColumn .BostonPostCard h2, .maincolumn .BostonPostCard h2, .MiddleColumn .BostonPostCard h1, .middlecolumn .BostonPostCard h1, .MiddleColumn .BostonPostCard h2, .middlecolumn .BostonPostCard h2, .leftnavigation .BostonPostCard h1, .leftnavigation .BostonPostCard h2, .ColumnFifty .BostonPostCard h1, .columnfifty .BostonPostCard h1, .ColumnFifty .BostonPostCard h2, .columnfifty .BostonPostCard h2 {
+	background:none
+}
+
+.fullwidth .BostonPostCard h3, .fullwidth .BostonPostCard h4, .fullwidth .BostonPostCard h5, .fullwidth .BostonPostCard h6 {
+	background-position:-1px -98px
+}
+
+.MainColumn .BostonPostCard h3, .maincolumn .BostonPostCard h3, .MainColumn .BostonPostCard h4, .maincolumn .BostonPostCard h4, .MainColumn .BostonPostCard h5, .maincolumn .BostonPostCard h5, .MainColumn .BostonPostCard h6, .maincolumn .BostonPostCard h6 {
+	background-position:-302px -66px
+}
+
+.MiddleColumn .BostonPostCard h3, .middlecolumn .BostonPostCard h3, .MiddleColumn .BostonPostCard h4, .middlecolumn .BostonPostCard h4, .MiddleColumn .BostonPostCard h5, .middlecolumn .BostonPostCard h5, .MiddleColumn .BostonPostCard h6, .middlecolumn .BostonPostCard h6 {
+	background-position:-483px -34px
+}
+
+.leftnavigation .BostonPostCard h3, .leftnavigation .BostonPostCard h4, .leftnavigation .BostonPostCard h5, .leftnavigation .BostonPostCard h6 {
+	background-position:-302px -34px
+}
+
+.ColumnFifty .BostonPostCard h3, .columnfifty .BostonPostCard h3, .ColumnFifty .BostonPostCard h4, .columnfifty .BostonPostCard h4, .ColumnFifty .BostonPostCard h5, .columnfifty .BostonPostCard h5, .ColumnFifty .BostonPostCard h6, .columnfifty .BostonPostCard h6 {
+	background-position:-1px -34px
+}
+
+.RightAdRail .BostonPostCard {
+	margin:0 0 12px 0
+}
+
+.RightAdRail .BostonPostCard h3 {
+	background-position:-1px -66px;
+	color:#fff;
+	padding:5px 7px 0 0;
+	text-align:right
+}
+
+.RightAdRail .BostonPostCard h4 {
+	background-position:-1px -66px;
+	color:#fff;
+	padding:7px 7px 0 0;
+	text-align:right
+}
+
+.RightAdRail .BostonPostCard h6 {
+	background-position:-1px -66px;
+	color:#fff;
+	padding:0 7px 0 0;
+	text-align:right
+}
+
+.RightAdRail .BostonPostCard h3 a, .RightAdRail .BostonPostCard h4 a, .RightAdRail .BostonPostCard h6 a {
+	color:#fff
+}
+
+.RightAdRail .BostonPostCard h1, .RightAdRail .BostonPostCard h2, .RightAdRail .BostonPostCard h5 {
+	background-position:-1px -34px;
+	color:#260859;
+	height:23px;
+	padding:8px 0 0 0
+}
+
+.RightAdRail .BostonPostCard h1 a, .RightAdRail .BostonPostCard h2 a, .RightAdRail .BostonPostCard h5 a {
+	color:#260859
+}
+
+.RightAdRail .BostonPostCard h1, .BostonPostCard h1 {
+	font-size:20px;
+	height:31px;
+	padding:0
+}
+
+.RightAdRail .BostonPostCard h2, .BostonPostCard h2 {
+	font-size:18px;
+	height:28px;
+	padding:3px 0 0 0
+}
+
+.BostonPostCard h3 {
+	font-size:16px
+}
+
+.BostonPostCard h4 {
+	font-size:14px;
+	height:24px;
+	padding:7px 0 0 0
+}
+
+.BostonPostCard h5 {
+	font-size:13px;
+	height:23px;
+	padding:8px 0 0 0
+}
+
+.BostonPostCard h6 {
+	font-size:13px;
+	height:31px;
+	line-height:100%;
+	padding:0
+}
+
+.rssfeed {
+	background:transparent url('RSS_OFF.png') 0 0 no-repeat;
+	height:17px;
+	width:17px
+}
+
+.RightAdRail .BostonPostCard h1 .rssfeed, .RightAdRail .BostonPostCard h2 .rssfeed, .BostonPostCard h3 .rssfeed, .BostonPostCard h4 .rssfeed, .BostonPostCard h5 .rssfeed, .BostonPostCard h6 .rssfeed {
+	position:absolute;
+	right:0;
+	top:4px
+}
+
+.RightAdRail .BostonPostCard h3 .rssfeed, .RightAdRail .BostonPostCard h4 .rssfeed, .RightAdRail .BostonPostCard h6 .rssfeed {
+	right:7px;
+	top:7px
+}
+
+.rssfeed:hover {
+	background:transparent url('RSS_OFF.png') 0 0 no-repeat
+}
+
+td.headlines_td_text {
+	padding:0 0 0 10px
+}
+
+td.headlines_td_text strong {
+	display:inline-block;
+	font-size:14px;
+	font-weight:normal;
+	margin-bottom:3px
+}
+
+td.headlines_td_image {
+	padding:3px 0 9px 0
+}
+
+table.headlines_table {
+	padding-bottom:12px
+}
+
+td.noimages_td {
+	padding-bottom:10px
+}
+
+.RightAdRail .linklist {
+	margin-top:-12px
+}
+
+.linklist h3 {
+	color:#3a3e43;
+	font-size:14px;
+	font-weight:bold
+}
+
+.BostonPostCard .linklist h3 {
+	background-image:none;
+	background-color:#fff;
+	color:#3a3e43;
+	font-size:14px;
+	font-weight:bold;
+	margin-bottom:0
+}
+
+.pasco_wrapper {
+	background-color:#c7eaf8;
+	margin:0 0 12px;
+	overflow:hidden;
+	width:300px
+}
+
+.RightAdRail .pasco_wrapper h3 {
+	margin:0
+}
+
+.BP_Home_Table {
+	margin:-6px 0
+}
+
+.RightAdRail .pasco_container {
+	padding:0 5px 12px 15px
+}
+
+.RightAdRail .pasco_wrapper h5 {
+	background:#260859 url('headers.gif') 0 -57px no-repeat;
+	color:#260859;
+	height:5px;
+	margin:0;
+	overflow:hidden;
+	padding:0;
+	white-space:nowrap
+}
+
+.top1 {
+	background:#260859
+}
+
+.boxheader {
+	background:#260859
+}
+
+.internav a, .internav a:link, .internav a:visited, .internav a:hover, .internav a:active {
+	color:#fff
+}
+
+* html .internav {
+	background-color:#21204a
+}
+
+.internav a:hover {
+	background:url('/platform/controls/StoTabStrip/resources/internav.png') no-repeat -237px -1px
+}
+
+* html .internav a:hover {
+	background-color:#181839;
+	background-image:none
+}
+
+.internav a.active, .internav a.active:hover {
+	background:#09a7e1 url('/platform/controls/StoTabStrip/resources/internav.png') no-repeat 0 0
+}
+
+* html .internav a.active, * html .internav a.active:hover {
+	background-image:none
+}
+
+.LocalNavigation {
+	background:url('/platform/controls/StoTabStrip/resources/subnav_msdn.png') repeat-y top right
+}
+
+* html .LocalNavigation {
+	background-color:#08a6e7;
+	background-image:none
+}
+
+.LocalNavigation .TabOff a:hover {
+	background-color:#0281bd
+}
+
+.LocalNavigation .TabOn {
+	background-color:#046ea0
+}
+
+.expressWrapper {
+	margin-left:15px;
+	margin-top:15px;
+	width:790px
+}
+
+.expressQPWrapper {
+	margin-left:645px;
+	margin-top:25px
+}
+
+.expressQPCell {
+	height:43px;
+	padding-left:20px
+}
+
+table.grid {
+	border:solid #666 1px
+}
+
+.grid td {
+	padding:5px;
+	border:solid #333 1px
+}
+
+.CollapseRegionLink, .CollapseRegionLink:link, .CollapseRegionLink:hover, .CollapseRegionLink:visited {
+	font-size:inherit!important
+}
diff --git a/Help/styles/msdn10/Msdn10_vstudio-bn20091118.css b/Help/styles/msdn10/Msdn10_vstudio-bn20091118.css
new file mode 100644
index 0000000..57b0055
--- /dev/null
+++ b/Help/styles/msdn10/Msdn10_vstudio-bn20091118.css
@@ -0,0 +1,37 @@
+
+#JelloWrapper {
+	background:url('bg_vstudio.png') no-repeat 200px 0
+}
+
+* html .internav {
+	background-color:#21244a
+}
+
+* html .internav a:hover {
+	background-color:#181c39
+}
+
+.internav a.active, .internav a.active:hover {
+	background-color:#735aaf
+}
+
+* html .internav a.active, * html .internav a.active:hover {
+	background-color:#7359ad
+}
+
+.LocalNavigation {
+	background:url('subnav_vstudio.png') repeat-y top right
+}
+
+* html .LocalNavigation {
+	background-color:#7359ad;
+	background-image:none
+}
+
+.LocalNavigation .TabOff a:hover {
+	background-color:#634d9c
+}
+
+.LocalNavigation .TabOn {
+	background-color:#4c3c79
+}
diff --git a/Help/styles/msdn10/adart_repository.png b/Help/styles/msdn10/adart_repository.png
new file mode 100644
index 0000000..cfb5a15
Binary files /dev/null and b/Help/styles/msdn10/adart_repository.png differ
diff --git a/Help/styles/msdn10/bg.png b/Help/styles/msdn10/bg.png
new file mode 100644
index 0000000..8da9c2f
Binary files /dev/null and b/Help/styles/msdn10/bg.png differ
diff --git a/Help/styles/msdn10/bg_vstudio.png b/Help/styles/msdn10/bg_vstudio.png
new file mode 100644
index 0000000..1d56fff
Binary files /dev/null and b/Help/styles/msdn10/bg_vstudio.png differ
diff --git a/Help/styles/msdn10/bullet.gif b/Help/styles/msdn10/bullet.gif
new file mode 100644
index 0000000..bd7f9d2
Binary files /dev/null and b/Help/styles/msdn10/bullet.gif differ
diff --git a/Help/styles/msdn10/clear.gif b/Help/styles/msdn10/clear.gif
new file mode 100644
index 0000000..916e1be
Binary files /dev/null and b/Help/styles/msdn10/clear.gif differ
diff --git a/Help/styles/msdn10/contentpane.png b/Help/styles/msdn10/contentpane.png
new file mode 100644
index 0000000..7f21dbf
Binary files /dev/null and b/Help/styles/msdn10/contentpane.png differ
diff --git a/Help/styles/msdn10/contentpaneleft.png b/Help/styles/msdn10/contentpaneleft.png
new file mode 100644
index 0000000..b48a80b
Binary files /dev/null and b/Help/styles/msdn10/contentpaneleft.png differ
diff --git a/Help/styles/msdn10/contentpaneright.png b/Help/styles/msdn10/contentpaneright.png
new file mode 100644
index 0000000..e9020e0
Binary files /dev/null and b/Help/styles/msdn10/contentpaneright.png differ
diff --git a/Help/styles/msdn10/internav.png b/Help/styles/msdn10/internav.png
new file mode 100644
index 0000000..9469688
Binary files /dev/null and b/Help/styles/msdn10/internav.png differ
diff --git a/Help/styles/msdn10/mtps-bn20091118.css b/Help/styles/msdn10/mtps-bn20091118.css
new file mode 100644
index 0000000..f06eeae
--- /dev/null
+++ b/Help/styles/msdn10/mtps-bn20091118.css
@@ -0,0 +1,1650 @@
+
+.LibC_o {
+	background:url('/global/Images/LibC.gif') 0 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_e {
+	background:url('/global/Images/LibC.gif') -16px 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_c {
+	background:url('/global/Images/LibC.gif') -32px 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_s {
+	background:url('/global/Images/LibC.gif') -48px 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_b {
+	background:url('/global/Images/LibC.gif') -64px 0;
+	width:4px;
+	height:13px
+}
+
+.LibC_arrow-off {
+	background:url('/global/Images/LibC.gif') -68px 0;
+	width:15px;
+	height:17px;
+	vertical-align:middle
+}
+
+.LibC_arrow-on {
+	background:url('/global/Images/LibC.gif') -83px 0;
+	width:15px;
+	height:17px;
+	vertical-align:middle
+}
+
+.LibC_rtg_comCon {
+	background:url('/global/Images/LibC.gif') -98px 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_rtg_email {
+	background:url('/global/Images/LibC.gif') -114px 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_rtg_print {
+	background:url('/global/Images/LibC.gif') -130px 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_rtg_save {
+	background:url('/global/Images/LibC.gif') -146px 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_help {
+	background:url('/global/Images/LibC.gif') -162px 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_lib_grippy {
+	background:url('/global/Images/LibC.gif') -178px 0;
+	width:5px;
+	height:20px
+}
+
+.LibC_rss_button {
+	background:url('/global/Images/LibC.gif') -183px 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_spinner {
+	background:url('/global/Images/LibC.gif') -199px 0;
+	width:31px;
+	height:29px
+}
+
+.LibC_wiki {
+	background:url('/global/Images/LibC.gif') -230px 0;
+	width:42px;
+	height:42px
+}
+
+.LibC_starBlue {
+	background:url('/global/Images/LibC.gif') -272px 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_starGold {
+	background:url('/global/Images/LibC.gif') -288px 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_starWhite {
+	background:url('/global/Images/LibC.gif') -304px 0;
+	width:16px;
+	height:16px
+}
+
+.LibC_copy_off {
+	background:url('/global/Images/LibC.gif') -320px 0;
+	width:15px;
+	height:13px;
+	float:left
+}
+
+.LibC_space {
+	background:url('/global/Images/LibC.gif') -335px 0;
+	width:1px;
+	height:1px
+}
+
+.LibC_popdownarrow {
+	background:url('/global/Images/LibC.gif') -345px 0;
+	width:7px;
+	height:4px
+}
+
+.LibC_search {
+	background:url('/global/Images/LibC.gif') -352px 0;
+	width:20px;
+	height:20px
+}
+
+.LibC_websearch {
+	background:url('/global/Images/LibC.gif') -372px 0;
+	width:1px;
+	height:20px
+}
+
+.LibC_arrowdwn {
+	background:url('/global/Images/LibC.gif') -373px 0;
+	width:13px;
+	height:7px
+}
+
+.LibC_arrowrgt {
+	background:url('/global/Images/LibC.gif') -386px 0;
+	width:13px;
+	height:7px
+}
+
+.LibC_panel_corner_botleft {
+	background:url('/global/Images/LibC.gif') -399px 0;
+	width:5px;
+	height:5px
+}
+
+.LibC_panel_corner_botright {
+	background:url('/global/Images/LibC.gif') -404px 0;
+	width:5px;
+	height:5px
+}
+
+.LibC_panel_corner_upleft {
+	background:url('/global/Images/LibC.gif') -409px 0;
+	width:5px;
+	height:5px
+}
+
+.LibC_panel_corner_upright {
+	background:url('/global/Images/LibC.gif') -414px 0;
+	width:5px;
+	height:5px
+}
+
+.LibC_panel_header {
+	background:url('/global/Images/LibC.gif') -419px 0;
+	width:1px;
+	height:24px
+}
+
+.LibC_panel_header_left {
+	background:url('/global/Images/LibC.gif') -420px 0;
+	width:5px;
+	height:25px
+}
+
+.LibC_panel_header_right {
+	background:url('/global/Images/LibC.gif') -425px 0;
+	width:5px;
+	height:25px
+}
+
+.LibC_to {
+	background:url('/global/Images/LibC.gif') -431px 0;
+	width:7px;
+	height:9px
+}
+
+.LibC_te {
+	background:url('/global/Images/LibC.gif') -438px 0;
+	width:7px;
+	height:9px
+}
+
+.LibC_tc {
+	background:url('/global/Images/LibC.gif') -445px 0;
+	width:7px;
+	height:9px
+}
+
+.msdn_TabC_mslogo {
+	background:url('/global/Images/msdn.TabC.png') 0 0;
+	width:132px;
+	height:29px
+}
+
+.msdn_TabC_msdn_SiteNavTabOff1Left {
+	background:url('/global/Images/msdn.TabC.png') -132px 0;
+	width:2px;
+	height:22px
+}
+
+.msdn_TabC_msdn_SiteNavTabOff1Right {
+	background:url('/global/Images/msdn.TabC.png') -134px 0;
+	width:2px;
+	height:22px
+}
+
+.msdn_TabC_msdn_SiteNavTabOnLeft {
+	background:url('/global/Images/msdn.TabC.png') -136px 0;
+	width:2px;
+	height:24px
+}
+
+.msdn_TabC_msdn_SiteNavTabOnRight {
+	background:url('/global/Images/msdn.TabC.png') -138px 0;
+	width:2px;
+	height:24px
+}
+
+.msdn_TabC_lib_SiteNavTabOff1Left {
+	background:url('/global/Images/msdn.TabC.png') -160px 0;
+	width:2px;
+	height:22px
+}
+
+.msdn_TabC_lib_SiteNavTabOff1Right {
+	background:url('/global/Images/msdn.TabC.png') -162px 0;
+	width:2px;
+	height:22px
+}
+
+.msdn_TabC_lib_SiteNavTabOnLeft {
+	background:url('/global/Images/msdn.TabC.png') -164px 0;
+	width:2px;
+	height:24px
+}
+
+.msdn_TabC_lib_SiteNavTabOnRight {
+	background:url('/global/Images/msdn.TabC.png') -166px 0;
+	width:2px;
+	height:24px
+}
+
+.msdn_TabC_more_corner_MSDN_botleft {
+	background:url('/global/Images/msdn.TabC.png') 0 0;
+	width:1px;
+	height:1px
+}
+
+.msdn_TabC_more_corner_MSDN_botright {
+	background:url('/global/Images/msdn.TabC.png') 0 0;
+	width:1px;
+	height:1px
+}
+
+.msdn_TabC_more_corner_MSDN_upleft {
+	background:url('/global/Images/msdn.TabC.png') 0 0;
+	width:1px;
+	height:1px
+}
+
+.msdn_TabC_more_corner_MSDN_upright {
+	background:url('/global/Images/msdn.TabC.png') 0 0;
+	width:1px;
+	height:1px
+}
+
+.technet_TabC_mslogo {
+	background:url('/global/Images/technet.TabC.png') 0 0;
+	width:132px;
+	height:29px
+}
+
+.technet_TabC_technet_SiteNavTabOff1Left {
+	background:url('/global/Images/technet.TabC.png') -132px 0;
+	width:2px;
+	height:22px
+}
+
+.technet_TabC_technet_SiteNavTabOff1Right {
+	background:url('/global/Images/technet.TabC.png') -134px 0;
+	width:2px;
+	height:22px
+}
+
+.technet_TabC_technet_SiteNavTabOnLeft {
+	background:url('/global/Images/technet.TabC.png') -136px 0;
+	width:2px;
+	height:24px
+}
+
+.technet_TabC_technet_SiteNavTabOnRight {
+	background:url('/global/Images/technet.TabC.png') -138px 0;
+	width:2px;
+	height:24px
+}
+
+.technet_TabC_more_corner_TN_botleft {
+	background:url('/global/Images/technet.TabC.png') -140px 0;
+	width:5px;
+	height:5px
+}
+
+.technet_TabC_more_corner_TN_botright {
+	background:url('/global/Images/technet.TabC.png') -145px 0;
+	width:5px;
+	height:5px
+}
+
+.technet_TabC_more_corner_TN_upleft {
+	background:url('/global/Images/technet.TabC.png') -150px 0;
+	width:5px;
+	height:5px
+}
+
+.technet_TabC_more_corner_TN_upright {
+	background:url('/global/Images/technet.TabC.png') -155px 0;
+	width:5px;
+	height:5px
+}
+
+.expression_TabC_blkmslogo {
+	background:url('/global/Images/expression.TabC.png') 0 0;
+	width:110px;
+	height:18px
+}
+
+.expression_TabC_expression_border {
+	background:url('/global/Images/expression.TabC.png') -110px 0;
+	width:1px;
+	height:1px
+}
+
+.expression_TabC_expression_SiteNavTabOff1Left {
+	background:url('/global/Images/expression.TabC.png') -111px 0;
+	width:2px;
+	height:35px
+}
+
+.expression_TabC_expression_SiteNavTabOff1Right {
+	background:url('/global/Images/expression.TabC.png') -113px 0;
+	width:2px;
+	height:35px
+}
+
+.expression_TabC_expression_SiteNavTabOnLeft {
+	background:url('/global/Images/expression.TabC.png') -115px 0;
+	width:2px;
+	height:35px
+}
+
+.expression_TabC_expression_SiteNavTabOnRight {
+	background:url('/global/Images/expression.TabC.png') -117px 0;
+	width:2px;
+	height:35px
+}
+
+.answers_TabC_blkmslogo {
+	background:url('/global/Images/answers.TabC.png') no-repeat scroll 0 0;
+	width:110px;
+	height:18px;
+	overflow:hidden
+}
+
+.answers_TabC_answers_SiteNavTabOff1Left {
+	background:url('/global/Images/answers.TabC.png') no-repeat scroll -110px 0;
+	width:2px;
+	height:22px;
+	overflow:hidden
+}
+
+.answers_TabC_answers_SiteNavTabOff1Right {
+	background:url('/global/Images/answers.TabC.png') no-repeat scroll -112px 0;
+	width:2px;
+	height:22px;
+	overflow:hidden
+}
+
+.answers_TabC_answers_SiteNavTabOnLeft {
+	background:url('/global/Images/answers.TabC.png') no-repeat scroll -114px 0;
+	width:2px;
+	height:24px;
+	overflow:hidden
+}
+
+.answers_TabC_answers_SiteNavTabOnRight {
+	background:url('/global/Images/answers.TabC.png') no-repeat scroll -116px 0;
+	width:2px;
+	height:24px;
+	overflow:hidden
+}
+
+.CCE_Title_Edit {
+	width:100%;
+	font-size:13pt;
+	font-weight:bold;
+	padding:0;
+	border:solid 1px #87a9d1
+}
+
+.CCE_TitlePanel {
+	background-color:#eef6f0;
+	padding:12px
+}
+
+.CCE_TagEditorPanel {
+	text-align:left
+}
+
+.CCE_Message {
+	color:Red;
+	font-size:10pt
+}
+
+.CCE_Button {
+	margin-top:8px;
+	margin-bottom:8px
+}
+
+.CCE_ButtonsPanel {
+	text-align:right;
+	height:40px;
+	padding-left:12px;
+	padding-right:12px
+}
+
+.CCE_TagAutoComplete {
+	text-align:left;
+	list-style-type:none;
+	list-style-image:none;
+	cursor:default;
+	padding:0;
+	margin:0;
+	border:solid 1px gray;
+	background-color:white;
+	color:Black;
+	z-index:100
+}
+
+.CCE_License {
+	text-align:center;
+	margin-bottom:3px
+}
+
+.CCE_LicenseTooltip {
+	font-family:Verdana
+}
+
+.CCE_Editor_Disabled {
+	margin-left:0
+}
+
+.CCE_Editor_Disabled PRE {
+	background-color:#dedede;
+	margin:0;
+	white-space:pre-wrap
+}
+
+.CCE_Editor_Disabled P {
+	margin:0;
+	min-height:1em
+}
+
+.CC_CodeSnippetTitleBar {
+	background-color:#eee;
+	padding-top:3px;
+	padding-left:3px;
+	padding-right:3px;
+	padding-bottom:3px;
+	white-space:nowrap;
+	border-bottom:dashed 1px black;
+	height:15px;
+	word-spacing:normal;
+	letter-spacing:normal
+}
+
+.CC_CodeDisplayLanguage {
+	float:left;
+	text-align:left
+}
+
+.CC_CopyCodeButton {
+	float:right;
+	text-align:right
+}
+
+a.CC_copyCode {
+	cursor:pointer;
+	color:blue;
+	text-decoration:none;
+	text-align:right
+}
+
+pre.CC_code {
+	background-color:#ddd;
+	margin:0;
+	padding-top:3px;
+	padding-left:3px;
+	padding-right:3px;
+	padding-bottom:3px
+}
+
+div.CC_code {
+	background-color:#ddd;
+	margin:0;
+	padding:0
+}
+
+div.CC_code {
+	border:dotted 1px black
+}
+
+DIV.rade_toolbar UL {
+	line-height:normal;
+	word-wrap:normal
+}
+
+DIV.rade_dropDownBody {
+	height:auto!important;
+	overflow:visible
+}
+
+DIV.rade_dropDownBody PRE {
+	margin-left:0
+}
+
+DIV.radeditor {
+	height:auto!important;
+	width:auto!important
+}
+
+TD.rade_tlbVertical {
+	display:none
+}
+
+TD.rade_wrapper_corner, TD.rade_wrapper_center {
+	display:none
+}
+
+TD.rade_toolZone {
+	background-color:#eef6f0!important
+}
+
+DIV.radtooltip_Vista {
+	border:solid 1px red
+}
+
+TD.ToolTipContent {
+	font-family:Verdana!important;
+	font-size:10pt!important;
+	font-weight:normal!important
+}
+
+.CCS_Container {
+	font-family:Verdana;
+	font-size:9pt;
+	width:98%;
+	position:relative;
+	line-height:normal;
+	clear:both
+}
+
+.CCS_TopicTagEditor {
+	margin:0 12px 0 12px
+}
+
+.CCS_ContentContainer {
+	margin:0 12px 12px 12px
+}
+
+.CCS_WikiLogo {
+	position:relative;
+	width:40px;
+	top:36px;
+	left:12px;
+	padding:0;
+	margin:0
+}
+
+.CCS_HeaderContainer {
+	margin:0
+}
+
+.CCS_Header {
+	background-color:#5ba86f;
+	height:40px;
+	border-bottom:solid 1px black
+}
+
+.CCS_HeaderTitle {
+	color:white;
+	font-family:Verdana;
+	font-weight:bold;
+	font-size:12pt;
+	font-weight:bold;
+	padding:5px 5px 5px 15px;
+	margin-left:30px;
+	vertical-align:middle;
+	white-space:nowrap
+}
+
+.CCS_HelpImage {
+	border:0;
+	vertical-align:middle
+}
+
+.CCS_Toolbar {
+	height:20px;
+	background-color:white;
+	color:#03c;
+	padding-top:12px;
+	margin:0;
+	table-layout:fixed
+}
+
+A.CCS_Link, A:active.CCS_Link, A:hover.CCS_Link, A:visited.CCS_Link {
+	color:#03c;
+	font-family:Verdana;
+	font-size:9pt;
+	cursor:pointer
+}
+
+A.CCS_Link, A:active.CCS_Link, A:visited.CCS_Link {
+	text-decoration:none
+}
+
+A:hover.CCS_Link {
+	text-decoration:underline
+}
+
+.CCS_Add {
+	font-family:Verdana;
+	font-size:9pt;
+	color:#03c;
+	text-align:left;
+	vertical-align:middle;
+	white-space:nowrap
+}
+
+.CCS_AddLinkDisabled, .CCS_AddLinkDisabled:hover, .CCS_AddLinkDisabled:visited, .CCS_AddLinkDisabled:active {
+	color:Gray;
+	cursor:default
+}
+
+.CCS_RecentChanges {
+	color:#03c;
+	font-family:Verdana;
+	font-size:9pt;
+	text-align:center;
+	white-space:nowrap
+}
+
+.CCS_RecentChangesText {
+	vertical-align:middle
+}
+
+.CCS_RecentChanges A, .CCS_RecentChanges A:visited, .CCS_RecentChanges A:hover {
+	vertical-align:middle;
+	color:#03c
+}
+
+.CCS_RSSImage {
+	vertical-align:middle
+}
+
+.CCS_Profile {
+	white-space:nowrap;
+	vertical-align:middle
+}
+
+.CCS_ItemsContainer {
+	width:auto;
+	margin:0 12px 12px 12px
+}
+
+.CCS_Progress {
+	display:none;
+	position:absolute;
+	top:0;
+	left:0;
+	background-color:Transparent;
+	z-index:10
+}
+
+.CCS_Footer {
+	height:8px;
+	width:100%;
+	font-size:0;
+	background-color:#5ba86f;
+	margin-top:24px
+}
+
+.CCS_Message {
+	color:Red;
+	font-size:10pt;
+	text-align:center
+}
+
+.CCT_Panel, .CCT_Panel_Block {
+	background-color:#fff;
+	font-size:9pt;
+	margin:0 0 0 0;
+	min-height:26px;
+	line-height:12pt
+}
+
+.CCT_Panel {
+	border:solid 1px #ccc;
+	padding:3px 3px 3px 3px
+}
+
+.CCT_Panel_Block {
+	border-top:solid 1px #ccc;
+	padding:3px 12px 3px 12px;
+	white-space:normal
+}
+
+.CCT_Title {
+	font-weight:bold;
+	font-size:10pt;
+	vertical-align:middle;
+	height:1px;
+	padding-top:3px;
+	padding-right:0;
+	padding-left:0;
+	float:left
+}
+
+.CCT_Text {
+	color:#03c;
+	font-size:9pt;
+	padding:0 0 0 0
+}
+
+.CCT_View {
+	margin:0 4px 0 4px;
+	font-size:9pt;
+	top:0;
+	left:0;
+	padding:0 0 0 0;
+	vertical-align:middle
+}
+
+.CCT_Edit {
+	margin:0 4px 0 4px;
+	white-space:nowrap
+}
+
+.CCT_TextBox {
+	font-size:10pt;
+	vertical-align:middle;
+	z-index:100;
+	width:98%!important
+}
+
+.CCT_TagPair {
+	white-space:normal;
+	vertical-align:middle
+}
+
+a.CCT_Link, a:active.CCT_Link, a:hover.CCT_Link, a:visited.CCT_Link {
+	color:#03c;
+	font-size:9pt
+}
+
+a.CCT_Link, a:active.CCT_Link, a:visited.CCT_Link {
+	text-decoration:none
+}
+
+a:hover.CCT_Link {
+	text-decoration:underline
+}
+
+a.CCT_LinkButton, a:active.CCT_LinkButton, a:hover.CCT_LinkButton, a:visited.CCT_LinkButton {
+	color:#03c;
+	font-size:9pt;
+	white-space:nowrap
+}
+
+a.CCT_LinkButton, a:active.CCT_LinkButton, a:visited.CCT_LinkButton {
+	text-decoration:none
+}
+
+a:hover.CCT_LinkButton {
+	text-decoration:underline
+}
+
+.CCT_Message {
+	color:red
+}
+
+.CCT_HelpLink {
+}
+
+.CCT_HelpImage {
+	border:solid 0 black;
+	margin:3px 3px 3px 3px;
+	vertical-align:middle
+}
+
+.CCT_TagAutoComplete {
+	text-align:left;
+	list-style-type:none;
+	list-style-image:none;
+	cursor:default;
+	padding:0;
+	margin:0;
+	border:solid 1px gray;
+	background-color:white;
+	color:Black;
+	width:auto!important;
+	z-index:100
+}
+
+.CCT_TagsPanel {
+	float:left;
+	width:75%
+}
+
+.CCT_FlagAsPanel {
+	float:right;
+	white-space:nowrap;
+	vertical-align:middle
+}
+
+.EyebrowElement {
+	font-weight:bold
+}
+
+.EyebrowContainer {
+	font-size:90%;
+	margin:5px 0 10px 0;
+	width:90%
+}
+
+.MtpsFeedViewerBasicRootPanelClass {
+}
+
+.MtpsFeedViewerBasicHeaderStylePanel {
+}
+
+.FVB_HeaderStyle_One, .FVB_HeaderStyle_Two, .FVB_HeaderStyle_Three, .FVB_HeaderStyle_Four, .FVB_HeaderStyle_Five {
+	font-family:Verdana, Tahoma, Arial;
+	font-weight:900
+}
+
+.FVB_HeaderStyle_One {
+	font-size:200%
+}
+
+.FVB_HeaderStyle_Two {
+	font-size:175%
+}
+
+.FVB_HeaderStyle_Three {
+	font-size:150%
+}
+
+.FVB_HeaderStyle_Four {
+	font-size:125%
+}
+
+.FVB_HeaderStyle_Five {
+	font-size:100%
+}
+
+A.TitleRSSButtonCssClass {
+	vertical-align:middle
+}
+
+A.TitleRSSButtonCssClass img {
+	margin-left:5px
+}
+
+.BasicHeadlinesItemPanelCssClass {
+	width:auto!important;
+	vertical-align:top;
+	margin-bottom:12px;
+	padding-right:1%
+}
+
+.BasicHeadlinesTitleBold {
+	display:inline-block;
+	font-size:12px;
+	font-weight:normal;
+	margin-bottom:3px
+}
+
+.BasicListItemPanelCssClass {
+	float:left;
+	vertical-align:top;
+	margin-bottom:12px;
+	padding-right:1%
+}
+
+.BasicListTitleBold {
+	font-weight:700
+}
+
+.BulletListHeadlineLink {
+}
+
+.FeedViewerBasicBulletListLI {
+}
+
+.FeatureHeadlinesTitle {
+	vertical-align:top;
+	font-weight:normal
+}
+
+.FeaturedHeadlinesItemPanelCssClass {
+	float:left;
+	vertical-align:top
+}
+
+.ImageHeadlineTabelCell {
+	vertical-align:top;
+	padding:3px 0 10px 0;
+	text-align:left;
+	width:1%
+}
+
+.ImageHeadlineTabelCell A IMG {
+	border:solid 0 transparent
+}
+
+.FeaturedRssItemTableCell {
+	vertical-align:top;
+	text-align:left
+}
+
+td.headlines_td_text strong {
+	font-size:14px;
+	font-weight:normal;
+	margin-bottom:3px
+}
+
+.FVBAuthorLabel {
+	font-weight:900;
+	color:#555;
+	font-size:smaller;
+	padding-right:5px
+}
+
+.FVBPubDateLabel {
+	font-style:italic;
+	color:#555;
+	font-size:smaller
+}
+
+.FVB_ImageHeadlinesDiv {
+	padding:0 0 10px 10px;
+	vertical-align:top
+}
+
+td.headlines_td_text {
+	padding:0 0 0 10px
+}
+
+td.headlines_td_image {
+	padding:3px 0 9px 0
+}
+
+table.headlines_table {
+	padding-bottom:12px
+}
+
+td.noimages_td {
+	padding-bottom:0
+}
+
+.LimitedListItemPanelCssClass {
+	float:left;
+	vertical-align:top;
+	margin-bottom:12px
+}
+
+.LimitedListTitleBold {
+}
+
+.ItemDiv {
+	font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;
+	float:left
+}
+
+.ColumnDiv {
+	width:auto;
+	margin-top:12px
+}
+
+.OPMLImgDiv {
+	float:left;
+	margin-bottom:12px;
+	padding:3px 10px 9px 0
+}
+
+.OPMLTextDiv {
+	vertical-align:top;
+	min-height:30px;
+	margin-bottom:12px;
+	margin-left:65px
+}
+
+.OPMLFriendlyName {
+	font-size:small;
+	font-weight:bold
+}
+
+.OPMLSubtitle {
+	font-size:small;
+	font-weight:normal
+}
+
+.OPMLFriend {
+	text-decoration:none;
+	color:#555
+}
+
+.OPMLBlogEntryTitle {
+}
+
+.FVBForumListLI {
+	margin-bottom:10px
+}
+
+.FVBForumDescriptionCssClass {
+	width:auto;
+	vertical-align:top;
+	margin-bottom:12px
+}
+
+.MtpsFeedViewerBasicMoreLinkPanelClass {
+	text-align:right
+}
+
+.ListColumnPanel {
+	float:left
+}
+
+.itPrint {
+	font-size:100%!important
+}
+
+.itFav {
+	font-size:100%!important
+}
+
+.itSend {
+	font-size:100%!important
+}
+
+.itComCon {
+	font-size:100%!important
+}
+
+Div.miniRatings {
+	background-color:#f0f0f0;
+	border-bottom:1px solid #c0c0c0;
+	text-align:left;
+	vertical-align:bottom;
+	margin:0 0 12px 0;
+	padding:0;
+	line-height:normal;
+	height:28px;
+	width:100%
+}
+
+div.miniRatings_left {
+	padding-top:5px;
+	padding-bottom:4px;
+	padding-left:2px;
+	float:left;
+	position:absolute;
+	background-color:#f0f0f0;
+	z-index:190
+}
+
+div.miniRatings_left a {
+	padding-top:2px;
+	padding-right:5px;
+	padding-bottom:3px;
+	padding-left:2px;
+	text-decoration:none;
+	color:#03c;
+	border:1px solid #f0f0f0
+}
+
+head div.miniRatings_left a {
+	padding-right:5px;
+	padding-left:2px;
+	line-height:normal
+}
+
+div.miniRatings_left a:hover, head div.miniRatings_left a:hover {
+	background-color:#e3ebf2;
+	color:#03c;
+	border:1px solid #a1c6eb
+}
+
+div.miniRatings_left a:visited, head div.miniRatings_left a:visited {
+	color:#03c
+}
+
+div.miniRatings_left a img {
+	vertical-align:text-bottom;
+	margin-left:3px
+}
+
+head div.miniRatings_left a img {
+	vertical-align:top
+}
+
+div.miniRatings_right {
+	float:right;
+	z-index:99
+}
+
+div.miniRatings_right #ratingTable {
+	float:right
+}
+
+div.miniRatings_right td {
+	text-decoration:none;
+	color:#03c;
+	border:1px solid #f0f0f0;
+	padding:0;
+	padding-top:3px
+}
+
+div.miniRatings_right a:hover {
+	background-color:#e3ebf2
+}
+
+div.miniRatings_right a:visited {
+	color:#03c
+}
+
+div.miniRatings_right a img {
+	vertical-align:text-bottom
+}
+
+.ratingStar {
+	font-size:0;
+	width:16px;
+	height:16px;
+	margin:0;
+	padding:0;
+	cursor:pointer;
+	display:block;
+	background-repeat:no-repeat
+}
+
+.filledRatingStar {
+	background:url('/global/Images/LibC.gif') -288px 0
+}
+
+.emptyRatingStar {
+	background:url('/global/Images/LibC.gif') -304px 0
+}
+
+.savedRatingStar {
+	background:url('/global/Images/LibC.gif') -272px 0
+}
+
+.ratingFlyoutStatic {
+	white-space:nowrap;
+	width:500px
+}
+
+.ratingFlyoutStatic TABLE {
+	font-size:100%;
+	float:right
+}
+
+.tbFont {
+	white-space:nowrap
+}
+
+* html .tbfont, *+html .tbfont {
+	font-size:70%
+}
+
+.ratingFlyoutPopup {
+	margin:0;
+	vertical-align:middle;
+	border:1px solid #7a7a7a;
+	background-color:white;
+	height:220px;
+	width:450px
+}
+
+.ratingFlyoutPopup .OptionalText, .ratingFlyoutPopup .WarningMessage {
+	float:left;
+	margin-left:25px;
+	font-size:10pt;
+	margin-top:10px;
+	margin-bottom:10px
+}
+
+.ratingFlyoutPopup .WarningMessage {
+	color:Red
+}
+
+.ratingFlyoutPopup .Comment {
+	margin-left:25px;
+	width:396px;
+	height:132px;
+	display:block;
+	clear:both;
+	margin-bottom:10px
+}
+
+.ratingFlyoutPopup .Button {
+	float:right;
+	margin-right:25px;
+	padding-top:.2em
+}
+
+.FooterLinks {
+	padding:6px 0 12px 8px;
+	font-size:9pt
+}
+
+.FooterLinks A {
+	color:#03c;
+	font-weight:normal
+}
+
+A.FooterLinks:hover {
+	color:#f60
+}
+
+.FooterCopyright {
+	font-weight:normal;
+	color:#000
+}
+
+.Pipe {
+	color:#ccc;
+	font-size:125%;
+	padding-left:4px;
+	padding-right:4px
+}
+
+.LocaleManagementFlyoutPopup {
+	background-color:#fff;
+	color:#000;
+	border:1px solid #b8b8b8;
+	text-align:left;
+	z-index:1000;
+	padding:3px;
+	display:none;
+	position:absolute
+}
+
+.LocaleManagementFlyoutPopup A, .LocaleManagementFlyoutPopup A:visited {
+	font-size:10px;
+	color:#000;
+	height:15px;
+	text-align:left;
+	text-decoration:none;
+	white-space:nowrap;
+	display:block;
+	padding:1px 3px
+}
+
+.LocaleManagementFlyoutPopup A:hover, .LocaleManagementFlyoutPopup A:active {
+	background-color:#f0f7fd;
+	height:15px;
+	text-decoration:none;
+	white-space:nowrap;
+	display:block;
+	padding:1px 3px
+}
+
+.LocaleManagementFlyoutPopupHr {
+	height:1px;
+	background:#d0e0f0;
+	margin:0 11px 21px
+}
+
+.LocaleManagementFlyoutPopArrow {
+	background:transparent url('/platform/controls/StoLocaleManagementFlyout/resources/arrow_dn_white.gif') no-repeat;
+	padding-bottom:4px;
+	padding-left:5px;
+	margin-right:10px
+}
+
+.LocaleManagementFlyoutStatic, .LocaleManagementFlyoutStaticHover {
+	white-space:nowrap;
+	text-decoration:none;
+	cursor:default;
+	display:inline;
+	margin:1px;
+	padding:1px 3px;
+	color:#fff
+}
+
+A.LocaleManagementFlyoutStaticLink, A:visited.LocaleManagementFlyoutStaticLink, A:hover.LocaleManagementFlyoutStaticLink, A:active.LocaleManagementFlyoutStaticLink {
+	white-space:nowrap;
+	text-decoration:none;
+	cursor:default;
+	display:inline;
+	color:#fff
+}
+
+.Masthead {
+	padding:12px 0 0 0
+}
+
+.BrandLogo {
+	color:#fff;
+	cursor:pointer;
+	font-family:'Segoe UI Semibold', 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;
+	font-size:19px;
+	float:left;
+	line-height:150%;
+	margin:2px 0 0 8px;
+	width:312px
+}
+
+* html .BrandLogo {
+	font-size:18px;
+	margin:0 0 0 4px
+}
+
+.BrandLogo a, .BrandLogo a:link, .BrandLogo a:visited, .BrandLogo a:hover, .BrandLogo a:active {
+	color:#fff
+}
+
+.GlobalBar {
+	color:#fff;
+	float:right;
+	font-size:12px;
+	margin:-4px 11px 0 0;
+	text-align:right;
+	width:305px
+}
+
+.GlobalBar a:hover {
+	text-decoration:underline
+}
+
+.LocaleFlyout {
+	float:right;
+	white-space:nowrap
+}
+
+.PassportScarab {
+	float:right;
+	padding:0;
+	white-space:nowrap
+}
+
+.PassportScarab a, .PassportScarab a:link, .PassportScarab a:visited, .PassportScarab a:hover, .PassportScarab a:active {
+	color:#fff
+}
+
+.UserName {
+	float:right;
+	font-size:13px;
+	font-weight:bold;
+	overflow:hidden;
+	white-space:nowrap;
+	width:283px
+}
+
+.UserName a, .UserName a:link, .UserName a:visited, .UserName a:hover, .UserName a:active {
+	color:#fff
+}
+
+.NetworkLogo {
+	color:#fff;
+	font-family:'Segoe UI Semibold', 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;
+	font-size:19px;
+	line-height:150%;
+	position:absolute;
+	right:12px
+}
+
+.NetworkLogo a {
+	color:#fff
+}
+
+div#idPPMWOverlay {
+	background-color:#fff;
+	position:absolute;
+	bottom:0;
+	top:-20px;
+	left:-675px;
+	right:-155px;
+	z-index:1024;
+	width:240%;
+	height:101%;
+	margin:0;
+filter:progid:DXImageTransform.Microsoft.Alpha(opacity=75);
+	-moz-opacity:.75;
+	-khtml-opacity:.75
+}
+
+.SearchBox {
+	background-color:#fff;
+	border:solid 1px #346b94;
+	float:left;
+	height:22px;
+	margin:0 0 12px 0;
+	width:314px
+}
+
+* html .SearchBox {
+	height:23px
+}
+
+.SearchBox ul {
+	z-index:999;
+	display:block;
+	font-size:9pt;
+	list-style:none;
+	list-style-image:none
+}
+
+.TextBoxSearch {
+	border:none;
+	color:black;
+	float:left;
+	font-size:13px;
+	font-style:normal;
+	margin:0;
+	padding:4px 0 0 5px;
+	vertical-align:top;
+	width:232px
+}
+
+* html .TextBoxSearch {
+	padding:2px 0 0 5px;
+	width:228px
+}
+
+.TextBoxSearchIE7 {
+	padding:2px 2px 0 5px;
+	border:solid 1px white
+}
+
+.Bing {
+	background:#fff url('/platform/controls/StoSearch/resources/bing.png') 0 0 no-repeat;
+	display:inline-block;
+	float:right;
+	height:22px;
+	overflow:hidden;
+	text-align:right;
+	width:47px
+}
+
+* html .Bing {
+	background-image:url('/platform/controls/StoSearch/resources/bing2.png')
+}
+
+.SearchButton {
+	background:#fff url('/platform/controls/StoSearch/resources/bing.png') 0 -22px no-repeat;
+	display:inline-block;
+	border-width:0;
+	cursor:pointer;
+	float:right;
+	height:21px;
+	margin:0;
+	padding:0;
+	text-align:right;
+	vertical-align:top;
+	width:21px
+}
+
+* html .SearchButton {
+	background-image:url('/platform/controls/StoSearch/resources/bing2.png')
+}
+
+.internav {
+	background:url('internav.png') no-repeat top right;
+	float:left;
+	font-family:'Segoe UI Semibold', 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;
+	font-size:14px;
+	height:32px;
+	margin:0 0 0 8px;
+	max-width:936px;
+	overflow:hidden;
+	padding:0 37px 0 0;
+	position:relative;
+	white-space:nowrap
+}
+
+* html .internav {
+	background-image:none;
+	font-size:13px;
+	margin:0 0 0 4px;
+	padding:0
+}
+
+.leftcap {
+	background:url('internav.png') no-repeat -200px 0;
+	height:32px;
+	left:-29px;
+	position:absolute;
+	width:37px
+}
+
+* html .leftcap {
+	background-image:none
+}
+
+.internav a {
+	color:#fff;
+	float:left;
+	margin:0;
+	padding:6px 9px;
+	white-space:nowrap
+}
+
+* html .internav a {
+	padding:8px 9px 4px 9px
+}
+
+.internav a:hover {
+	color:#fff;
+	height:20px;
+	margin:1px 0;
+	padding:6px 9px 4px 9px
+}
+
+* html .internav a:hover {
+	padding:8px 9px 4px 9px
+}
+
+.internav a.active {
+	color:#fff;
+	height:20px;
+	margin:1px 0;
+	padding:5px 9px
+}
+
+* html .internav a.active, * html .internav a.active:hover {
+	padding:8px 9px 2px 9px
+}
+
+.LocalNavigation {
+	display:inline-block;
+	font-size:12px;
+	margin:0 0 0 -17px;
+	padding:0 0 1px 0;
+	white-space:nowrap;
+	width:996px
+}
+
+* html .LocalNavigation {
+	font-size:11px;
+	margin:0 0 0 8px;
+	width:950px
+}
+
+.HeaderTabs {
+	margin:0 0 0 25px;
+	width:948px
+}
+
+* html .HeaderTabs {
+	margin:0
+}
+
+.LocalNavigation .TabOff {
+	float:left;
+	white-space:nowrap
+}
+
+.LocalNavigation .TabOff a {
+	float:left;
+	margin-top:1px;
+	padding:4px 6px;
+	cursor:pointer;
+	color:#fff
+}
+
+.LocalNavigation .TabOff a:hover {
+	padding:5px 6px 3px 6px
+}
+
+.LocalNavigation .TabOn {
+	float:left;
+	margin-top:1px;
+	padding:4px 6px;
+	white-space:nowrap
+}
+
+.LocalNavigation .TabOn a, .LocalNavigation .TabOn a:hover, .LocalNavigation .TabOn a:visited {
+	color:#fff;
+	cursor:default;
+	text-decoration:none
+}
+
+.LocalNavBottom {
+	display:none
+}
+
+.cleartabstrip {
+	clear:both;
+	height:0
+}
+
+* html .cleartabstrip {
+	display:none
+}
+
+.TFlyPopupAnimate {
+	position:absolute;
+	display:block;
+	border:1px solid gray;
+	overflow:hidden;
+	visibility:hidden;
+	margin:0;
+	padding:0;
+	z-index:1
+}
diff --git a/Help/styles/msdn10/subnav_vstudio.png b/Help/styles/msdn10/subnav_vstudio.png
new file mode 100644
index 0000000..186ad79
Binary files /dev/null and b/Help/styles/msdn10/subnav_vstudio.png differ
diff --git a/README.md b/README.md
index 4013df2..7a34bb5 100644
--- a/README.md
+++ b/README.md
@@ -4,10 +4,12 @@ Easy and fast extension of the [Moq](https://github.com/Moq) mocking framework f
 
 ## Features
 
-- Auto Injection into tested component constructors
+- Test without declaring Mocks (unless needed).
+- Injection: Automatically determines what interfaces need to be injected into the constructor and creates mocks if they do not exist.
   - Best guess picks the multiple parameter constructor over the default constructor.
   - Specific mapping allows the tester to create an instance using a specific constructor and specific data.
-- Auto Mocking creation whenever a mock is first used.
+- Use Mocks without managing fields and properties. Mocks are managed by the Mocker framework. No need to keep track of Mocks. Just use them!
+- Create instances of Mocks with non public constructors.
 
 ## Targets
 
@@ -15,115 +17,47 @@ Easy and fast extension of the [Moq](https://github.com/Moq) mocking framework f
 - .NET 5
 - .NET 6
 
-## Available Objects in the FastMoq namespace
+## Most used classes in the FastMoq namespace
 
 ```cs
-public class Mocker {}
-public abstract class MockerTestBase where TComponent : class {}
+public class Mocker {} // Primary class for auto mock and injection. This can be used standalone from MockerTestBase using Mocks property on the base class.
+public abstract class MockerTestBase where TComponent : class {} // Assists in the creation of objects and provides direct access to Mocker.
 ```
 
-- Mocker is the primary class for auto mock and injection. This can be used standalone from MockerTestBase.
-- MockerTestBase assists in the creation of objects and provides direct access to Mocker.
-
 ## Examples
 
-### Example Test Class
-
-Testing this class will auto inject IFileSystem.
+### Basic example of the base class creating the Car class and auto mocking ICarService
 
 ```cs
-public class TestClassNormal : ITestClassNormal
-{
-    public event EventHandler TestEvent;
-    public IFileSystem FileSystem { get; set; }
-    public TestClassNormal() { }
-    public TestClassNormal(IFileSystem fileSystem) => FileSystem = fileSystem;
-    public void CallTestEvent() => TestEvent?.Invoke(this, EventArgs.Empty);
+public class CarTest : MockerTestBase {
+     [Fact]
+     public void TestCar() {
+         Component.Color.Should().Be(Color.Green);
+         Component.CarService.Should().NotBeNull();
+     }
 }
-```
-
-### Fast Start Testing
 
-TestClassNormal is created and injects IFileSystem.
-
-```cs
-public class TestClassNormalTestsDefaultBase : MockerTestBase
-{
-    [Fact]
-    public void Test1()
-    {
-        Component.FileSystem.Should().NotBeNull();
-        Component.FileSystem.Should().BeOfType();
-        Component.FileSystem.File.Should().NotBeNull();
-        Component.FileSystem.Directory.Should().NotBeNull();
-    }
+public class Car {
+     public Color Color { get; set; } = Color.Green;
+     public ICarService CarService { get; }
+     public Car(ICarService carService) => CarService = carService;
 }
-```
 
-### Pre-Test Setup
-
-TestClassNormal is created and injects IFileSystem. SetupMocksAction creates and configures the Mock IFileSystem before the component is created.
-
-```cs
-public class TestClassNormalTestsSetupBase : MockerTestBase
+public interface ICarService
 {
-    public TestClassNormalTestsSetupBase() : base(SetupMocksAction) { }
-
-    private static void SetupMocksAction(Mocker mocks)
-    {
-        var iFile = new FileSystem().File;
-        mocks.Strict = true;
-
-        mocks.Initialize(mock => mock.Setup(x => x.File).Returns(iFile));
-    }
-
-    [Fact]
-    public void Test1()
-    {
-        Component.FileSystem.Should().NotBeNull();
-        Component.FileSystem.Should().NotBeOfType();
-        Component.FileSystem.File.Should().NotBeNull();
-        Component.FileSystem.Directory.Should().BeNull();
-    }
+     Color Color { get; set; }
+     ICarService CarService { get; }
+     bool StartCar();
 }
 ```
 
-### Custom Setup, Creation, and Post Create routines
-
-TestClassNormal is created and injects IFileSystem. SetupMocksAction creates and configures the Mock IFileSystem before the component is created. Once created, the CreatedComponentAction subscribes to an event on the component.
+### Example of how to set up for mocks that require specific functionality
 
 ```cs
-public class TestClassNormalTestsFull : MockerTestBase
-{
-    private static bool testEventCalled;
-    public TestClassNormalTestsFull() : base(SetupMocksAction, CreateComponentAction, CreatedComponentAction) => testEventCalled = false;
-    private static void CreatedComponentAction(TestClassNormal? obj) => obj.TestEvent += (_, _) => testEventCalled = true;
-    private static TestClassNormal CreateComponentAction(Mocker mocks) => new(mocks.GetObject());
-
-    private static void SetupMocksAction(Mocker mocks)
-    {
-        var mock = new Mock();
-        var iFile = new FileSystem().File;
-        mocks.Strict = true;
-        mocks.AddMock(mock, true);
-        mocks.Initialize(xMock => xMock.Setup(x => x.File).Returns(iFile));
-    }
-
-    [Fact]
-    public void Test1()
-    {
-        Component.FileSystem.Should().Be(Mocker.GetMock().Object);
-        Component.FileSystem.Should().NotBeNull();
-        Component.FileSystem.File.Should().NotBeNull();
-        Component.FileSystem.Directory.Should().BeNull();
-        testEventCalled.Should().BeFalse();
-        Component.CallTestEvent();
-        testEventCalled.Should().BeTrue();
-
-        Mocker.Initialize(mock => mock.Setup(x => x.Directory).Returns(new FileSystem().Directory));
-        Component.FileSystem.Directory.Should().NotBeNull();
-
-    }
+public class CarTest : MockerTestBase {
+     public CarTest() : base(mocks => {
+             mocks.Initialize(mock => mock.Setup(x => x.StartCar).Returns(true));
+     }
 }
 ```
 
@@ -136,7 +70,7 @@ Auto injection allows creation of components with parameterized interfaces. If a
 Additionally, the creation can be overwritten and provided with instances of the parameters. CreateInstance will automatically match the correct constructor to the parameters given to CreateInstance.
 
 ```cs
-private static TestClassNormal CreateComponentAction() => Mocks.CreateInstance(new MockFileSystem()); // CreateInstance matches the parameters and types with the Component constructor.
+Mocks.CreateInstance(new MockFileSystem()); // CreateInstance matches the parameters and types with the Component constructor.
 ```
 
 #### Interface Type Map
@@ -158,16 +92,19 @@ This code maps ITestClassDouble to TestClassDouble1 when testing a component wit
 Mocker.AddType();
 ```
 
-
-
 The map also accepts parameters to tell it how to create the instance.
 
 ```cs
 Mocks.AddType(() => new TestClassDouble());
 ```
 
+## Additional Documentation
+
+[FastMoq Documentation](./Help/html/N-FastMoq.htm)
+
 ## Breaking Change
 
-1.22.604 => Renamed Mocks to Mocker, Renamed TestBase to MockerTestBase. 
+- 1.22.728 => Initialize method will reset the mock, if it already exists. This is overridable by settings the reset parameter to false.
+- 1.22.604 => Renamed Mocks to Mocker, Renamed TestBase to MockerTestBase.
 
 ## [License - MIT](./License)