[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-patches
Subject: OLE32, storage: eliminate forward declarations, make functions static
From: Mike McCormack <mike () codeweavers ! com>
Date: 2005-03-31 11:25:39
Message-ID: 424BDE33.4040203 () codeweavers ! com
[Download RAW message or body]
ChangeLog:
* eliminate forward declarations, make functions static
["ole32-storage-vtbl.diff" (text/x-patch)]
Index: dlls/ole32/stg_prop.c
===================================================================
RCS file: /home/wine/wine/dlls/ole32/stg_prop.c,v
retrieving revision 1.4
diff -u -p -r1.4 stg_prop.c
--- dlls/ole32/stg_prop.c 17 Mar 2005 20:50:35 -0000 1.4
+++ dlls/ole32/stg_prop.c 31 Mar 2005 11:25:54 -0000
@@ -1251,7 +1251,7 @@ static HRESULT WINAPI IPropertySetStorag
void** ppvObject)
{
_ICOM_THIS_From_IPropertySetStorage(StorageImpl, ppstg);
- return StorageBaseImpl_QueryInterface( (IStorage*)This, riid, ppvObject );
+ return IStorage_QueryInterface( (IStorage*)This, riid, ppvObject );
}
/************************************************************************
@@ -1263,7 +1263,7 @@ static ULONG WINAPI IPropertySetStorage_
IPropertySetStorage *ppstg)
{
_ICOM_THIS_From_IPropertySetStorage(StorageImpl, ppstg);
- return StorageBaseImpl_AddRef( (IStorage*)This );
+ return IStorage_AddRef( (IStorage*)This );
}
/************************************************************************
@@ -1275,7 +1275,7 @@ static ULONG WINAPI IPropertySetStorage_
IPropertySetStorage *ppstg)
{
_ICOM_THIS_From_IPropertySetStorage(StorageImpl, ppstg);
- return StorageBaseImpl_Release( (IStorage*)This );
+ return IStorage_Release( (IStorage*)This );
}
/************************************************************************
Index: dlls/ole32/stg_stream.c
===================================================================
RCS file: /home/wine/wine/dlls/ole32/stg_stream.c,v
retrieving revision 1.25
diff -u -p -r1.25 stg_stream.c
--- dlls/ole32/stg_stream.c 7 Mar 2005 12:24:42 -0000 1.25
+++ dlls/ole32/stg_stream.c 31 Mar 2005 11:25:54 -0000
@@ -45,89 +45,6 @@
WINE_DEFAULT_DEBUG_CHANNEL(storage);
-/*
- * Virtual function table for the StgStreamImpl class.
- */
-static IStreamVtbl StgStreamImpl_Vtbl =
-{
- StgStreamImpl_QueryInterface,
- StgStreamImpl_AddRef,
- StgStreamImpl_Release,
- StgStreamImpl_Read,
- StgStreamImpl_Write,
- StgStreamImpl_Seek,
- StgStreamImpl_SetSize,
- StgStreamImpl_CopyTo,
- StgStreamImpl_Commit,
- StgStreamImpl_Revert,
- StgStreamImpl_LockRegion,
- StgStreamImpl_UnlockRegion,
- StgStreamImpl_Stat,
- StgStreamImpl_Clone
-};
-
-/******************************************************************************
-** StgStreamImpl implementation
-*/
-
-/***
- * This is the constructor for the StgStreamImpl class.
- *
- * Params:
- * parentStorage - Pointer to the storage that contains the stream to open
- * ownerProperty - Index of the property that points to this stream.
- */
-StgStreamImpl* StgStreamImpl_Construct(
- StorageBaseImpl* parentStorage,
- DWORD grfMode,
- ULONG ownerProperty)
-{
- StgStreamImpl* newStream;
-
- newStream = HeapAlloc(GetProcessHeap(), 0, sizeof(StgStreamImpl));
-
- if (newStream!=0)
- {
- /*
- * Set-up the virtual function table and reference count.
- */
- newStream->lpVtbl = &StgStreamImpl_Vtbl;
- newStream->ref = 0;
-
- /*
- * We want to nail-down the reference to the storage in case the
- * stream out-lives the storage in the client application.
- */
- newStream->parentStorage = parentStorage;
- IStorage_AddRef((IStorage*)newStream->parentStorage);
-
- newStream->grfMode = grfMode;
- newStream->ownerProperty = ownerProperty;
-
- /*
- * Start the stream at the beginning.
- */
- newStream->currentPosition.u.HighPart = 0;
- newStream->currentPosition.u.LowPart = 0;
-
- /*
- * Initialize the rest of the data.
- */
- newStream->streamSize.u.HighPart = 0;
- newStream->streamSize.u.LowPart = 0;
- newStream->bigBlockChain = 0;
- newStream->smallBlockChain = 0;
-
- /*
- * Read the size from the property and determine if the blocks forming
- * this stream are large or small.
- */
- StgStreamImpl_OpenBlockChain(newStream);
- }
-
- return newStream;
-}
-
/***
* This is the destructor of the StgStreamImpl class.
*
@@ -135,7 +52,7 @@ StgStreamImpl* StgStreamImpl_Construct(
* class. The pointer passed-in to this function will be freed and will not
* be valid anymore.
*/
-void StgStreamImpl_Destroy(StgStreamImpl* This)
+static void StgStreamImpl_Destroy(StgStreamImpl* This)
{
TRACE("(%p)\n", This);
@@ -170,7 +87,7 @@ void StgStreamImpl_Destroy(StgStreamImpl
* This implements the IUnknown method QueryInterface for this
* class
*/
-HRESULT WINAPI StgStreamImpl_QueryInterface(
+static HRESULT WINAPI StgStreamImpl_QueryInterface(
IStream* iface,
REFIID riid, /* [in] */
void** ppvObject) /* [iid_is][out] */
@@ -191,11 +108,8 @@ HRESULT WINAPI StgStreamImpl_QueryInterf
/*
* Compare the riid with the interface IDs implemented by this object.
*/
- if (memcmp(&IID_IUnknown, riid, sizeof(IID_IUnknown)) == 0)
- {
- *ppvObject = (IStream*)This;
- }
- else if (memcmp(&IID_IStream, riid, sizeof(IID_IStream)) == 0)
+ if (IsEqualGUID(&IID_IUnknown, riid)||
+ IsEqualGUID(&IID_IStream, riid))
{
*ppvObject = (IStream*)This;
}
@@ -210,7 +124,7 @@ HRESULT WINAPI StgStreamImpl_QueryInterf
* Query Interface always increases the reference count by one when it is
* successful
*/
- StgStreamImpl_AddRef(iface);
+ IStream_AddRef(iface);
return S_OK;
}
@@ -219,7 +133,7 @@ HRESULT WINAPI StgStreamImpl_QueryInterf
* This implements the IUnknown method AddRef for this
* class
*/
-ULONG WINAPI StgStreamImpl_AddRef(
+static ULONG WINAPI StgStreamImpl_AddRef(
IStream* iface)
{
StgStreamImpl* const This=(StgStreamImpl*)iface;
@@ -230,7 +144,7 @@ ULONG WINAPI StgStreamImpl_AddRef(
* This implements the IUnknown method Release for this
* class
*/
-ULONG WINAPI StgStreamImpl_Release(
+static ULONG WINAPI StgStreamImpl_Release(
IStream* iface)
{
StgStreamImpl* const This=(StgStreamImpl*)iface;
@@ -255,7 +169,7 @@ ULONG WINAPI StgStreamImpl_Release(
* that describes the stream.
* If the stream's size is null, no chain is opened.
*/
-void StgStreamImpl_OpenBlockChain(
+static void StgStreamImpl_OpenBlockChain(
StgStreamImpl* This)
{
StgProperty curProperty;
@@ -325,7 +239,7 @@ void StgStreamImpl_OpenBlockChain(
*
* See the documentation of ISequentialStream for more info.
*/
-HRESULT WINAPI StgStreamImpl_Read(
+static HRESULT WINAPI StgStreamImpl_Read(
IStream* iface,
void* pv, /* [length_is][size_is][out] */
ULONG cb, /* [in] */
@@ -426,7 +340,7 @@ end:
*
* See the documentation of ISequentialStream for more info.
*/
-HRESULT WINAPI StgStreamImpl_Write(
+static HRESULT WINAPI StgStreamImpl_Write(
IStream* iface,
const void* pv, /* [size_is][in] */
ULONG cb, /* [in] */
@@ -526,7 +440,7 @@ HRESULT WINAPI StgStreamImpl_Write(
*
* See the documentation of IStream for more info.
*/
-HRESULT WINAPI StgStreamImpl_Seek(
+static HRESULT WINAPI StgStreamImpl_Seek(
IStream* iface,
LARGE_INTEGER dlibMove, /* [in] */
DWORD dwOrigin, /* [in] */
@@ -588,7 +502,7 @@ HRESULT WINAPI StgStreamImpl_Seek(
*
* See the documentation of IStream for more info.
*/
-HRESULT WINAPI StgStreamImpl_SetSize(
+static HRESULT WINAPI StgStreamImpl_SetSize(
IStream* iface,
ULARGE_INTEGER libNewSize) /* [in] */
{
@@ -695,7 +609,7 @@ HRESULT WINAPI StgStreamImpl_SetSize(
*
* See the documentation of IStream for more info.
*/
-HRESULT WINAPI StgStreamImpl_CopyTo(
+static HRESULT WINAPI StgStreamImpl_CopyTo(
IStream* iface,
IStream* pstm, /* [unique][in] */
ULARGE_INTEGER cb, /* [in] */
@@ -780,7 +694,7 @@ HRESULT WINAPI StgStreamImpl_CopyTo(
*
* See the documentation of IStream for more info.
*/
-HRESULT WINAPI StgStreamImpl_Commit(
+static HRESULT WINAPI StgStreamImpl_Commit(
IStream* iface,
DWORD grfCommitFlags) /* [in] */
{
@@ -795,13 +709,13 @@ HRESULT WINAPI StgStreamImpl_Commit(
*
* See the documentation of IStream for more info.
*/
-HRESULT WINAPI StgStreamImpl_Revert(
+static HRESULT WINAPI StgStreamImpl_Revert(
IStream* iface)
{
return S_OK;
}
-HRESULT WINAPI StgStreamImpl_LockRegion(
+static HRESULT WINAPI StgStreamImpl_LockRegion(
IStream* iface,
ULARGE_INTEGER libOffset, /* [in] */
ULARGE_INTEGER cb, /* [in] */
@@ -811,7 +725,7 @@ HRESULT WINAPI StgStreamImpl_LockRegion(
return E_NOTIMPL;
}
-HRESULT WINAPI StgStreamImpl_UnlockRegion(
+static HRESULT WINAPI StgStreamImpl_UnlockRegion(
IStream* iface,
ULARGE_INTEGER libOffset, /* [in] */
ULARGE_INTEGER cb, /* [in] */
@@ -829,7 +743,7 @@ HRESULT WINAPI StgStreamImpl_UnlockRegio
*
* See the documentation of IStream for more info.
*/
-HRESULT WINAPI StgStreamImpl_Stat(
+static HRESULT WINAPI StgStreamImpl_Stat(
IStream* iface,
STATSTG* pstatstg, /* [out] */
DWORD grfStatFlag) /* [in] */
@@ -872,7 +786,7 @@ HRESULT WINAPI StgStreamImpl_Stat(
* should be basically as simple as creating a new stream with the same
* parent etc and positioning its seek cursor.
*/
-HRESULT WINAPI StgStreamImpl_Clone(
+static HRESULT WINAPI StgStreamImpl_Clone(
IStream* iface,
IStream** ppstm) /* [out] */
{
@@ -900,4 +814,87 @@ HRESULT WINAPI StgStreamImpl_Clone(
assert (SUCCEEDED(hres));
return S_OK;
+}
+
+/*
+ * Virtual function table for the StgStreamImpl class.
+ */
+static IStreamVtbl StgStreamImpl_Vtbl =
+{
+ StgStreamImpl_QueryInterface,
+ StgStreamImpl_AddRef,
+ StgStreamImpl_Release,
+ StgStreamImpl_Read,
+ StgStreamImpl_Write,
+ StgStreamImpl_Seek,
+ StgStreamImpl_SetSize,
+ StgStreamImpl_CopyTo,
+ StgStreamImpl_Commit,
+ StgStreamImpl_Revert,
+ StgStreamImpl_LockRegion,
+ StgStreamImpl_UnlockRegion,
+ StgStreamImpl_Stat,
+ StgStreamImpl_Clone
+};
+
+/******************************************************************************
+** StgStreamImpl implementation
+*/
+
+/***
+ * This is the constructor for the StgStreamImpl class.
+ *
+ * Params:
+ * parentStorage - Pointer to the storage that contains the stream to open
+ * ownerProperty - Index of the property that points to this stream.
+ */
+StgStreamImpl* StgStreamImpl_Construct(
+ StorageBaseImpl* parentStorage,
+ DWORD grfMode,
+ ULONG ownerProperty)
+{
+ StgStreamImpl* newStream;
+
+ newStream = HeapAlloc(GetProcessHeap(), 0, sizeof(StgStreamImpl));
+
+ if (newStream!=0)
+ {
+ /*
+ * Set-up the virtual function table and reference count.
+ */
+ newStream->lpVtbl = &StgStreamImpl_Vtbl;
+ newStream->ref = 0;
+
+ /*
+ * We want to nail-down the reference to the storage in case the
+ * stream out-lives the storage in the client application.
+ */
+ newStream->parentStorage = parentStorage;
+ IStorage_AddRef((IStorage*)newStream->parentStorage);
+
+ newStream->grfMode = grfMode;
+ newStream->ownerProperty = ownerProperty;
+
+ /*
+ * Start the stream at the beginning.
+ */
+ newStream->currentPosition.u.HighPart = 0;
+ newStream->currentPosition.u.LowPart = 0;
+
+ /*
+ * Initialize the rest of the data.
+ */
+ newStream->streamSize.u.HighPart = 0;
+ newStream->streamSize.u.LowPart = 0;
+ newStream->bigBlockChain = 0;
+ newStream->smallBlockChain = 0;
+
+ /*
+ * Read the size from the property and determine if the blocks forming
+ * this stream are large or small.
+ */
+ StgStreamImpl_OpenBlockChain(newStream);
+ }
+
+ return newStream;
}
Index: dlls/ole32/storage32.c
===================================================================
RCS file: /home/wine/wine/dlls/ole32/storage32.c,v
retrieving revision 1.80
diff -u -p -r1.80 storage32.c
--- dlls/ole32/storage32.c 29 Mar 2005 18:56:22 -0000 1.80
+++ dlls/ole32/storage32.c 31 Mar 2005 11:25:55 -0000
@@ -157,70 +157,6 @@ static DWORD GetShareModeFromSTGM(DWORD
static DWORD GetAccessModeFromSTGM(DWORD stgm);
static DWORD GetCreationModeFromSTGM(DWORD stgm);
-/*
- * Virtual function table for the IStorage32Impl class.
- */
-static IStorageVtbl Storage32Impl_Vtbl =
-{
- StorageBaseImpl_QueryInterface,
- StorageBaseImpl_AddRef,
- StorageBaseImpl_Release,
- StorageBaseImpl_CreateStream,
- StorageBaseImpl_OpenStream,
- StorageImpl_CreateStorage,
- StorageBaseImpl_OpenStorage,
- StorageImpl_CopyTo,
- StorageImpl_MoveElementTo,
- StorageImpl_Commit,
- StorageImpl_Revert,
- StorageBaseImpl_EnumElements,
- StorageImpl_DestroyElement,
- StorageBaseImpl_RenameElement,
- StorageImpl_SetElementTimes,
- StorageBaseImpl_SetClass,
- StorageImpl_SetStateBits,
- StorageImpl_Stat
-};
-
-/*
- * Virtual function table for the Storage32InternalImpl class.
- */
-static IStorageVtbl Storage32InternalImpl_Vtbl =
- {
- StorageBaseImpl_QueryInterface,
- StorageBaseImpl_AddRef,
- StorageBaseImpl_Release,
- StorageBaseImpl_CreateStream,
- StorageBaseImpl_OpenStream,
- StorageImpl_CreateStorage,
- StorageBaseImpl_OpenStorage,
- StorageImpl_CopyTo,
- StorageImpl_MoveElementTo,
- StorageInternalImpl_Commit,
- StorageInternalImpl_Revert,
- StorageBaseImpl_EnumElements,
- StorageImpl_DestroyElement,
- StorageBaseImpl_RenameElement,
- StorageImpl_SetElementTimes,
- StorageBaseImpl_SetClass,
- StorageImpl_SetStateBits,
- StorageBaseImpl_Stat
-};
-
-/*
- * Virtual function table for the IEnumSTATSTGImpl class.
- */
-static IEnumSTATSTGVtbl IEnumSTATSTGImpl_Vtbl =
-{
- IEnumSTATSTGImpl_QueryInterface,
- IEnumSTATSTGImpl_AddRef,
- IEnumSTATSTGImpl_Release,
- IEnumSTATSTGImpl_Next,
- IEnumSTATSTGImpl_Skip,
- IEnumSTATSTGImpl_Reset,
- IEnumSTATSTGImpl_Clone
-};
-
extern IPropertySetStorageVtbl IPropertySetStorage_Vtbl;
@@ -280,7 +216,7 @@ HRESULT WINAPI StorageBaseImpl_QueryInte
* Query Interface always increases the reference count by one when it is
* successful
*/
- StorageBaseImpl_AddRef(iface);
+ IStorage_AddRef(iface);
return S_OK;
}
@@ -435,7 +371,7 @@ HRESULT WINAPI StorageBaseImpl_OpenStrea
* Since we are returning a pointer to the interface, we have to
* nail down the reference.
*/
- StgStreamImpl_AddRef(*ppstm);
+ IStream_AddRef(*ppstm);
res = S_OK;
goto end;
@@ -622,7 +558,7 @@ HRESULT WINAPI StorageBaseImpl_EnumEleme
* Don't forget to nail down a reference to the new object before
* returning it.
*/
- IEnumSTATSTGImpl_AddRef(*ppenum);
+ IEnumSTATSTG_AddRef(*ppenum);
return S_OK;
}
@@ -735,7 +671,7 @@ HRESULT WINAPI StorageBaseImpl_RenameEle
return STG_E_FILEALREADYEXISTS;
}
- IEnumSTATSTGImpl_Reset((IEnumSTATSTG*)propertyEnumeration);
+ IEnumSTATSTG_Reset((IEnumSTATSTG*)propertyEnumeration);
/*
* Search the enumeration for the old property name
@@ -834,7 +770,7 @@ HRESULT WINAPI StorageBaseImpl_RenameEle
* Invoke Destroy to get rid of the ole property and automatically redo
* the linking of it's previous and next members...
*/
- StorageImpl_DestroyElement((IStorage*)This->ancestorStorage, pwcsOldName);
+ IStorage_DestroyElement((IStorage*)This->ancestorStorage, pwcsOldName);
}
else
@@ -996,7 +932,7 @@ HRESULT WINAPI StorageBaseImpl_CreateStr
* Since we are returning a pointer to the interface, we have to nail down
* the reference.
*/
- StgStreamImpl_AddRef(*ppstm);
+ IStream_AddRef(*ppstm);
}
else
{
@@ -2200,6 +2136,31 @@ HRESULT WINAPI StorageImpl_SetStateBits(
return E_NOTIMPL;
}
+/*
+ * Virtual function table for the IStorage32Impl class.
+ */
+static IStorageVtbl Storage32Impl_Vtbl =
+{
+ StorageBaseImpl_QueryInterface,
+ StorageBaseImpl_AddRef,
+ StorageBaseImpl_Release,
+ StorageBaseImpl_CreateStream,
+ StorageBaseImpl_OpenStream,
+ StorageImpl_CreateStorage,
+ StorageBaseImpl_OpenStorage,
+ StorageImpl_CopyTo,
+ StorageImpl_MoveElementTo,
+ StorageImpl_Commit,
+ StorageImpl_Revert,
+ StorageBaseImpl_EnumElements,
+ StorageImpl_DestroyElement,
+ StorageBaseImpl_RenameElement,
+ StorageImpl_SetElementTimes,
+ StorageBaseImpl_SetClass,
+ StorageImpl_SetStateBits,
+ StorageImpl_Stat
+};
+
HRESULT StorageImpl_Construct(
StorageImpl* This,
HANDLE hFile,
@@ -3472,48 +3433,6 @@ BlockChainStream* Storage32Impl_SmallBlo
return bigBlockChain;
}
-/******************************************************************************
-** Storage32InternalImpl implementation
-*/
-
-StorageInternalImpl* StorageInternalImpl_Construct(
- StorageImpl* ancestorStorage,
- ULONG rootPropertyIndex)
-{
- StorageInternalImpl* newStorage;
-
- /*
- * Allocate space for the new storage object
- */
- newStorage = HeapAlloc(GetProcessHeap(), 0, sizeof(StorageInternalImpl));
-
- if (newStorage!=0)
- {
- memset(newStorage, 0, sizeof(StorageInternalImpl));
-
- /*
- * Initialize the virtual function table.
- */
- newStorage->base.lpVtbl = &Storage32InternalImpl_Vtbl;
- newStorage->base.v_destructor = &StorageInternalImpl_Destroy;
-
- /*
- * Keep the ancestor storage pointer and nail a reference to it.
- */
- newStorage->base.ancestorStorage = ancestorStorage;
- StorageBaseImpl_AddRef((IStorage*)(newStorage->base.ancestorStorage));
-
- /*
- * Keep the index of the root property set for this storage,
- */
- newStorage->base.rootPropertySetIndex = rootPropertyIndex;
-
- return newStorage;
- }
-
- return 0;
-}
-
void StorageInternalImpl_Destroy( StorageBaseImpl *iface)
{
StorageInternalImpl* This = (StorageInternalImpl*) iface;
@@ -3549,52 +3468,6 @@ HRESULT WINAPI StorageInternalImpl_Rever
return S_OK;
}
-/******************************************************************************
-** IEnumSTATSTGImpl implementation
-*/
-
-IEnumSTATSTGImpl* IEnumSTATSTGImpl_Construct(
- StorageImpl* parentStorage,
- ULONG firstPropertyNode)
-{
- IEnumSTATSTGImpl* newEnumeration;
-
- newEnumeration = HeapAlloc(GetProcessHeap(), 0, sizeof(IEnumSTATSTGImpl));
-
- if (newEnumeration!=0)
- {
- /*
- * Set-up the virtual function table and reference count.
- */
- newEnumeration->lpVtbl = &IEnumSTATSTGImpl_Vtbl;
- newEnumeration->ref = 0;
-
- /*
- * We want to nail-down the reference to the storage in case the
- * enumeration out-lives the storage in the client application.
- */
- newEnumeration->parentStorage = parentStorage;
- IStorage_AddRef((IStorage*)newEnumeration->parentStorage);
-
- newEnumeration->firstPropertyNode = firstPropertyNode;
-
- /*
- * Initialize the search stack
- */
- newEnumeration->stackSize = 0;
- newEnumeration->stackMaxSize = ENUMSTATSGT_SIZE_INCREMENT;
- newEnumeration->stackToVisit =
- HeapAlloc(GetProcessHeap(), 0, sizeof(ULONG)*ENUMSTATSGT_SIZE_INCREMENT);
-
- /*
- * Make sure the current node of the iterator is the first one.
- */
- IEnumSTATSTGImpl_Reset((IEnumSTATSTG*)newEnumeration);
- }
-
- return newEnumeration;
-}
-
void IEnumSTATSTGImpl_Destroy(IEnumSTATSTGImpl* This)
{
IStorage_Release((IStorage*)This->parentStorage);
@@ -3623,28 +3496,15 @@ HRESULT WINAPI IEnumSTATSTGImpl_QueryInt
/*
* Compare the riid with the interface IDs implemented by this object.
*/
- if (memcmp(&IID_IUnknown, riid, sizeof(IID_IUnknown)) == 0)
- {
- *ppvObject = (IEnumSTATSTG*)This;
- }
- else if (memcmp(&IID_IStorage, riid, sizeof(IID_IEnumSTATSTG)) == 0)
+ if (IsEqualGUID(&IID_IUnknown, riid) ||
+ IsEqualGUID(&IID_IStorage, riid))
{
*ppvObject = (IEnumSTATSTG*)This;
+ IEnumSTATSTG_AddRef((IEnumSTATSTG*)This);
+ return S_OK;
}
- /*
- * Check that we obtained an interface.
- */
- if ((*ppvObject)==0)
- return E_NOINTERFACE;
-
- /*
- * Query Interface always increases the reference count by one when it is
- * successful
- */
- IEnumSTATSTGImpl_AddRef((IEnumSTATSTG*)This);
-
- return S_OK;
+ return E_NOINTERFACE;
}
ULONG WINAPI IEnumSTATSTGImpl_AddRef(
@@ -4060,6 +3920,133 @@ ULONG IEnumSTATSTGImpl_PopSearchNode(
This->stackSize--;
return topNode;
+}
+
+/*
+ * Virtual function table for the IEnumSTATSTGImpl class.
+ */
+static IEnumSTATSTGVtbl IEnumSTATSTGImpl_Vtbl =
+{
+ IEnumSTATSTGImpl_QueryInterface,
+ IEnumSTATSTGImpl_AddRef,
+ IEnumSTATSTGImpl_Release,
+ IEnumSTATSTGImpl_Next,
+ IEnumSTATSTGImpl_Skip,
+ IEnumSTATSTGImpl_Reset,
+ IEnumSTATSTGImpl_Clone
+};
+
+/******************************************************************************
+** IEnumSTATSTGImpl implementation
+*/
+
+IEnumSTATSTGImpl* IEnumSTATSTGImpl_Construct(
+ StorageImpl* parentStorage,
+ ULONG firstPropertyNode)
+{
+ IEnumSTATSTGImpl* newEnumeration;
+
+ newEnumeration = HeapAlloc(GetProcessHeap(), 0, sizeof(IEnumSTATSTGImpl));
+
+ if (newEnumeration!=0)
+ {
+ /*
+ * Set-up the virtual function table and reference count.
+ */
+ newEnumeration->lpVtbl = &IEnumSTATSTGImpl_Vtbl;
+ newEnumeration->ref = 0;
+
+ /*
+ * We want to nail-down the reference to the storage in case the
+ * enumeration out-lives the storage in the client application.
+ */
+ newEnumeration->parentStorage = parentStorage;
+ IStorage_AddRef((IStorage*)newEnumeration->parentStorage);
+
+ newEnumeration->firstPropertyNode = firstPropertyNode;
+
+ /*
+ * Initialize the search stack
+ */
+ newEnumeration->stackSize = 0;
+ newEnumeration->stackMaxSize = ENUMSTATSGT_SIZE_INCREMENT;
+ newEnumeration->stackToVisit =
+ HeapAlloc(GetProcessHeap(), 0, sizeof(ULONG)*ENUMSTATSGT_SIZE_INCREMENT);
+
+ /*
+ * Make sure the current node of the iterator is the first one.
+ */
+ IEnumSTATSTGImpl_Reset((IEnumSTATSTG*)newEnumeration);
+ }
+
+ return newEnumeration;
+}
+
+/*
+ * Virtual function table for the Storage32InternalImpl class.
+ */
+static IStorageVtbl Storage32InternalImpl_Vtbl =
+{
+ StorageBaseImpl_QueryInterface,
+ StorageBaseImpl_AddRef,
+ StorageBaseImpl_Release,
+ StorageBaseImpl_CreateStream,
+ StorageBaseImpl_OpenStream,
+ StorageImpl_CreateStorage,
+ StorageBaseImpl_OpenStorage,
+ StorageImpl_CopyTo,
+ StorageImpl_MoveElementTo,
+ StorageInternalImpl_Commit,
+ StorageInternalImpl_Revert,
+ StorageBaseImpl_EnumElements,
+ StorageImpl_DestroyElement,
+ StorageBaseImpl_RenameElement,
+ StorageImpl_SetElementTimes,
+ StorageBaseImpl_SetClass,
+ StorageImpl_SetStateBits,
+ StorageBaseImpl_Stat
+};
+
+/******************************************************************************
+** Storage32InternalImpl implementation
+*/
+
+StorageInternalImpl* StorageInternalImpl_Construct(
+ StorageImpl* ancestorStorage,
+ ULONG rootPropertyIndex)
+{
+ StorageInternalImpl* newStorage;
+
+ /*
+ * Allocate space for the new storage object
+ */
+ newStorage = HeapAlloc(GetProcessHeap(), 0, sizeof(StorageInternalImpl));
+
+ if (newStorage!=0)
+ {
+ memset(newStorage, 0, sizeof(StorageInternalImpl));
+
+ /*
+ * Initialize the virtual function table.
+ */
+ newStorage->base.lpVtbl = &Storage32InternalImpl_Vtbl;
+ newStorage->base.v_destructor = &StorageInternalImpl_Destroy;
+
+ /*
+ * Keep the ancestor storage pointer and nail a reference to it.
+ */
+ newStorage->base.ancestorStorage = ancestorStorage;
+ StorageBaseImpl_AddRef((IStorage*)(newStorage->base.ancestorStorage));
+
+ /*
+ * Keep the index of the root property set for this storage,
+ */
+ newStorage->base.rootPropertySetIndex = rootPropertyIndex;
+
+ return newStorage;
+ }
+
+ return 0;
}
/******************************************************************************
Index: dlls/ole32/storage32.h
===================================================================
RCS file: /home/wine/wine/dlls/ole32/storage32.h,v
retrieving revision 1.20
diff -u -p -r1.20 storage32.h
--- dlls/ole32/storage32.h 23 Mar 2005 13:15:19 -0000 1.20
+++ dlls/ole32/storage32.h 31 Mar 2005 11:25:55 -0000
@@ -240,66 +240,6 @@ struct StorageBaseImpl
};
-/*
- * Prototypes for the methods of the Storage32BaseImpl class.
- */
-HRESULT WINAPI StorageBaseImpl_QueryInterface(
- IStorage* iface,
- REFIID riid,
- void** ppvObject);
-
-ULONG WINAPI StorageBaseImpl_AddRef(
- IStorage* iface);
-
-ULONG WINAPI StorageBaseImpl_Release(
- IStorage* iface);
-
-HRESULT WINAPI StorageBaseImpl_OpenStream(
- IStorage* iface,
- const OLECHAR* pwcsName, /* [string][in] */
- void* reserved1, /* [unique][in] */
- DWORD grfMode, /* [in] */
- DWORD reserved2, /* [in] */
- IStream** ppstm); /* [out] */
-
-HRESULT WINAPI StorageBaseImpl_OpenStorage(
- IStorage* iface,
- const OLECHAR* pwcsName, /* [string][unique][in] */
- IStorage* pstgPriority, /* [unique][in] */
- DWORD grfMode, /* [in] */
- SNB snbExclude, /* [unique][in] */
- DWORD reserved, /* [in] */
- IStorage** ppstg); /* [out] */
-
-HRESULT WINAPI StorageBaseImpl_EnumElements(
- IStorage* iface,
- DWORD reserved1, /* [in] */
- void* reserved2, /* [size_is][unique][in] */
- DWORD reserved3, /* [in] */
- IEnumSTATSTG** ppenum); /* [out] */
-
-HRESULT WINAPI StorageBaseImpl_Stat(
- IStorage* iface,
- STATSTG* pstatstg, /* [out] */
- DWORD grfStatFlag); /* [in] */
-
-HRESULT WINAPI StorageBaseImpl_RenameElement(
- IStorage* iface,
- const OLECHAR* pwcsOldName, /* [string][in] */
- const OLECHAR* pwcsNewName); /* [string][in] */
-
-HRESULT WINAPI StorageBaseImpl_CreateStream(
- IStorage* iface,
- const OLECHAR* pwcsName, /* [string][in] */
- DWORD grfMode, /* [in] */
- DWORD reserved1, /* [in] */
- DWORD reserved2, /* [in] */
- IStream** ppstm); /* [out] */
-
-HRESULT WINAPI StorageBaseImpl_SetClass(
- IStorage* iface,
- REFCLSID clsid); /* [in] */
-
/****************************************************************************
* Storage32Impl definitions.
*
@@ -351,59 +291,6 @@ struct StorageImpl
BigBlockFile* bigBlockFile;
};
-/*
- * Method declaration for the Storage32Impl class
- */
-
-HRESULT WINAPI StorageImpl_CreateStorage(
- IStorage* iface,
- const OLECHAR* pwcsName, /* [string][in] */
- DWORD grfMode, /* [in] */
- DWORD dwStgFmt, /* [in] */
- DWORD reserved2, /* [in] */
- IStorage** ppstg); /* [out] */
-
-HRESULT WINAPI StorageImpl_CopyTo(
- IStorage* iface,
- DWORD ciidExclude, /* [in] */
- const IID* rgiidExclude, /* [size_is][unique][in] */
- SNB snbExclude, /* [unique][in] */
- IStorage* pstgDest); /* [unique][in] */
-
-HRESULT WINAPI StorageImpl_MoveElementTo(
- IStorage* iface,
- const OLECHAR* pwcsName, /* [string][in] */
- IStorage* pstgDest, /* [unique][in] */
- const OLECHAR* pwcsNewName, /* [string][in] */
- DWORD grfFlags); /* [in] */
-
-HRESULT WINAPI StorageImpl_Commit(
- IStorage* iface,
- DWORD grfCommitFlags); /* [in] */
-
-HRESULT WINAPI StorageImpl_Revert(
- IStorage* iface);
-
-HRESULT WINAPI StorageImpl_DestroyElement(
- IStorage* iface,
- const OLECHAR* pwcsName); /* [string][in] */
-
-HRESULT WINAPI StorageImpl_SetElementTimes(
- IStorage* iface,
- const OLECHAR* pwcsName, /* [string][in] */
- const FILETIME* pctime, /* [in] */
- const FILETIME* patime, /* [in] */
- const FILETIME* pmtime); /* [in] */
-
-HRESULT WINAPI StorageImpl_SetStateBits(
- IStorage* iface,
- DWORD grfStateBits, /* [in] */
- DWORD grfMask); /* [in] */
-
-HRESULT WINAPI StorageImpl_Stat(IStorage* iface,
- STATSTG* pstatstg, /* [out] */
- DWORD grfStatFlag); /* [in] */
-
void StorageImpl_Destroy(
StorageBaseImpl* This);
@@ -551,37 +438,6 @@ struct IEnumSTATSTGImpl
#define ENUMSTATSGT_SIZE_INCREMENT 10
};
-/*
- * Method definitions for the IEnumSTATSTGImpl class.
- */
-HRESULT WINAPI IEnumSTATSTGImpl_QueryInterface(
- IEnumSTATSTG* iface,
- REFIID riid,
- void** ppvObject);
-
-ULONG WINAPI IEnumSTATSTGImpl_AddRef(
- IEnumSTATSTG* iface);
-
-ULONG WINAPI IEnumSTATSTGImpl_Release(
- IEnumSTATSTG* iface);
-
-HRESULT WINAPI IEnumSTATSTGImpl_Next(
- IEnumSTATSTG* iface,
- ULONG celt,
- STATSTG* rgelt,
- ULONG* pceltFetched);
-
-HRESULT WINAPI IEnumSTATSTGImpl_Skip(
- IEnumSTATSTG* iface,
- ULONG celt);
-
-HRESULT WINAPI IEnumSTATSTGImpl_Reset(
- IEnumSTATSTG* iface);
-
-HRESULT WINAPI IEnumSTATSTGImpl_Clone(
- IEnumSTATSTG* iface,
- IEnumSTATSTG** ppenum);
-
IEnumSTATSTGImpl* IEnumSTATSTGImpl_Construct(
StorageImpl* This,
ULONG firstPropertyNode);
@@ -666,80 +522,6 @@ StgStreamImpl* StgStreamImpl_Construct(
StorageBaseImpl* parentStorage,
DWORD grfMode,
ULONG ownerProperty);
-
-void StgStreamImpl_Destroy(
- StgStreamImpl* This);
-
-void StgStreamImpl_OpenBlockChain(
- StgStreamImpl* This);
-
-HRESULT WINAPI StgStreamImpl_QueryInterface(
- IStream* iface,
- REFIID riid, /* [in] */
- void** ppvObject); /* [iid_is][out] */
-
-ULONG WINAPI StgStreamImpl_AddRef(
- IStream* iface);
-
-ULONG WINAPI StgStreamImpl_Release(
- IStream* iface);
-
-HRESULT WINAPI StgStreamImpl_Read(
- IStream* iface,
- void* pv, /* [length_is][size_is][out] */
- ULONG cb, /* [in] */
- ULONG* pcbRead); /* [out] */
-
-HRESULT WINAPI StgStreamImpl_Write(
- IStream* iface,
- const void* pv, /* [size_is][in] */
- ULONG cb, /* [in] */
- ULONG* pcbWritten); /* [out] */
-
-HRESULT WINAPI StgStreamImpl_Seek(
- IStream* iface,
- LARGE_INTEGER dlibMove, /* [in] */
- DWORD dwOrigin, /* [in] */
- ULARGE_INTEGER* plibNewPosition); /* [out] */
-
-HRESULT WINAPI StgStreamImpl_SetSize(
- IStream* iface,
- ULARGE_INTEGER libNewSize); /* [in] */
-
-HRESULT WINAPI StgStreamImpl_CopyTo(
- IStream* iface,
- IStream* pstm, /* [unique][in] */
- ULARGE_INTEGER cb, /* [in] */
- ULARGE_INTEGER* pcbRead, /* [out] */
- ULARGE_INTEGER* pcbWritten); /* [out] */
-
-HRESULT WINAPI StgStreamImpl_Commit(
- IStream* iface,
- DWORD grfCommitFlags); /* [in] */
-
-HRESULT WINAPI StgStreamImpl_Revert(
- IStream* iface);
-
-HRESULT WINAPI StgStreamImpl_LockRegion(
- IStream* iface,
- ULARGE_INTEGER libOffset, /* [in] */
- ULARGE_INTEGER cb, /* [in] */
- DWORD dwLockType); /* [in] */
-
-HRESULT WINAPI StgStreamImpl_UnlockRegion(
- IStream* iface,
- ULARGE_INTEGER libOffset, /* [in] */
- ULARGE_INTEGER cb, /* [in] */
- DWORD dwLockType); /* [in] */
-
-HRESULT WINAPI StgStreamImpl_Stat(
- IStream* iface,
- STATSTG* pstatstg, /* [out] */
- DWORD grfStatFlag); /* [in] */
-
-HRESULT WINAPI StgStreamImpl_Clone(
- IStream* iface,
- IStream** ppstm); /* [out] */
/********************************************************************************
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic