Шаблон:CreateFileAsBinaryDataStorage example

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
char l_filename[] = "./somefile";
std::size_t cb_filename = sizeof(l_filename) - 1 /*term. 0*/;

IIOBinaryData* pIO; //uninitialized pointer
{
   IBinaryDataBase* pStorage; //uninitialized pointer
   int32_t err = CreateFileAsBinaryDataStorage(l_filename, cb_filename, FileRead | FileWrite, FileCreateAlways, std::addressof(pStorage));

   if (err < 0)
      return -1; //failure
   err = pStorage->IsInterfaceAvailable(IOBinaryDataType);
   if (err < 0)
   {
      pStorage->Release();
      return -1; //failure of IsInterfaceAvailable
   }
   if (err == 1)
   {
      pSotrage->Release();
      return 0; //Interface is not available
   }
   err = pStorage->RepresentAs(IOBinaryDataType, (void**) std::addressof(pIO));
   if (err < 0)
   {
      pStorage->Release();
      return -1; //failure of RepresentAs
   }
   pStorage->Release();
}
//access file via pIO...

pIO->Release();