static HRESULT WINAPI FileMonikerCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pUnk, REFIID riid, LPVOID *ppv) { FileMonikerImpl* newFileMoniker; HRESULT hr; static const WCHAR wszEmpty[] = { 0 }; TRACE("(%p, %s, %p)\n", pUnk, debugstr_guid(riid), ppv); *ppv = NULL; if (pUnk) return CLASS_E_NOAGGREGATION; newFileMoniker = HeapAlloc(GetProcessHeap(), 0, sizeof(FileMonikerImpl)); if (!newFileMoniker) return E_OUTOFMEMORY; hr = FileMonikerImpl_Construct(newFileMoniker, wszEmpty); if (SUCCEEDED(hr)) hr = FileMonikerImpl_QueryInterface((IMoniker*)newFileMoniker, riid, ppv); if (FAILED(hr)) HeapFree(GetProcessHeap(),0,newFileMoniker); return hr; }
/****************************************************************************** * CreateFileMoniker (OLE32.@) ******************************************************************************/ HRESULT WINAPI CreateFileMoniker(LPCOLESTR lpszPathName, LPMONIKER * ppmk) { FileMonikerImpl* newFileMoniker; HRESULT hr; TRACE("(%s,%p)\n",debugstr_w(lpszPathName),ppmk); if (!ppmk) return E_POINTER; if(!lpszPathName) return MK_E_SYNTAX; *ppmk=NULL; newFileMoniker = HeapAlloc(GetProcessHeap(), 0, sizeof(FileMonikerImpl)); if (!newFileMoniker) return E_OUTOFMEMORY; hr = FileMonikerImpl_Construct(newFileMoniker,lpszPathName); if (SUCCEEDED(hr)) hr = FileMonikerImpl_QueryInterface((IMoniker*)newFileMoniker,&IID_IMoniker,(void**)ppmk); else HeapFree(GetProcessHeap(),0,newFileMoniker); return hr; }
/******************************************************************************* * FileMonikerIROTData_QueryInterface */ static HRESULT WINAPI FileMonikerROTDataImpl_QueryInterface(IROTData *iface,REFIID riid,VOID** ppvObject) { FileMonikerImpl *This = impl_from_IROTData(iface); TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject); return FileMonikerImpl_QueryInterface(&This->IMoniker_iface, riid, ppvObject); }