The new icon code is ready. However the whiole module needs a lot
[gpgol.git] / src / oomhelp.h
1 /* oomhelp.h - Defs for helper functions for the Outlook Object Model
2  *      Copyright (C) 2009 g10 Code GmbH
3  * 
4  * This file is part of GpgOL.
5  * 
6  * GpgOL is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  * 
11  * GpgOL is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU Lesser General Public License for more details.
15  * 
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, see <http://www.gnu.org/licenses/>.
18  */
19
20 #ifndef OOMHELP_H
21 #define OOMHELP_H
22
23 #include <unknwn.h>
24
25
26 #define MSOCONTROLBUTTON    1
27 #define MSOCONTROLEDIT      2
28 #define MSOCONTROLDROPDOWN  3
29 #define MSOCONTROLCOMBOBOX  4
30 #define MSOCONTROLPOPUP    10
31
32 enum 
33   {
34     msoButtonAutomatic = 0,
35     msoButtonIcon = 1,
36     msoButtonCaption = 2,
37     msoButtonIconAndCaption = 3,
38     msoButtonIconAndWrapCaption = 7,
39     msoButtonIconAndCaptionBelow = 11,
40     msoButtonWrapCaption = 14,
41     msoButtonIconAndWrapCaptionBelow = 15 
42   };
43
44 enum
45   {
46     msoButtonDown = -1,
47     msoButtonUp = 0,
48     msoButtonMixed = 2
49   };
50
51
52 DEFINE_GUID(GUID_NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
53
54 DEFINE_GUID(IID_IConnectionPoint, 
55             0xb196b286, 0xbab4, 0x101a,
56             0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
57 DEFINE_GUID(IID_IConnectionPointContainer, 
58             0xb196b284, 0xbab4, 0x101a,
59             0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
60 DEFINE_GUID(IID_IPictureDisp,
61             0x7bf80981, 0xbf32, 0x101a,
62             0x8b, 0xbb, 0x00, 0xaa, 0x00, 0x30, 0x0c, 0xab);
63
64 DEFINE_OLEGUID(IID_IUnknown,                  0x00000000, 0, 0);
65 DEFINE_OLEGUID(IID_IDispatch,                 0x00020400, 0, 0);
66
67
68 #ifdef __cplusplus
69 extern "C" {
70 #if 0
71 }
72 #endif
73 #endif
74
75 /* Return the malloced name of an COM+ object.  */
76 char *get_object_name (LPUNKNOWN obj);
77
78 /* Helper to lookup a dispid.  */
79 DISPID lookup_oom_dispid (LPDISPATCH pDisp, const char *name);
80
81 /* Return the OOM object's IDispatch interface described by FULLNAME.  */
82 LPDISPATCH get_oom_object (LPDISPATCH pStart, const char *fullname);
83
84 /* Set the Icon of a CommandBarControl.  */
85 int put_oom_icon (LPDISPATCH pDisp, int rsource_id, int size);
86
87 /* Set the boolean property NAME to VALUE.  */
88 int put_oom_bool (LPDISPATCH pDisp, const char *name, int value);
89
90 /* Set the property NAME to VALUE.  */
91 int put_oom_int (LPDISPATCH pDisp, const char *name, int value);
92
93 /* Set the property NAME to STRING.  */
94 int put_oom_string (LPDISPATCH pDisp, const char *name, const char *string);
95
96 /* Get the boolean property NAME of the object PDISP.  */
97 int get_oom_bool (LPDISPATCH pDisp, const char *name);
98
99 /* Get the integer property NAME of the object PDISP.  */
100 int get_oom_int (LPDISPATCH pDisp, const char *name);
101
102 /* Get the string property NAME of the object PDISP.  */
103 char *get_oom_string (LPDISPATCH pDisp, const char *name);
104
105 /* Get an IUnknown object from property NAME of PDISP.  */
106 LPUNKNOWN get_oom_iunknown (LPDISPATCH pDisp, const char *name);
107
108 /* Return the control object with tag property value TAG.  */
109 LPDISPATCH get_oom_control_bytag (LPDISPATCH pObj, const char *tag);
110
111 /* Add a new button to an object which supports the add method.
112    Returns the new object or NULL on error.  */
113 LPDISPATCH add_oom_button (LPDISPATCH pObj);
114
115 /* Delete a button.  */
116 void del_oom_button (LPDISPATCH button);
117
118
119 #ifdef __cplusplus
120 }
121 #endif
122 #endif /*OOMHELP_H*/