Jacek Caban : urlmon: Added ObtainUserAgentString implementation.
Alexandre Julliard
julliard at winehq.org
Mon Jun 29 09:17:38 CDT 2009
Module: wine
Branch: master
Commit: cef7e04f18e28217c70e26db36f9e6ada4d5e683
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cef7e04f18e28217c70e26db36f9e6ada4d5e683
Author: Jacek Caban <jacek at codeweavers.com>
Date: Sat Jun 27 00:37:52 2009 +0200
urlmon: Added ObtainUserAgentString implementation.
---
dlls/urlmon/session.c | 33 +++++++++++++++++++++++++++++++++
dlls/urlmon/urlmon_main.c | 25 -------------------------
2 files changed, 33 insertions(+), 25 deletions(-)
diff --git a/dlls/urlmon/session.c b/dlls/urlmon/session.c
index 3cee893..69f1aa1 100644
--- a/dlls/urlmon/session.c
+++ b/dlls/urlmon/session.c
@@ -631,6 +631,39 @@ HRESULT WINAPI UrlMkSetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBuf
return S_OK;
}
+/**************************************************************************
+ * ObtainUserAgentString (URLMON.@)
+ */
+HRESULT WINAPI ObtainUserAgentString(DWORD dwOption, LPSTR pcszUAOut, DWORD *cbSize)
+{
+ DWORD size;
+ HRESULT hres = E_FAIL;
+
+ TRACE("(%d %p %p)\n", dwOption, pcszUAOut, cbSize);
+
+ if(!pcszUAOut || !cbSize)
+ return E_INVALIDARG;
+
+ EnterCriticalSection(&session_cs);
+
+ ensure_useragent();
+ if(user_agent) {
+ size = WideCharToMultiByte(CP_ACP, 0, user_agent, -1, NULL, 0, NULL, NULL);
+
+ if(size <= *cbSize) {
+ WideCharToMultiByte(CP_ACP, 0, user_agent, -1, pcszUAOut, *cbSize, NULL, NULL);
+ hres = S_OK;
+ }else {
+ hres = E_OUTOFMEMORY;
+ }
+
+ *cbSize = size;
+ }
+
+ LeaveCriticalSection(&session_cs);
+ return hres;
+}
+
void free_session(void)
{
heap_free(user_agent);
diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c
index 0d5bc2a..2e624fb 100644
--- a/dlls/urlmon/urlmon_main.c
+++ b/dlls/urlmon/urlmon_main.c
@@ -362,31 +362,6 @@ HRESULT WINAPI DllRegisterServerEx(void)
return E_FAIL;
}
-static const CHAR Agent[] = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)";
-
-/**************************************************************************
- * ObtainUserAgentString (URLMON.@)
- */
-HRESULT WINAPI ObtainUserAgentString(DWORD dwOption, LPSTR pcszUAOut, DWORD *cbSize)
-{
- FIXME("(%d, %p, %p): stub\n", dwOption, pcszUAOut, cbSize);
-
- if (pcszUAOut == NULL || cbSize == NULL)
- return E_INVALIDARG;
-
- if (*cbSize < sizeof(Agent))
- {
- *cbSize = sizeof(Agent);
- return E_OUTOFMEMORY;
- }
-
- if (sizeof(Agent) < *cbSize)
- *cbSize = sizeof(Agent);
- lstrcpynA(pcszUAOut, Agent, *cbSize);
-
- return S_OK;
-}
-
/**************************************************************************
* IsValidURL (URLMON.@)
*
More information about the wine-cvs
mailing list