Marcus Meissner marcus@jet.franken.de wrote:
- unk = NULL; hr = IDropTarget_QueryInterface(pDropTarget, &IID_IUnknown, (void**)&unk); if(FAILED(hr)) { IStream_Release(stream); return hr; }
 - if (!unk) {
 WARN("hr was %d, but unk is NULL.\n", hr);IStream_Release(stream);return E_NOINTERFACE;- } hr = CoMarshalInterface(stream, &IID_IDropTarget, unk, MSHCTX_LOCAL, NULL, MSHLFLAGS_TABLESTRONG); IUnknown_Release(unk);
 
Huw suggested a more simple solution which doesn't lead to duplicated code:
+ unk = NULL; hr = IDropTarget_QueryInterface(pDropTarget, &IID_IUnknown, (void**)&unk); + if (!unk) hr = E_NOINTERFACE; if(FAILED(hr))