Click here to Skip to main content
15,885,027 members
Home / Discussions / COM
   

COM

 
GeneralRe: Question about VARIANT deallocation Pin
Hristo-Bojilov10-Aug-09 6:45
Hristo-Bojilov10-Aug-09 6:45 
GeneralRe: Question about VARIANT deallocation Pin
GuimaSun10-Aug-09 7:08
GuimaSun10-Aug-09 7:08 
AnswerRe: Question about VARIANT deallocation Pin
Stuart Dootson10-Aug-09 8:21
professionalStuart Dootson10-Aug-09 8:21 
GeneralRe: Question about VARIANT deallocation Pin
GuimaSun10-Aug-09 8:43
GuimaSun10-Aug-09 8:43 
AnswerRe: Question about VARIANT deallocation Pin
Vi210-Aug-09 22:01
Vi210-Aug-09 22:01 
GeneralRe: Question about VARIANT deallocation Pin
GuimaSun12-Aug-09 4:12
GuimaSun12-Aug-09 4:12 
GeneralRe: Question about VARIANT deallocation Pin
Vi212-Aug-09 21:37
Vi212-Aug-09 21:37 
GeneralRe: Question about VARIANT deallocation Pin
Vi213-Aug-09 0:20
Vi213-Aug-09 0:20 
About memory leaks. VB allocation\dellocation mechanisms are the same with COM.
p->vt = VT_BSTR | VT_BYREF;
BSTR *pBSTR = new BSTR;
*pBSTR = SysAllocString( L"abc" );
p->pbstrVal = pBSTR;

There are 2 memory allocations in statements "= new BSTR" and "= SysAllocString".

The VARIANT with VT_BYREF|VT_BSTR isn't an owner of its values, so freeing of the VARIANT doesn't free neither pbstrVal nor *pbstrVal. And finally you have memory leaks.

The VARIANT with VT_BSTR (without VT_BYREF) is an owner of its values, so freeing of the VARIANT frees bstrVal.
p->vt = VT_BSTR;
p->bstrVal = SysAllocString( L"abc" );

And there are no memory leaks.

With best wishes,
Vita

Questioncalling messagebox funtion from a c# code Pin
nicetohaveyou8-Aug-09 8:22
nicetohaveyou8-Aug-09 8:22 
AnswerRe: calling messagebox funtion from a c# code Pin
Hristo-Bojilov10-Aug-09 3:27
Hristo-Bojilov10-Aug-09 3:27 
QuestionInvalidCastException by registering events on Office Add-In Pin
maesi19808-Aug-09 5:54
maesi19808-Aug-09 5:54 
AnswerRe: InvalidCastException by registering events on Office Add-In [modified] Pin
maesi198010-Aug-09 0:45
maesi198010-Aug-09 0:45 
QuestionCom Component Pin
sekannak6-Aug-09 23:58
sekannak6-Aug-09 23:58 
AnswerRe: Com Component Pin
Randor 9-Aug-09 9:53
professional Randor 9-Aug-09 9:53 
GeneralRe: Com Component Pin
sekannak9-Aug-09 18:57
sekannak9-Aug-09 18:57 
QuestionWMP loop playing - black between each play Pin
pimb26-Aug-09 2:46
pimb26-Aug-09 2:46 
AnswerRe: WMP loop playing - black between each play --- found a solution Pin
pimb26-Aug-09 2:53
pimb26-Aug-09 2:53 
Questioninvoke output parameters to javascript? Pin
Hongjun Ge5-Aug-09 6:11
Hongjun Ge5-Aug-09 6:11 
AnswerRe: invoke output parameters to javascript? Pin
Vi25-Aug-09 20:49
Vi25-Aug-09 20:49 
GeneralRe: invoke output parameters to javascript? Pin
Hongjun Ge6-Aug-09 3:54
Hongjun Ge6-Aug-09 3:54 
GeneralRe: invoke output parameters to javascript? Pin
Vi26-Aug-09 20:24
Vi26-Aug-09 20:24 
GeneralRe: invoke output parameters to javascript? Pin
Hongjun Ge7-Aug-09 5:57
Hongjun Ge7-Aug-09 5:57 
QuestionHow can I call a MSWord VBA macro from MFC *and* passing it arguments Pin
sashoalm4-Aug-09 4:34
sashoalm4-Aug-09 4:34 
QuestionCalling activeX method with array Pin
Nicolas Bonamy2-Aug-09 23:21
Nicolas Bonamy2-Aug-09 23:21 
QuestionICaptureGraphBuilder2:RenderStream strange problem Pin
Hristo-Bojilov30-Jul-09 11:48
Hristo-Bojilov30-Jul-09 11:48 

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.