For example, this is a part of code of a C++/Win32 app (by using #import on MSWORD.OLB) where I insert an image at 200th character :
(with the simplest form of Range, from Range object)
Word::_Application* pWord;
// Get Word Application in pWord...
Word::DocumentsPtr pDocs = pWord->Documents;
Word::_DocumentPtr pDoc = pDocs->Open2000(&variant_t("E:\\Test.doc"),&variant_t(false), &variant_t(false), &variant_t(false));
Word::WindowPtr pWindow = pWord->GetActiveWindow();
Word::Range* pRange = pWindow->Selection->GetRange();
pRange->Start = 200;
pRange->End = 200;
VARIANT vTargetRange;
vTargetRange.vt = VT_DISPATCH;
vTargetRange.pdispVal = pRange;
Word::InlineShapes* pInlineshapes;
pInlineshapes = pDoc->GetInlineShapes();
CComVariant covTrue((short)true);
CComVariant covFalse((short)false);
BSTR bstr = SysAllocString(L"E:\\hulk.png");
pInlineshapes->AddPicture(bstr, &covFalse, &covTrue, &vTargetRange);