opcservices: Add IOpcRelationship stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
bde0de68fc
commit
42792e2fad
|
@ -54,6 +54,12 @@ struct opc_part_set
|
||||||
LONG refcount;
|
LONG refcount;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct opc_relationship
|
||||||
|
{
|
||||||
|
IOpcRelationship IOpcRelationship_iface;
|
||||||
|
LONG refcount;
|
||||||
|
};
|
||||||
|
|
||||||
struct opc_relationship_set
|
struct opc_relationship_set
|
||||||
{
|
{
|
||||||
IOpcRelationshipSet IOpcRelationshipSet_iface;
|
IOpcRelationshipSet IOpcRelationshipSet_iface;
|
||||||
|
@ -80,6 +86,11 @@ static inline struct opc_relationship_set *impl_from_IOpcRelationshipSet(IOpcRel
|
||||||
return CONTAINING_RECORD(iface, struct opc_relationship_set, IOpcRelationshipSet_iface);
|
return CONTAINING_RECORD(iface, struct opc_relationship_set, IOpcRelationshipSet_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline struct opc_relationship *impl_from_IOpcRelationship(IOpcRelationship *iface)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(iface, struct opc_relationship, IOpcRelationship_iface);
|
||||||
|
}
|
||||||
|
|
||||||
static WCHAR *opc_strdupW(const WCHAR *str)
|
static WCHAR *opc_strdupW(const WCHAR *str)
|
||||||
{
|
{
|
||||||
WCHAR *ret = NULL;
|
WCHAR *ret = NULL;
|
||||||
|
@ -310,6 +321,107 @@ static const IOpcPartSetVtbl opc_part_set_vtbl =
|
||||||
opc_part_set_GtEnumerator,
|
opc_part_set_GtEnumerator,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static HRESULT WINAPI opc_relationship_QueryInterface(IOpcRelationship *iface, REFIID iid, void **out)
|
||||||
|
{
|
||||||
|
TRACE("iface %p, iid %s, out %p.\n", iface, debugstr_guid(iid), out);
|
||||||
|
|
||||||
|
if (IsEqualIID(iid, &IID_IOpcRelationship) ||
|
||||||
|
IsEqualIID(iid, &IID_IUnknown))
|
||||||
|
{
|
||||||
|
*out = iface;
|
||||||
|
IOpcRelationship_AddRef(iface);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
WARN("Unsupported interface %s.\n", debugstr_guid(iid));
|
||||||
|
return E_NOINTERFACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI opc_relationship_AddRef(IOpcRelationship *iface)
|
||||||
|
{
|
||||||
|
struct opc_relationship *relationship = impl_from_IOpcRelationship(iface);
|
||||||
|
ULONG refcount = InterlockedIncrement(&relationship->refcount);
|
||||||
|
|
||||||
|
TRACE("%p increasing refcount to %u.\n", iface, refcount);
|
||||||
|
|
||||||
|
return refcount;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI opc_relationship_Release(IOpcRelationship *iface)
|
||||||
|
{
|
||||||
|
struct opc_relationship *relationship = impl_from_IOpcRelationship(iface);
|
||||||
|
ULONG refcount = InterlockedDecrement(&relationship->refcount);
|
||||||
|
|
||||||
|
TRACE("%p decreasing refcount to %u.\n", iface, refcount);
|
||||||
|
|
||||||
|
if (!refcount)
|
||||||
|
heap_free(relationship);
|
||||||
|
|
||||||
|
return refcount;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI opc_relationship_GetId(IOpcRelationship *iface, WCHAR **id)
|
||||||
|
{
|
||||||
|
FIXME("iface %p, id %p stub!\n", iface, id);
|
||||||
|
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI opc_relationship_GetRelationshipType(IOpcRelationship *iface, WCHAR **type)
|
||||||
|
{
|
||||||
|
FIXME("iface %p, type %p stub!\n", iface, type);
|
||||||
|
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI opc_relationship_GetSourceUri(IOpcRelationship *iface, IOpcUri **uri)
|
||||||
|
{
|
||||||
|
FIXME("iface %p, uri %p stub!\n", iface, uri);
|
||||||
|
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI opc_relationship_GetTargetUri(IOpcRelationship *iface, IUri **target)
|
||||||
|
{
|
||||||
|
FIXME("iface %p, target %p stub!\n", iface, target);
|
||||||
|
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI opc_relationship_GetTargetMode(IOpcRelationship *iface, OPC_URI_TARGET_MODE *target_mode)
|
||||||
|
{
|
||||||
|
FIXME("iface %p, target_mode %p stub!\n", iface, target_mode);
|
||||||
|
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const IOpcRelationshipVtbl opc_relationship_vtbl =
|
||||||
|
{
|
||||||
|
opc_relationship_QueryInterface,
|
||||||
|
opc_relationship_AddRef,
|
||||||
|
opc_relationship_Release,
|
||||||
|
opc_relationship_GetId,
|
||||||
|
opc_relationship_GetRelationshipType,
|
||||||
|
opc_relationship_GetSourceUri,
|
||||||
|
opc_relationship_GetTargetUri,
|
||||||
|
opc_relationship_GetTargetMode,
|
||||||
|
};
|
||||||
|
|
||||||
|
static HRESULT opc_relationship_create(IOpcRelationship **out)
|
||||||
|
{
|
||||||
|
struct opc_relationship *relationship;
|
||||||
|
|
||||||
|
if (!(relationship = heap_alloc_zero(sizeof(*relationship))))
|
||||||
|
return E_OUTOFMEMORY;
|
||||||
|
|
||||||
|
relationship->IOpcRelationship_iface.lpVtbl = &opc_relationship_vtbl;
|
||||||
|
relationship->refcount = 1;
|
||||||
|
|
||||||
|
*out = &relationship->IOpcRelationship_iface;
|
||||||
|
TRACE("Created relationship %p.\n", *out);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI opc_relationship_set_QueryInterface(IOpcRelationshipSet *iface, REFIID iid, void **out)
|
static HRESULT WINAPI opc_relationship_set_QueryInterface(IOpcRelationshipSet *iface, REFIID iid, void **out)
|
||||||
{
|
{
|
||||||
TRACE("iface %p, iid %s, out %p.\n", iface, debugstr_guid(iid), out);
|
TRACE("iface %p, iid %s, out %p.\n", iface, debugstr_guid(iid), out);
|
||||||
|
@ -363,7 +475,7 @@ static HRESULT WINAPI opc_relationship_set_CreateRelationship(IOpcRelationshipSe
|
||||||
FIXME("iface %p, id %s, type %s, target_uri %p, target_mode %d, relationship %p stub!\n", iface, debugstr_w(id),
|
FIXME("iface %p, id %s, type %s, target_uri %p, target_mode %d, relationship %p stub!\n", iface, debugstr_w(id),
|
||||||
debugstr_w(type), target_uri, target_mode, relationship);
|
debugstr_w(type), target_uri, target_mode, relationship);
|
||||||
|
|
||||||
return E_NOTIMPL;
|
return opc_relationship_create(relationship);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI opc_relationship_set_DeleteRelationship(IOpcRelationshipSet *iface, const WCHAR *id)
|
static HRESULT WINAPI opc_relationship_set_DeleteRelationship(IOpcRelationshipSet *iface, const WCHAR *id)
|
||||||
|
|
Loading…
Reference in New Issue