Example #1
0
        /// <summary>
        /// Creates and initialize an instance without a factory
        /// </summary>
        /// <param name="type">type to create</param>
        /// <param name="caller">caller</param>
        /// <param name="instance">replaced instance</param>
        /// <param name="comProxy">com proxy</param>
        /// <param name="comProxyType">com proxy type</param>
        /// <returns></returns>
        private ICOMObject CreateInstanceInternal(Type type, ICOMObject caller, ICOMObject instance, object comProxy, Type comProxyType)
        {
            ICOMObject result = ComActivator.CreateInitializeInstanceWithoutFactory(instance.Factory, type, caller, comProxy, comProxyType) as ICOMObject;

            if (null != result)
            {
                if (null != caller)
                {
                    caller.RemoveChildObject(instance);
                }
                Parent.InternalObjectRegister.RemoveObjectFromList(instance, null);
            }
            return(result);
        }
Example #2
0
        /// <summary>
        /// Initialize replace instance if necessary
        /// </summary>
        /// <param name="caller">calling instance</param>
        /// <param name="instance">instance to replace</param>
        /// <param name="replaceInstance">new replaced instance</param>
        private void ProceedReplaceByEventInstance(ICOMObject caller, ICOMObject instance, ICOMObject replaceInstance)
        {
            ICOMObjectInitialize init = replaceInstance as ICOMObjectInitialize;

            if (null != init && false == init.IsInitialized)
            {
                init.InitializeCOMObject(Parent, caller, instance.UnderlyingObject, instance.UnderlyingType);
            }
            if (null != caller)
            {
                caller.RemoveChildObject(instance);
            }
            Parent.InternalObjectRegister.RemoveObjectFromList(instance, null);
        }