【问题标题】:OleVariant and SafeSysFreeStringOleVariant 和 SafeSysFreeString
【发布时间】:2021-09-19 01:18:28
【问题描述】:

如果我使用OleVariant 而不是VARIANTARG 来存储VT_BSTRVOleStr 中的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?

【问题讨论】:

    标签: delphi c++builder ole variant twebbrowser


    【解决方案1】:

    OleVariant 会在超出范围时自动为您释放其数据的内存。

    【讨论】:

    • 感谢您的回复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 2010-12-18
    • 2015-12-01
    • 2012-10-28
    • 1970-01-01
    相关资源
    最近更新 更多