Шаг 66 - CreateStorage() для создания хранилища внутри другого хранилища

Для того, чтобы создать хранилище (папку внутри хранилища) необходимо получить указатель на родительское хранилище и еще раз вызвать CreateStorage(). Пример:

#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_READWRITE |
		STGM_SHARE_EXCLUSIVE ,NULL,0,&pIStorage);
	if (!FAILED(rez))
	{
		cout << "Ok open" << endl;
		LPSTORAGE storage = 0;
		HRESULT hresult = pIStorage->CreateStorage(L"MyFolder",
			STGM_CREATE|STGM_READWRITE|STGM_DIRECT| 
			STGM_SHARE_EXCLUSIVE, 0, 0, &storage); 
		storage->Release(); 
		pIStorage->Release(); 
	}
	else cout << "Error open" << endl;
	return 0;
}

Смотрим в DocFile View:

66_1.gif (1805 b)


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