mirror of
https://github.com/reactos/reactos.git
synced 2025-04-30 02:58:48 +00:00
[OLE32] Sync with Wine Staging 1.9.16. CORE-11866
svn path=/trunk/; revision=72348
This commit is contained in:
parent
d4778af3f0
commit
e88c7f24df
13 changed files with 78 additions and 90 deletions
|
@ -218,7 +218,7 @@ static HRESULT WINAPI ClassMoniker_BindToObject(IMoniker* iface,
|
||||||
IClassActivator *pActivator;
|
IClassActivator *pActivator;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
TRACE("(%p,%p,%p,%p)\n", pbc, pmkToLeft, riid, ppvResult);
|
TRACE("(%p, %p, %s, %p)\n", pbc, pmkToLeft, debugstr_guid(riid), ppvResult);
|
||||||
|
|
||||||
bindopts.cbStruct = sizeof(bindopts);
|
bindopts.cbStruct = sizeof(bindopts);
|
||||||
IBindCtx_GetBindOptions(pbc, (BIND_OPTS *)&bindopts);
|
IBindCtx_GetBindOptions(pbc, (BIND_OPTS *)&bindopts);
|
||||||
|
@ -251,7 +251,7 @@ static HRESULT WINAPI ClassMoniker_BindToStorage(IMoniker* iface,
|
||||||
REFIID riid,
|
REFIID riid,
|
||||||
VOID** ppvResult)
|
VOID** ppvResult)
|
||||||
{
|
{
|
||||||
TRACE("(%p,%p,%p,%p)\n",pbc, pmkToLeft, riid, ppvResult);
|
TRACE("(%p, %p, %s, %p)\n", pbc, pmkToLeft, debugstr_guid(riid), ppvResult);
|
||||||
return IMoniker_BindToObject(iface, pbc, pmkToLeft, riid, ppvResult);
|
return IMoniker_BindToObject(iface, pbc, pmkToLeft, riid, ppvResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -573,7 +573,7 @@ static HRESULT WINAPI ClassMonikerROTData_QueryInterface(IROTData *iface,REFIID
|
||||||
|
|
||||||
ClassMoniker *This = impl_from_IROTData(iface);
|
ClassMoniker *This = impl_from_IROTData(iface);
|
||||||
|
|
||||||
TRACE("(%p,%p,%p)\n",iface,riid,ppvObject);
|
TRACE("(%p, %s, %p)\n", iface, debugstr_guid(riid), ppvObject);
|
||||||
|
|
||||||
return IMoniker_QueryInterface(&This->IMoniker_iface, riid, ppvObject);
|
return IMoniker_QueryInterface(&This->IMoniker_iface, riid, ppvObject);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1799,7 +1799,7 @@ void OLEClipbrd_UnInitialize(void)
|
||||||
*
|
*
|
||||||
* Enumerate all formats supported by the source and make
|
* Enumerate all formats supported by the source and make
|
||||||
* those formats available using delayed rendering using SetClipboardData.
|
* those formats available using delayed rendering using SetClipboardData.
|
||||||
* Cache the enumeration list and make that list visibile as the
|
* Cache the enumeration list and make that list visible as the
|
||||||
* 'Ole Private Data' format on the clipboard.
|
* 'Ole Private Data' format on the clipboard.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -229,11 +229,7 @@ static HRESULT COMCAT_IsClassOfCategories(
|
||||||
if (res != ERROR_SUCCESS) return S_FALSE;
|
if (res != ERROR_SUCCESS) return S_FALSE;
|
||||||
for (string = impl_strings; *string; string += CHARS_IN_GUID) {
|
for (string = impl_strings; *string; string += CHARS_IN_GUID) {
|
||||||
HKEY catkey;
|
HKEY catkey;
|
||||||
#ifdef __REACTOS__
|
|
||||||
res = open_classes_key(subkey, string, READ_CONTROL, &catkey);
|
res = open_classes_key(subkey, string, READ_CONTROL, &catkey);
|
||||||
#else
|
|
||||||
res = open_classes_key(subkey, string, 0, &catkey);
|
|
||||||
#endif
|
|
||||||
if (res != ERROR_SUCCESS) {
|
if (res != ERROR_SUCCESS) {
|
||||||
RegCloseKey(subkey);
|
RegCloseKey(subkey);
|
||||||
return S_FALSE;
|
return S_FALSE;
|
||||||
|
|
|
@ -4967,8 +4967,8 @@ HRESULT WINAPI CoGetContextToken( ULONG_PTR *token )
|
||||||
context->IComThreadingInfo_iface.lpVtbl = &Context_Threading_Vtbl;
|
context->IComThreadingInfo_iface.lpVtbl = &Context_Threading_Vtbl;
|
||||||
context->IContextCallback_iface.lpVtbl = &Context_Callback_Vtbl;
|
context->IContextCallback_iface.lpVtbl = &Context_Callback_Vtbl;
|
||||||
context->IObjContext_iface.lpVtbl = &Context_Object_Vtbl;
|
context->IObjContext_iface.lpVtbl = &Context_Object_Vtbl;
|
||||||
/* Context token does not take a reference, it's always zero until
|
/* Context token does not take a reference, it's always zero until the
|
||||||
interface is explicitely requested with CoGetObjectContext(). */
|
interface is explicitly requested with CoGetObjectContext(). */
|
||||||
context->refs = 0;
|
context->refs = 0;
|
||||||
|
|
||||||
info->context_token = &context->IObjContext_iface;
|
info->context_token = &context->IObjContext_iface;
|
||||||
|
|
|
@ -117,8 +117,8 @@ struct DataCache
|
||||||
/*
|
/*
|
||||||
* List all interface here
|
* List all interface here
|
||||||
*/
|
*/
|
||||||
|
IUnknown IUnknown_inner;
|
||||||
IDataObject IDataObject_iface;
|
IDataObject IDataObject_iface;
|
||||||
IUnknown IUnknown_iface;
|
|
||||||
IPersistStorage IPersistStorage_iface;
|
IPersistStorage IPersistStorage_iface;
|
||||||
IViewObject2 IViewObject2_iface;
|
IViewObject2 IViewObject2_iface;
|
||||||
IOleCache2 IOleCache2_iface;
|
IOleCache2 IOleCache2_iface;
|
||||||
|
@ -136,7 +136,7 @@ struct DataCache
|
||||||
/*
|
/*
|
||||||
* IUnknown implementation of the outer object.
|
* IUnknown implementation of the outer object.
|
||||||
*/
|
*/
|
||||||
IUnknown* outerUnknown;
|
IUnknown *outer_unk;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The user of this object can setup ONE advise sink
|
* The user of this object can setup ONE advise sink
|
||||||
|
@ -174,7 +174,7 @@ static inline DataCache *impl_from_IDataObject( IDataObject *iface )
|
||||||
|
|
||||||
static inline DataCache *impl_from_IUnknown( IUnknown *iface )
|
static inline DataCache *impl_from_IUnknown( IUnknown *iface )
|
||||||
{
|
{
|
||||||
return CONTAINING_RECORD(iface, DataCache, IUnknown_iface);
|
return CONTAINING_RECORD(iface, DataCache, IUnknown_inner);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline DataCache *impl_from_IPersistStorage( IPersistStorage *iface )
|
static inline DataCache *impl_from_IPersistStorage( IPersistStorage *iface )
|
||||||
|
@ -956,7 +956,7 @@ static HRESULT WINAPI DataCache_IDataObject_QueryInterface(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IDataObject(iface);
|
DataCache *this = impl_from_IDataObject(iface);
|
||||||
|
|
||||||
return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject);
|
return IUnknown_QueryInterface(this->outer_unk, riid, ppvObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -967,7 +967,7 @@ static ULONG WINAPI DataCache_IDataObject_AddRef(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IDataObject(iface);
|
DataCache *this = impl_from_IDataObject(iface);
|
||||||
|
|
||||||
return IUnknown_AddRef(this->outerUnknown);
|
return IUnknown_AddRef(this->outer_unk);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -978,7 +978,7 @@ static ULONG WINAPI DataCache_IDataObject_Release(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IDataObject(iface);
|
DataCache *this = impl_from_IDataObject(iface);
|
||||||
|
|
||||||
return IUnknown_Release(this->outerUnknown);
|
return IUnknown_Release(this->outer_unk);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -1136,7 +1136,7 @@ static HRESULT WINAPI DataCache_IPersistStorage_QueryInterface(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IPersistStorage(iface);
|
DataCache *this = impl_from_IPersistStorage(iface);
|
||||||
|
|
||||||
return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject);
|
return IUnknown_QueryInterface(this->outer_unk, riid, ppvObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -1147,7 +1147,7 @@ static ULONG WINAPI DataCache_IPersistStorage_AddRef(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IPersistStorage(iface);
|
DataCache *this = impl_from_IPersistStorage(iface);
|
||||||
|
|
||||||
return IUnknown_AddRef(this->outerUnknown);
|
return IUnknown_AddRef(this->outer_unk);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -1158,7 +1158,7 @@ static ULONG WINAPI DataCache_IPersistStorage_Release(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IPersistStorage(iface);
|
DataCache *this = impl_from_IPersistStorage(iface);
|
||||||
|
|
||||||
return IUnknown_Release(this->outerUnknown);
|
return IUnknown_Release(this->outer_unk);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -1497,7 +1497,7 @@ static HRESULT WINAPI DataCache_IViewObject2_QueryInterface(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IViewObject2(iface);
|
DataCache *this = impl_from_IViewObject2(iface);
|
||||||
|
|
||||||
return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject);
|
return IUnknown_QueryInterface(this->outer_unk, riid, ppvObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -1508,7 +1508,7 @@ static ULONG WINAPI DataCache_IViewObject2_AddRef(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IViewObject2(iface);
|
DataCache *this = impl_from_IViewObject2(iface);
|
||||||
|
|
||||||
return IUnknown_AddRef(this->outerUnknown);
|
return IUnknown_AddRef(this->outer_unk);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -1519,7 +1519,7 @@ static ULONG WINAPI DataCache_IViewObject2_Release(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IViewObject2(iface);
|
DataCache *this = impl_from_IViewObject2(iface);
|
||||||
|
|
||||||
return IUnknown_Release(this->outerUnknown);
|
return IUnknown_Release(this->outer_unk);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -1921,7 +1921,7 @@ static HRESULT WINAPI DataCache_IOleCache2_QueryInterface(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IOleCache2(iface);
|
DataCache *this = impl_from_IOleCache2(iface);
|
||||||
|
|
||||||
return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject);
|
return IUnknown_QueryInterface(this->outer_unk, riid, ppvObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -1932,7 +1932,7 @@ static ULONG WINAPI DataCache_IOleCache2_AddRef(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IOleCache2(iface);
|
DataCache *this = impl_from_IOleCache2(iface);
|
||||||
|
|
||||||
return IUnknown_AddRef(this->outerUnknown);
|
return IUnknown_AddRef(this->outer_unk);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -1943,7 +1943,7 @@ static ULONG WINAPI DataCache_IOleCache2_Release(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IOleCache2(iface);
|
DataCache *this = impl_from_IOleCache2(iface);
|
||||||
|
|
||||||
return IUnknown_Release(this->outerUnknown);
|
return IUnknown_Release(this->outer_unk);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -2120,7 +2120,7 @@ static HRESULT WINAPI DataCache_IOleCacheControl_QueryInterface(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IOleCacheControl(iface);
|
DataCache *this = impl_from_IOleCacheControl(iface);
|
||||||
|
|
||||||
return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject);
|
return IUnknown_QueryInterface(this->outer_unk, riid, ppvObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -2131,7 +2131,7 @@ static ULONG WINAPI DataCache_IOleCacheControl_AddRef(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IOleCacheControl(iface);
|
DataCache *this = impl_from_IOleCacheControl(iface);
|
||||||
|
|
||||||
return IUnknown_AddRef(this->outerUnknown);
|
return IUnknown_AddRef(this->outer_unk);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -2142,7 +2142,7 @@ static ULONG WINAPI DataCache_IOleCacheControl_Release(
|
||||||
{
|
{
|
||||||
DataCache *this = impl_from_IOleCacheControl(iface);
|
DataCache *this = impl_from_IOleCacheControl(iface);
|
||||||
|
|
||||||
return IUnknown_Release(this->outerUnknown);
|
return IUnknown_Release(this->outer_unk);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -2364,30 +2364,15 @@ static DataCache* DataCache_Construct(
|
||||||
* Initialize the virtual function table.
|
* Initialize the virtual function table.
|
||||||
*/
|
*/
|
||||||
newObject->IDataObject_iface.lpVtbl = &DataCache_IDataObject_VTable;
|
newObject->IDataObject_iface.lpVtbl = &DataCache_IDataObject_VTable;
|
||||||
newObject->IUnknown_iface.lpVtbl = &DataCache_NDIUnknown_VTable;
|
newObject->IUnknown_inner.lpVtbl = &DataCache_NDIUnknown_VTable;
|
||||||
newObject->IPersistStorage_iface.lpVtbl = &DataCache_IPersistStorage_VTable;
|
newObject->IPersistStorage_iface.lpVtbl = &DataCache_IPersistStorage_VTable;
|
||||||
newObject->IViewObject2_iface.lpVtbl = &DataCache_IViewObject2_VTable;
|
newObject->IViewObject2_iface.lpVtbl = &DataCache_IViewObject2_VTable;
|
||||||
newObject->IOleCache2_iface.lpVtbl = &DataCache_IOleCache2_VTable;
|
newObject->IOleCache2_iface.lpVtbl = &DataCache_IOleCache2_VTable;
|
||||||
newObject->IOleCacheControl_iface.lpVtbl = &DataCache_IOleCacheControl_VTable;
|
newObject->IOleCacheControl_iface.lpVtbl = &DataCache_IOleCacheControl_VTable;
|
||||||
newObject->IAdviseSink_iface.lpVtbl = &DataCache_IAdviseSink_VTable;
|
newObject->IAdviseSink_iface.lpVtbl = &DataCache_IAdviseSink_VTable;
|
||||||
|
newObject->outer_unk = pUnkOuter ? pUnkOuter : &newObject->IUnknown_inner;
|
||||||
/*
|
|
||||||
* Start with one reference count. The caller of this function
|
|
||||||
* must release the interface pointer when it is done.
|
|
||||||
*/
|
|
||||||
newObject->ref = 1;
|
newObject->ref = 1;
|
||||||
|
|
||||||
/*
|
|
||||||
* Initialize the outer unknown
|
|
||||||
* We don't keep a reference on the outer unknown since, the way
|
|
||||||
* aggregation works, our lifetime is at least as large as its
|
|
||||||
* lifetime.
|
|
||||||
*/
|
|
||||||
if (pUnkOuter==NULL)
|
|
||||||
pUnkOuter = &newObject->IUnknown_iface;
|
|
||||||
|
|
||||||
newObject->outerUnknown = pUnkOuter;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize the other members of the structure.
|
* Initialize the other members of the structure.
|
||||||
*/
|
*/
|
||||||
|
@ -2461,16 +2446,8 @@ HRESULT WINAPI CreateDataCache(
|
||||||
if (newCache == 0)
|
if (newCache == 0)
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
|
|
||||||
/*
|
hr = IUnknown_QueryInterface(&newCache->IUnknown_inner, riid, ppvObj);
|
||||||
* Make sure it supports the interface required by the caller.
|
IUnknown_Release(&newCache->IUnknown_inner);
|
||||||
*/
|
|
||||||
hr = IUnknown_QueryInterface(&newCache->IUnknown_iface, riid, ppvObj);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Release the reference obtained in the constructor. If
|
|
||||||
* the QueryInterface was unsuccessful, it will free the class.
|
|
||||||
*/
|
|
||||||
IUnknown_Release(&newCache->IUnknown_iface);
|
|
||||||
|
|
||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,16 +23,15 @@
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(ole);
|
WINE_DEFAULT_DEBUG_CHANNEL(ole);
|
||||||
|
|
||||||
typedef struct _FTMarshalImpl {
|
typedef struct _FTMarshalImpl {
|
||||||
IUnknown IUnknown_iface;
|
IUnknown IUnknown_inner;
|
||||||
LONG ref;
|
|
||||||
IMarshal IMarshal_iface;
|
IMarshal IMarshal_iface;
|
||||||
|
IUnknown *outer_unk;
|
||||||
IUnknown *pUnkOuter;
|
LONG ref;
|
||||||
} FTMarshalImpl;
|
} FTMarshalImpl;
|
||||||
|
|
||||||
static inline FTMarshalImpl *impl_from_IUnknown(IUnknown *iface)
|
static inline FTMarshalImpl *impl_from_IUnknown(IUnknown *iface)
|
||||||
{
|
{
|
||||||
return CONTAINING_RECORD(iface, FTMarshalImpl, IUnknown_iface);
|
return CONTAINING_RECORD(iface, FTMarshalImpl, IUnknown_inner);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline FTMarshalImpl *impl_from_IMarshal( IMarshal *iface )
|
static inline FTMarshalImpl *impl_from_IMarshal( IMarshal *iface )
|
||||||
|
@ -51,7 +50,7 @@ IiFTMUnknown_fnQueryInterface (IUnknown * iface, REFIID riid, LPVOID * ppv)
|
||||||
*ppv = NULL;
|
*ppv = NULL;
|
||||||
|
|
||||||
if (IsEqualIID (&IID_IUnknown, riid))
|
if (IsEqualIID (&IID_IUnknown, riid))
|
||||||
*ppv = &This->IUnknown_iface;
|
*ppv = &This->IUnknown_inner;
|
||||||
else if (IsEqualIID (&IID_IMarshal, riid))
|
else if (IsEqualIID (&IID_IMarshal, riid))
|
||||||
*ppv = &This->IMarshal_iface;
|
*ppv = &This->IMarshal_iface;
|
||||||
else {
|
else {
|
||||||
|
@ -97,7 +96,7 @@ FTMarshalImpl_QueryInterface (LPMARSHAL iface, REFIID riid, LPVOID * ppv)
|
||||||
FTMarshalImpl *This = impl_from_IMarshal(iface);
|
FTMarshalImpl *This = impl_from_IMarshal(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(%s,%p)\n", This, debugstr_guid (riid), ppv);
|
TRACE ("(%p)->(%s,%p)\n", This, debugstr_guid (riid), ppv);
|
||||||
return IUnknown_QueryInterface (This->pUnkOuter, riid, ppv);
|
return IUnknown_QueryInterface(This->outer_unk, riid, ppv);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI
|
static ULONG WINAPI
|
||||||
|
@ -107,7 +106,7 @@ FTMarshalImpl_AddRef (LPMARSHAL iface)
|
||||||
FTMarshalImpl *This = impl_from_IMarshal(iface);
|
FTMarshalImpl *This = impl_from_IMarshal(iface);
|
||||||
|
|
||||||
TRACE ("\n");
|
TRACE ("\n");
|
||||||
return IUnknown_AddRef (This->pUnkOuter);
|
return IUnknown_AddRef(This->outer_unk);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI
|
static ULONG WINAPI
|
||||||
|
@ -117,7 +116,7 @@ FTMarshalImpl_Release (LPMARSHAL iface)
|
||||||
FTMarshalImpl *This = impl_from_IMarshal(iface);
|
FTMarshalImpl *This = impl_from_IMarshal(iface);
|
||||||
|
|
||||||
TRACE ("\n");
|
TRACE ("\n");
|
||||||
return IUnknown_Release (This->pUnkOuter);
|
return IUnknown_Release(This->outer_unk);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI
|
static HRESULT WINAPI
|
||||||
|
@ -326,12 +325,12 @@ HRESULT WINAPI CoCreateFreeThreadedMarshaler (LPUNKNOWN punkOuter, LPUNKNOWN * p
|
||||||
if (!ftm)
|
if (!ftm)
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
|
|
||||||
ftm->IUnknown_iface.lpVtbl = &iunkvt;
|
ftm->IUnknown_inner.lpVtbl = &iunkvt;
|
||||||
ftm->IMarshal_iface.lpVtbl = &ftmvtbl;
|
ftm->IMarshal_iface.lpVtbl = &ftmvtbl;
|
||||||
ftm->ref = 1;
|
ftm->ref = 1;
|
||||||
ftm->pUnkOuter = punkOuter ? punkOuter : &ftm->IUnknown_iface;
|
ftm->outer_unk = punkOuter ? punkOuter : &ftm->IUnknown_inner;
|
||||||
|
|
||||||
*ppunkMarshal = &ftm->IUnknown_iface;
|
*ppunkMarshal = &ftm->IUnknown_inner;
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,11 @@ struct proxy_manager
|
||||||
void *dest_context_data; /* reserved context value (LOCK) */
|
void *dest_context_data; /* reserved context value (LOCK) */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static inline struct proxy_manager *impl_from_IMultiQI( IMultiQI *iface )
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(iface, struct proxy_manager, IMultiQI_iface);
|
||||||
|
}
|
||||||
|
|
||||||
static inline struct proxy_manager *impl_from_IMarshal( IMarshal *iface )
|
static inline struct proxy_manager *impl_from_IMarshal( IMarshal *iface )
|
||||||
{
|
{
|
||||||
return CONTAINING_RECORD(iface, struct proxy_manager, IMarshal_iface);
|
return CONTAINING_RECORD(iface, struct proxy_manager, IMarshal_iface);
|
||||||
|
@ -215,16 +220,16 @@ static HRESULT WINAPI ClientIdentity_QueryInterface(IMultiQI * iface, REFIID rii
|
||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI ClientIdentity_AddRef(IMultiQI * iface)
|
static ULONG WINAPI ClientIdentity_AddRef(IMultiQI *iface)
|
||||||
{
|
{
|
||||||
struct proxy_manager * This = (struct proxy_manager *)iface;
|
struct proxy_manager *This = impl_from_IMultiQI(iface);
|
||||||
TRACE("%p - before %d\n", iface, This->refs);
|
TRACE("%p - before %d\n", iface, This->refs);
|
||||||
return InterlockedIncrement(&This->refs);
|
return InterlockedIncrement(&This->refs);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI ClientIdentity_Release(IMultiQI * iface)
|
static ULONG WINAPI ClientIdentity_Release(IMultiQI *iface)
|
||||||
{
|
{
|
||||||
struct proxy_manager * This = (struct proxy_manager *)iface;
|
struct proxy_manager *This = impl_from_IMultiQI(iface);
|
||||||
ULONG refs = InterlockedDecrement(&This->refs);
|
ULONG refs = InterlockedDecrement(&This->refs);
|
||||||
TRACE("%p - after %d\n", iface, refs);
|
TRACE("%p - after %d\n", iface, refs);
|
||||||
if (!refs)
|
if (!refs)
|
||||||
|
@ -234,7 +239,7 @@ static ULONG WINAPI ClientIdentity_Release(IMultiQI * iface)
|
||||||
|
|
||||||
static HRESULT WINAPI ClientIdentity_QueryMultipleInterfaces(IMultiQI *iface, ULONG cMQIs, MULTI_QI *pMQIs)
|
static HRESULT WINAPI ClientIdentity_QueryMultipleInterfaces(IMultiQI *iface, ULONG cMQIs, MULTI_QI *pMQIs)
|
||||||
{
|
{
|
||||||
struct proxy_manager * This = (struct proxy_manager *)iface;
|
struct proxy_manager *This = impl_from_IMultiQI(iface);
|
||||||
REMQIRESULT *qiresults = NULL;
|
REMQIRESULT *qiresults = NULL;
|
||||||
ULONG nonlocal_mqis = 0;
|
ULONG nonlocal_mqis = 0;
|
||||||
ULONG i;
|
ULONG i;
|
||||||
|
|
|
@ -1247,13 +1247,17 @@ HRESULT WINAPI GetClassFile(LPCOLESTR filePathName,CLSID *pclsid)
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = RegQueryValueW(HKEY_CLASSES_ROOT, extension, NULL, &sizeProgId);
|
ret = RegQueryValueW(HKEY_CLASSES_ROOT, extension, NULL, &sizeProgId);
|
||||||
|
if (!ret) {
|
||||||
/* get the progId associated to the extension */
|
/* get the progId associated to the extension */
|
||||||
progId = CoTaskMemAlloc(sizeProgId);
|
progId = CoTaskMemAlloc(sizeProgId);
|
||||||
ret = RegQueryValueW(HKEY_CLASSES_ROOT, extension, progId, &sizeProgId);
|
ret = RegQueryValueW(HKEY_CLASSES_ROOT, extension, progId, &sizeProgId);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
/* return the clsid associated to the progId */
|
/* return the clsid associated to the progId */
|
||||||
res = CLSIDFromProgID(progId,pclsid);
|
res = CLSIDFromProgID(progId, pclsid);
|
||||||
|
else
|
||||||
|
res = HRESULT_FROM_WIN32(ret);
|
||||||
|
CoTaskMemFree(progId);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
res = HRESULT_FROM_WIN32(ret);
|
res = HRESULT_FROM_WIN32(ret);
|
||||||
|
|
||||||
|
@ -1261,7 +1265,6 @@ HRESULT WINAPI GetClassFile(LPCOLESTR filePathName,CLSID *pclsid)
|
||||||
CoTaskMemFree(pathDec[i]);
|
CoTaskMemFree(pathDec[i]);
|
||||||
CoTaskMemFree(pathDec);
|
CoTaskMemFree(pathDec);
|
||||||
|
|
||||||
CoTaskMemFree(progId);
|
|
||||||
return res != S_OK ? MK_E_INVALIDEXTENSION : res;
|
return res != S_OK ? MK_E_INVALIDEXTENSION : res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1506,7 +1509,7 @@ static HRESULT WINAPI MonikerMarshalInner_QueryInterface(IUnknown *iface, REFIID
|
||||||
if (IsEqualIID(&IID_IUnknown, riid) || IsEqualIID(&IID_IMarshal, riid))
|
if (IsEqualIID(&IID_IUnknown, riid) || IsEqualIID(&IID_IMarshal, riid))
|
||||||
{
|
{
|
||||||
*ppv = &This->IMarshal_iface;
|
*ppv = &This->IMarshal_iface;
|
||||||
IUnknown_AddRef((IUnknown *)&This->IMarshal_iface);
|
IMarshal_AddRef(&This->IMarshal_iface);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
FIXME("No interface for %s\n", debugstr_guid(riid));
|
FIXME("No interface for %s\n", debugstr_guid(riid));
|
||||||
|
|
|
@ -2689,7 +2689,6 @@ static void OLE_FreeClipDataArray(ULONG count, CLIPDATA * pClipDataArray)
|
||||||
{
|
{
|
||||||
ULONG i;
|
ULONG i;
|
||||||
for (i = 0; i < count; i++)
|
for (i = 0; i < count; i++)
|
||||||
if (pClipDataArray[i].pClipData)
|
|
||||||
CoTaskMemFree(pClipDataArray[i].pClipData);
|
CoTaskMemFree(pClipDataArray[i].pClipData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -74,3 +74,12 @@ HRESULT WINAPI CoGetCallerTID(LPDWORD lpdwTID)
|
||||||
FIXME("stub!\n");
|
FIXME("stub!\n");
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* OleGetIconOfFile [OLE32.@]
|
||||||
|
*/
|
||||||
|
HGLOBAL WINAPI OleGetIconOfFile(LPOLESTR path, BOOL use_file_as_label)
|
||||||
|
{
|
||||||
|
FIXME("(%p, %d), stub!\n", path, use_file_as_label);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
|
@ -236,7 +236,7 @@
|
||||||
@ stdcall OleGetAutoConvert(ptr ptr)
|
@ stdcall OleGetAutoConvert(ptr ptr)
|
||||||
@ stdcall OleGetClipboard(ptr)
|
@ stdcall OleGetClipboard(ptr)
|
||||||
@ stdcall OleGetIconOfClass(ptr ptr long)
|
@ stdcall OleGetIconOfClass(ptr ptr long)
|
||||||
@ stub OleGetIconOfFile
|
@ stdcall OleGetIconOfFile(ptr long)
|
||||||
@ stdcall OleInitialize(ptr)
|
@ stdcall OleInitialize(ptr)
|
||||||
@ stdcall OleInitializeWOW(long long)
|
@ stdcall OleInitializeWOW(long long)
|
||||||
@ stdcall OleIsCurrentClipboard(ptr)
|
@ stdcall OleIsCurrentClipboard(ptr)
|
||||||
|
@ -292,14 +292,14 @@
|
||||||
@ stdcall StgCreateDocfile(wstr long long ptr)
|
@ stdcall StgCreateDocfile(wstr long long ptr)
|
||||||
@ stdcall StgCreateDocfileOnILockBytes(ptr long long ptr)
|
@ stdcall StgCreateDocfileOnILockBytes(ptr long long ptr)
|
||||||
@ stdcall StgCreatePropSetStg(ptr long ptr)
|
@ stdcall StgCreatePropSetStg(ptr long ptr)
|
||||||
# StgCreatePropStg
|
@ stdcall StgCreatePropStg(ptr ptr ptr long long ptr)
|
||||||
@ stdcall StgCreateStorageEx(wstr long long long ptr ptr ptr ptr)
|
@ stdcall StgCreateStorageEx(wstr long long long ptr ptr ptr ptr)
|
||||||
@ stub StgGetIFillLockBytesOnFile
|
@ stub StgGetIFillLockBytesOnFile
|
||||||
@ stub StgGetIFillLockBytesOnILockBytes
|
@ stub StgGetIFillLockBytesOnILockBytes
|
||||||
@ stdcall StgIsStorageFile(wstr)
|
@ stdcall StgIsStorageFile(wstr)
|
||||||
@ stdcall StgIsStorageILockBytes(ptr)
|
@ stdcall StgIsStorageILockBytes(ptr)
|
||||||
@ stub StgOpenAsyncDocfileOnIFillLockBytes
|
@ stub StgOpenAsyncDocfileOnIFillLockBytes
|
||||||
# StgOpenPropStg
|
@ stdcall StgOpenPropStg(ptr ptr long long ptr)
|
||||||
@ stdcall StgOpenStorage(wstr ptr long ptr long ptr)
|
@ stdcall StgOpenStorage(wstr ptr long ptr long ptr)
|
||||||
@ stdcall StgOpenStorageEx(wstr long long long ptr ptr ptr ptr)
|
@ stdcall StgOpenStorageEx(wstr long long long ptr ptr ptr ptr)
|
||||||
# StgOpenStorageOnHandle
|
# StgOpenStorageOnHandle
|
||||||
|
|
|
@ -2168,7 +2168,7 @@ static HRESULT WINAPI IPropertySetStorage_fnCreate(
|
||||||
IPropertyStorage** ppprstg)
|
IPropertyStorage** ppprstg)
|
||||||
{
|
{
|
||||||
StorageImpl *This = impl_from_IPropertySetStorage(ppstg);
|
StorageImpl *This = impl_from_IPropertySetStorage(ppstg);
|
||||||
WCHAR name[CCH_MAX_PROPSTG_NAME];
|
WCHAR name[CCH_MAX_PROPSTG_NAME + 1];
|
||||||
IStream *stm = NULL;
|
IStream *stm = NULL;
|
||||||
HRESULT r;
|
HRESULT r;
|
||||||
|
|
||||||
|
@ -2226,7 +2226,7 @@ static HRESULT WINAPI IPropertySetStorage_fnOpen(
|
||||||
{
|
{
|
||||||
StorageImpl *This = impl_from_IPropertySetStorage(ppstg);
|
StorageImpl *This = impl_from_IPropertySetStorage(ppstg);
|
||||||
IStream *stm = NULL;
|
IStream *stm = NULL;
|
||||||
WCHAR name[CCH_MAX_PROPSTG_NAME];
|
WCHAR name[CCH_MAX_PROPSTG_NAME + 1];
|
||||||
HRESULT r;
|
HRESULT r;
|
||||||
|
|
||||||
TRACE("%p %s %08x %p\n", This, debugstr_guid(rfmtid), grfMode, ppprstg);
|
TRACE("%p %s %08x %p\n", This, debugstr_guid(rfmtid), grfMode, ppprstg);
|
||||||
|
@ -2270,7 +2270,7 @@ static HRESULT WINAPI IPropertySetStorage_fnDelete(
|
||||||
REFFMTID rfmtid)
|
REFFMTID rfmtid)
|
||||||
{
|
{
|
||||||
StorageImpl *This = impl_from_IPropertySetStorage(ppstg);
|
StorageImpl *This = impl_from_IPropertySetStorage(ppstg);
|
||||||
WCHAR name[CCH_MAX_PROPSTG_NAME];
|
WCHAR name[CCH_MAX_PROPSTG_NAME + 1];
|
||||||
HRESULT r;
|
HRESULT r;
|
||||||
|
|
||||||
TRACE("%p %s\n", This, debugstr_guid(rfmtid));
|
TRACE("%p %s\n", This, debugstr_guid(rfmtid));
|
||||||
|
|
|
@ -142,7 +142,7 @@ reactos/dll/win32/ntprint # Synced to WineStaging-1.9.11
|
||||||
reactos/dll/win32/objsel # Synced to WineStaging-1.9.11
|
reactos/dll/win32/objsel # Synced to WineStaging-1.9.11
|
||||||
reactos/dll/win32/odbc32 # Synced to WineStaging-1.9.11. Depends on port of Linux ODBC.
|
reactos/dll/win32/odbc32 # Synced to WineStaging-1.9.11. Depends on port of Linux ODBC.
|
||||||
reactos/dll/win32/odbccp32 # Synced to WineStaging-1.9.11
|
reactos/dll/win32/odbccp32 # Synced to WineStaging-1.9.11
|
||||||
reactos/dll/win32/ole32 # Synced to WineStaging-1.9.11
|
reactos/dll/win32/ole32 # Synced to WineStaging-1.9.16
|
||||||
reactos/dll/win32/oleacc # Synced to WineStaging-1.9.11
|
reactos/dll/win32/oleacc # Synced to WineStaging-1.9.11
|
||||||
reactos/dll/win32/oleaut32 # Synced to WineStaging-1.9.16
|
reactos/dll/win32/oleaut32 # Synced to WineStaging-1.9.16
|
||||||
reactos/dll/win32/olecli32 # Synced to WineStaging-1.9.11
|
reactos/dll/win32/olecli32 # Synced to WineStaging-1.9.11
|
||||||
|
|
Loading…
Reference in a new issue