[git] GpgOL - branch, master, updated. gpgol-1.2.0-14-g4e0526c

by Andre Heinecke cvs at cvs.gnupg.org
Thu Sep 10 19:22:56 CEST 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GnuPG extension for MS Outlook".

The branch, master has been updated
       via  4e0526c1f4820da7f399e35c0a76b0d7ca5f1dc7 (commit)
       via  d3e50de926579bd963b2e6d1f7a19354ccebb218 (commit)
       via  e58b3e105dd665b29709502fb1e2a81d2ba7ad50 (commit)
       via  8c06bc68c3f0b77980e0f54a3ad8b7830ee052db (commit)
       via  848af24058512bccba0017654ce6bcf520e9a7b4 (commit)
       via  d1e60f012dea19b1736c84be1d7da16484586b2b (commit)
      from  eb1b9bfc088ce33c398dd6f6b7bf80797fbb9011 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4e0526c1f4820da7f399e35c0a76b0d7ca5f1dc7
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Thu Sep 10 19:20:36 2015 +0200

    Purify COM interface declarations.
    
    * src/inspectors.h (IOOMInspectorEvents),
      src/mailitem.h (IOOMItemEvents): Declare interface methods
      as pure virtual.
    
    --
    According to doc it should be done this way and this fixes
    the undefined reference to vtable errors when compiling with -O0

diff --git a/src/inspectors.h b/src/inspectors.h
index 8d33dc7..95148d8 100644
--- a/src/inspectors.h
+++ b/src/inspectors.h
@@ -79,7 +79,7 @@ DECLARE_INTERFACE_(IOOMInspectorEvents, IDispatch)
 
   /*** IOOM_Inspector methods ***/
   /* dispid=0xf001 */
-  STDMETHOD_(void, Activate)(THIS_);
+  STDMETHOD_(void, Activate)(THIS_) PURE;
   /* dispid=0xfa11 */
   STDMETHODIMP(BeforeMaximize)(THIS_ PBOOL);
   /* dispid=0xfa12 */
@@ -89,9 +89,9 @@ DECLARE_INTERFACE_(IOOMInspectorEvents, IDispatch)
   /* dispid=0xfa14 */
   STDMETHODIMP(BeforeSize)(THIS_ PBOOL);
   /* dispid=0xf008 */
-  STDMETHOD_(void, Close)(THIS_);
+  STDMETHOD_(void, Close)(THIS_) PURE;
   /* dispid=0xf006 */
-  STDMETHOD_(void, Deactivate)(THIS_);
+  STDMETHOD_(void, Deactivate)(THIS_) PURE;
 };
 
 
diff --git a/src/mailitem.h b/src/mailitem.h
index 04b0da5..01063c3 100644
--- a/src/mailitem.h
+++ b/src/mailitem.h
@@ -56,19 +56,19 @@ DECLARE_INTERFACE_(IOOMItemEvents, IDispatch)
      vtable layout.  However it doesn't matter because we only use it
      via the IDispatch interface.  */
   /* dispid=0xf001 */
-  STDMETHOD(Read)(THIS_ );
+  STDMETHOD(Read)(THIS_ ) PURE;
 
   /* dispid=0xf002 */
-  STDMETHOD(Write)(THIS_ PBOOL cancel);
+  STDMETHOD(Write)(THIS_ PBOOL cancel) PURE;
 
   /* dispid=0xf003 */
-  STDMETHOD(Open)(THIS_ PBOOL cancel);
+  STDMETHOD(Open)(THIS_ PBOOL cancel) PURE;
 
   /* dispid=0xf004 */
-  STDMETHOD(Close)(THIS_ PBOOL cancel);
+  STDMETHOD(Close)(THIS_ PBOOL cancel) PURE;
 
   /* dispid=0xf005 */
-  STDMETHOD(Send)(THIS_ PBOOL cancel);
+  STDMETHOD(Send)(THIS_ PBOOL cancel) PURE;
 
   /* dispid=0xf006 */
   //STDMETHOD(CustomAction)(THIS_ LPDISPATCH action, LPDISPATCH response,

commit d3e50de926579bd963b2e6d1f7a19354ccebb218
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Thu Sep 10 19:16:30 2015 +0200

    Correctly declare gpgoladding COM interfaces
    
    * src/gpgoladdin.h (IDTExtensibility2, IRibbonExtensibility)
     (IRibbonCallback): Add IUnknown and IDispatch methods. Purify.
    
    --
    Not sure why this worked before probably because they
    did actually implement the relevant methods.
    All methods even from base classes should be declared.
    PURE ensures that the vtable is generated correclty
    fixing the "related undefined reference to vtable"
    link errors.

diff --git a/src/gpgoladdin.h b/src/gpgoladdin.h
index 4a755d9..754765d 100644
--- a/src/gpgoladdin.h
+++ b/src/gpgoladdin.h
@@ -1,5 +1,5 @@
 /* gpgoladdin.h - Connect GpgOL to Outlook as an addin
- *    Copyright (C) 2013 Intevation GmbH
+ *    Copyright (C) 2013, 2015 Intevation GmbH
  *
  * This file is part of GpgOL.
  *
@@ -22,6 +22,8 @@
 
 #include <windows.h>
 
+#include "comhelp.h"
+
 class GpgolAddinRibbonExt;
 class GpgolExt;
 
@@ -60,12 +62,16 @@ DEFINE_GUID(IID_IDTExtensibility2, 0xB65AD801, 0xABAF, 0x11D0, 0xBB, 0x8B,
 #define INTERFACE IDTExtensibility2
 DECLARE_INTERFACE_(IDTExtensibility2, IDispatch)
 {
+  DECLARE_IUNKNOWN_METHODS;
+  DECLARE_IDISPATCH_METHODS;
+  /*** IDTExtensibility2 methods ***/
+
   STDMETHOD(OnConnection)(LPDISPATCH, ext_ConnectMode, LPDISPATCH,
-                          SAFEARRAY**);
-  STDMETHOD(OnDisconnection)(ext_DisconnectMode, SAFEARRAY**);
-  STDMETHOD(OnAddInsUpdate)(SAFEARRAY **);
-  STDMETHOD(OnStartupComplete)(SAFEARRAY**);
-  STDMETHOD(OnBeginShutdown)(SAFEARRAY**);
+                          SAFEARRAY**) PURE;
+  STDMETHOD(OnDisconnection)(ext_DisconnectMode, SAFEARRAY**) PURE;
+  STDMETHOD(OnAddInsUpdate)(SAFEARRAY **) PURE;
+  STDMETHOD(OnStartupComplete)(SAFEARRAY**) PURE;
+  STDMETHOD(OnBeginShutdown)(SAFEARRAY**) PURE;
 };
 
 DEFINE_GUID(IID_IRibbonExtensibility, 0x000C0396, 0x0000, 0x0000, 0xC0, 0x00,
@@ -78,7 +84,11 @@ typedef struct IRibbonExtensibility *LRIBBONEXTENSIBILITY;
 #define INTERFACE IRibbonExtensibility
 DECLARE_INTERFACE_(IRibbonExtensibility, IDispatch)
 {
-  STDMETHOD(GetCustomUI)(BSTR RibbonID, BSTR * RibbonXml);
+  DECLARE_IUNKNOWN_METHODS;
+  DECLARE_IDISPATCH_METHODS;
+
+  /*** IRibbonExtensibility methods ***/
+  STDMETHOD(GetCustomUI)(BSTR RibbonID, BSTR * RibbonXml) PURE;
 };
 
 DEFINE_GUID(IID_IRibbonCallback, 0xCE895442, 0x9981, 0x4315, 0xAA, 0x85,
@@ -89,10 +99,13 @@ typedef struct IRibbonCallback *LRIBBONCALLBACK;
 
 #undef INTERFACE
 #define INTERFACE IRibbonCallback
-DECLARE_INTERFACE(IRibbonCallback)
+DECLARE_INTERFACE_(IRibbonCallback, IUnknown)
 {
-  STDMETHOD(OnRibbonLoad)(IUnknown* pRibbonUIUnk);
-  STDMETHOD(ButtonClicked)(IDispatch* ribbon);
+  DECLARE_IUNKNOWN_METHODS;
+
+  /*** IRibbonCallback methods ***/
+  STDMETHOD(OnRibbonLoad)(IUnknown* pRibbonUIUnk) PURE;
+  STDMETHOD(ButtonClicked)(IDispatch* ribbon) PURE;
 };
 
 DEFINE_GUID(IID_IRibbonControl, 0x000C0395, 0x0000, 0x0000, 0xC0, 0x00,
@@ -105,9 +118,12 @@ typedef struct IRibbonControl *LPRIBBONCONTROL;
 #define INTERFACE IRibbonControl
 DECLARE_INTERFACE_(IRibbonControl, IDispatch)
 {
-  STDMETHOD(get_Id)(BSTR* id);
-  STDMETHOD(get_Context)(IDispatch** context);
-  STDMETHOD(get_Tag)(BSTR* Tag);
+  DECLARE_IUNKNOWN_METHODS;
+  DECLARE_IDISPATCH_METHODS;
+
+  STDMETHOD(get_Id)(BSTR* id) PURE;
+  STDMETHOD(get_Context)(IDispatch** context) PURE;
+  STDMETHOD(get_Tag)(BSTR* Tag) PURE;
 };
 
 

commit e58b3e105dd665b29709502fb1e2a81d2ba7ad50
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Thu Sep 10 19:11:25 2015 +0200

    Declare destructors of COM objects as virtual
    
    * src/attached-file-events.h (GpgolAttachedFileEvents),
      src/eventsink.h (BEGIN_EVENT_SINK)
      src/gpgoladdin.h (GpgolRibbonExtender GpgolAddin GpgolAddinFactory),
      src/item-events.h (GpgolItemEvents),
      src/message-events.h (GpgolMessageEvents),
      src/property-sheets.h (GpgolPropertySheets),
      src/session-events.h (GpgolSessionEvents),
      src/user-events.h (GpgolUserEvents): Make dtors virtual.
    
    --
    This fixes compiler warnings about non-virtual dtors
    in conjunction with inheriting a COM interface.

diff --git a/src/attached-file-events.h b/src/attached-file-events.h
index e259389..310e7f2 100644
--- a/src/attached-file-events.h
+++ b/src/attached-file-events.h
@@ -31,6 +31,7 @@ class GpgolAttachedFileEvents : public IExchExtAttachedFileEvents
 {
  public:
   GpgolAttachedFileEvents (GpgolExt *pParentInterface);
+  virtual ~GpgolAttachedFileEvents () {}
 
  private:
   GpgolExt *m_pExchExt;
diff --git a/src/eventsink.h b/src/eventsink.h
index 4353c0f..f94793b 100644
--- a/src/eventsink.h
+++ b/src/eventsink.h
@@ -33,7 +33,7 @@ class subcls : public parentcls                                          \
 {                                                                        \
  public:                                                                 \
   subcls (void);                                                         \
-  ~subcls (void);                                                        \
+  virtual ~subcls (void);                                                \
   LPDISPATCH m_object;                                                   \
   LPCONNECTIONPOINT m_pCP;                                               \
   DWORD m_cookie;                                                        \
diff --git a/src/gpgoladdin.h b/src/gpgoladdin.h
index cf98e8c..4a755d9 100644
--- a/src/gpgoladdin.h
+++ b/src/gpgoladdin.h
@@ -118,7 +118,7 @@ class GpgolRibbonExtender : public IRibbonExtensibility
 {
 public:
   GpgolRibbonExtender(void);
-  ~GpgolRibbonExtender();
+  virtual ~GpgolRibbonExtender();
 
   /* IUnknown */
   STDMETHODIMP QueryInterface (REFIID riid, LPVOID* ppvObj);
@@ -150,7 +150,7 @@ class GpgolAddin : public IDTExtensibility2
 {
 public:
   GpgolAddin(void);
-  ~GpgolAddin();
+  virtual ~GpgolAddin();
 
 public:
 
@@ -197,7 +197,7 @@ class GpgolAddinFactory: public IClassFactory
 {
 public:
   GpgolAddinFactory(): m_lRef(0){}
-  ~GpgolAddinFactory(){}
+  virtual ~GpgolAddinFactory(){}
 
   STDMETHODIMP QueryInterface (REFIID riid, LPVOID* ppvObj);
   inline STDMETHODIMP_(ULONG) AddRef() { ++m_lRef;  return m_lRef; };
diff --git a/src/item-events.h b/src/item-events.h
index 7d1fcaf..160895b 100644
--- a/src/item-events.h
+++ b/src/item-events.h
@@ -32,6 +32,7 @@ class GpgolItemEvents : public IOutlookExtItemEvents
 {
  public:
   GpgolItemEvents (GpgolExt *pParentInterface);
+  virtual ~GpgolItemEvents () {}
 
  private:
   GpgolExt *m_pExchExt;
diff --git a/src/message-events.h b/src/message-events.h
index fda010a..665eb38 100644
--- a/src/message-events.h
+++ b/src/message-events.h
@@ -31,6 +31,7 @@ class GpgolMessageEvents : public IExchExtMessageEvents
   /* Constructor. */
  public:
   GpgolMessageEvents (GpgolExt* pParentInterface);
+  virtual ~GpgolMessageEvents () {}
   
   /* Attributes.  */
  private:
diff --git a/src/property-sheets.h b/src/property-sheets.h
index cb1ba2f..591227c 100644
--- a/src/property-sheets.h
+++ b/src/property-sheets.h
@@ -33,6 +33,7 @@ class GpgolPropertySheets : public IExchExtPropertySheets
   // constructor
 public:
   GpgolPropertySheets(GpgolExt* pParentInterface);
+  virtual ~GpgolPropertySheets () {}
 
   // attibutes
 private:
diff --git a/src/session-events.h b/src/session-events.h
index cc499b7..fcc2d72 100644
--- a/src/session-events.h
+++ b/src/session-events.h
@@ -31,6 +31,7 @@ class GpgolSessionEvents : public IExchExtSessionEvents
   /* Constructor. */
 public:
   GpgolSessionEvents (GpgolExt *pParentInterface);
+  virtual ~GpgolSessionEvents () {}
 
   /* Attributes. */
 private:
diff --git a/src/user-events.h b/src/user-events.h
index 1062359..1bff7c4 100644
--- a/src/user-events.h
+++ b/src/user-events.h
@@ -31,6 +31,7 @@ class GpgolUserEvents : public IExchExtUserEvents
   /* Constructor. */
 public:
   GpgolUserEvents (GpgolExt *pParentInterface);
+  virtual ~GpgolUserEvents () {}
 
   /* Attributes. */
 private:

commit 8c06bc68c3f0b77980e0f54a3ad8b7830ee052db
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Thu Sep 10 19:08:28 2015 +0200

    Add comhelp header for common COM definitions
    
    * src/comhelp.h: New. Add IUnknown and IDispatch defs.
    * src/mymapi.h: Use definitions from comhelp.
    
    --
    This header is intended as a place for interface definitions
    so that they can be better reused in different source files.

diff --git a/src/comhelp.h b/src/comhelp.h
new file mode 100644
index 0000000..073c85b
--- /dev/null
+++ b/src/comhelp.h
@@ -0,0 +1,36 @@
+/* comhelp.h - Helper macros to define / declare COM interfaces.
+ *    Copyright (C) 2015 Intevation GmbH
+ *
+ * This file is part of GpgOL.
+ *
+ * GpgOL is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * GpgOL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef COMHELP_H
+#define COMHELP_H
+
+/*** IUnknown methods ***/
+#define DECLARE_IUNKNOWN_METHODS                        \
+  STDMETHOD(QueryInterface)(THIS_ REFIID, PVOID*) PURE; \
+  STDMETHOD_(ULONG,AddRef)(THIS) PURE;                  \
+  STDMETHOD_(ULONG,Release)(THIS) PURE
+
+/*** IDispatch methods ***/
+#define DECLARE_IDISPATCH_METHODS                                             \
+  STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;                              \
+  STDMETHOD(GetTypeInfo)(THIS_ UINT, LCID, LPTYPEINFO*) PURE;                 \
+  STDMETHOD(GetIDsOfNames)(THIS_ REFIID, LPOLESTR*, UINT, LCID, DISPID*) PURE;\
+  STDMETHOD(Invoke)(THIS_ DISPID, REFIID, LCID, WORD,                         \
+                    DISPPARAMS*, VARIANT*, EXCEPINFO*, UINT*) PURE
+
+#endif // COMHELP_H
diff --git a/src/mymapi.h b/src/mymapi.h
index 89bb6a2..f3ca441 100644
--- a/src/mymapi.h
+++ b/src/mymapi.h
@@ -38,6 +38,8 @@
 #ifndef MAPI_H
 #define MAPI_H
 
+#include "comhelp.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -677,12 +679,6 @@ struct IMAPIFormContainer;
 typedef struct IMAPIFormContainer *LPMAPIFORMCONTAINER;
 
 
-/*** IUnknown methods ***/
-#define MY_IUNKNOWN_METHODS \
-  STDMETHOD(QueryInterface)(THIS_ REFIID, PVOID*) PURE; \
-  STDMETHOD_(ULONG,AddRef)(THIS) PURE;                  \
-  STDMETHOD_(ULONG,Release)(THIS) PURE
-
 /*** IMAPIProp methods ***/
 #define MY_IMAPIPROP_METHODS \
   STDMETHOD(GetLastError)(THIS_ HRESULT, ULONG, LPMAPIERROR FAR*);         \
@@ -884,7 +880,7 @@ EXTERN_C const IID IID_IMAPIProp;
 #define INTERFACE IMAPIProp
 DECLARE_INTERFACE_(IMAPIProp,IUnknown)
 {
-  MY_IUNKNOWN_METHODS;
+  DECLARE_IUNKNOWN_METHODS;
   MY_IMAPIPROP_METHODS;
 };
 
@@ -895,7 +891,7 @@ EXTERN_C const IID IID_IMsgStore;
 #define INTERFACE IMsgStore
 DECLARE_INTERFACE_(IMsgStore,IMAPIProp)
 {
-  MY_IUNKNOWN_METHODS;
+  DECLARE_IUNKNOWN_METHODS;
   MY_IMAPIPROP_METHODS;
   MY_IMSGSTORE_METHODS;
 };
@@ -906,7 +902,7 @@ EXTERN_C const IID IID_IMessage;
 #define INTERFACE IMessage
 DECLARE_INTERFACE_(IMessage,IMAPIProp)
 {
-  MY_IUNKNOWN_METHODS;
+  DECLARE_IUNKNOWN_METHODS;
   MY_IMAPIPROP_METHODS;
   MY_IMESSAGE_METHODS;
 };
@@ -917,7 +913,7 @@ EXTERN_C const IID IID_IMAPIContainer;
 #define INTERFACE IMAPIContainer
 DECLARE_INTERFACE_(IMAPIContainer,IMAPIProp)
 {
-  MY_IUNKNOWN_METHODS;
+  DECLARE_IUNKNOWN_METHODS;
   MY_IMAPIPROP_METHODS;
   MY_IMAPICONTAINER_METHODS;
 };
@@ -928,7 +924,7 @@ EXTERN_C const IID IID_IMAPIFolder;
 #define INTERFACE IMAPIFolder
 DECLARE_INTERFACE_(IMAPIFolder,IMAPIContainer)
 {
-  MY_IUNKNOWN_METHODS;
+  DECLARE_IUNKNOWN_METHODS;
   MY_IMAPIPROP_METHODS;
   MY_IMAPICONTAINER_METHODS;
   MY_IMAPIFOLDER_METHODS;
@@ -940,7 +936,7 @@ EXTERN_C const IID IID_IAttachment;
 #define INTERFACE IAttach
 DECLARE_INTERFACE_(IAttach, IMAPIProp)
 {
-  MY_IUNKNOWN_METHODS;
+  DECLARE_IUNKNOWN_METHODS;
   MY_IMAPIPROP_METHODS;
   /*** IAttach methods ***/
   /* No methods */
@@ -952,7 +948,7 @@ EXTERN_C const IID IID_IMAPITableData;
 #define INTERFACE IMAPITable
 DECLARE_INTERFACE_(IMAPITable,IUnknown)
 {
-  MY_IUNKNOWN_METHODS;
+  DECLARE_IUNKNOWN_METHODS;
   MY_IMAPITABLE_METHODS;
 };
 
@@ -962,7 +958,7 @@ EXTERN_C const IID IID_IMAPISession;
 #define INTERFACE IMAPISession
 DECLARE_INTERFACE_(IMAPISession, IUnknown)
 {
-  MY_IUNKNOWN_METHODS;
+  DECLARE_IUNKNOWN_METHODS;
   MY_IMAPISESSION_METHODS;
 };
 
@@ -974,7 +970,7 @@ EXTERN_C const IID IID_IConverterSession;
 #define INTERFACE IConverterSession
 DECLARE_INTERFACE_(IConverterSession, IUnknown)
 {
-  MY_IUNKNOWN_METHODS;
+  DECLARE_IUNKNOWN_METHODS;
 
   /*** IConverterSession ***/
 
@@ -1012,7 +1008,7 @@ EXTERN_C const IID IID_ISpoolerHook;
 #define INTERFACE ISpoolerHook
 DECLARE_INTERFACE_(ISpoolerHook, IUnknown)
 {
-  MY_IUNKNOWN_METHODS;
+  DECLARE_IUNKNOWN_METHODS;
   MY_ISPOOLERHOOK_METHODS;
 };
 
@@ -1089,13 +1085,12 @@ EXTERN_C const IID IID_IMAPIFormContainer;
 #define INTERFACE IMAPIFormContainer
 DECLARE_INTERFACE_(IMAPIFormContainer, IUnknown)
 {
-  MY_IUNKNOWN_METHODS;
+  DECLARE_IUNKNOWN_METHODS;
   MY_IMAPIFORMCONTAINER_METHODS;
 };
 
 
 

-#undef MY_IUNKNOWN_METHODS
 #undef MY_IMAPIPROP_METHODS
 #undef MY_IMSGSTORE_METHODS
 #undef MY_IMESSAGE_METHODS

commit 848af24058512bccba0017654ce6bcf520e9a7b4
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Thu Sep 10 18:22:34 2015 +0200

    Do not use ambigouis %S format character
    
    * src/gpgoladdin.cpp (getCustomUI): Do not use %S.
    
    --
    %S in swprintf used to mean "char *" but at least
    in the context of Outlook this now means "wchar_t *"
    the wrong interpretation causes undefined behavior
    and results in crashes.
    
    The fix is to avoid this altogether as the
    rest of the code does and use %hs and %ls instead.

diff --git a/src/gpgoladdin.cpp b/src/gpgoladdin.cpp
index e24fe85..9c15fe5 100644
--- a/src/gpgoladdin.cpp
+++ b/src/gpgoladdin.cpp
@@ -576,7 +576,7 @@ GpgolRibbonExtender::GetCustomUI (BSTR RibbonID, BSTR * RibbonXml)
 
   memset(buffer, 0, sizeof buffer);
 
-  log_debug ("%s:%s: GetCustomUI for id: %S", SRCNAME, __func__, RibbonID);
+  log_debug ("%s:%s: GetCustomUI for id: %ls", SRCNAME, __func__, RibbonID);
 
   if (!RibbonXml)
     return E_POINTER;
@@ -588,61 +588,61 @@ GpgolRibbonExtender::GetCustomUI (BSTR RibbonID, BSTR * RibbonXml)
         L" <ribbon>"
         L"   <tabs>"
         L"    <tab id=\"gpgolTab\""
-        L"         label=\"%S\">"
+        L"         label=\"%hs\">"
         L"     <group id=\"general\""
-        L"            label=\"%S\">"
+        L"            label=\"%hs\">"
         L"       <button id=\"CustomButton\""
         L"               getImage=\"btnCertManager\""
         L"               size=\"large\""
-        L"               label=\"%S\""
-        L"               screentip=\"%S\""
-        L"               supertip=\"%S\""
+        L"               label=\"%hs\""
+        L"               screentip=\"%hs\""
+        L"               supertip=\"%hs\""
         L"               onAction=\"startCertManager\"/>"
         L"     </group>"
         L"     <group id=\"textGroup\""
-        L"            label=\"%S\">"
+        L"            label=\"%hs\">"
         L"       <button id=\"fullTextEncrypt\""
         L"               getImage=\"btnEncryptLarge\""
         L"               size=\"large\""
-        L"               label=\"%S\""
-        L"               screentip=\"%S\""
-        L"               supertip=\"%S\""
+        L"               label=\"%hs\""
+        L"               screentip=\"%hs\""
+        L"               supertip=\"%hs\""
         L"               onAction=\"encryptBody\"/>"
         L"       <button id=\"fullTextDecrypt\""
         L"               getImage=\"btnDecryptLarge\""
         L"               size=\"large\""
-        L"               label=\"%S\""
-        L"               screentip=\"%S\""
-        L"               supertip=\"%S\""
+        L"               label=\"%hs\""
+        L"               screentip=\"%hs\""
+        L"               supertip=\"%hs\""
         L"               onAction=\"decryptBody\"/>"
         L"       <button id=\"fullTextSign\""
         L"               getImage=\"btnSignLarge\""
         L"               size=\"large\""
-        L"               label=\"%S\""
-        L"               screentip=\"%S\""
-        L"               supertip=\"%S\""
+        L"               label=\"%hs\""
+        L"               screentip=\"%hs\""
+        L"               supertip=\"%hs\""
         L"               onAction=\"signBody\"/>"
         L"       <button id=\"fullTextVerify\""
         L"               getImage=\"btnVerifyLarge\""
         L"               size=\"large\""
-        L"               label=\"%S\""
+        L"               label=\"%hs\""
         L"               onAction=\"verifyBody\"/>"
         L"     </group>"
         L"     <group id=\"attachmentGroup\""
-        L"            label=\"%S\">"
+        L"            label=\"%hs\">"
         L"       <button id=\"encryptedFile\""
         L"               getImage=\"btnEncryptLarge\""
         L"               size=\"large\""
-        L"               label=\"%S\""
-        L"               screentip=\"%S\""
-        L"               supertip=\"%S\""
+        L"               label=\"%hs\""
+        L"               screentip=\"%hs\""
+        L"               supertip=\"%hs\""
         L"               onAction=\"addEncAttachment\"/>"
         L"       <button id=\"encryptSignFile\""
         L"               getImage=\"btnEncryptFileLarge\""
         L"               size=\"large\""
-        L"               label=\"%S\""
-        L"               screentip=\"%S\""
-        L"               supertip=\"%S\""
+        L"               label=\"%hs\""
+        L"               screentip=\"%hs\""
+        L"               supertip=\"%hs\""
         L"               onAction=\"addEncSignedAttachment\"/>"
         L"     </group>"
         L"    </tab>"
@@ -651,11 +651,11 @@ GpgolRibbonExtender::GetCustomUI (BSTR RibbonID, BSTR * RibbonXml)
         L" <contextMenus>"
         L"  <contextMenu idMso=\"ContextMenuText\">"
         L"    <button id=\"encryptButton\""
-        L"            label=\"%S\""
+        L"            label=\"%hs\""
         L"            getImage=\"btnEncrypt\""
         L"            onAction=\"encryptSelection\"/>"
         L"    <button id=\"decryptButton\""
-        L"            label=\"%S\""
+        L"            label=\"%hs\""
         L"            getImage=\"btnDecrypt\""
         L"            onAction=\"decryptSelection\"/>"
         L" </contextMenu>"
@@ -680,30 +680,30 @@ GpgolRibbonExtender::GetCustomUI (BSTR RibbonID, BSTR * RibbonXml)
         L" <ribbon>"
         L"   <tabs>"
         L"    <tab id=\"gpgolTab\""
-        L"         label=\"%S\">"
+        L"         label=\"%hs\">"
         L"     <group id=\"general\""
-        L"            label=\"%S\">"
+        L"            label=\"%hs\">"
         L"       <button id=\"CustomButton\""
         L"               getImage=\"btnCertManager\""
         L"               size=\"large\""
-        L"               label=\"%S\""
-        L"               screentip=\"%S\""
-        L"               supertip=\"%S\""
+        L"               label=\"%hs\""
+        L"               screentip=\"%hs\""
+        L"               supertip=\"%hs\""
         L"               onAction=\"startCertManager\"/>"
         L"     </group>"
         L"     <group id=\"textGroup\""
-        L"            label=\"%S\">"
+        L"            label=\"%hs\">"
         L"       <button id=\"fullTextDecrypt\""
         L"               getImage=\"btnDecryptLarge\""
         L"               size=\"large\""
-        L"               label=\"%S\""
-        L"               screentip=\"%S\""
-        L"               supertip=\"%S\""
+        L"               label=\"%hs\""
+        L"               screentip=\"%hs\""
+        L"               supertip=\"%hs\""
         L"               onAction=\"decryptBody\"/>"
         L"       <button id=\"fullTextVerify\""
         L"               getImage=\"btnVerifyLarge\""
         L"               size=\"large\""
-        L"               label=\"%S\""
+        L"               label=\"%hs\""
         L"               onAction=\"verifyBody\"/>"
         L"     </group>"
         L"    </tab>"
@@ -711,10 +711,10 @@ GpgolRibbonExtender::GetCustomUI (BSTR RibbonID, BSTR * RibbonXml)
         L"  <contextualTabs>"
         L"    <tabSet idMso=\"TabSetAttachments\">"
         L"        <tab idMso=\"TabAttachments\">"
-        L"            <group label=\"%S\" id=\"gnupgLabel\">"
+        L"            <group label=\"%hs\" id=\"gnupgLabel\">"
         L"                <button id=\"gpgol_contextual_decrypt\""
         L"                    size=\"large\""
-        L"                    label=\"%S\""
+        L"                    label=\"%hs\""
         L"                    getImage=\"btnDecryptLarge\""
         L"                    onAction=\"attachmentDecryptCallback\" />"
         L"            </group>"
@@ -725,13 +725,13 @@ GpgolRibbonExtender::GetCustomUI (BSTR RibbonID, BSTR * RibbonXml)
         L"<contextMenus>"
         L"<contextMenu idMso=\"ContextMenuReadOnlyMailText\">"
         L"   <button id=\"decryptReadButton\""
-        L"           label=\"%S\""
+        L"           label=\"%hs\""
         L"           getImage=\"btnDecrypt\""
         L"           onAction=\"decryptSelection\"/>"
         L" </contextMenu>"
         L" <contextMenu idMso=\"ContextMenuAttachments\">"
         L"   <button id=\"gpgol_decrypt\""
-        L"           label=\"%S\""
+        L"           label=\"%hs\""
         L"           getImage=\"btnDecrypt\""
         L"           onAction=\"attachmentDecryptCallback\"/>"
         L" </contextMenu>"
@@ -753,26 +753,26 @@ GpgolRibbonExtender::GetCustomUI (BSTR RibbonID, BSTR * RibbonXml)
         L" <ribbon>"
         L"   <tabs>"
         L"    <tab id=\"gpgolTab\""
-        L"         label=\"%S\">"
+        L"         label=\"%hs\">"
         L"     <group id=\"general\""
-        L"            label=\"%S\">"
+        L"            label=\"%hs\">"
         L"       <button id=\"CustomButton\""
         L"               getImage=\"btnCertManager\""
         L"               size=\"large\""
-        L"               label=\"%S\""
-        L"               screentip=\"%S\""
-        L"               supertip=\"%S\""
+        L"               label=\"%hs\""
+        L"               screentip=\"%hs\""
+        L"               supertip=\"%hs\""
         L"               onAction=\"startCertManager\"/>"
         L"     </group>"
         /* This would be totally nice but Outlook
            saves the decrypted text aftewards automatically.
            Yay,..
         L"     <group id=\"textGroup\""
-        L"            label=\"%S\">"
+        L"            label=\"%hs\">"
         L"       <button id=\"fullTextDecrypt\""
         L"               getImage=\"btnDecryptLarge\""
         L"               size=\"large\""
-        L"               label=\"%S\""
+        L"               label=\"%hs\""
         L"               onAction=\"decryptBody\"/>"
         L"     </group>"
         */
@@ -781,10 +781,10 @@ GpgolRibbonExtender::GetCustomUI (BSTR RibbonID, BSTR * RibbonXml)
         L"  <contextualTabs>"
         L"    <tabSet idMso=\"TabSetAttachments\">"
         L"        <tab idMso=\"TabAttachments\">"
-        L"            <group label=\"%S\" id=\"gnupgLabel\">"
+        L"            <group label=\"%hs\" id=\"gnupgLabel\">"
         L"                <button id=\"gpgol_contextual_decrypt\""
         L"                    size=\"large\""
-        L"                    label=\"%S\""
+        L"                    label=\"%hs\""
         L"                    getImage=\"btnDecryptLarge\""
         L"                    onAction=\"attachmentDecryptCallback\" />"
         L"            </group>"
@@ -798,13 +798,13 @@ GpgolRibbonExtender::GetCustomUI (BSTR RibbonID, BSTR * RibbonXml)
            / get the selected text from that Context.
         L" <contextMenu idMso=\"ContextMenuReadOnlyMailText\">"
         L" <button id=\"decryptReadButton1\""
-        L"         label=\"%S\""
+        L"         label=\"%hs\""
         L"         onAction=\"decryptSelection\"/>"
         L" </contextMenu>"
         */
         L" <contextMenu idMso=\"ContextMenuAttachments\">"
         L"   <button id=\"gpgol_decrypt\""
-        L"           label=\"%S\""
+        L"           label=\"%hs\""
         L"           getImage=\"btnDecrypt\""
         L"           onAction=\"attachmentDecryptCallback\"/>"
         L" </contextMenu>"

commit d1e60f012dea19b1736c84be1d7da16484586b2b
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Wed Sep 9 18:00:46 2015 +0200

    Fix doc build with texinfo 5.2
    
    * gpl.texi: Update with version from gpgme 1.6.0
    * gpgol.texi: Fix itemx syntax errors.

diff --git a/doc/gpgol.texi b/doc/gpgol.texi
index f737977..25d2a58 100644
--- a/doc/gpgol.texi
+++ b/doc/gpgol.texi
@@ -319,11 +319,11 @@ alternative you may use the names of the flags, separated by space or
 comma.
 
 
- at itemx HKCU\Software\GNU\GpgOL:logFile
+ at item HKCU\Software\GNU\GpgOL:logFile
 If the value is not empty, GpgOL takes this as a log file and appends
 debug information to this file.  The file may get very large.
 
- at itemx HKCU\Software\GNU\GpgOL:compatFlags
+ at item HKCU\Software\GNU\GpgOL:compatFlags
 This is a string consisting of @code{0} and @code{1} to enable certain
 compatibility flags.  Not generally useful; use the source for a
 description.
diff --git a/doc/gpl.texi b/doc/gpl.texi
index 7f9a48a..d13e9e4 100644
--- a/doc/gpl.texi
+++ b/doc/gpl.texi
@@ -228,7 +228,7 @@ terms of section 4, provided that you also meet all of these
 conditions:
 
 @enumerate a
- at item 
+ at item
 The work must carry prominent notices stating that you modified it,
 and giving a relevant date.
 
@@ -659,12 +659,15 @@ an absolute waiver of all civil liability in connection with the
 Program, unless a warranty or assumption of liability accompanies a
 copy of the Program in return for a fee.
 
+ at end enumerate
+
 @iftex
 @heading END OF TERMS AND CONDITIONS
 @end iftex
 @ifinfo
 @center END OF TERMS AND CONDITIONS
 @end ifinfo
+
 @unnumberedsec How to Apply These Terms to Your New Programs
 
 If you develop a new program, and you want it to be of the greatest
@@ -675,9 +678,11 @@ terms.
 To do so, attach the following notices to the program.  It is safest
 to attach them to the start of each source file to most effectively
 state the exclusion of warranty; and each file should have at least
-the ``copyright'' line and a pointer to where the full notice is found.
- at smallexample
- at var{one line to give the program's name and a brief idea of what it does.}  
+the ``copyright'' line and a pointer to where the full notice is
+found.
+
+ at example
+ at var{one line to give the program's name and a brief idea of what it does.}
 Copyright (C) @var{year} @var{name of author}
 
 This program is free software: you can redistribute it and/or modify
@@ -692,17 +697,21 @@ General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program.  If not, see @url{http://www.gnu.org/licenses/}.
- at end smallexample
+ at end example
 
+ at noindent
 Also add information on how to contact you by electronic and paper mail.
 
+ at noindent
 If the program does terminal interaction, make it output a short
 notice like this when it starts in an interactive mode:
 
 @smallexample
- at var{program} Copyright (C) @var{year} @var{name of author} 
-This program comes with ABSOLUTELY NO WARRANTY; for details type @samp{show w}.
-This is free software, and you are welcome to redistribute it under certain conditions; type @samp{show c} for details.
+ at var{program} Copyright (C) @var{year} @var{name of author}
+This program comes with ABSOLUTELY NO WARRANTY; for details
+type @samp{show w}.  This is free software, and you are
+welcome to redistribute it under certain conditions;
+type @samp{show c} for details.
 @end smallexample
 
 The hypothetical commands @samp{show w} and @samp{show c} should show
@@ -721,5 +730,3 @@ library, you may consider it more useful to permit linking proprietary
 applications with the library.  If this is what you want to do, use
 the GNU Lesser General Public License instead of this License.  But
 first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}.
-
- at end enumerate

-----------------------------------------------------------------------

Summary of changes:
 doc/gpgol.texi             |   4 +-
 doc/gpl.texi               |  27 +++++++-----
 src/attached-file-events.h |   1 +
 src/comhelp.h              |  36 ++++++++++++++++
 src/eventsink.h            |   2 +-
 src/gpgoladdin.cpp         | 102 ++++++++++++++++++++++-----------------------
 src/gpgoladdin.h           |  48 ++++++++++++++-------
 src/inspectors.h           |   6 +--
 src/item-events.h          |   1 +
 src/mailitem.h             |  10 ++---
 src/message-events.h       |   1 +
 src/mymapi.h               |  31 ++++++--------
 src/property-sheets.h      |   1 +
 src/session-events.h       |   1 +
 src/user-events.h          |   1 +
 15 files changed, 166 insertions(+), 106 deletions(-)
 create mode 100644 src/comhelp.h


hooks/post-receive
-- 
GnuPG extension for MS Outlook
http://git.gnupg.org




More information about the Gnupg-commits mailing list