interface ICoreWebView2Frame7

interface ICoreWebView2Frame7
  : public ICoreWebView2Frame6

This is the ICoreWebView2Frame interface to support tracking of nested iframes.

Summary

Members Descriptions
add_FrameCreated Adds an event handler for the FrameCreated event.
remove_FrameCreated Removes an event handler previously added with add_FrameCreated.

Applies to

Product Introduced
WebView2 Win32 1.0.3240.44
WebView2 Win32 Prerelease 1.0.3230

Members

add_FrameCreated

Adds an event handler for the FrameCreated event.

public HRESULT add_FrameCreated(ICoreWebView2FrameChildFrameCreatedEventHandler * eventHandler, EventRegistrationToken * token)

Raised when a new direct descendant iframe is created. Handle this event to get access to ICoreWebView2Frame objects. Use ICoreWebView2Frame.add_Destroyed to listen for when this iframe goes away.

        frame7->add_FrameCreated(
            Callback<ICoreWebView2FrameChildFrameCreatedEventHandler>(
                [this, depth](
                    ICoreWebView2Frame* sender,
                    ICoreWebView2FrameCreatedEventArgs* args) noexcept -> HRESULT
                {
                    wil::com_ptr<ICoreWebView2Frame> webviewFrame;
                    CHECK_FAILURE(args->get_Frame(&webviewFrame));
                    wil::unique_cotaskmem_string name;
                    CHECK_FAILURE(webviewFrame->get_Name(&name));

                    InitializeFrameEventView(webviewFrame, depth + 1);

                    std::wstring message = L"{ \"kind\": \"event\", \"name\": "
                                           L"\"CoreWebView2Frame::FrameCreated\", \"args\": {";
                    message += L"\"frame name\": " + EncodeQuote(name.get());
                    message += L",\"depth\": " + std::to_wstring(depth);
                    auto frame5 = webviewFrame.try_query<ICoreWebView2Frame5>();
                    UINT32 frameId = 0;
                    if (frame5)
                    {
                        CHECK_FAILURE(frame5->get_FrameId(&frameId));
                        message += L",\"webview frame id\": " + std::to_wstring((int)frameId);
                    }
                    frame5 = wil::try_com_query<ICoreWebView2Frame5>(sender);
                    if (frame5)
                    {
                        CHECK_FAILURE(frame5->get_FrameId(&frameId));
                        message +=
                            L",\"sender webview frame id\": " + std::to_wstring((int)frameId);
                    }
                    message +=
                        L"}" + WebViewPropertiesToJsonString(m_webviewEventSource.get()) + L"}";
                    PostEventMessage(message);
                    return S_OK;
                })
                .Get(),
            &m_frameCreatedToken);

remove_FrameCreated

Removes an event handler previously added with add_FrameCreated.

public HRESULT remove_FrameCreated(EventRegistrationToken token)