A Microsoft Outlook email forum. Outlook Banter

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » Outlook Banter forum » Microsoft Outlook Email Newsgroups » Add-ins for Outlook
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

[Amended] Cannot trigger OnChange event from inspector's command bar combo box



 
 
Thread Tools Search this Thread Display Modes
  #1  
Old October 10th 06, 10:57 AM posted to microsoft.public.outlook.program_addins
tonyl
external usenet poster
 
Posts: 13
Default [Amended] Cannot trigger OnChange event from inspector's command bar combo box


When I got the new inspector event, I will create a combo box and toolbar
to the commandbars on the inspector window. And try to add the OnChange
event using the call DispEventAdvise or AtlAdvise.
Both calls return S_OK. however, no one trigger the call when I change the
combo box selection.

Anyone knows how to solve it?

Thanx alot.
Tony

connect.h
========
class ATL_NO_VTABLE CConnect :
public CComObjectRootExCComSingleThreadModel,
public CComCoClassCConnect, &CLSID_Connect,
.....
public IDispEventSimpleImpl3,CConnect,&__uuidof(Outlook: :InspectorsEvents),
public IDispEventSimpleImpl4,CConnect,&__uuidof(Office:: _CommandBarComboBoxEvents)
{
public:
....
typedef IDispEventSimpleImpl/*nID =*/ 3,CConnect, &__uuidof(Outlook::InspectorsEvents)

NewInspectorEvents;
typedef IDispEventSimpleImpl/*nID =*/ 4,CConnect, &__uuidof(Office::_CommandBarComboBoxEvents)

CommandBarComboBoxEvents;

BEGIN_SINK_MAP(CConnect)
....
SINK_ENTRY_INFO(3, __uuidof(Outlook::InspectorsEvents),/*dispid*/ 0xf001,
OnNewInspector, &OnNewInspectorInfo) // new inspector
SINK_ENTRY_INFO(4, __uuidof(Office::_CommandBarComboBoxEvents),/*dispid*/
0x1, OnChangeCommandBarComboBox, &OnComboBoxChangeInfo) // new inspector
END_SINK_MAP()

....

void __stdcall OnNewInspector(IDispatch *lpInspector);
void __stdcall OnChangeCommandBarComboBox(IDispatch *lpCtrl);
};

connect.cpp
===========

.....
_ATL_FUNC_INFO OnNewInspectorInfo = {CC_STDCALL,VT_EMPTY,1, {VT_DISPATCH}};
_ATL_FUNC_INFO OnComboBoxChangeInfo = {CC_STDCALL,VT_EMPTY,1, {VT_DISPATCH}};
void __stdcall CConnect::OnNewInspector(IDispatch *lpInspector)
{
CComQIPtrOutlook::_Inspector spInspector(lpInspector);
CComPtrOffice::_CommandBars spCmdBars;
spInspector-get_CommandBars(&spCmdBars);
VARIANT vTitle, vPos, vMenuBar, vTemp;
vTitle.bstrVal = CString("callist").AllocSysString();
vTitle.vt = VT_BSTR;
vPos.vt = VT_UI4;
vPos.ulVal = 1 ;

vTemp.boolVal = TRUE;
vTemp.vt = VT_BOOL;

vMenuBar.vt = VT_UI4;
vMenuBar.ulVal = 0;
CComPtrOffice::CommandBar spCmdBar;
CComPtrOffice::CommandBarControls spCmdBarCtrls;
CComPtrOffice::_CommandBarComboBox spCmdBarCtrl;
hr = spCmdBars-Add(vTitle, vtMissing, vtMissing, vTemp, &spCmdBar);
if (hr != S_OK) {
log.format(CLogger::LOG_ERROR, "OnNewInspector: Add CmdBar Failure");
return;
}

hr = spCmdBar-get_Controls(&spCmdBarCtrls);
if (hr != S_OK) {
log.format(CLogger::LOG_ERROR, "OnNewInspector: Get CmdBar Controls
Failure");
return;
}

VARIANT vType, vInt1, vBool;
vType.vt = VT_UI4;
vType.ulVal = 4; //MsoControlType::msoControlComboBox
vInt1.vt = VT_UI4;
vInt1.ulVal = 1;
hr = spCmdBarCtrls-Add(vType, vtMissing, vtMissing, vInt1, vInt1, (Office::CommandBarControl

**)&spCmdBarCtrl);
if (hr != S_OK) {
log.format(CLogger::LOG_ERROR, "OnNewInspector: Add CmdBar Control
Failure");
return;
}
hr = AtlAdvise((IUnknown *)spCmdBarCtrl, (IUnknown*)(CommandBarComboBoxEvents

*)this, __uuidof(Office::_CommandBarComboBoxEvents), &(((CommandBarComboBoxEvents

*)this)-m_dwEventCookie));
m_cbxEvent.m_dwChangeEventCookie = ((CommandBarComboBoxEvents *)this)-m_dwEventCookie;
if(FAILED(hr)) {
log.format(CLogger::LOG_APP_DEBUG, "CCmdbarCbxEvent::Notify() ERROR:
CCmdbarCbxEvent:ispEventAdvise
failed: 0x%x", hr);
//return;
}
}
void __stdcall CConnect::OnChangeCommandBarComboBox(IDispatch *lpCtrl)
{
CComQIPtrOffice::_CommandBarComboBox spCbx(lpCtrl);
MessageBox(0, "combo box selected!!!", "info", 0);
}

Posted by JetBrains Omea Reader 936.5



  #2  
Old October 10th 06, 11:10 AM posted to microsoft.public.outlook.program_addins
tonyl
external usenet poster
 
Posts: 13
Default [Amended] Cannot trigger OnChange event from inspector's command bar combo box

I found a more wild thing happened. If I open 2 new inspectors without close
the first one, the combo box in the 2nd inspector will have the event. Anyone
know what's wrong with my code?

Regards,
Tony

When I got the new inspector event, I will create a combo box and
toolbar to the commandbars on the inspector window. And try to add the
OnChange event using the call DispEventAdvise or AtlAdvise. Both calls
return S_OK. however, no one trigger the call when I change the combo
box selection.

Anyone knows how to solve it?

Thanx alot.
Tony
connect.h
========
class ATL_NO_VTABLE CConnect :
public CComObjectRootExCComSingleThreadModel,
public CComCoClassCConnect, &CLSID_Connect,
....
public
IDispEventSimpleImpl3,CConnect,&__uuidof(Outlook: :InspectorsEvents),
public
IDispEventSimpleImpl4,CConnect,&__uuidof(Office:: _CommandBarComboBoxE
vents)
{
public:
...
typedef IDispEventSimpleImpl/*nID =*/ 3,CConnect,
&__uuidof(Outlook::InspectorsEvents)
NewInspectorEvents;
typedef IDispEventSimpleImpl/*nID =*/ 4,CConnect,
&__uuidof(Office::_CommandBarComboBoxEvents)
CommandBarComboBoxEvents;

BEGIN_SINK_MAP(CConnect)
...
SINK_ENTRY_INFO(3, __uuidof(Outlook::InspectorsEvents),/*dispid*/
0xf001,
OnNewInspector, &OnNewInspectorInfo) // new inspector
SINK_ENTRY_INFO(4,
__uuidof(Office::_CommandBarComboBoxEvents),/*dispid*/
0x1, OnChangeCommandBarComboBox, &OnComboBoxChangeInfo) // new
inspector
END_SINK_MAP()
...

void __stdcall OnNewInspector(IDispatch *lpInspector);
void __stdcall OnChangeCommandBarComboBox(IDispatch *lpCtrl);
};
connect.cpp
===========
....
_ATL_FUNC_INFO OnNewInspectorInfo = {CC_STDCALL,VT_EMPTY,1,
{VT_DISPATCH}};
_ATL_FUNC_INFO OnComboBoxChangeInfo = {CC_STDCALL,VT_EMPTY,1,
{VT_DISPATCH}};
void __stdcall CConnect::OnNewInspector(IDispatch *lpInspector)
{
CComQIPtrOutlook::_Inspector spInspector(lpInspector);
CComPtrOffice::_CommandBars spCmdBars;
spInspector-get_CommandBars(&spCmdBars);
VARIANT vTitle, vPos, vMenuBar, vTemp;
vTitle.bstrVal = CString("callist").AllocSysString();
vTitle.vt = VT_BSTR;
vPos.vt = VT_UI4;
vPos.ulVal = 1 ;
vTemp.boolVal = TRUE;
vTemp.vt = VT_BOOL;
vMenuBar.vt = VT_UI4;
vMenuBar.ulVal = 0;
CComPtrOffice::CommandBar spCmdBar;
CComPtrOffice::CommandBarControls spCmdBarCtrls;
CComPtrOffice::_CommandBarComboBox spCmdBarCtrl;
hr = spCmdBars-Add(vTitle, vtMissing, vtMissing, vTemp,
&spCmdBar);
if (hr != S_OK) {
log.format(CLogger::LOG_ERROR, "OnNewInspector: Add CmdBar
Failure");
return;
}
hr = spCmdBar-get_Controls(&spCmdBarCtrls);
if (hr != S_OK) {
log.format(CLogger::LOG_ERROR, "OnNewInspector: Get CmdBar
Controls
Failure");
return;
}
VARIANT vType, vInt1, vBool;
vType.vt = VT_UI4;
vType.ulVal = 4; //MsoControlType::msoControlComboBox
vInt1.vt = VT_UI4;
vInt1.ulVal = 1;
hr = spCmdBarCtrls-Add(vType, vtMissing, vtMissing, vInt1, vInt1,
(Office::CommandBarControl
**)&spCmdBarCtrl);
if (hr != S_OK) {
log.format(CLogger::LOG_ERROR, "OnNewInspector: Add CmdBar
Control
Failure");
return;
}
hr = AtlAdvise((IUnknown *)spCmdBarCtrl,
(IUnknown*)(CommandBarComboBoxEvents
*)this, __uuidof(Office::_CommandBarComboBoxEvents),
&(((CommandBarComboBoxEvents

*)this)-m_dwEventCookie));
m_cbxEvent.m_dwChangeEventCookie = ((CommandBarComboBoxEvents
*)this)-m_dwEventCookie;
if(FAILED(hr)) {
log.format(CLogger::LOG_APP_DEBUG, "CCmdbarCbxEvent::Notify()
ERROR:
CCmdbarCbxEvent:ispEventAdvise
failed: 0x%x", hr);
//return;
}
}
void __stdcall CConnect::OnChangeCommandBarComboBox(IDispatch *lpCtrl)
{
CComQIPtrOffice::_CommandBarComboBox spCbx(lpCtrl);
MessageBox(0, "combo box selected!!!", "info", 0);
}
Posted by JetBrains Omea Reader 936.5



 




Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Cannot trigger OnChange event from inspector's command bar combo box tonyl Add-ins for Outlook 0 October 10th 06 08:23 AM
Command Bar id Erwin van der Lee Outlook and VBA 3 August 23rd 06 04:13 PM
Populate a combo box Steffkm Outlook - Using Forms 4 March 14th 06 08:28 PM
Update TO field based on combo box selection Lisa Outlook - Using Forms 0 March 2nd 06 04:42 PM
Trigger event on explorer right click (unselected item)? james Add-ins for Outlook 5 February 22nd 06 09:12 PM


All times are GMT +1. The time now is 06:25 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2025 Outlook Banter.
The comments are property of their posters.