public static DestroyLater FromBaseObject(BaseObject baseObj)
                    {
                        if (baseObj == null || baseObj.NativeObject == IntPtr.Zero)
                        {
                            return(null);
                        }
                        DestroyLater obj = baseObj as  DestroyLater;

                        if (object.Equals(obj, null))
                        {
                            obj = new DestroyLater(CreatedWhenConstruct.CWC_NotToCreate);
                            obj.BindNativeObject(baseObj.NativeObject, "CDestroyLater");
                            obj.IncreaseCast();
                        }

                        return(obj);
                    }
                    public BaseObject Create()
                    {
                        DestroyLater emptyInstance = new DestroyLater(CreatedWhenConstruct.CWC_NotToCreate);

                        return(emptyInstance);
                    }