用com的契合文件操作,出现故障了

用com的符合文件操作,出现故障了



//创建stg文件,代码正确,已经成功了,但是用dfview.exe无法浏览
int main(int argc, char* argv[])
{
CoInitialize(NULL);

IStorage* pStr;

int nErrcode;

IStream* pStream;


HRESULT hr  = StgCreateDocfile( L"test.stg", STGM_CREATE|STGM_READWRITE|STGM_SHARE_EXCLUSIVE, NULL, &pStr);

IStorage* pSub;


nErrcode=pStr->CreateStorage(L"SubStg",STGM_CREATE|STGM_WRITE|STGM_SHARE_EXCLUSIVE,0,0,&pSub);



nErrcode=hr = pSub->CreateStream( L"mcbStream", STGM_CREATE | STGM_WRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &pStream );

ULONG name;

char data[] = "Mahesh testing " ;

nErrcode=pStream->Write( data, strlen(data), &name ) ;


CoUninitialize();

return 0;
}




/////////////////////////////////////////////////////////

//以下是读取的文件,我发现读取的时候,会出现问题-----------

int main(int argc, char* argv[])
{
CoInitialize(NULL);

IStorage* pStr,*pSub;


HRESULT hr  = StgOpenStorage( L"D:\\c++\\dsdd\\dsdd\\test.stg", NULL,    STGM_READWRITE | STGM_SHARE_EXCLUSIVE , NULL,0, &pStr);

  
pSub=NULL;

LONG nRet=0;

nRet=pStr->OpenStorage(L"SubStg",NULL,  STGM_READWRITE   |   STGM_SHARE_EXCLUSIVE ,0,0,&pSub); //pSub死活为NULL,nRet返回值为80030002

IStream* pStream;

pStr->OpenStream(L"mcbStream",NULL, STGM_READ | STGM_SHARE_EXCLUSIVE ,0,&pStream);

int nErrcode= GetLastError();


ULONG name;
char data[] = "Mahesh testing " ;


ULONG   readbytes=0;

pStream->Read(data,5,&readbytes);

CoUninitialize();

return 0;
}





//
// MessageId: STG_E_FILENOTFOUND
//
// MessageText:
//
// %1 could not be found.
//
#define STG_E_FILENOTFOUND               _HRESULT_TYPEDEF_(0x80030002L) //STG_E_FILENOTFOUND
The storage object with the specified name does not exist.



------解决方案--------------------
写的时候,就没写对

用dfview已经看过了,原因不详
------解决方案--------------------
问题应解决了

没有realse,导致似乎不能够保存