ole32: Use rgiidExclude in StorageImpl::CopyTo.
This commit is contained in:
parent
e8ce3e600a
commit
7b475390e4
|
@ -1462,10 +1462,8 @@ static HRESULT WINAPI StorageImpl_CopyTo(
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
IStorage *pstgTmp, *pstgChild;
|
IStorage *pstgTmp, *pstgChild;
|
||||||
IStream *pstrTmp, *pstrChild;
|
IStream *pstrTmp, *pstrChild;
|
||||||
BOOL skip = FALSE;
|
BOOL skip = FALSE, skip_storage = FALSE, skip_stream = FALSE;
|
||||||
|
int i;
|
||||||
if ((ciidExclude != 0) || (rgiidExclude != NULL))
|
|
||||||
FIXME("Exclude option not implemented\n");
|
|
||||||
|
|
||||||
TRACE("(%p, %d, %p, %p, %p)\n",
|
TRACE("(%p, %d, %p, %p, %p)\n",
|
||||||
iface, ciidExclude, rgiidExclude,
|
iface, ciidExclude, rgiidExclude,
|
||||||
|
@ -1488,6 +1486,16 @@ static HRESULT WINAPI StorageImpl_CopyTo(
|
||||||
IStorage_Stat( iface, &curElement, STATFLAG_NONAME);
|
IStorage_Stat( iface, &curElement, STATFLAG_NONAME);
|
||||||
IStorage_SetClass( pstgDest, &curElement.clsid );
|
IStorage_SetClass( pstgDest, &curElement.clsid );
|
||||||
|
|
||||||
|
for(i = 0; i < ciidExclude; ++i)
|
||||||
|
{
|
||||||
|
if(IsEqualGUID(&IID_IStorage, &rgiidExclude[i]))
|
||||||
|
skip_storage = TRUE;
|
||||||
|
else if(IsEqualGUID(&IID_IStream, &rgiidExclude[i]))
|
||||||
|
skip_stream = TRUE;
|
||||||
|
else
|
||||||
|
WARN("Unknown excluded GUID: %s\n", debugstr_guid(&rgiidExclude[i]));
|
||||||
|
}
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -1518,6 +1526,9 @@ static HRESULT WINAPI StorageImpl_CopyTo(
|
||||||
|
|
||||||
if (curElement.type == STGTY_STORAGE)
|
if (curElement.type == STGTY_STORAGE)
|
||||||
{
|
{
|
||||||
|
if(skip_storage)
|
||||||
|
continue;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* open child source storage
|
* open child source storage
|
||||||
*/
|
*/
|
||||||
|
@ -1571,6 +1582,9 @@ static HRESULT WINAPI StorageImpl_CopyTo(
|
||||||
}
|
}
|
||||||
else if (curElement.type == STGTY_STREAM)
|
else if (curElement.type == STGTY_STREAM)
|
||||||
{
|
{
|
||||||
|
if(skip_stream)
|
||||||
|
continue;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* create a new stream in destination storage. If the stream already
|
* create a new stream in destination storage. If the stream already
|
||||||
* exist, it will be deleted and a new one will be created.
|
* exist, it will be deleted and a new one will be created.
|
||||||
|
|
Loading…
Reference in New Issue