Подсчет ссылок для COM-объектов увеличивается, когда кто-то вызывает IUnknown :: AddRef (). QueryInterface (), в соответствии с правилами COM, поскольку он выдает новый указатель интерфейса, внутренне вызывает AddRef ().
В своем опубликованном коде вы не вызываете AddRef () и не вызываете функцию, которая может вызывать AddRef (), так почему вы думаете, что счетчик ссылок будет увеличен?
Несмотря на то, что ATL / MFC делает с мозгом, в этом нет никакой магии. Если вы сомневаетесь, вы всегда можете просмотреть разборку в VS и пройти через нее и доказать себе, что AddRef () не вызывается.
Редактировать: И я хочу повторить то, что сказал Дьюфи, не делайте этого . Используйте QueryInterface (). Или CComQIPtr <> (если вам действительно нужно).
Дальнейшее редактирование: если вы используете CComPtr <> и CComQIPtr <>, вам не нужно вызывать Release (), и большая часть бремени выяснения правильного подсчета ссылок уменьшается. Вы действительно должны подумать об их использовании.