Nikolay Sivov : atl: Simplify error handling in AtlAxAttachControl().
Alexandre Julliard
julliard at winehq.org
Fri Apr 18 11:01:04 CDT 2014
Module: wine
Branch: master
Commit: 2b390f01edafbf0efd1f6cd053b780b13e80a360
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2b390f01edafbf0efd1f6cd053b780b13e80a360
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Fri Apr 18 16:09:32 2014 +0400
atl: Simplify error handling in AtlAxAttachControl().
---
dlls/atl/atl_ax.c | 28 +++++++++++-----------------
dlls/atl/tests/atl_ax.c | 10 +++-------
2 files changed, 14 insertions(+), 24 deletions(-)
diff --git a/dlls/atl/atl_ax.c b/dlls/atl/atl_ax.c
index 0a16010..764c46e 100644
--- a/dlls/atl/atl_ax.c
+++ b/dlls/atl/atl_ax.c
@@ -949,12 +949,15 @@ static HRESULT IOCS_Init( IOCS *This )
/**********************************************************************
* Create new instance of Atl host component and attach it to window *
*/
-static HRESULT IOCS_Create( HWND hWnd, IUnknown *pUnkControl, IOCS **ppSite )
+static HRESULT IOCS_Create( HWND hWnd, IUnknown *pUnkControl, IUnknown **container )
{
HRESULT hr;
IOCS *This;
- *ppSite = NULL;
+ if (!container)
+ return S_OK;
+
+ *container = NULL;
This = HeapAlloc(GetProcessHeap(), 0, sizeof(IOCS));
if (!This)
@@ -975,7 +978,7 @@ static HRESULT IOCS_Create( HWND hWnd, IUnknown *pUnkControl, IOCS **ppSite )
if ( SUCCEEDED( hr ) )
hr = IOCS_Init( This );
if ( SUCCEEDED( hr ) )
- *ppSite = This;
+ *container = (IUnknown*)&This->IOleClientSite_iface;
else
IOCS_Release( This );
@@ -1102,26 +1105,17 @@ HRESULT WINAPI AtlAxCreateControlEx(LPCOLESTR lpszName, HWND hWnd,
/***********************************************************************
* AtlAxAttachControl [atl100.@]
*/
-HRESULT WINAPI AtlAxAttachControl(IUnknown* pControl, HWND hWnd, IUnknown** ppUnkContainer)
+HRESULT WINAPI AtlAxAttachControl(IUnknown *control, HWND hWnd, IUnknown **container)
{
- IOCS *pUnkContainer;
HRESULT hr;
- TRACE( "%p %p %p\n", pControl, hWnd, ppUnkContainer );
+ TRACE("(%p %p %p)\n", control, hWnd, container);
- if (!pControl)
+ if (!control)
return E_INVALIDARG;
- hr = IOCS_Create( hWnd, pControl, &pUnkContainer );
- if ( SUCCEEDED( hr ) && ppUnkContainer)
- {
- *ppUnkContainer = (IUnknown*) pUnkContainer;
- }
-
- if(!hWnd)
- return S_FALSE;
-
- return hr;
+ hr = IOCS_Create( hWnd, control, container );
+ return hWnd ? hr : S_FALSE;
}
/**********************************************************************
diff --git a/dlls/atl/tests/atl_ax.c b/dlls/atl/tests/atl_ax.c
index f2dad74..6b944d1 100644
--- a/dlls/atl/tests/atl_ax.c
+++ b/dlls/atl/tests/atl_ax.c
@@ -97,15 +97,11 @@ static void test_AtlAxAttachControl(void)
hr = pAtlAxAttachControl(pObj, NULL, NULL);
ok(hr == S_FALSE, "Expected AtlAxAttachControl to return S_FALSE, got 0x%08x\n", hr);
- pContainer = (IUnknown *)0xdeadbeef;
+ pContainer = NULL;
hr = pAtlAxAttachControl(pObj, NULL, &pContainer);
ok(hr == S_FALSE, "Expected AtlAxAttachControl to return S_FALSE, got 0x%08x\n", hr);
- ok(pContainer != (IUnknown *)0xdeadbeef &&
- pContainer != NULL,
- "Expected the output container pointer to be initialized to non-NULL, got %p\n", pContainer);
-
- if (pContainer != (IUnknown *)0xdeadbeef && pContainer != NULL)
- IUnknown_Release(pContainer);
+ ok(pContainer != NULL, "got %p\n", pContainer);
+ IUnknown_Release(pContainer);
hr = pAtlAxAttachControl(pObj, hwnd, NULL);
ok(hr == S_OK, "Expected AtlAxAttachControl to return S_OK, got 0x%08x\n", hr);
More information about the wine-cvs
mailing list