C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 62 - Открытие и закрытие хранилища - получение интерфейса / ActiveX по шагам / Приложение

Шаг 62 - Открытие и закрытие хранилища - получение интерфейса

Итак, мы с Вами в течении ряда шагов смотрели как работать с хранилищем. Весь механизм очень похож на работу с файлами. Открыть, создать. Похож, но надо любой момент осознавать, что не просто работаем с функциями, мы получаем интерфейсы. Именно так. Смотрите на функцию создания:

LPSTORAGE temp=NULL;
OLECHAR filename[20];
wcscpy(filename,L"test.stg");
HRESULT hr=StgCreateDocfile(filename, STGM_CREATE | STGM_WRITE | STGM_SHARE_EXCLUSIVE,0,&temp);

В temp мы получили интерфейс. Вы не обратили внимания на то, что нет функции CLOSE ??? Её и не будет. Хотя прекращать работу с хранилищем надо. Для того, чтобы прекратить работу с хранилищем нужно вызвать метод Release() интерфейса. И это общее правило для COM объектов. А работа с хранилищем - это работа с COM объектами.

StgCreateDocfile
	Работа
Release

StgOpenStorage
	Работа
Release

pIStorage->EnumElements(0,NULL,0,&lpEnum); 
	Работа
Release

Еще раз, работа с хранилищами это работа с интерфейсами. И после использования интерфеса его необходимо закрыть с помощью Release(). Вы же помните, что при обращении к объекту вызывается функция AddRef(), которая увеличивает счетчик обращений ?? Release() уменьшает этот счетчик. Если функцию Release() не вызвать, то механизм работы с объектами OLE - COM будет болтаться в памяти и думать, что с ним еще кто-то работает, хотя от вашей программы уже и след простыл.


| |
Автор Каев Артем.
[AD]