diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c index e983bf3715c..69a00cd5917 100644 --- a/dlls/ole32/storage32.c +++ b/dlls/ole32/storage32.c @@ -2740,6 +2740,10 @@ static HRESULT StorageImpl_Construct( ULARGE_INTEGER size; BYTE bigBlockBuffer[MAX_BIG_BLOCK_SIZE]; + /* Discard any existing data. */ + size.QuadPart = 0; + ILockBytes_SetSize(This->lockBytes, size); + /* * Initialize all header variables: * - The big block depot consists of one block and it is at block 0 diff --git a/dlls/ole32/tests/storage32.c b/dlls/ole32/tests/storage32.c index d0e5236346f..b8c6ada63af 100644 --- a/dlls/ole32/tests/storage32.c +++ b/dlls/ole32/tests/storage32.c @@ -2971,7 +2971,7 @@ static void test_hglobal_storage_creation(void) r = StgOpenStorageOnILockBytes(ilb, NULL, STGM_READ|STGM_SHARE_EXCLUSIVE, NULL, 0, &stg); - todo_wine ok(r == S_OK, "StgOpenStorageOnILockBytes failed, hr=%x\n", r); + ok(r == S_OK, "StgOpenStorageOnILockBytes failed, hr=%x\n", r); if (SUCCEEDED(r)) {