#define UNICODE
#include
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int nCmdShow)
{
LPCTSTR lpszFileContent = TEXT("foo bar");
LPCTSTR lpszError = NULL;
IStorage *device = NULL;
IStorage *directory = NULL;
IStream *file = NULL;
CoInitialize(NULL);
if (FAILED(StgCreateDocfile(L"C:\\Compound.dat", STGM_CREATE | STGM_WRITE | STGM_SHARE_EXCLUSIVE, 0, &device)))
lpszError = TEXT("StgCreateDocfile");
else if (FAILED(device->lpVtbl->CreateStorage(device, L"directory", STGM_CREATE | STGM_WRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &directory)))
lpszError = TEXT("IStorage::CreateStorage");
else if (FAILED(directory->lpVtbl->CreateStream(directory, L"example.doc", STGM_CREATE | STGM_WRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &file)))
lpszError = TEXT("IStorage::CreateStream");
else if (FAILED(file->lpVtbl->Write(file, lpszFileContent, lstrlen(lpszFileContent) * sizeof(TCHAR), NULL)))
lpszError = TEXT("IStream::Write");
if (lpszError)
MessageBox(NULL, lpszError, TEXT("Error"), MB_OK | MB_ICONSTOP);
if (file) file->lpVtbl->Release(file);
if (directory) directory->lpVtbl->Release(directory);
if (device) device->lpVtbl->Release(device);
CoUninitialize();
return !!lpszError;
}
阅读(917) | 评论(0) | 转发(0) |