Для того, чтобы создать хранилище (папку внутри хранилища) необходимо получить указатель на родительское хранилище и еще раз вызвать 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: