static void test_URLOpenStreamW(void) { HRESULT hr; hr = URLOpenStreamW(NULL, NULL, 0, &BindStatusCallback); ok(hr == E_INVALIDARG, "URLOpenStreamW should have failed with E_INVALIDARG instead of 0x%08x\n", hr); SET_EXPECT(GetBindInfo); SET_EXPECT(QueryInterface_IServiceProvider); SET_EXPECT(OnStartBinding); SET_EXPECT(OnProgress_SENDINGREQUEST); SET_EXPECT(OnProgress_MIMETYPEAVAILABLE); SET_EXPECT(OnProgress_BEGINDOWNLOADDATA); SET_EXPECT(OnProgress_ENDDOWNLOADDATA); SET_EXPECT(OnDataAvailable); SET_EXPECT(OnStopBinding); hr = URLOpenStreamW(NULL, INDEX_HTML, 0, &BindStatusCallback); ok(hr == S_OK, "URLOpenStreamW failed with error 0x%08x\n", hr); CHECK_CALLED(GetBindInfo); todo_wine CHECK_CALLED(QueryInterface_IServiceProvider); CHECK_CALLED(OnStartBinding); CHECK_CALLED(OnProgress_SENDINGREQUEST); CHECK_CALLED(OnProgress_MIMETYPEAVAILABLE); CHECK_CALLED(OnProgress_BEGINDOWNLOADDATA); CHECK_CALLED(OnProgress_ENDDOWNLOADDATA); CHECK_CALLED(OnDataAvailable); CHECK_CALLED(OnStopBinding); }
/*********************************************************************** * URLOpenStreamA (URLMON.@) */ HRESULT WINAPI URLOpenStreamA(LPUNKNOWN pCaller, LPCSTR szURL, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB) { LPWSTR szURLW; int len; HRESULT hr; TRACE("(%p, %s, 0x%x, %p)\n", pCaller, szURL, dwReserved, lpfnCB); if (!szURL) return E_INVALIDARG; len = MultiByteToWideChar(CP_ACP, 0, szURL, -1, NULL, 0); szURLW = heap_alloc(len * sizeof(WCHAR)); if (!szURLW) return E_OUTOFMEMORY; MultiByteToWideChar(CP_ACP, 0, szURL, -1, szURLW, len); hr = URLOpenStreamW(pCaller, szURLW, dwReserved, lpfnCB); heap_free(szURLW); return hr; }