Exemplo n.º 1
0
        public async Task <string> GetDocumentWindowPositionsAsync()
        {
            using (var stream = new VsOleStream())
            {
                await _package.JoinableTaskFactory.SwitchToMainThreadAsync();

                var result = _vsDocumentWindowMgr.SaveDocumentWindowPositions(0, stream);
                if (result != VSConstants.S_OK)
                {
                    return(null);
                }

                stream.Seek(0, SeekOrigin.Begin);

                return(Convert.ToBase64String(stream.ToArray()));
            }
        }
Exemplo n.º 2
0
        public async Task <bool> RestoreDocumentWindowsAsync(string positions)
        {
            using (var stream = new VsOleStream())
            {
                var bytes = Convert.FromBase64String(positions);
                await stream.WriteAsync(bytes, 0, bytes.Length);

                stream.Seek(0, SeekOrigin.Begin);

                await _package.JoinableTaskFactory.SwitchToMainThreadAsync();

                var hr = _vsDocumentWindowMgr.ReopenDocumentWindows(stream);
                if (hr != VSConstants.S_OK)
                {
                    return(false);
                }

                return(true);
            }
        }