private void Initialize()
        {
            this.IsAvailable = false;
            VirtualDesktopCache.Initialize(this._assembly);

            this.VirtualDesktopManager = (IVirtualDesktopManager)Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID.VirtualDesktopManager));
            if (ProductInfo.OSBuild >= 21359)
            {
                this.VirtualDesktopManagerInternal = new VirtualDesktopManagerInternal21359(this._assembly);
            }
            else if (ProductInfo.OSBuild >= 21313)
            {
                this.VirtualDesktopManagerInternal = new VirtualDesktopManagerInternal21313(this._assembly);
            }
            else if (ProductInfo.OSBuild >= 20231)
            {
                this.VirtualDesktopManagerInternal = new VirtualDesktopManagerInternal20231(this._assembly);
            }
            else
            {
                this.VirtualDesktopManagerInternal = new VirtualDesktopManagerInternal10240(this._assembly);
            }
            this.VirtualDesktopNotificationService = new VirtualDesktopNotificationService(this._assembly);
            this.VirtualDesktopPinnedApps          = new VirtualDesktopPinnedApps(this._assembly);
            this.ApplicationViewCollection         = new ApplicationViewCollection(this._assembly);

            this._listener?.Dispose();
            this._listener   = this.VirtualDesktopNotificationService.Register(VirtualDesktopNotification.CreateInstance(this._assembly));
            this.IsAvailable = true;
        }
Exemplo n.º 2
0
        public override IEnumerable <VirtualDesktop> GetDesktops()
        {
            var array  = this.Invoke <IObjectArray>(Args(IntPtr.Zero));
            var count  = array.GetCount();
            var vdType = this.ComInterfaceAssembly.GetType("IVirtualDesktop");

            for (var i = 0u; i < count; i++)
            {
                array.GetAt(i, vdType.GUID, out var ppvObject);
                yield return(VirtualDesktopCache.GetOrCreate(ppvObject));
            }
        }
Exemplo n.º 3
0
        private void Initialize()
        {
            VirtualDesktopCache.Initialize(this._assembly);

            this.VirtualDesktopManager             = (IVirtualDesktopManager)Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID.VirtualDesktopManager));
            this.VirtualDesktopManagerInternal     = new VirtualDesktopManagerInternal(this._assembly);
            this.VirtualDesktopNotificationService = new VirtualDesktopNotificationService(this._assembly);
            this.VirtualDesktopPinnedApps          = new VirtualDesktopPinnedApps(this._assembly);
            this.ApplicationViewCollection         = new ApplicationViewCollection(this._assembly);

            this._listener?.Dispose();
            this._listener = this.VirtualDesktopNotificationService.Register(VirtualDesktopNotification.CreateInstance(this._assembly));
        }
 protected void CurrentVirtualDesktopChangedCore(object pDesktopOld, object pDesktopNew)
 {
     VirtualDesktop.EventRaiser.RaiseCurrentChanged(this, VirtualDesktopCache.GetOrCreate(pDesktopOld), VirtualDesktopCache.GetOrCreate(pDesktopNew));
 }
 protected void VirtualDesktopDestroyedCore(object pDesktopDestroyed, object pDesktopFallback)
 {
     VirtualDesktop.EventRaiser.RaiseDestroyed(this, VirtualDesktopCache.GetOrCreate(pDesktopDestroyed), VirtualDesktopCache.GetOrCreate(pDesktopFallback));
 }
 protected void VirtualDesktopCreatedCore(object pDesktop)
 {
     VirtualDesktop.EventRaiser.RaiseCreated(this, VirtualDesktopCache.GetOrCreate(pDesktop));
 }
 protected VirtualDesktop GetDesktop(object comObject)
 => VirtualDesktopCache.GetOrCreate(comObject);
Exemplo n.º 8
0
 private VirtualDesktop GetDesktop(object[] parameters = null, [CallerMemberName] string methodName = "")
 => VirtualDesktopCache.GetOrCreate(this.Invoke <object>(parameters, methodName));
Exemplo n.º 9
0
 protected void VirtualDesktopWallpaperChangedCore(object pDesktop, string chPath)
 {
     VirtualDesktop.EventRaiser.RaiseWallpaperChanged(this, VirtualDesktopCache.GetOrCreate(pDesktop), chPath);
 }
Exemplo n.º 10
0
 protected void VirtualDesktopRenamedCore(object pDesktop, string chName)
 {
     VirtualDesktop.EventRaiser.RaiseRenamed(this, VirtualDesktopCache.GetOrCreate(pDesktop), chName);
 }
Exemplo n.º 11
0
 protected void VirtualDesktopMovedCore(object pDesktop, int nFromIndex, int nToIndex)
 {
     VirtualDesktop.EventRaiser.RaiseMoved(this, VirtualDesktopCache.GetOrCreate(pDesktop), nFromIndex, nToIndex);
 }