本文整理汇总了C++中COMPtr::initWithURL方法的典型用法代码示例。如果您正苦于以下问题:C++ COMPtr::initWithURL方法的具体用法?C++ COMPtr::initWithURL怎么用?C++ COMPtr::initWithURL使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类COMPtr
的用法示例。
在下文中一共展示了COMPtr::initWithURL方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: applicationCacheDiskUsageForOrigin
long long TestRunner::applicationCacheDiskUsageForOrigin(JSStringRef url)
{
COMPtr<IWebSecurityOrigin2> origin;
if (FAILED(WebKitCreateInstance(CLSID_WebSecurityOrigin, 0, IID_IWebSecurityOrigin2, reinterpret_cast<void**>(&origin))))
return 0;
COMPtr<IWebApplicationCache> applicationCache;
if (FAILED(WebKitCreateInstance(CLSID_WebApplicationCache, 0, IID_IWebApplicationCache, reinterpret_cast<void**>(&applicationCache))))
return 0;
_bstr_t urlBstr(JSStringCopyBSTR(url), false);
origin->initWithURL(urlBstr.GetBSTR());
long long usage = 0;
if (FAILED(applicationCache->diskUsageForOrigin(origin.get(), &usage)))
return 0;
return usage;
}
示例2: 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);
}
//.........这里部分代码省略.........
示例3: 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;
//.........这里部分代码省略.........
示例4: initUI
HRESULT Drosera::initUI(HINSTANCE hInstance, int nCmdShow)
{
// Initialize global strings
LoadString(hInstance, IDS_APP_TITLE, szTitle, ARRAYSIZE(szTitle));
LoadString(hInstance, IDC_DROSERA, szWindowClass, ARRAYSIZE(szWindowClass));
registerDroseraClass(hInstance);
Drosera::setInst(hInstance); // Store instance handle in our local variable
m_hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, 0, 0, hInstance, 0);
if (!m_hWnd)
return HRESULT_FROM_WIN32(GetLastError());
SetLastError(0);
SetWindowLongPtr(m_hWnd, 0, reinterpret_cast<LONG_PTR>(this));
HRESULT ret = HRESULT_FROM_WIN32(GetLastError());
if (FAILED(ret))
return ret;
ret = OleInitialize(0);
if (FAILED(ret))
return ret;
ret = CoCreateInstance(CLSID_WebView, 0, CLSCTX_ALL, IID_IWebView, (void**)&m_webView);
if (FAILED(ret))
return ret;
ret = m_webView->QueryInterface(IID_IWebViewPrivate, reinterpret_cast<void**>(&m_webViewPrivate));
if (FAILED(ret))
return ret;
ret = m_webView->setHostWindow(reinterpret_cast<OLE_HANDLE>(m_hWnd));
if (FAILED(ret))
return ret;
ret = m_webView->setFrameLoadDelegate(this);
if (FAILED(ret))
return ret;
ret = m_webView->setUIDelegate(this);
if (FAILED(ret))
return ret;
RECT rect = {0};
ret = m_webView->initWithFrame(rect, 0, 0);
if (FAILED(ret))
return ret;
HWND viewWindow;
ret = m_webViewPrivate->viewWindow(reinterpret_cast<OLE_HANDLE*>(&viewWindow));
if (FAILED(ret))
return ret;
::SetProp(viewWindow, kDroseraPointerProp, (HANDLE)this);
COMPtr<IWebFrame> mainFrame;
ret = m_webView->mainFrame(&mainFrame);
if (FAILED(ret))
return ret;
COMPtr<IWebMutableURLRequest> request;
ret = CoCreateInstance(CLSID_WebMutableURLRequest, 0, CLSCTX_ALL, IID_IWebMutableURLRequest, (void**)&request);
if (FAILED(ret))
return ret;
RetainPtr<CFURLRef> htmlURLRef(AdoptCF, ::CFBundleCopyResourceURL(::CFBundleGetBundleWithIdentifier(CFSTR("org.webkit.drosera")), CFSTR("debugger"), CFSTR("html"), CFSTR("Drosera")));
if (!htmlURLRef)
return E_FAIL;
CFStringRef urlStringRef = ::CFURLGetString(htmlURLRef.get());
BSTR tempStr = cfStringToBSTR(urlStringRef); // Both initWithRUL and SysFreeString can handle 0.
ret = request->initWithURL(tempStr, WebURLRequestUseProtocolCachePolicy, 60);
SysFreeString(tempStr);
if (FAILED(ret))
return ret;
ret = mainFrame->loadRequest(request.get());
if (FAILED(ret))
return ret;
m_webViewLoaded = true;
// FIXME: Implement window size/position save/restore
RECT frame;
frame.left = 60;
frame.top = 200;
frame.right = 750;
frame.bottom = 550;
::SetWindowPos(m_hWnd, HWND_TOPMOST, frame.left, frame.top, frame.right - frame.left, frame.bottom - frame.top, 0);
ShowWindow(m_hWnd, nCmdShow);
UpdateWindow(m_hWnd);
return 0;
}