public IdleTimeSource() { var crinfo = new OLECRINFO[1]; crinfo[0].cbSize = (uint)Marshal.SizeOf(typeof(OLECRINFO)); crinfo[0].grfcrf = (uint)_OLECRF.olecrfNeedIdleTime | (uint)_OLECRF.olecrfNeedPeriodicIdleTime; crinfo[0].grfcadvf = (uint)_OLECADVF.olecadvfModal | (uint)_OLECADVF.olecadvfRedrawOff | (uint)_OLECADVF.olecadvfWarningsOff; crinfo[0].uIdleTimeInterval = 200; var oleComponentManager = RPackage.GetGlobalService(typeof(SOleComponentManager)) as IOleComponentManager; oleComponentManager.FRegisterComponent(this, crinfo, out _componentID); }
public VsAppShell() { ThreadHelper.ThrowIfNotOnUIThread("VsEditorShell constructor"); MainThread = Thread.CurrentThread; IComponentModel componentModel = RPackage.GetGlobalService(typeof(SComponentModel)) as IComponentModel; CompositionService = componentModel.DefaultCompositionService; ExportProvider = componentModel.DefaultExportProvider; _idleTimeSource = new IdleTimeSource(); _idleTimeSource.OnIdle += OnIdle; _idleTimeSource.OnTerminateApp += OnTerminateApp; DetemineTestEnvironment(); EditorShell.Current = this; }