Я пытаюсь создать карту объектов COM с определенным хешем, например, строкой. Это алгоритм кеширования, который я реализую. Идея состоит в том, что если вы попытаетесь загрузить файл, который уже был открыт предыдущей строкой кода, он вернет уже созданный блок памяти в виде IStream и не будет перезагружать файл в память. Одна проблема, с которой я столкнулся, заключается в автоматическом уничтожении COM-объектов при удалении их последней ссылки. Исходный контейнер не знает, что объект был уничтожен, и, когда вы обращаетесь к объекту, который был освобожден, он возвращает неверный дескриптор памяти вместо загрузки файла. Есть ли лучший способ реализовать это, или я должен отказаться от STL и вместо этого сделать свой собственный контейнер?