public void InsertPicture(ICmPicture pict)
{
// get selection information
ITsString tss;
int ich;
bool fAssocPrev;
int hvoObj;
int ws;
int propTag;
SelectionHelper helper = CurrentSelection;
IVwSelection sel = helper.Selection;
sel.TextSelInfo(true, out tss, out ich, out fAssocPrev, out hvoObj, out propTag, out ws);
// If inserting a picture over a user prompt, need to set up info for a proper insertion
// in the empty paragraph.
if (propTag == SimpleRootSite.kTagUserPrompt)
{
ich = 0;
ITsStrFactory factory = m_cache.TsStrFactory;
tss = factory.MakeString(string.Empty, m_cache.ServiceLocator.WritingSystems.DefaultVernacularWritingSystem.Handle);
propTag = StTxtParaTags.kflidContents;
helper.SetTextPropId(SelectionHelper.SelLimitType.Anchor, StTxtParaTags.kflidContents);
helper.SetTextPropId(SelectionHelper.SelLimitType.End, StTxtParaTags.kflidContents);
}
else if (tss == null)
{
helper = GetSelectionReducedToIp(SelectionHelper.SelLimitType.Top);
if (helper != null)
helper.Selection.TextSelInfo(true, out tss, out ich, out fAssocPrev, out hvoObj, out propTag, out ws);
}
if (tss == null)
throw new InvalidOperationException("Attempt to insert a picture in an invalid location.");
InsertPictureOrc(pict, tss, ich, hvoObj, propTag, ws);
helper.IchAnchor = helper.IchEnd = ich + 1;
helper.SetIPAfterUOW();
}