Ejemplo n.º 1
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// This is like GetSelectionProps, except that the vvpsSoft items include all
		/// formatting MINUS the hard formatting in the text properties (ie, those derived by
		/// the view constructor and styles).
		/// </summary>
		/// <param name="vwSel">The view Selection</param>
		/// <param name="vttp">Returned array of ITsTextProps in the selection</param>
		/// <param name="vvpsSoft">Returned array of IVwPropertyStores in the selection</param>
		/// <param name="cttp">Returned count of properties</param>
		/// ------------------------------------------------------------------------------------
		public static void GetHardAndSoftCharProps(IVwSelection vwSel,
			out ITsTextProps[] vttp, out IVwPropertyStore[] vvpsSoft, out int cttp)
		{
			vttp = null;
			vvpsSoft = null;

			GetSelectionProps(vwSel, out vttp, out vvpsSoft, out cttp);

			if (cttp == 0)
				return;

			using (ArrayPtr pvTtp = MarshalEx.ArrayToNative<ITsTextProps>(cttp))
			{
				using (ArrayPtr pvVps = MarshalEx.ArrayToNative<IVwPropertyStore>(cttp))
				{
					vwSel.GetHardAndSoftCharProps(cttp, pvTtp, pvVps, out cttp);
					vttp = MarshalEx.NativeToArray<ITsTextProps>(pvTtp, cttp);
					vvpsSoft = MarshalEx.NativeToArray<IVwPropertyStore>(pvVps, cttp);
				}
			}
		}