//---------------------------------------------------------------------------- // STDMETHODIMP CAnchoAddonService::createPopupWindow(BSTR aUrl, INT aX, INT aY, LPDISPATCH aInjectedData, LPDISPATCH aCloseCallback) { if (!aInjectedData || !aCloseCallback) { return E_INVALIDARG; } CIDispatchHelper injectedData(aInjectedData); CIDispatchHelper closeCallback(aCloseCallback); DispatchMap injectedDataMap; IDispatch* api; IF_FAILED_RET((injectedData.Get<IDispatch*, VT_DISPATCH>((LPOLESTR)s_AnchoBackgroundPageAPIName, api))); injectedDataMap[s_AnchoBackgroundPageAPIName] = api; IDispatch* console; IF_FAILED_RET((injectedData.Get<IDispatch*, VT_DISPATCH>((LPOLESTR)s_AnchoBackgroundConsoleObjectName, console))); injectedDataMap[s_AnchoBackgroundConsoleObjectName] = console; HWND hwnd = getCurrentWindowHWND(); IF_FAILED_RET(CPopupWindow::CreatePopupWindow(hwnd, injectedDataMap, aUrl, aX, aY, closeCallback)); return S_OK; }
// 键盘事件相关 void SuDoKuLayer::keyBackClicked() { closeCallback(NULL); }