/// <summary> /// Sets the read only state of a document /// </summary> /// <param name="readOnly">if set to <c>true</c> [read only].</param> /// <returns></returns> public bool SetReadOnly(bool readOnly) { IVsPersistDocData2 pdd2 = RawDocument as IVsPersistDocData2; if (pdd2 == null) { return(false); } return(SafeSucceeded(pdd2.SetDocDataReadOnly, readOnly ? 1 : 0)); }
/// <summary> /// Determines whether the document is readonly /// </summary> /// <returns> /// <c>true</c> if [is read only]; otherwise, <c>false</c>. /// </returns> public bool IsReadOnly() { IVsPersistDocData2 pdd2 = RawDocument as IVsPersistDocData2; if (pdd2 == null) { return(false); } int readOnly; return(SafeSucceeded(pdd2.IsDocDataReadOnly, out readOnly) && (readOnly != 0)); }
/// <summary> /// Sets the read only state of a document /// </summary> /// <param name="readOnly">if set to <c>true</c> [read only].</param> /// <returns></returns> public bool SetReadOnly(bool readOnly) { ThreadHelper.ThrowIfNotOnUIThread(); IVsPersistDocData2 pdd2 = RawDocument as IVsPersistDocData2; if (pdd2 == null) { return(false); } return(SafeSucceeded(pdd2.SetDocDataReadOnly, readOnly ? 1 : 0)); }
/// <include file='doc\RunningDocumentTable.uex' path='docs/doc[@for="VsShell.SaveFileIfDirty"]/*' /> public string SaveFileIfDirty(string fullPath) { object docData = this.FindDocument(fullPath); if (docData is IVsPersistDocData2) { IVsPersistDocData2 pdd = (IVsPersistDocData2)docData; int dirty = 0; int hr = pdd.IsDocDataDirty(out dirty); if (NativeMethods.Succeeded(hr) && dirty != 0) { string newdoc; int cancelled; NativeMethods.ThrowOnFailure(pdd.SaveDocData(VSSAVEFLAGS.VSSAVE_Save, out newdoc, out cancelled)); return(newdoc); } } return(fullPath); }