Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
cc98619c
Commit
cc98619c
authored
Nov 25, 2009
by
Vincent Povirk
Committed by
Alexandre Julliard
Dec 04, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ole32: Add an internal vtable to StorageBaseImpl objects.
parent
f434ab1f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
27 additions
and
5 deletions
+27
-5
storage32.c
dlls/ole32/storage32.c
+13
-3
storage32.h
dlls/ole32/storage32.h
+14
-2
No files found.
dlls/ole32/storage32.c
View file @
cc98619c
...
...
@@ -378,7 +378,7 @@ static ULONG WINAPI StorageBaseImpl_Release(
* destructor of the appropriate derived class. To do this, we are
* using virtual functions to implement the destructor.
*/
This
->
v_destructor
(
This
);
StorageBaseImpl_Destroy
(
This
);
}
return
ref
;
...
...
@@ -2219,6 +2219,11 @@ static const IStorageVtbl Storage32Impl_Vtbl =
StorageBaseImpl_Stat
};
static
const
StorageBaseImplVtbl
StorageImpl_BaseVtbl
=
{
StorageImpl_Destroy
};
static
HRESULT
StorageImpl_Construct
(
HANDLE
hFile
,
LPCOLESTR
pwcsName
,
...
...
@@ -2249,7 +2254,7 @@ static HRESULT StorageImpl_Construct(
This
->
base
.
lpVtbl
=
&
Storage32Impl_Vtbl
;
This
->
base
.
pssVtbl
=
&
IPropertySetStorage_Vtbl
;
This
->
base
.
v_destructor
=
StorageImpl_Destroy
;
This
->
base
.
baseVtbl
=
&
StorageImpl_BaseVtbl
;
This
->
base
.
openFlags
=
(
openFlags
&
~
STGM_CREATE
);
This
->
base
.
ref
=
1
;
This
->
base
.
create
=
create
;
...
...
@@ -4074,6 +4079,11 @@ static const IStorageVtbl Storage32InternalImpl_Vtbl =
StorageBaseImpl_Stat
};
static
const
StorageBaseImplVtbl
StorageInternalImpl_BaseVtbl
=
{
StorageInternalImpl_Destroy
};
/******************************************************************************
** Storage32InternalImpl implementation
*/
...
...
@@ -4097,7 +4107,7 @@ static StorageInternalImpl* StorageInternalImpl_Construct(
* Initialize the virtual function table.
*/
newStorage
->
base
.
lpVtbl
=
&
Storage32InternalImpl_Vtbl
;
newStorage
->
base
.
v_destructor
=
StorageInternalImpl_Destroy
;
newStorage
->
base
.
baseVtbl
=
&
StorageInternalImpl_BaseVtbl
;
newStorage
->
base
.
openFlags
=
(
openFlags
&
~
STGM_CREATE
);
/*
...
...
dlls/ole32/storage32.h
View file @
cc98619c
...
...
@@ -114,6 +114,7 @@ static const ULONG DIRENTRY_NULL = 0xFFFFFFFF;
* module.
*/
typedef
struct
StorageBaseImpl
StorageBaseImpl
;
typedef
struct
StorageBaseImplVtbl
StorageBaseImplVtbl
;
typedef
struct
StorageImpl
StorageImpl
;
typedef
struct
BlockChainStream
BlockChainStream
;
typedef
struct
SmallBlockChainStream
SmallBlockChainStream
;
...
...
@@ -179,6 +180,7 @@ HRESULT BIGBLOCKFILE_WriteAt(LPBIGBLOCKFILE This, ULARGE_INTEGER offset,
void
OLECONVERT_CreateOleStream
(
LPSTORAGE
pStorage
);
HRESULT
OLECONVERT_CreateCompObjStream
(
LPSTORAGE
pStorage
,
LPCSTR
strOleTypeName
);
/****************************************************************************
* Storage32BaseImpl definitions.
*
...
...
@@ -222,9 +224,9 @@ struct StorageBaseImpl
DirRef
storageDirEntry
;
/*
* virtual
Destructor method
.
* virtual
methods
.
*/
void
(
*
v_destructor
)(
StorageBaseImpl
*
)
;
const
StorageBaseImplVtbl
*
baseVtbl
;
/*
* flags that this storage was opened or created with
...
...
@@ -243,6 +245,16 @@ struct StorageBaseImpl
The behaviour of STGM_SIMPLE depends on this */
};
/* virtual methods for StorageBaseImpl objects */
struct
StorageBaseImplVtbl
{
void
(
*
Destroy
)(
StorageBaseImpl
*
);
};
static
inline
void
StorageBaseImpl_Destroy
(
StorageBaseImpl
*
This
)
{
This
->
baseVtbl
->
Destroy
(
This
);
}
/****************************************************************************
* StorageBaseImpl stream list handlers
*/
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment