Корневое хранилище можно воспринимать как файл, в котором хранятся других хранилища. Корневое хранилище по английски Root Storage. Для его создания используется функция StgCreateDocfile().
WINOLEAPI StgCreateDocfile ( const OLECHAR FAR* pwcsName, // имя файла DWORD grfMode, // Константы доступа корневого хранилища DWORD reserved, // зарезервированно IStorage FAR * FAR *ppstgOpen // указатель на получаемый интерфейс );
Давайте создадим:
// TestDtg.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "windows.h" #include "ole2.h" #include "iostream.h" int main(int argc, char* argv[]) { LPSTORAGE temp=NULL; OLECHAR filename[20]; wcscpy(filename,L"test.stg"); HRESULT hr=StgCreateDocfile(filename, STGM_CREATE | STGM_WRITE | STGM_SHARE_EXCLUSIVE,0,&temp); if (!FAILED(hr)) { cout << "Ok create" << endl; } else cout << "Error create" << endl; return 0; }
В результате у нас в рабочем каталоге будет файл. Давайте посмотрим на него в блокноте.
Как видите в нем уже есть информация. Если сравните его с созданием текстового файла, то увидите, что в данном случае все сложнее. В файл уже записана информация для инициализации.