dxdiagn: Fail class instantiation if aggregation is requested.
This commit is contained in:
parent
d36e3b4a1d
commit
b0e3c91c0a
|
@ -140,11 +140,11 @@ HRESULT DXDiag_CreateDXDiagProvider(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, R
|
||||||
|
|
||||||
TRACE("(%p, %s, %p)\n", punkOuter, debugstr_guid(riid), ppobj);
|
TRACE("(%p, %s, %p)\n", punkOuter, debugstr_guid(riid), ppobj);
|
||||||
|
|
||||||
|
*ppobj = NULL;
|
||||||
|
if (punkOuter) return CLASS_E_NOAGGREGATION;
|
||||||
|
|
||||||
provider = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDxDiagProviderImpl));
|
provider = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDxDiagProviderImpl));
|
||||||
if (NULL == provider) {
|
if (NULL == provider) return E_OUTOFMEMORY;
|
||||||
*ppobj = NULL;
|
|
||||||
return E_OUTOFMEMORY;
|
|
||||||
}
|
|
||||||
provider->lpVtbl = &DxDiagProvider_Vtbl;
|
provider->lpVtbl = &DxDiagProvider_Vtbl;
|
||||||
provider->ref = 0; /* will be inited with QueryInterface */
|
provider->ref = 0; /* will be inited with QueryInterface */
|
||||||
return IDxDiagProviderImpl_QueryInterface ((PDXDIAGPROVIDER)provider, riid, ppobj);
|
return IDxDiagProviderImpl_QueryInterface ((PDXDIAGPROVIDER)provider, riid, ppobj);
|
||||||
|
|
Loading…
Reference in New Issue