本文整理汇总了C++中COMPtr::backForwardList方法的典型用法代码示例。如果您正苦于以下问题:C++ COMPtr::backForwardList方法的具体用法?C++ COMPtr::backForwardList怎么用?C++ COMPtr::backForwardList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类COMPtr
的用法示例。
在下文中一共展示了COMPtr::backForwardList方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: invoke
bool BackForwardItem::invoke() const
{
COMPtr<IWebView> webView;
if (FAILED(frame->webView(&webView)))
return false;
BOOL result;
if (m_howFar == 1) {
webView->goForward(&result);
return true;
}
if (m_howFar == -1) {
webView->goBack(&result);
return true;
}
COMPtr<IWebBackForwardList> bfList;
if (FAILED(webView->backForwardList(&bfList)))
return false;
COMPtr<IWebHistoryItem> item;
if (FAILED(bfList->itemAtIndex(m_howFar, &item)))
return false;
webView->goToBackForwardItem(item.get(), &result);
return true;
}
示例2: clearBackForwardList
void LayoutTestController::clearBackForwardList()
{
COMPtr<IWebView> webView;
if (FAILED(frame->webView(&webView)))
return;
COMPtr<IWebBackForwardList> backForwardList;
if (FAILED(webView->backForwardList(&backForwardList)))
return;
COMPtr<IWebHistoryItem> item;
if (FAILED(backForwardList->currentItem(&item)))
return;
// We clear the history by setting the back/forward list's capacity to 0
// then restoring it back and adding back the current item.
int capacity;
if (FAILED(backForwardList->capacity(&capacity)))
return;
backForwardList->setCapacity(0);
backForwardList->setCapacity(capacity);
backForwardList->addItem(item.get());
backForwardList->goToItem(item.get());
}
示例3: apiTestGoToCurrentBackForwardItem
void LayoutTestController::apiTestGoToCurrentBackForwardItem()
{
COMPtr<IWebView> webView;
if (FAILED(frame->webView(&webView)))
return;
COMPtr<IWebBackForwardList> backForwardList;
if (FAILED(webView->backForwardList(&backForwardList)))
return;
COMPtr<IWebHistoryItem> item;
if (FAILED(backForwardList->currentItem(&item)))
return;
BOOL success;
webView->goToBackForwardItem(item.get(), &success);
}
示例4: runTest
static void runTest(const string& testPathOrURL)
{
static BSTR methodBStr = SysAllocString(TEXT("GET"));
// Look for "'" as a separator between the path or URL, and the pixel dump hash that follows.
string pathOrURL(testPathOrURL);
string expectedPixelHash;
size_t separatorPos = pathOrURL.find("'");
if (separatorPos != string::npos) {
pathOrURL = string(testPathOrURL, 0, separatorPos);
expectedPixelHash = string(testPathOrURL, separatorPos + 1);
}
BSTR urlBStr;
CFStringRef str = CFStringCreateWithCString(0, pathOrURL.c_str(), kCFStringEncodingWindowsLatin1);
CFURLRef url = CFURLCreateWithString(0, str, 0);
if (!url)
url = CFURLCreateWithFileSystemPath(0, str, kCFURLWindowsPathStyle, false);
CFRelease(str);
str = CFURLGetString(url);
CFIndex length = CFStringGetLength(str);
UniChar* buffer = new UniChar[length];
CFStringGetCharacters(str, CFRangeMake(0, length), buffer);
urlBStr = SysAllocStringLen((OLECHAR*)buffer, length);
delete[] buffer;
CFRelease(url);
::gLayoutTestController = new LayoutTestController(pathOrURL, expectedPixelHash);
done = false;
topLoadingFrame = 0;
gLayoutTestController->setIconDatabaseEnabled(false);
if (shouldLogFrameLoadDelegates(pathOrURL.c_str()))
gLayoutTestController->setDumpFrameLoadCallbacks(true);
COMPtr<IWebView> webView;
if (SUCCEEDED(frame->webView(&webView))) {
COMPtr<IWebViewPrivate> viewPrivate;
if (SUCCEEDED(webView->QueryInterface(&viewPrivate))) {
if (shouldLogHistoryDelegates(pathOrURL.c_str())) {
gLayoutTestController->setDumpHistoryDelegateCallbacks(true);
viewPrivate->setHistoryDelegate(sharedHistoryDelegate.get());
} else
viewPrivate->setHistoryDelegate(0);
}
}
COMPtr<IWebHistory> history;
if (SUCCEEDED(WebKitCreateInstance(CLSID_WebHistory, 0, __uuidof(history), reinterpret_cast<void**>(&history))))
history->setOptionalSharedHistory(0);
resetWebViewToConsistentStateBeforeTesting();
if (shouldEnableDeveloperExtras(pathOrURL.c_str())) {
gLayoutTestController->setDeveloperExtrasEnabled(true);
if (shouldOpenWebInspector(pathOrURL.c_str()))
gLayoutTestController->showWebInspector();
}
prevTestBFItem = 0;
if (webView) {
COMPtr<IWebBackForwardList> bfList;
if (SUCCEEDED(webView->backForwardList(&bfList)))
bfList->currentItem(&prevTestBFItem);
}
WorkQueue::shared()->clear();
WorkQueue::shared()->setFrozen(false);
HWND hostWindow;
webView->hostWindow(reinterpret_cast<OLE_HANDLE*>(&hostWindow));
COMPtr<IWebMutableURLRequest> request;
HRESULT hr = WebKitCreateInstance(CLSID_WebMutableURLRequest, 0, IID_IWebMutableURLRequest, (void**)&request);
if (FAILED(hr))
goto exit;
request->initWithURL(urlBStr, WebURLRequestUseProtocolCachePolicy, 60);
request->setHTTPMethod(methodBStr);
frame->loadRequest(request.get());
MSG msg;
while (GetMessage(&msg, 0, 0, 0)) {
// We get spurious WM_MOUSELEAVE events which make event handling machinery think that mouse button
// is released during dragging (see e.g. fast\dynamic\layer-hit-test-crash.html).
// Mouse can never leave WebView during normal DumpRenderTree operation, so we just ignore all such events.
if (msg.message == WM_MOUSELEAVE)
continue;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
//.........这里部分代码省略.........
示例5: runTest
static void runTest(const string& inputLine)
{
TestCommand command = parseInputLine(inputLine);
const string& pathOrURL = command.pathOrURL;
dumpPixelsForCurrentTest = command.shouldDumpPixels || dumpPixelsForAllTests;
static BSTR methodBStr = SysAllocString(TEXT("GET"));
BSTR urlBStr;
CFStringRef str = CFStringCreateWithCString(0, pathOrURL.c_str(), kCFStringEncodingWindowsLatin1);
CFURLRef url = CFURLCreateWithString(0, str, 0);
if (!url)
url = CFURLCreateWithFileSystemPath(0, str, kCFURLWindowsPathStyle, false);
CFRelease(str);
String fallbackPath = findFontFallback(pathOrURL.c_str());
str = CFURLGetString(url);
CFIndex length = CFStringGetLength(str);
UniChar* buffer = new UniChar[length];
CFStringGetCharacters(str, CFRangeMake(0, length), buffer);
urlBStr = SysAllocStringLen((OLECHAR*)buffer, length);
delete[] buffer;
CFRelease(url);
::gTestRunner = TestRunner::create(pathOrURL, command.expectedPixelHash);
done = false;
topLoadingFrame = 0;
addFontFallbackIfPresent(fallbackPath);
sizeWebViewForCurrentTest();
gTestRunner->setIconDatabaseEnabled(false);
if (shouldLogFrameLoadDelegates(pathOrURL.c_str()))
gTestRunner->setDumpFrameLoadCallbacks(true);
COMPtr<IWebView> webView;
if (SUCCEEDED(frame->webView(&webView))) {
COMPtr<IWebViewPrivate> viewPrivate;
if (SUCCEEDED(webView->QueryInterface(&viewPrivate))) {
if (shouldLogHistoryDelegates(pathOrURL.c_str())) {
gTestRunner->setDumpHistoryDelegateCallbacks(true);
viewPrivate->setHistoryDelegate(sharedHistoryDelegate.get());
} else
viewPrivate->setHistoryDelegate(0);
}
}
COMPtr<IWebHistory> history;
if (SUCCEEDED(WebKitCreateInstance(CLSID_WebHistory, 0, __uuidof(history), reinterpret_cast<void**>(&history))))
history->setOptionalSharedHistory(0);
resetWebViewToConsistentStateBeforeTesting();
if (shouldEnableDeveloperExtras(pathOrURL.c_str())) {
gTestRunner->setDeveloperExtrasEnabled(true);
if (shouldOpenWebInspector(pathOrURL.c_str()))
gTestRunner->showWebInspector();
}
if (shouldDumpAsText(pathOrURL.c_str())) {
gTestRunner->setDumpAsText(true);
gTestRunner->setGeneratePixelResults(false);
}
prevTestBFItem = 0;
if (webView) {
COMPtr<IWebBackForwardList> bfList;
if (SUCCEEDED(webView->backForwardList(&bfList)))
bfList->currentItem(&prevTestBFItem);
}
WorkQueue::shared()->clear();
WorkQueue::shared()->setFrozen(false);
HWND hostWindow;
webView->hostWindow(reinterpret_cast<OLE_HANDLE*>(&hostWindow));
COMPtr<IWebMutableURLRequest> request;
HRESULT hr = WebKitCreateInstance(CLSID_WebMutableURLRequest, 0, IID_IWebMutableURLRequest, (void**)&request);
if (FAILED(hr))
goto exit;
request->initWithURL(urlBStr, WebURLRequestUseProtocolCachePolicy, 60);
request->setHTTPMethod(methodBStr);
frame->loadRequest(request.get());
MSG msg;
while (true) {
#if USE(CF)
CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, true);
#endif
if (!GetMessage(&msg, 0, 0, 0))
break;
//.........这里部分代码省略.........