public override void OnToolWindowCreated() { base.OnToolWindowCreated(); var frame = (IVsWindowFrame)Frame; object ouhw; Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(frame.GetProperty((int)__VSFPROPID.VSFPROPID_DocView, out ouhw)); // initialie w/ our hierarchy var hw = ouhw as IVsUIHierarchyWindow; _sessions = new SessionsNode(hw); object punk; ErrorHandler.ThrowOnFailure(hw.Init( _sessions, (uint)(__UIHWINFLAGS.UIHWF_SupportToolWindowToolbars | __UIHWINFLAGS.UIHWF_InitWithHiddenParentRoot | __UIHWINFLAGS.UIHWF_HandlesCmdsAsActiveHierarchy), out punk )); // add our toolbar which is defined in our VSCT file object otbh; Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(frame.GetProperty((int)__VSFPROPID.VSFPROPID_ToolbarHost, out otbh)); IVsToolWindowToolbarHost tbh = otbh as IVsToolWindowToolbarHost; Guid guidPerfMenuGroup = Guids.NodejsProfilingCmdSet; Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(tbh.AddToolbar(VSTWT_LOCATION.VSTWT_TOP, ref guidPerfMenuGroup, PkgCmdIDList.menuIdPerfToolbar)); }
public SessionNode(SessionsNode parent, ProfilingTarget target, string filename) { _parent = parent; _target = target; _filename = filename; // Register this with the running document table. This will prompt for save when the file is dirty and // by responding to GetProperty for VSHPROPID_ItemDocCookie we will support Ctrl-S when one of our // files is dirty. // http://msdn.microsoft.com/en-us/library/bb164600(VS.80).aspx IVsRunningDocumentTable rdt = NodejsProfilingPackage.GetGlobalService(typeof(SVsRunningDocumentTable)) as IVsRunningDocumentTable; uint cookie; IntPtr punkDocData = Marshal.GetIUnknownForObject(this); try { ErrorHandler.ThrowOnFailure(rdt.RegisterAndLockDocument((uint)(_VSRDTFLAGS.RDT_VirtualDocument | _VSRDTFLAGS.RDT_EditLock | _VSRDTFLAGS.RDT_CanBuildFromMemory), filename, this, VSConstants.VSITEMID_ROOT, punkDocData, out cookie)); } finally { if (punkDocData != IntPtr.Zero) { Marshal.Release(punkDocData); } } _docCookie = cookie; ItemId = parent._sessionsCollection.Add(this); }
public override void OnToolWindowCreated() { base.OnToolWindowCreated(); var frame = (IVsWindowFrame)Frame; object ouhw; Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(frame.GetProperty((int)__VSFPROPID.VSFPROPID_DocView, out ouhw)); // initialie w/ our hierarchy var hw = ouhw as IVsUIHierarchyWindow; _sessions = new SessionsNode(hw); object punk; ErrorHandler.ThrowOnFailure(hw.Init( _sessions, (uint)(__UIHWINFLAGS.UIHWF_SupportToolWindowToolbars | __UIHWINFLAGS.UIHWF_InitWithHiddenParentRoot | __UIHWINFLAGS.UIHWF_HandlesCmdsAsActiveHierarchy), out punk )); // add our toolbar which is defined in our VSCT file object otbh; Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(frame.GetProperty((int)__VSFPROPID.VSFPROPID_ToolbarHost, out otbh)); IVsToolWindowToolbarHost tbh = otbh as IVsToolWindowToolbarHost; Guid guidPerfMenuGroup = Guids.NodejsProfilingCmdSet; Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(tbh.AddToolbar(VSTWT_LOCATION.VSTWT_TOP, ref guidPerfMenuGroup, PkgCmdIDList.menuIdPerfToolbar)); }
public SessionNode(SessionsNode parent, ProfilingTarget target, string filename) { _parent = parent; _target = target; _filename = filename; // Register this with the running document table. This will prompt for save when the file is dirty and // by responding to GetProperty for VSHPROPID_ItemDocCookie we will support Ctrl-S when one of our // files is dirty. // http://msdn.microsoft.com/en-us/library/bb164600(VS.80).aspx IVsRunningDocumentTable rdt = NodejsProfilingPackage.GetGlobalService(typeof(SVsRunningDocumentTable)) as IVsRunningDocumentTable; uint cookie; IntPtr punkDocData = Marshal.GetIUnknownForObject(this); try { ErrorHandler.ThrowOnFailure(rdt.RegisterAndLockDocument((uint)(_VSRDTFLAGS.RDT_VirtualDocument | _VSRDTFLAGS.RDT_EditLock | _VSRDTFLAGS.RDT_CanBuildFromMemory), filename, this, VSConstants.VSITEMID_ROOT, punkDocData, out cookie)); } finally { if (punkDocData != IntPtr.Zero) { Marshal.Release(punkDocData); } } _docCookie = cookie; ItemId = parent._sessionsCollection.Add(this); }
internal AutomationProfiling(SessionsNode sessions) { _sessions = sessions; }
internal AutomationProfiling(SessionsNode sessions) { _sessions = sessions; }