Возвращает интерфейс для перебора объектов хранилища. Это может быть не обязательно корневое хранилище, может быть любое. Вызывается из интерфейса хранилища.
HRESULT EnumElements ( DWORD reserved1, //зарезервировано 0 void *reserved2, //зарезервировано NULL DWORD reserved3, //зарезервировано 0 EnumSTATSTG **ppenum //указатель на интерфейс IEnumSTATSTG для перебора );
Возврашает много значений, но в случае успеха S_OK и указатель на перечислитель не равный NULL.
Можно просто проверять перечилитель, получен он или нет.
LPENUMSTATSTG lpEnum=NULL; pIStorage->EnumElements(0,NULL,0,&lpEnum); if (lpEnum!=NULL) { }
Этот интерфейс имеет метод NEXT, с помощью которого можно передвигаться по объектам и получать о них информацию. После работы с полученным интерфейсом необходимо вызвать метод Release().