private Mock <IVsWindowFrame> CreateMockFrame(__WindowFrameTypeFlags frameType, bool canQueryFrameType = true) { var frame = new Mock <IVsWindowFrame>(); var type = (object)(int)frameType; var queryFrameTypeResult = canQueryFrameType ? VSConstants.S_OK : VSConstants.E_FAIL; frame .Setup(x => x.GetProperty((int)__VSFPROPID.VSFPROPID_Type, out type)) .Returns(queryFrameTypeResult); return(frame); }
public static IEnumerable<IVsWindowFrame> EnumerateWindows(this IVsUIShell4 shell, __WindowFrameTypeFlags flags, Guid? windowGuid = null) { IEnumWindowFrames enumerator; ErrorHandler.ThrowOnFailure(shell.GetWindowEnum((uint)flags, out enumerator)); var frames = new IVsWindowFrame[1]; uint fetched = 0; while (VSConstants.S_OK == enumerator.Next(1, frames, out fetched) && fetched > 0) { var frame = frames[0]; bool include = true; if (windowGuid.HasValue) { Guid persist; ErrorHandler.ThrowOnFailure(frame.GetGuidProperty((int)__VSFPROPID.VSFPROPID_GuidPersistenceSlot, out persist)); include = persist == windowGuid; } if (include) { yield return frame; } } }
public static Result <List <IVsWindowFrame> > GetDocumentWindowFrames(this IVsUIShell4 vsShell, __WindowFrameTypeFlags flags) { IEnumWindowFrames enumFrames; var hr = vsShell.GetWindowEnum((uint)flags, out enumFrames); return(ErrorHandler.Failed(hr) ? Result.CreateError(hr) : enumFrames.GetContents()); }
public static IEnumerable <IVsWindowFrame> EnumerateWindows(this IVsUIShell4 shell, __WindowFrameTypeFlags flags, Guid?windowGuid = null) { IEnumWindowFrames enumerator; ErrorHandler.ThrowOnFailure(shell.GetWindowEnum((uint)flags, out enumerator)); var frames = new IVsWindowFrame[1]; uint fetched = 0; while (VSConstants.S_OK == enumerator.Next(1, frames, out fetched) && fetched > 0) { var frame = frames[0]; bool include = true; if (windowGuid.HasValue) { Guid persist; ErrorHandler.ThrowOnFailure(frame.GetGuidProperty((int)__VSFPROPID.VSFPROPID_GuidPersistenceSlot, out persist)); include = persist == windowGuid; } if (include) { yield return(frame); } } }