Доброго времени суток, народ
Пытаюсь реализовать upload файла на сервер через метод POST. Использую Url Moniker и интерфейс IStream: передаю ссылку на IStream через структуру BindInfo интерфейсу IBindStatusCallback. Вызовы объекта реализующего IStream делаются нормально с одним исключением: метод Read вызывается больше раз чем надо — допустим размер файла составляет 391 байта (этот же размер я указываю в структуре BindInfo, поле cbStgmedData). А метод Read вызывается несколько раз при чем каждый раз входным параметром запрашивается 8 килобайт. Исходящий параметр я возвращаю равным 391 байт. В документации по этому методу сказано, что объект, вызывающий метод Read, сравнивает количество байт реально считанных с кол-вом запрошенным для чтения и если кол-во байт реально считанных меньше байт запрошенных, значит считан последний кусок файла (т.е. видимо больше считывать не надо). Тем не менее у меня URL Moniker вызывает метод Read не глядя все ли уже считано. Почему? Есть ли какие-то тонкости работы через Url Moniker и IStream?