static HRESULT WINAPI UniformResourceLocatorA_GetUrl(IUniformResourceLocatorA *url, LPSTR *ppszURL) { HRESULT hr = S_OK; InternetShortcut *This = impl_from_IUniformResourceLocatorA(url); TRACE("(%p, %p)\n", url, ppszURL); if (This->url == NULL) *ppszURL = NULL; else { *ppszURL = co_strdupWtoA(This->url); if (*ppszURL == NULL) hr = E_OUTOFMEMORY; } return hr; }
static HRESULT WINAPI UniformResourceLocatorA_SetUrl(IUniformResourceLocatorA *url, LPCSTR pcszURL, DWORD dwInFlags) { WCHAR *newURL = NULL; InternetShortcut *This = impl_from_IUniformResourceLocatorA(url); TRACE("(%p, %s, 0x%x)\n", url, debugstr_a(pcszURL), dwInFlags); if (dwInFlags != 0) FIXME("ignoring unsupported flags 0x%x\n", dwInFlags); if (pcszURL != NULL) { newURL = co_strdupAtoW(pcszURL); if (newURL == NULL) return E_OUTOFMEMORY; } CoTaskMemFree(This->url); This->url = newURL; This->isDirty = TRUE; return S_OK; }
static HRESULT WINAPI UniformResourceLocatorA_GetUrl(IUniformResourceLocatorA *url, LPSTR *ppszURL) { InternetShortcut *This = impl_from_IUniformResourceLocatorA(url); TRACE("(%p, %p)\n", url, ppszURL); if (!This->url) { *ppszURL = NULL; return S_FALSE; } *ppszURL = co_strdupWtoA(This->url); if (!*ppszURL) return E_OUTOFMEMORY; return S_OK; }
static HRESULT WINAPI UniformResourceLocatorA_InvokeCommand(IUniformResourceLocatorA *url, PURLINVOKECOMMANDINFOA pCommandInfo) { URLINVOKECOMMANDINFOW wideCommandInfo; int len; WCHAR *wideVerb; HRESULT res; InternetShortcut *This = impl_from_IUniformResourceLocatorA(url); wideCommandInfo.dwcbSize = sizeof wideCommandInfo; wideCommandInfo.dwFlags = pCommandInfo->dwFlags; wideCommandInfo.hwndParent = pCommandInfo->hwndParent; len = MultiByteToWideChar(CP_ACP, 0, pCommandInfo->pcszVerb, -1, NULL, 0); wideVerb = heap_alloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pCommandInfo->pcszVerb, -1, wideVerb, len); wideCommandInfo.pcszVerb = wideVerb; res = UniformResourceLocatorW_InvokeCommand(&This->uniformResourceLocatorW, &wideCommandInfo); heap_free(wideVerb); return res; }
static ULONG WINAPI UniformResourceLocatorA_Release(IUniformResourceLocatorA *url) { InternetShortcut *This = impl_from_IUniformResourceLocatorA(url); TRACE("(%p)\n", url); return Unknown_Release(This); }
static HRESULT WINAPI UniformResourceLocatorA_QueryInterface(IUniformResourceLocatorA *url, REFIID riid, PVOID *ppvObject) { InternetShortcut *This = impl_from_IUniformResourceLocatorA(url); TRACE("(%p, %s, %p)\n", url, debugstr_guid(riid), ppvObject); return Unknown_QueryInterface(This, riid, ppvObject); }