From 205d20baf6b03d49be5bb25eaa088a1b6c3c9379 Mon Sep 17 00:00:00 2001
From: clay_shooter <>
Date: Mon, 22 Jun 2015 03:57:12 +0000
Subject: [PATCH] Patch #42 Mapping of names to dispIDs implemented
---
jacob/docs/BuildingJacobFromSource.html | 13 +++++++------
jacob/docs/ReleaseNotes.html | 16 +++++++++++++++-
jacob/jni/EventProxy.cpp | 22 +++++++++++++++++++++-
3 files changed, 43 insertions(+), 8 deletions(-)
diff --git a/jacob/docs/BuildingJacobFromSource.html b/jacob/docs/BuildingJacobFromSource.html
index 9470f27..2c6f94e 100644
--- a/jacob/docs/BuildingJacobFromSource.html
+++ b/jacob/docs/BuildingJacobFromSource.html
@@ -38,10 +38,11 @@
Development Environment
In that situation, you would just create the compilation_tools.properties
using the example at the top of build.xml as a template.
-- Microsoft Visual Studio 10.0 and it's included library. (to C:\ProgramFiles (X86) in my case)
-
- Eclipse 3.4 or later from www.eclipse.org as the Java IDE.
-
- Eclipse 3.4 or later with the C/C++ plugin can be used for C coding in place of VC++ IDE.
-
- Java JDK 1.6 (1.18 was built using 1.7.0_31)
+
- Microsoft Visual Studio 2013 and it's included library. (to C:\ProgramFiles (X86) in my case)
+
- Eclipse from www.eclipse.org as the Java IDE.
+
- Eclipse C/C++ plugin can be used for C coding in place of VC++ IDE.
+
- Java JDK 1.6 , latest available
+
- Install the V7.1A libraries that originally came with VS2010
@@ -58,10 +59,10 @@
Development Environment
1.14 | VC 2005 (8) | 1.5.0 (49) | 1.7.0 | 3.3 | 32 and 64 bit |
1.15 | VC 2005 (8) | 1.5.0 (49) | 1.7.0 | 3.4 | 32 and 64 bit |
1.17 | VC 2005 (8) | 1.5.0 (49) | 1.8.4 Eclipse Embedded | 4.3 | 32 and 64 bit |
-1.18 | VS 2010 (10) Windows SDK VS2010 (7.0A) | 1.6.0 (50) | 1.8.4 Eclipse Embedded | 4.3 | 32 and 64 bit |
+1.18 | VS 2013 (12) Windows SDK 7.1A | 1.6.0 (50) | 1.8.4 Eclipse Embedded | 4.3 | 32 and 64 bit |
-Microsoft Visual Studio 10 supports 64 bit builds. so no additional tools are required.
+Microsoft Visual Studio 13 supports 64 bit builds. so no additional tools are required.
Microsoft changed the location of the windows sdk (formerly known as platform sdk) after VC 8.0. https://en.wikipedia.org/wiki/Microsoft_Windows_SDK
diff --git a/jacob/docs/ReleaseNotes.html b/jacob/docs/ReleaseNotes.html
index fce25d6..d1e5259 100644
--- a/jacob/docs/ReleaseNotes.html
+++ b/jacob/docs/ReleaseNotes.html
@@ -6,7 +6,13 @@
JACOB 1.18
What's New
-
- Built with Java 1.6 and Visual Studio 2010
+ (M2) Built with Java 1.6 and Visual Studio 2013 Microsoft Platform SDK V7.1A (introduced with VS2012)instead of v7.0A (vs2010)
+ Targeting SDK V7.1 with USING_V110_SDK71" http://en.wikipedia.org/wiki/Microsoft_Windows_SDK
+
-
+ (M2) Temporarily using AMD64 compiler instead of x86_amd64 because of installation issues on dev machine.
+ Should generate same output even though dll files are different sizes between M1 and M2. http://msdn.microsoft.com/en-us/library/x4d2c09s.aspx
+
-
+ (M2) Dropped support for XP
Tracked Changes
@@ -14,6 +20,10 @@ Tracked Changes
Bugs |
+
+ 119 (new numbers) |
+ Attribute lacking in MANIFEST.MF required since Java 1.7u45 |
+
|
|
@@ -21,6 +31,10 @@ Tracked Changes
Patches |
+
+ 42 (new numbers) |
+ Mapping of names to dispIDs implemented |
+
|
|
diff --git a/jacob/jni/EventProxy.cpp b/jacob/jni/EventProxy.cpp
index 023b316..7905413 100644
--- a/jacob/jni/EventProxy.cpp
+++ b/jacob/jni/EventProxy.cpp
@@ -125,10 +125,30 @@ STDMETHODIMP EventProxy::QueryInterface(REFIID rid, void **ppv)
// This should never get called - the event source fires events
// by dispid's, not by name
+// But however sometimes it is called, so do the mapping as defined
+// by the API Patch #42 provided by abp-futura
STDMETHODIMP EventProxy::GetIDsOfNames(REFIID riid,
OLECHAR **rgszNames, UINT cNames, LCID lcid, DISPID *rgDispID)
{
- return E_UNEXPECTED;
+ HRESULT result = S_OK;
+ for (UINT n = 0; n < cNames; n++) {
+ rgDispID[n] = DISPID_UNKNOWN;
+ USES_CONVERSION;
+ const char *current = W2A((OLECHAR *) rgszNames[n]);
+ // map name to dispID
+ for(int i=0; i