static HRESULT WINAPI IRecordInfoImpl_QueryInterface(IRecordInfo *iface, REFIID riid, void **ppvObject) { TRACE("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppvObject); if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IRecordInfo, riid)) { *ppvObject = iface; IRecordInfo_AddRef(iface); return S_OK; } FIXME("Not supported interface: %s\n", debugstr_guid(riid)); return E_NOINTERFACE; }
/************************************************************************ * SafeArrayGetRecordInfo (OLEAUT32.@) * * Get the record info from a SafeArray. * * PARAMS * psa [I] Array to get the record info from * pRinfo [O] Destination for the record info * * RETURNS * Success: S_OK. pRinfo contains the record info, or NULL if there was none. * Failure: An HRESULT error code indicating the error. * * NOTES * See SafeArray. */ HRESULT WINAPI SafeArrayGetRecordInfo(SAFEARRAY *psa, IRecordInfo **pRinfo) { IRecordInfo** src = (IRecordInfo**)psa; TRACE("(%p,%p)\n", psa, pRinfo); if (!psa || !pRinfo || !(psa->fFeatures & FADF_RECORD)) return E_INVALIDARG; *pRinfo = src[-1]; if (*pRinfo) IRecordInfo_AddRef(*pRinfo); return S_OK; }
/************************************************************************ * SafeArraySetRecordInfo (OLEAUT32.@) * * Set the record info for a SafeArray. * * PARAMS * psa [I] Array to set the record info for * pRinfo [I] Record info * * RETURNS * Success: S_OK. The record info is stored with the array. * Failure: An HRESULT error code indicating the error. * * NOTES * See SafeArray. */ HRESULT WINAPI SafeArraySetRecordInfo(SAFEARRAY *psa, IRecordInfo *pRinfo) { IRecordInfo** dest = (IRecordInfo**)psa; TRACE("(%p,%p)\n", psa, pRinfo); if (!psa || !(psa->fFeatures & FADF_RECORD)) return E_INVALIDARG; if (pRinfo) IRecordInfo_AddRef(pRinfo); if (dest[-1]) IRecordInfo_Release(dest[-1]); dest[-1] = pRinfo; return S_OK; }