Click here to Skip to main content
15,922,512 members
Home / Discussions / COM
   

COM

 
QuestionRe: VARIANT_BOOL return value in Automation class [modified] Pin
User 2155979-Jan-07 5:52
User 2155979-Jan-07 5:52 
AnswerRe: VARIANT_BOOL return value in Automation class Pin
Roger Stoltz9-Jan-07 21:18
Roger Stoltz9-Jan-07 21:18 
QuestionRe: VARIANT_BOOL return value in Automation class Pin
User 21559710-Jan-07 0:26
User 21559710-Jan-07 0:26 
AnswerRe: VARIANT_BOOL return value in Automation class Pin
Roger Stoltz10-Jan-07 2:42
Roger Stoltz10-Jan-07 2:42 
GeneralRe: VARIANT_BOOL return value in Automation class Pin
User 21559711-Jan-07 0:03
User 21559711-Jan-07 0:03 
GeneralRe: VARIANT_BOOL return value in Automation class Pin
Roger Stoltz11-Jan-07 0:46
Roger Stoltz11-Jan-07 0:46 
GeneralRe: VARIANT_BOOL return value in Automation class [modified] Pin
User 21559711-Jan-07 5:03
User 21559711-Jan-07 5:03 
AnswerRe: [SOLVED] VARIANT_BOOL return value in Automation class Pin
User 21559711-Jan-07 6:07
User 21559711-Jan-07 6:07 
SOLVED!!!

The problem lies in OleDisp1.cpp

I debugged my server using MFC source files. My CoClass implements IDispatch which is called from my client through COleDispatchDriver derived wrapper class.
So when call goes to following method -
BOOL IsWorking()<br />
{<br />
BOOL result;<br />
InvokeHelper(0x2, DISPATCH_METHOD, VT_BOOL, (void*)&result, NULL);<br />
return result;<br />
}


InvokeHelper will get called, which resides in OleDisp2.cpp.

From here we will finally reach, OleDisp2.cpp Line#375 where the actual call to IDispatch::Invoke will occur taking us to Server's IDispatch implementation

On server side, we will reach
File#OleDisp1.cpp, Line# 1220, Function# COleDispatchImpl::Invoke
Which will call
File# OleDisp1.cpp, Line# 908, Function# CCmdTarget::CallMemberFunc

In this function, the problem occurs somewhere at following locations -
Call# PushStackArgs(...) Line# 991

And Line# 1033
default:<br />
	dwResult = pfnDispatch(pfn, pStack, nSizeArgs);<br />
	break;

after the above call, the value of dwResult changes which results in incorrect value of VARIANT_BOOL being assigned and returned at Line# 1100
case VT_BOOL:<br />
	V_BOOL(pvarResult) = (VARIANT_BOOL)(dwResult != 0 ? -1 : 0);<br />
	break;

I think this clarifies my problem. What are your thoughts?



S o h a i l K a d i w a l a

To Err Is Human; to Debug, Divine


modified 21-Apr-21 21:01pm.

GeneralRe: [SOLVED] VARIANT_BOOL return value in Automation class Pin
Roger Stoltz11-Jan-07 22:45
Roger Stoltz11-Jan-07 22:45 
GeneralRe: [SOLVED] VARIANT_BOOL return value in Automation class Pin
User 21559712-Jan-07 0:50
User 21559712-Jan-07 0:50 
GeneralRe: [SOLVED] VARIANT_BOOL return value in Automation class Pin
Roger Stoltz12-Jan-07 1:50
Roger Stoltz12-Jan-07 1:50 
GeneralRe: [SOLVED] VARIANT_BOOL return value in Automation class Pin
User 21559712-Jan-07 4:11
User 21559712-Jan-07 4:11 
GeneralRe: [SOLVED] VARIANT_BOOL return value in Automation class Pin
Roger Stoltz12-Jan-07 4:40
Roger Stoltz12-Jan-07 4:40 
GeneralRe: [SOLVED] VARIANT_BOOL return value in Automation class Pin
User 21559712-Jan-07 5:24
User 21559712-Jan-07 5:24 
GeneralRe: [SOLVED] VARIANT_BOOL return value in Automation class Pin
Roger Stoltz12-Jan-07 5:37
Roger Stoltz12-Jan-07 5:37 
GeneralRe: [SOLVED] VARIANT_BOOL return value in Automation class Pin
User 21559714-Jan-07 7:50
User 21559714-Jan-07 7:50 
QuestionCOM and windows service application ... Pin
Sakthiu9-Jan-07 0:31
Sakthiu9-Jan-07 0:31 
QuestionHow can get information from web page ? Pin
ankprasanna9-Jan-07 0:22
ankprasanna9-Jan-07 0:22 
QuestionCOM dll internals. Pin
HakunaMatada8-Jan-07 19:21
HakunaMatada8-Jan-07 19:21 
AnswerRe: COM dll internals. Pin
Phil Harding15-Jan-07 3:45
Phil Harding15-Jan-07 3:45 
QuestionSystem monitor using WMI Pin
abhiramsss8-Jan-07 12:26
abhiramsss8-Jan-07 12:26 
QuestionCOM on Linux? Pin
Josh Smith8-Jan-07 10:27
Josh Smith8-Jan-07 10:27 
AnswerRe: COM on Linux? Pin
Christian Graus8-Jan-07 11:22
protectorChristian Graus8-Jan-07 11:22 
GeneralRe: COM on Linux? Pin
Josh Smith8-Jan-07 11:59
Josh Smith8-Jan-07 11:59 
GeneralRe: COM on Linux? Pin
Jörgen Sigvardsson8-Jan-07 13:18
Jörgen Sigvardsson8-Jan-07 13:18 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.