/******************************************************************************* * ClassMonikerIROTData_QueryInterface *******************************************************************************/ static HRESULT WINAPI ClassMonikerROTData_QueryInterface(IROTData *iface,REFIID riid,VOID** ppvObject) { ClassMoniker *This = impl_from_IROTData(iface); TRACE("(%p,%p,%p)\n",iface,riid,ppvObject); return ClassMoniker_QueryInterface(&This->IMoniker_iface, riid, ppvObject); }
/****************************************************************************** * CreateClassMoniker [OLE32.@] ******************************************************************************/ HRESULT WINAPI CreateClassMoniker(REFCLSID rclsid, IMoniker **ppmk) { ClassMoniker* newClassMoniker; HRESULT hr; TRACE("(%s,%p)\n", debugstr_guid(rclsid), ppmk); newClassMoniker = HeapAlloc(GetProcessHeap(), 0, sizeof(ClassMoniker)); if (!newClassMoniker) return STG_E_INSUFFICIENTMEMORY; hr = ClassMoniker_Construct(newClassMoniker, rclsid); if (FAILED(hr)) { HeapFree(GetProcessHeap(), 0, newClassMoniker); return hr; } return ClassMoniker_QueryInterface((IMoniker *)newClassMoniker, &IID_IMoniker, (void**)ppmk); }