Шаг 63 - Открытие хранилища StgOpenStorage()

Открывается хранилище как обычный файл, только с большим количеством настроек:

HRESULT StgOpenStorage
(
	const WCHAR *pwcsName,	//имя
	IStorage *pstgPriority,	//используется для повторного открытия при
				//наличии интерфейса Istorage, обычно NULL
	DWORD grfMode,		//режим доступа
	SNB snbExclude,		//Обычно NULL, но может использоваться для
				//исключения объектов из хранилища
	DWORD reserved,		//Всегда 0 (зарезервирован)
	IStorage **ppstgOpen	//Интерфейс IStorage, который
				//возвращается при удачном вызове
);

Пример. В данном примере мы открываем уже созданное хранилище. Создали мы его в шаге "Шаг 59 - Корневое хранилище - создание".

#include "stdafx.h"
#include "windows.h"
#include "ole2.h"
#include "iostream.h"

int main(int argc, char* argv[])
{
	OLECHAR filename[20];
	wcscpy(filename,L"test.stg");
	LPSTORAGE pIStorage=NULL;
	HRESULT rez;
	rez=StgOpenStorage(filename,NULL, STGM_READ| STGM_SHARE_EXCLUSIVE,
		NULL,0,&pIStorage);

	if (!FAILED(rez))
	{
		cout << "Ok open" << endl;
		lpStorage->Release();
	}
	else cout << "Error open" << endl;
	return 0;
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.