Функция должна делать только одно дело
Это обычно не очень удачная мысль —
записывать то, что должна делать функция, через ее аргументы. Это должно делать имя функции. Например:
UpdateAllViews( CView *sender, long lhint, CObject *phint )
{
// sender lhint phint
// NULL xx xx Начальное обновление, вызываемое из
// обрамляющего окна
// Cview* 0 Crect* Вызывается, когда встроенный объект
// становится действительным. phint
// указывает на прямоугольник документа,
// сохраняя положение недействительного
// объекта
// Cview* 1 Crect* Сообщение, посылаемое объектом CView*
// ("sender" - передатчик). phint сохраняет
// для CView* обрамляющее окно его клиента.
}
Вам нужны вместо этого три функции: initial_update(), update_embedded_object() и update_view(). Верным ключом для понимания того, что здесь что-то не так, является туманная природа имен аргументов. Функциям не должны передаваться "намеки". Им должны даваться указания.