oledb32: Add IDBProperties support in IDBInitialize.
This commit is contained in:
parent
718f095629
commit
0eef665dbf
|
@ -50,6 +50,7 @@ static inline datainit *impl_from_IDataInitialize(IDataInitialize *iface)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
IDBInitialize IDBInitialize_iface;
|
IDBInitialize IDBInitialize_iface;
|
||||||
|
IDBProperties IDBProperties_iface;
|
||||||
|
|
||||||
LONG ref;
|
LONG ref;
|
||||||
} dbinit;
|
} dbinit;
|
||||||
|
@ -59,6 +60,74 @@ static inline dbinit *impl_from_IDBInitialize(IDBInitialize *iface)
|
||||||
return CONTAINING_RECORD(iface, dbinit, IDBInitialize_iface);
|
return CONTAINING_RECORD(iface, dbinit, IDBInitialize_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline dbinit *impl_from_IDBProperties(IDBProperties *iface)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(iface, dbinit, IDBProperties_iface);
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI dbprops_QueryInterface(IDBProperties *iface, REFIID riid, void **ppvObject)
|
||||||
|
{
|
||||||
|
dbinit *This = impl_from_IDBProperties(iface);
|
||||||
|
|
||||||
|
return IDBInitialize_QueryInterface(&This->IDBInitialize_iface, riid, ppvObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI dbprops_AddRef(IDBProperties *iface)
|
||||||
|
{
|
||||||
|
dbinit *This = impl_from_IDBProperties(iface);
|
||||||
|
|
||||||
|
return IDBInitialize_AddRef(&This->IDBInitialize_iface);
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI dbprops_Release(IDBProperties *iface)
|
||||||
|
{
|
||||||
|
dbinit *This = impl_from_IDBProperties(iface);
|
||||||
|
|
||||||
|
return IDBInitialize_Release(&This->IDBInitialize_iface);
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI dbprops_GetProperties(IDBProperties *iface, ULONG cPropertyIDSets,
|
||||||
|
const DBPROPIDSET rgPropertyIDSets[], ULONG *pcPropertySets, DBPROPSET **prgPropertySets)
|
||||||
|
{
|
||||||
|
dbinit *This = impl_from_IDBProperties(iface);
|
||||||
|
|
||||||
|
FIXME("(%p)->(%d %p %p %p)\n", This, cPropertyIDSets, rgPropertyIDSets, pcPropertySets, prgPropertySets);
|
||||||
|
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI dbprops_GetPropertyInfo(IDBProperties *iface, ULONG cPropertyIDSets,
|
||||||
|
const DBPROPIDSET rgPropertyIDSets[], ULONG *pcPropertyInfoSets,
|
||||||
|
DBPROPINFOSET **prgPropertyInfoSets, OLECHAR **ppDescBuffer)
|
||||||
|
{
|
||||||
|
dbinit *This = impl_from_IDBProperties(iface);
|
||||||
|
|
||||||
|
FIXME("(%p)->(%d %p %p %p %p)\n", This, cPropertyIDSets, rgPropertyIDSets, pcPropertyInfoSets,
|
||||||
|
prgPropertyInfoSets, ppDescBuffer);
|
||||||
|
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI dbprops_SetProperties(IDBProperties *iface, ULONG cPropertySets,
|
||||||
|
DBPROPSET rgPropertySets[])
|
||||||
|
{
|
||||||
|
dbinit *This = impl_from_IDBProperties(iface);
|
||||||
|
|
||||||
|
FIXME("(%p)->(%d %p)\n", This, cPropertySets, rgPropertySets);
|
||||||
|
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct IDBPropertiesVtbl dbprops_vtbl =
|
||||||
|
{
|
||||||
|
dbprops_QueryInterface,
|
||||||
|
dbprops_AddRef,
|
||||||
|
dbprops_Release,
|
||||||
|
dbprops_GetProperties,
|
||||||
|
dbprops_GetPropertyInfo,
|
||||||
|
dbprops_SetProperties
|
||||||
|
};
|
||||||
|
|
||||||
static HRESULT WINAPI dbinit_QueryInterface(IDBInitialize *iface, REFIID riid, void **obj)
|
static HRESULT WINAPI dbinit_QueryInterface(IDBInitialize *iface, REFIID riid, void **obj)
|
||||||
{
|
{
|
||||||
dbinit *This = impl_from_IDBInitialize(iface);
|
dbinit *This = impl_from_IDBInitialize(iface);
|
||||||
|
@ -71,6 +140,10 @@ static HRESULT WINAPI dbinit_QueryInterface(IDBInitialize *iface, REFIID riid, v
|
||||||
{
|
{
|
||||||
*obj = iface;
|
*obj = iface;
|
||||||
}
|
}
|
||||||
|
else if(IsEqualIID(riid, &IID_IDBProperties))
|
||||||
|
{
|
||||||
|
*obj = &This->IDBProperties_iface;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FIXME("interface %s not implemented\n", debugstr_guid(riid));
|
FIXME("interface %s not implemented\n", debugstr_guid(riid));
|
||||||
|
@ -144,6 +217,7 @@ static HRESULT create_db_init(void **obj)
|
||||||
if(!This) return E_OUTOFMEMORY;
|
if(!This) return E_OUTOFMEMORY;
|
||||||
|
|
||||||
This->IDBInitialize_iface.lpVtbl = &dbinit_vtbl;
|
This->IDBInitialize_iface.lpVtbl = &dbinit_vtbl;
|
||||||
|
This->IDBProperties_iface.lpVtbl = &dbprops_vtbl;
|
||||||
This->ref = 1;
|
This->ref = 1;
|
||||||
|
|
||||||
*obj = &This->IDBInitialize_iface;
|
*obj = &This->IDBInitialize_iface;
|
||||||
|
|
|
@ -51,7 +51,7 @@ static void test_database(void)
|
||||||
IDBProperties *props = NULL;
|
IDBProperties *props = NULL;
|
||||||
|
|
||||||
hr = IDBInitialize_QueryInterface(dbinit, &IID_IDBProperties, (void**)&props);
|
hr = IDBInitialize_QueryInterface(dbinit, &IID_IDBProperties, (void**)&props);
|
||||||
todo_wine ok(hr == S_OK, "got %08x\n", hr);
|
ok(hr == S_OK, "got %08x\n", hr);
|
||||||
if(SUCCEEDED(hr))
|
if(SUCCEEDED(hr))
|
||||||
{
|
{
|
||||||
IDBProperties_Release(props);
|
IDBProperties_Release(props);
|
||||||
|
|
Loading…
Reference in New Issue