OleVariant 和 SafeSysFreeString
Posted
技术标签:
【中文标题】OleVariant 和 SafeSysFreeString【英文标题】:OleVariant and SafeSysFreeString 【发布时间】:2021-09-19 01:18:28 【问题描述】:如果我使用OleVariant
而不是VARIANTARG
来存储VT_BSTR
(VOleStr
中的OleVariant
),当我处理完字符串后是否还需要调用SafeSysFreeString
,或者是这样吗?超出范围时由 OleVariant 自动调用?
例如:
WB->Navigate("https://www.example.com");
while (WB->ReadyState != Shdocvw::READYSTATE_COMPLETE) Application->ProcessMessages();
DelphiInterface<IOleCommandTarget> pOleCmdTarget;
WB->Document->QueryInterface(IID_IOleCommandTarget, (void**)&pOleCmdTarget);
OleVariant v;
if (pOleCmdTarget->Exec(&CMDSETID_Forms3, IDM_FONTNAME, Shdocvw::MSOCMDEXECOPT_DONTPROMPTUSER, NULL, v)==S_OK)
// utilize v.VOleStr here...
// Does OleVariant auto-deallocate (SafeSysFreeString) here?
【问题讨论】:
【参考方案1】:OleVariant
会在超出范围时自动为您释放其数据的内存。
【讨论】:
感谢您的回复!以上是关于OleVariant 和 SafeSysFreeString的主要内容,如果未能解决你的问题,请参考以下文章
delphi中调用一函数function(Index :OleVariant),其中Index :OleVariant应该填写啥,OleVariant是啥
如何有效地将 OleVariant 数组复制到我自己的结构中?