private ComponentStore(ComponentStoreType storeType, SubscriptionStore subStore) { if (storeType != ComponentStoreType.UserStore) { throw new NotImplementedException(); } this._storeType = storeType; this._subStore = subStore; this._store = System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore(); Guid guidOfType = System.Deployment.Internal.Isolation.IsolationInterop.GetGuidOfType(typeof(System.Deployment.Internal.Isolation.IStateManager)); this._stateMgr = System.Deployment.Internal.Isolation.IsolationInterop.GetUserStateManager(0, IntPtr.Zero, ref guidOfType) as System.Deployment.Internal.Isolation.IStateManager; this._firstRefresh = true; }
public void RefreshStorePointer() { if (this._firstRefresh) { this._firstRefresh = false; } else { if (this._storeType != ComponentStoreType.UserStore) { throw new NotImplementedException(); } Marshal.ReleaseComObject(this._store.InternalStore); Marshal.ReleaseComObject(this._stateMgr); this._store = System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore(); Guid guidOfType = System.Deployment.Internal.Isolation.IsolationInterop.GetGuidOfType(typeof(System.Deployment.Internal.Isolation.IStateManager)); this._stateMgr = System.Deployment.Internal.Isolation.IsolationInterop.GetUserStateManager(0, IntPtr.Zero, ref guidOfType) as System.Deployment.Internal.Isolation.IStateManager; } }