Skip to content

Commit 8439ccf

Browse files
committed
[GEN][ZH] COM related fixes for MinGW
1 parent d00df38 commit 8439ccf

File tree

11 files changed

+33
-15
lines changed

11 files changed

+33
-15
lines changed

Core/Libraries/Source/EABrowserDispatch/BrowserDispatch.idl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ library BROWSERDISPATCHLib
2525
]
2626
interface IBrowserDispatch : IUnknown
2727
{
28-
[id(1), helpstring("method TestMethod")] HRESULT TestMethod(Int num1);
28+
[id(1), helpstring("method TestMethod")] HRESULT TestMethod(int num1);
2929
};
3030
};

Core/Libraries/Source/EABrowserEngine/BrowserEngine.idl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
//
33
// typelib filename: <could not determine filename>
44

5+
// NOTE: Import of oaidl.idl has been added to fix compilation error with widl:
6+
// BrowserEngine.idl:31:44: error: type 'IDispatch' not found in global namespace
7+
import "oaidl.idl";
58
[
69
uuid(6EE45698-21BA-420D-AD40-1B547699BEFB),
710
version(1.0)

Dependencies/Utility/Utility/CppMacros.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@
2525
#define NOEXCEPT_17
2626
#endif
2727

28+
// noexcept for methods of IUNKNOWN interface
29+
#if defined(_MSC_VER)
30+
#define IUNKNOWN_NOEXCEPT NOEXCEPT_17
31+
#else
32+
#define IUNKNOWN_NOEXCEPT
33+
#endif
34+
2835
#if __cplusplus >= 201103L
2936
#define CPP_11(code) code
3037
#else

Generals/Code/GameEngine/Include/GameNetwork/WOLBrowser/WebBrowser.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@ class WebBrowser :
113113
// IUnknown methods
114114
//---------------------------------------------------------------------------
115115
protected:
116-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject) NOEXCEPT_17;
117-
ULONG STDMETHODCALLTYPE AddRef(void) NOEXCEPT_17;
118-
ULONG STDMETHODCALLTYPE Release(void) NOEXCEPT_17;
116+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject) IUNKNOWN_NOEXCEPT;
117+
ULONG STDMETHODCALLTYPE AddRef(void) IUNKNOWN_NOEXCEPT;
118+
ULONG STDMETHODCALLTYPE Release(void) IUNKNOWN_NOEXCEPT;
119119

120120
//---------------------------------------------------------------------------
121121
// IBrowserDispatch methods

Generals/Code/GameEngine/Source/Common/GameEngine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ GameEngine::GameEngine( void )
192192
m_quitting = FALSE;
193193
m_isActive = FALSE;
194194

195-
_Module.Init(NULL, ApplicationHInstance);
195+
_Module.Init(NULL, ApplicationHInstance, NULL);
196196
}
197197

198198
//-------------------------------------------------------------------------------------------------

Generals/Code/GameEngine/Source/GameNetwork/WOLBrowser/WebBrowser.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ WebBrowserURL * WebBrowser::makeNewURL(AsciiString tag)
237237
*
238238
******************************************************************************/
239239

240-
STDMETHODIMP WebBrowser::QueryInterface(REFIID iid, void** ppv) NOEXCEPT_17
240+
STDMETHODIMP WebBrowser::QueryInterface(REFIID iid, void** ppv) IUNKNOWN_NOEXCEPT
241241
{
242242
*ppv = NULL;
243243

@@ -270,7 +270,7 @@ STDMETHODIMP WebBrowser::QueryInterface(REFIID iid, void** ppv) NOEXCEPT_17
270270
*
271271
******************************************************************************/
272272

273-
ULONG STDMETHODCALLTYPE WebBrowser::AddRef(void) NOEXCEPT_17
273+
ULONG STDMETHODCALLTYPE WebBrowser::AddRef(void) IUNKNOWN_NOEXCEPT
274274
{
275275
return ++mRefCount;
276276
}
@@ -290,7 +290,7 @@ ULONG STDMETHODCALLTYPE WebBrowser::AddRef(void) NOEXCEPT_17
290290
*
291291
******************************************************************************/
292292

293-
ULONG STDMETHODCALLTYPE WebBrowser::Release(void) NOEXCEPT_17
293+
ULONG STDMETHODCALLTYPE WebBrowser::Release(void) IUNKNOWN_NOEXCEPT
294294
{
295295
DEBUG_ASSERTCRASH(mRefCount > 0, ("Negative reference count"));
296296
--mRefCount;

Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DWebBrowser.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,11 @@ Bool W3DWebBrowser::createBrowserWindow(const char *tag, GameWindow *win)
5757
return FALSE;
5858
}
5959

60+
#ifdef __GNUC__
61+
CComQIIDPtr<I_ID(IDispatch)> idisp(m_dispatch);
62+
#else
6063
CComQIPtr<IDispatch> idisp(m_dispatch);
64+
#endif
6165
if (m_dispatch == NULL)
6266
{
6367
return FALSE;

GeneralsMD/Code/GameEngine/Include/GameNetwork/WOLBrowser/WebBrowser.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@ class WebBrowser :
113113
// IUnknown methods
114114
//---------------------------------------------------------------------------
115115
protected:
116-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject) NOEXCEPT_17;
117-
ULONG STDMETHODCALLTYPE AddRef(void) NOEXCEPT_17;
118-
ULONG STDMETHODCALLTYPE Release(void) NOEXCEPT_17;
116+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject) IUNKNOWN_NOEXCEPT;
117+
ULONG STDMETHODCALLTYPE AddRef(void) IUNKNOWN_NOEXCEPT;
118+
ULONG STDMETHODCALLTYPE Release(void) IUNKNOWN_NOEXCEPT;
119119

120120
//---------------------------------------------------------------------------
121121
// IBrowserDispatch methods

GeneralsMD/Code/GameEngine/Source/Common/GameEngine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ GameEngine::GameEngine( void )
190190
m_quitting = FALSE;
191191
m_isActive = FALSE;
192192

193-
_Module.Init(NULL, ApplicationHInstance);
193+
_Module.Init(NULL, ApplicationHInstance, NULL);
194194
}
195195

196196
//-------------------------------------------------------------------------------------------------

GeneralsMD/Code/GameEngine/Source/GameNetwork/WOLBrowser/WebBrowser.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ WebBrowserURL * WebBrowser::makeNewURL(AsciiString tag)
237237
*
238238
******************************************************************************/
239239

240-
STDMETHODIMP WebBrowser::QueryInterface(REFIID iid, void** ppv) NOEXCEPT_17
240+
STDMETHODIMP WebBrowser::QueryInterface(REFIID iid, void** ppv) IUNKNOWN_NOEXCEPT
241241
{
242242
*ppv = NULL;
243243

@@ -270,7 +270,7 @@ STDMETHODIMP WebBrowser::QueryInterface(REFIID iid, void** ppv) NOEXCEPT_17
270270
*
271271
******************************************************************************/
272272

273-
ULONG STDMETHODCALLTYPE WebBrowser::AddRef(void) NOEXCEPT_17
273+
ULONG STDMETHODCALLTYPE WebBrowser::AddRef(void) IUNKNOWN_NOEXCEPT
274274
{
275275
return ++mRefCount;
276276
}
@@ -290,7 +290,7 @@ ULONG STDMETHODCALLTYPE WebBrowser::AddRef(void) NOEXCEPT_17
290290
*
291291
******************************************************************************/
292292

293-
ULONG STDMETHODCALLTYPE WebBrowser::Release(void) NOEXCEPT_17
293+
ULONG STDMETHODCALLTYPE WebBrowser::Release(void) IUNKNOWN_NOEXCEPT
294294
{
295295
DEBUG_ASSERTCRASH(mRefCount > 0, ("Negative reference count"));
296296
--mRefCount;

0 commit comments

Comments
 (0)