---
 mingw-w64-libraries/winstorecompat/Makefile.am     |    1 +
 mingw-w64-libraries/winstorecompat/Makefile.in     |    8 ++-
 .../winstorecompat/src/CoCreateInstance.c          |   57 ++++++++++++++++++++
 3 files changed, 65 insertions(+), 1 deletion(-)
 create mode 100644 mingw-w64-libraries/winstorecompat/src/CoCreateInstance.c

diff --git a/mingw-w64-libraries/winstorecompat/Makefile.am 
b/mingw-w64-libraries/winstorecompat/Makefile.am
index 9713f58..c4ae286 100644
--- a/mingw-w64-libraries/winstorecompat/Makefile.am
+++ b/mingw-w64-libraries/winstorecompat/Makefile.am
@@ -30,4 +30,5 @@ libwinstorecompat_a_SOURCES = \
   src/SetFilePointer.c \
   src/GetFileSize.c \
   src/Tls.c \
+  src/CoCreateInstance.c \
   $(NULL)
diff --git a/mingw-w64-libraries/winstorecompat/Makefile.in 
b/mingw-w64-libraries/winstorecompat/Makefile.in
index 95970f7..ea4b3db 100644
--- a/mingw-w64-libraries/winstorecompat/Makefile.in
+++ b/mingw-w64-libraries/winstorecompat/Makefile.in
@@ -110,7 +110,8 @@ am_libwinstorecompat_a_OBJECTS = src/CreateEventW.$(OBJEXT) 
\
        src/getpid.$(OBJEXT) src/LocalAlloc.$(OBJEXT) \
        src/LocalFree.$(OBJEXT) src/Sleep.$(OBJEXT) \
        src/SleepEx.$(OBJEXT) src/SetFilePointer.$(OBJEXT) \
-       src/GetFileSize.$(OBJEXT) src/Tls.$(OBJEXT)
+       src/GetFileSize.$(OBJEXT) src/Tls.$(OBJEXT) \
+       src/CoCreateInstance.$(OBJEXT)
 libwinstorecompat_a_OBJECTS = $(am_libwinstorecompat_a_OBJECTS)
 DEFAULT_INCLUDES = -I.@am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
@@ -260,6 +261,7 @@ libwinstorecompat_a_SOURCES = \
   src/SetFilePointer.c \
   src/GetFileSize.c \
   src/Tls.c \
+  src/CoCreateInstance.c \
   $(NULL)
 
 all: all-am
@@ -385,6 +387,8 @@ src/SetFilePointer.$(OBJEXT): src/$(am__dirstamp) \
 src/GetFileSize.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
 src/Tls.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+src/CoCreateInstance.$(OBJEXT): src/$(am__dirstamp) \
+       src/$(DEPDIR)/$(am__dirstamp)
 libwinstorecompat.a: $(libwinstorecompat_a_OBJECTS) 
$(libwinstorecompat_a_DEPENDENCIES) $(EXTRA_libwinstorecompat_a_DEPENDENCIES) 
        -rm -f libwinstorecompat.a
        $(libwinstorecompat_a_AR) libwinstorecompat.a 
$(libwinstorecompat_a_OBJECTS) $(libwinstorecompat_a_LIBADD)
@@ -392,6 +396,7 @@ libwinstorecompat.a: $(libwinstorecompat_a_OBJECTS) 
$(libwinstorecompat_a_DEPEND
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
+       -rm -f src/CoCreateInstance.$(OBJEXT)
        -rm -f src/CreateEventW.$(OBJEXT)
        -rm -f src/CreateFileW.$(OBJEXT)
        -rm -f src/CreateMutexW.$(OBJEXT)
@@ -421,6 +426,7 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ 
@am__quote@src/$(DEPDIR)/CoCreateInstance.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/CreateEventW.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/CreateFileW.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/CreateMutexW.Po@am__quote@
diff --git a/mingw-w64-libraries/winstorecompat/src/CoCreateInstance.c 
b/mingw-w64-libraries/winstorecompat/src/CoCreateInstance.c
new file mode 100644
index 0000000..5a9df37
--- /dev/null
+++ b/mingw-w64-libraries/winstorecompat/src/CoCreateInstance.c
@@ -0,0 +1,57 @@
+/*
+    Copyright (c) 2013 mingw-w64 project
+
+    Contributing authors: Jean-Baptiste Kempf
+
+    Permission is hereby granted, free of charge, to any person obtaining a
+    copy of this software and associated documentation files (the "Software"),
+    to deal in the Software without restriction, including without limitation
+    the rights to use, copy, modify, merge, publish, distribute, sublicense,
+    and/or sell copies of the Software, and to permit persons to whom the
+    Software is furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be included in
+    all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+    DEALINGS IN THE SOFTWARE.
+*/
+
+#define _WIN32_WINNT 0x0602 /* CoCreateInstanceFromApp is 8+ */
+
+#define CoCreateInstance __CoCreateInstance
+#include <windef.h>
+#include <windows.h>
+#include <combaseapi.h>
+#undef CoCreateInstance
+
+HRESULT WINAPI CoCreateInstance(REFCLSID rclsid,
+                                LPUNKNOWN pUnkOuter,
+                                DWORD dwClsContext,
+                                REFIID riid,
+                                LPVOID *ppv)
+{
+    MULTI_QI result;
+    HRESULT res;
+
+    result.pIID = riid;
+    result.pItf = NULL;
+    result.hr = 0;
+
+    res = CoCreateInstanceFromApp(rclsid, pUnkOuter, dwClsContext, NULL, 1, 
&result);
+
+    if( ppv == NULL)
+        return E_POINTER;
+    else {
+        *ppv = result.pItf;
+        return res;
+    }
+}
+
+HRESULT (WINAPI *__MINGW_IMP_SYMBOL(CoCreateInstance))(REFCLSID rclsid,  
LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID *ppv) 
asm("__imp__CoCreateInstance@20") = CoCreateInstance;
+
-- 
1.7.10.4


------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to