static HRESULT WINAPI dbinit_QueryInterface(IDBInitialize *iface, REFIID riid, void **obj) { dbinit *This = impl_from_IDBInitialize(iface); TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), obj); *obj = NULL; if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IDBInitialize)) { *obj = iface; } else if(IsEqualIID(riid, &IID_IDBProperties)) { *obj = &This->IDBProperties_iface; } else { FIXME("interface %s not implemented\n", debugstr_guid(riid)); return E_NOINTERFACE; } IDBInitialize_AddRef(iface); return S_OK; }
static ULONG WINAPI dbinit_AddRef(IDBInitialize *iface) { dbinit *This = impl_from_IDBInitialize(iface); TRACE("(%p)\n", This); return InterlockedIncrement(&This->ref); }
static HRESULT WINAPI dbinit_Uninitialize(IDBInitialize *iface) { dbinit *This = impl_from_IDBInitialize(iface); FIXME("(%p) stub\n", This); return S_OK; }
static ULONG WINAPI dbinit_Release(IDBInitialize *iface) { dbinit *This = impl_from_IDBInitialize(iface); LONG ref; TRACE("(%p)\n", This); ref = InterlockedDecrement(&This->ref); if(ref == 0) heap_free(This); return ref; }