本文整理汇总了C++中COMPtr::findString方法的典型用法代码示例。如果您正苦于以下问题:C++ COMPtr::findString方法的具体用法?C++ COMPtr::findString怎么用?C++ COMPtr::findString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类COMPtr
的用法示例。
在下文中一共展示了COMPtr::findString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: findString
bool TestRunner::findString(JSContextRef context, JSStringRef target, JSObjectRef optionsArray)
{
COMPtr<IWebView> webView;
if (FAILED(frame->webView(&webView)))
return false;
COMPtr<IWebViewPrivate3> viewPrivate;
if (FAILED(webView->QueryInterface(&viewPrivate)))
return false;
unsigned char options = 0;
JSRetainPtr<JSStringRef> lengthPropertyName(Adopt, JSStringCreateWithUTF8CString("length"));
JSValueRef lengthValue = JSObjectGetProperty(context, optionsArray, lengthPropertyName.get(), nullptr);
if (!JSValueIsNumber(context, lengthValue))
return false;
_bstr_t targetBSTR(JSStringCopyBSTR(target), false);
size_t length = static_cast<size_t>(JSValueToNumber(context, lengthValue, nullptr));
for (size_t i = 0; i < length; ++i) {
JSValueRef value = JSObjectGetPropertyAtIndex(context, optionsArray, i, nullptr);
if (!JSValueIsString(context, value))
continue;
JSRetainPtr<JSStringRef> optionName(Adopt, JSValueToStringCopy(context, value, nullptr));
if (JSStringIsEqualToUTF8CString(optionName.get(), "CaseInsensitive"))
options |= WebFindOptionsCaseInsensitive;
else if (JSStringIsEqualToUTF8CString(optionName.get(), "AtWordStarts"))
options |= WebFindOptionsAtWordStarts;
else if (JSStringIsEqualToUTF8CString(optionName.get(), "TreatMedialCapitalAsWordStart"))
options |= WebFindOptionsTreatMedialCapitalAsWordStart;
else if (JSStringIsEqualToUTF8CString(optionName.get(), "Backwards"))
options |= WebFindOptionsBackwards;
else if (JSStringIsEqualToUTF8CString(optionName.get(), "WrapAround"))
options |= WebFindOptionsWrapAround;
else if (JSStringIsEqualToUTF8CString(optionName.get(), "StartInSelection"))
options |= WebFindOptionsStartInSelection;
}
BOOL found = FALSE;
if (FAILED(viewPrivate->findString(targetBSTR, static_cast<WebFindOptions>(options), &found)))
return false;
return found;
}