HRESULT WINAPI CNetFolder::FinalConstruct() { pidlRoot = _ILCreateNetHood(); /* my qualified pidl */ if (pidlRoot == NULL) return E_OUTOFMEMORY; return S_OK; }
/************************************************************************** * ISF_NetworkPlaces_Constructor */ HRESULT WINAPI ISF_NetworkPlaces_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) { IGenericSFImpl *sf; TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid)); if (!ppv) return E_POINTER; if (pUnkOuter) return CLASS_E_NOAGGREGATION; sf = HeapAlloc (GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof (IGenericSFImpl)); if (!sf) return E_OUTOFMEMORY; sf->ref = 0; sf->IShellFolder2_iface.lpVtbl = &vt_ShellFolder2; sf->IPersistFolder2_iface.lpVtbl = &vt_NP_PersistFolder2; sf->pidlRoot = _ILCreateNetHood(); /* my qualified pidl */ if (FAILED (IShellFolder2_QueryInterface (&sf->IShellFolder2_iface, riid, ppv))) { IShellFolder2_Release (&sf->IShellFolder2_iface); return E_NOINTERFACE; } TRACE ("--(%p)\n", sf); return S_OK; }