HRESULT WINAPI CreateIMAPTransport(IIMAPTransport **ppTransport) { HRESULT hr; IMAPTransport *This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); if (!This) return E_OUTOFMEMORY; This->InetTransport.u.vtblIMAP = &IMAPTransportVtbl; This->refs = 0; hr = InternetTransport_Init(&This->InetTransport); if (FAILED(hr)) { HeapFree(GetProcessHeap(), 0, This); return hr; } *ppTransport = (IIMAPTransport *)&This->InetTransport.u.vtblIMAP; IIMAPTransport_AddRef(*ppTransport); return S_OK; }
HRESULT WINAPI CreateSMTPTransport(ISMTPTransport **ppTransport) { HRESULT hr; SMTPTransport *This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); if (!This) return E_OUTOFMEMORY; This->InetTransport.u.vtblSMTP2 = &SMTPTransport2Vtbl; This->refs = 0; This->fESMTP = FALSE; hr = InternetTransport_Init(&This->InetTransport); if (FAILED(hr)) { HeapFree(GetProcessHeap(), 0, This); return hr; } *ppTransport = (ISMTPTransport *)&This->InetTransport.u.vtblSMTP2; ISMTPTransport_AddRef(*ppTransport); return S_OK; }