forked from Mirrors/wine-wine
msdaps: Implement IDBProperties_SetProperties proxy and stub.
parent
27f087e25e
commit
9d1ddfaa47
|
@ -3,7 +3,7 @@ TOPOBJDIR = ../..
|
||||||
SRCDIR = @srcdir@
|
SRCDIR = @srcdir@
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
MODULE = msdaps.dll
|
MODULE = msdaps.dll
|
||||||
IMPORTS = oleaut32 rpcrt4 kernel32 ntdll
|
IMPORTS = oleaut32 ole32 rpcrt4 kernel32 ntdll
|
||||||
EXTRADEFS = -DREGISTER_PROXY_DLL -DPROXY_CLSID_IS="{ 0x06210e88, 0x01f5, 0x11d1, { 0xb5, 0x12, 0x00, 0x80, 0xc7, 0x81, 0xc3, 0x84 } }"
|
EXTRADEFS = -DREGISTER_PROXY_DLL -DPROXY_CLSID_IS="{ 0x06210e88, 0x01f5, 0x11d1, { 0xb5, 0x12, 0x00, 0x80, 0xc7, 0x81, 0xc3, 0x84 } }"
|
||||||
|
|
||||||
EXTRA_OBJS = dlldata.o
|
EXTRA_OBJS = dlldata.o
|
||||||
|
|
|
@ -108,16 +108,56 @@ HRESULT __RPC_STUB IDBProperties_GetPropertyInfo_Stub(IDBProperties* This, ULONG
|
||||||
|
|
||||||
HRESULT CALLBACK IDBProperties_SetProperties_Proxy(IDBProperties* This, ULONG cPropertySets, DBPROPSET rgPropertySets[])
|
HRESULT CALLBACK IDBProperties_SetProperties_Proxy(IDBProperties* This, ULONG cPropertySets, DBPROPSET rgPropertySets[])
|
||||||
{
|
{
|
||||||
FIXME("(%p, %d, %p): stub\n", This, cPropertySets, rgPropertySets);
|
ULONG prop_set, prop, total_props = 0;
|
||||||
return E_NOTIMPL;
|
HRESULT hr;
|
||||||
|
IErrorInfo *error;
|
||||||
|
DBPROPSTATUS *status;
|
||||||
|
|
||||||
|
TRACE("(%p, %d, %p)\n", This, cPropertySets, rgPropertySets);
|
||||||
|
|
||||||
|
for(prop_set = 0; prop_set < cPropertySets; prop_set++)
|
||||||
|
total_props += rgPropertySets[prop_set].cProperties;
|
||||||
|
|
||||||
|
if(total_props == 0) return S_OK;
|
||||||
|
|
||||||
|
status = CoTaskMemAlloc(total_props * sizeof(*status));
|
||||||
|
if(!status) return E_OUTOFMEMORY;
|
||||||
|
|
||||||
|
hr = IDBProperties_RemoteSetProperties_Proxy(This, cPropertySets, rgPropertySets,
|
||||||
|
total_props, status, &error);
|
||||||
|
if(error)
|
||||||
|
{
|
||||||
|
SetErrorInfo(0, error);
|
||||||
|
IErrorInfo_Release(error);
|
||||||
|
}
|
||||||
|
|
||||||
|
total_props = 0;
|
||||||
|
for(prop_set = 0; prop_set < cPropertySets; prop_set++)
|
||||||
|
for(prop = 0; prop < rgPropertySets[prop_set].cProperties; prop++)
|
||||||
|
rgPropertySets[prop_set].rgProperties[prop].dwStatus = status[total_props++];
|
||||||
|
|
||||||
|
CoTaskMemFree(status);
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT __RPC_STUB IDBProperties_SetProperties_Stub(IDBProperties* This, ULONG cPropertySets, DBPROPSET *rgPropertySets,
|
HRESULT __RPC_STUB IDBProperties_SetProperties_Stub(IDBProperties* This, ULONG cPropertySets, DBPROPSET *rgPropertySets,
|
||||||
ULONG cTotalProps, DBPROPSTATUS *rgPropStatus, IErrorInfo **ppErrorInfoRem)
|
ULONG cTotalProps, DBPROPSTATUS *rgPropStatus, IErrorInfo **ppErrorInfoRem)
|
||||||
{
|
{
|
||||||
FIXME("(%p, %d, %p, %d, %p, %p): stub\n", This, cPropertySets, rgPropertySets, cTotalProps,
|
ULONG prop_set, prop, total_props = 0;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
TRACE("(%p, %d, %p, %d, %p, %p)\n", This, cPropertySets, rgPropertySets, cTotalProps,
|
||||||
rgPropStatus, ppErrorInfoRem);
|
rgPropStatus, ppErrorInfoRem);
|
||||||
return E_NOTIMPL;
|
|
||||||
|
*ppErrorInfoRem = NULL;
|
||||||
|
hr = IDBProperties_SetProperties(This, cPropertySets, rgPropertySets);
|
||||||
|
if(FAILED(hr)) GetErrorInfo(0, ppErrorInfoRem);
|
||||||
|
|
||||||
|
for(prop_set = 0; prop_set < cPropertySets; prop_set++)
|
||||||
|
for(prop = 0; prop < rgPropertySets[prop_set].cProperties; prop++)
|
||||||
|
rgPropStatus[total_props++] = rgPropertySets[prop_set].rgProperties[prop].dwStatus;
|
||||||
|
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CALLBACK IDBInitialize_Initialize_Proxy(IDBInitialize* This)
|
HRESULT CALLBACK IDBInitialize_Initialize_Proxy(IDBInitialize* This)
|
||||||
|
|
Loading…
Reference in New Issue