Beispiel #1
0
AG_Box *AGOL_Settings::CreateWadDirButtonBox(void *parent)
{
	AG_Box *bbox;

	bbox = AG_BoxNewVert(parent, AG_BOX_VFILL);

	AG_ButtonNewFn(bbox, AG_BUTTON_HFILL, "Add", EventReceiver, "%p",
			RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::OnAddWadDir));
	AG_ButtonNewFn(bbox, AG_BUTTON_HFILL, "Replace", EventReceiver, "%p",
			RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::OnReplaceWadDir));
	AG_ButtonNewFn(bbox, AG_BUTTON_HFILL, "Delete", EventReceiver, "%p",
			RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::OnDeleteWadDir));

	AG_SeparatorNewHoriz(bbox);

	AG_ButtonNewFn(bbox, AG_BUTTON_HFILL, "Move Up", EventReceiver, "%p",
			RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::OnMoveWadDirUp));
	AG_ButtonNewFn(bbox, AG_BUTTON_HFILL, "Move Down", EventReceiver, "%p",
			RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::OnMoveWadDirDown));

#ifndef GCONSOLE
	AG_SeparatorNewHoriz(bbox);

	AG_ButtonNew(bbox, AG_BUTTON_HFILL, "Get Environment");
#endif

	return bbox;
}
Beispiel #2
0
AG_Box *AGOL_About::CreateLicenseBox(void *parent)
{
	AG_Box     *lbox;
	AG_Textbox *text;

	lbox = AG_BoxNewVert(parent, AG_BOX_EXPAND);
	AG_LabelNewS(lbox, 0, "License");
	lbox = AG_BoxNewHoriz(lbox, AG_BOX_EXPAND);
	AG_BoxSetPadding(lbox, 5);
	AG_BoxSetSpacing(lbox, 5);

#if !AG_VERSION_ATLEAST(1,4,2)
	text = AG_TextboxNewS(lbox, AG_TEXTBOX_MULTILINE | AG_TEXTBOX_EXPAND, "");
#else
	text = AG_TextboxNewS(lbox, AG_TEXTBOX_READONLY | AG_TEXTBOX_MULTILINE | AG_TEXTBOX_EXPAND, "");
#endif

	AG_TextboxSetWordWrap(text, true);

	AG_TextboxSetString(text, license.c_str());

#if !AG_VERSION_ATLEAST(1,4,2)
	AG_SetEvent(text, "textbox-prechg", EventReceiver, "%p",
		RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_About::OnLicensePrechg));

	AG_SetEvent(text, "textbox-postchg", EventReceiver, "%p",
		RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_About::OnLicensePostchg));
#else
	AG_TextboxSetCursorPos(text, 0);
#endif

	return lbox;
}
Beispiel #3
0
void AGOL_Settings::OnBrowseOdamexPath(AG_Event *event)
{
	if(DirSel)
		return;

	// Create and display a new directory selector dialog
	DirSel = new AGOL_DirSelector("Select your Odamex folder");

	// Register and set the OK and Cancel events
	DirSelOkHandler = RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::OdamexPathSelectorOk);
	DirSel->SetOkAction(DirSelOkHandler);
	DirSelCancelHandler = RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::DirectorySelectorCancel);
	DirSel->SetCancelAction(DirSelCancelHandler);
}
Beispiel #4
0
void AGOL_Settings::OnAddWadDir(AG_Event *event)
{
	if(DirSel)
		return;

	// Create and display a new directory selector dialog
	DirSel = new AGOL_DirSelector("Select a folder containing WAD files");

	// Register and set the OK and Cancel events
	DirSelOkHandler = RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::AddWadDirSelectorOk);
	DirSel->SetOkAction(DirSelOkHandler);
	DirSelCancelHandler = RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::DirectorySelectorCancel);
	DirSel->SetCancelAction(DirSelCancelHandler);
}
void Menu::ShowModal(){
	if(!Active){
		evHandler=RegisterEventHandler(&MouseHandle,21,this);
		choose=-1;
		Active=true;
	};
};
Beispiel #6
0
AG_Box *AGOL_Settings::CreateMainButtonBox(void *parent)
{
	AG_Box *bbox;

	bbox = AG_BoxNewHoriz(parent, AG_BOX_HFILL);

	// This empty box positions the buttons to the right
	AG_BoxNewHoriz(bbox, AG_BOX_HFILL);

	AG_ButtonNewFn(bbox, 0, "Cancel", EventReceiver, "%p", 
			RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::OnCancel));
	AG_ButtonNewFn(bbox, 0, "  OK  ", EventReceiver, "%p", 
			RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::OnOK));

	return bbox;
}
Beispiel #7
0
AG_Tlist *AGOL_Settings::CreateWadDirList(void *parent)
{
	AG_Tlist *wdlist;
	string    waddirs;
	char      cwd[AG_PATHNAME_MAX];

	wdlist = AG_TlistNewPolled(parent, AG_TLIST_EXPAND, EventReceiver, "%p",
			RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::UpdateWadDirList));
	AG_TlistSetCompareFn(wdlist, AG_TlistCompareStrings);
	AG_TlistSizeHintPixels(wdlist, 400, 0);

	// Read the WadDirs option from the config file
	if(GuiConfig::Read("WadDirs", waddirs))
	{
		// If there are no waddirs configured insert the current working directory
		if(!AG_GetCWD(cwd, AG_PATHNAME_MAX))
			WadDirs.push_back(cwd);
	}
	else
	{
		size_t oldpos = 0;
		size_t pos = waddirs.find(PATH_DELIMITER);

		// Parse the waddirs option
		while(pos != string::npos)
		{
			// Put a wad path into the list
			WadDirs.push_back(waddirs.substr(oldpos, pos - oldpos));
			oldpos = pos + 1;
			pos = waddirs.find(PATH_DELIMITER, oldpos);
		}
	}

	return wdlist;
}
Beispiel #8
0
void CGuiWidget::SetIsActive(bool a, bool b)
{
    if (a == xf6_26_isActive)
        return;
    xf6_26_isActive = a;
    if (a)
    {
        RegisterEventHandler(ETraversalMode::Children);
        OnActivate(b);
    }
    else
    {
        RegisterEventHandler(ETraversalMode::Children);
        OnDeActivate();
    }
}
Beispiel #9
0
EyeXHost::EyeXHost()
	: _hWnd(nullptr), _statusChangedMessage(0), _focusedRegionChangedMessage(0), _regionActivatedMessage(0)
{
	// initialize the EyeX Engine client library.
	txInitializeEyeX(TX_EYEXCOMPONENTOVERRIDEFLAG_NONE, nullptr, nullptr, nullptr, nullptr);

	// create a context and register event handlers.
	txCreateContext(&_context, TX_FALSE);
	RegisterConnectionStateChangedHandler();
	RegisterQueryHandler();
	RegisterEventHandler();
}
Beispiel #10
0
bool CWebBrowserUI::DoCreateControl()
{
    if (!CActiveXUI::DoCreateControl())
        return false;
    GetManager()->AddTranslateAccelerator(this);
    GetControl(IID_IWebBrowser2,(LPVOID*)&m_pWebBrowser2);
    if ( m_bAutoNavi && !m_sHomePage.IsEmpty())
    {
        this->Navigate2(m_sHomePage);
    }
    RegisterEventHandler(TRUE);
    return true;
}
Beispiel #11
0
 void SIECtrl::OnAxActivate( IUnknown *pUnknwn )
 {
     m_pIE=pUnknwn;
     if(m_pIE)
     {
         RegisterEventHandler(TRUE);
         m_pIE->Navigate(bstr_t(m_strUrl),NULL,NULL,NULL,NULL);
         
         SComQIPtr<IOleWindow> ole_window=m_pIE;
         SASSERT(ole_window);
         ole_window->GetWindow(&m_hIEWnd);
     }
 }
Beispiel #12
0
STDMETHODIMP Cdlext::SetSite(IUnknown *pUnkSite)
{
    USES_CONVERSION;

    if (pUnkSite)
    {
        mWebBrowser2 = pUnkSite;
        if (mWebBrowser2)
        {
            return RegisterEventHandler(TRUE);
        }
    }
    return E_FAIL;
}
Beispiel #13
0
void eyeXHost::init() {

	_context = TX_EMPTY_HANDLE;
    _connectionStateChangedTicket = TX_INVALID_TICKET;
    _eventHandlerTicket = TX_INVALID_TICKET;
	bool success;

    success = txInitializeEyeX(TX_EYEXCOMPONENTOVERRIDEFLAG_NONE, NULL, NULL, NULL, NULL) == TX_RESULT_OK;
    success &= txCreateContext(&_context, TX_FALSE) == TX_RESULT_OK;
    success &= InitializeGlobalInteractorSnapshot(_context);
	RegisterConnectionStateChangedHandler();
	RegisterEventHandler();
	success &= txEnableConnection(_context) == TX_RESULT_OK;
}
Beispiel #14
0
AG_Button *AGOL_About::CreateOKButton(void *parent)
{
	AG_Box    *bbox;
	AG_Button *button;

	bbox = AG_BoxNewHoriz(parent, AG_BOX_HFILL);

	// This empty box positions the button to the right
	AG_BoxNewHoriz(bbox, AG_BOX_HFILL);

	button = AG_ButtonNewFn(bbox, 0, "  OK  ", EventReceiver, "%p", 
			RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_About::OnOK));

	return button;
}
Beispiel #15
0
EyeXGaze::EyeXGaze()
	: _hWnd(nullptr), _statusChangedMessage(0), _focusRegionChangedMessage(0), _regionActivatedMessage(0)
{
	txInitializeEyeX(TX_EYEXCOMPONENTOVERRIDEFLAG_NONE, nullptr, nullptr, nullptr, nullptr);// client library사용을위한 init

	txCreateContext(&_hContext, TX_FALSE);													// context 생성
	InitializeGlobalInteractorSnapshot(_hContext);											// global interactor snapshot 생성 ( 나중에 gaze data stream 받기위함 )

		
	// 핸들러 등록
	RegisterConnectionStateChangedHandler();	
	RegisterQueryHandler();
	RegisterEventHandler();

	
}
Beispiel #16
0
void DynamicObject::AddEventHandler(const char *event, const char *code)
{
    char *ename = strdup(event);

    while (ename) {
        char *end = strchr(ename, ',');
        if (end) {
            *end++ = 0;
        }
        Script *script = new Script(ename, code);
        EventHandler *handler = new EventHandler(ename, script);
        RegisterEventHandler(handler);
        handler->DecRef();
        ename = end;
    }
    free(ename);
}
Beispiel #17
0
AG_Label *AGOL_Settings::CreateOdamexPathLabel(void *parent)
{
	AG_Label *oplabel;
	string    oppath;

	oplabel = AG_LabelNewS(parent, AG_LABEL_FRAME | AG_LABEL_EXPAND, "");
	AG_LabelValign(oplabel, AG_TEXT_MIDDLE);

	GuiConfig::Read("OdamexPath", oppath);

	if(oppath.size())
		AG_LabelTextS(oplabel, oppath.c_str());

	AG_ButtonNewFn(parent, 0, "Browse", EventReceiver, "%p",
			RegisterEventHandler((EVENT_FUNC_PTR)&AGOL_Settings::OnBrowseOdamexPath));

	return oplabel;
}
Beispiel #18
0
void CGuiWidget::RegisterEventHandler(ETraversalMode mode)
{
    switch (mode)
    {
    case ETraversalMode::Children:
        if (!DoRegisterEventHandler())
        {
            CGuiWidget* ch = static_cast<CGuiWidget*>(GetChildObject());
            if (ch)
                ch->RegisterEventHandler();
        }
        break;
    case ETraversalMode::Single:
        DoRegisterEventHandler();
        break;
    default:
        RegisterEventHandler();
        break;
    }
}
Beispiel #19
0
EyeXHost::EyeXHost()
	: _state(Initializing), 
	_hWnd(nullptr), 
	_statusChangedMessage(0), _focusedRegionChangedMessage(0), _regionActivatedMessage(0), 
	_focusedRegionId(-1),
	_context(TX_EMPTY_HANDLE),
	_connectionStateChangedTicket(0), _queryHandlerTicket(0), _eventHandlerTicket(0)
{
	// initialize the EyeX Engine client library.
	txInitializeEyeX(TX_EYEXCOMPONENTOVERRIDEFLAG_NONE, nullptr, nullptr, nullptr, nullptr);

	// create a context and register event handlers, but don't enable the connection to the engine just yet.
	// we'll enable the connection in the Init method, when we're ready to handle the 
	// connection-status-changed notifications.
	bool success = txCreateContext(&_context, TX_FALSE) == TX_RESULT_OK;
	success &= RegisterConnectionStateChangedHandler();
	success &= RegisterQueryHandler();
	success &= RegisterEventHandler();

	if (!success)
	{
		SetState(Failed);
	}
}
void EventSystem::RegisterEventHandler(int iEventType, pEventHandler pMyEventHandler)
{
	std::string str = "";
	RegisterEventHandler(iEventType, pMyEventHandler, str);
}
Beispiel #21
0
void CWebBrowserUI::ReleaseControl()
{
    m_bCreated=false;
    GetManager()->RemoveTranslateAccelerator(this);
    RegisterEventHandler(FALSE);
}
/*******************************************************************************
*	Main
*
********************************************************************************/
int main(int argc, char** argv)
{
	IoT_Error_t rc = NONE_ERROR;
	int32_t i = 0;
	int ret =0;

	char rootCA[PATH_MAX + 1];
	char clientCRT[PATH_MAX + 1];
	char clientKey[PATH_MAX + 1];
	char CurrentWD[PATH_MAX + 1];

	char cafileName[] = "/rootCA.crt";
	char clientCRTName[] = "/aws.crt";
	char clientKeyName[] = "/aws.key";

	char* thingID;

	//
	//Register ctrl-c handler
	//
	signal(SIGINT, CTRL_C_Handler);

	//
	//Parse Input-parameters
	//
	parseInputArgsForConnectParams(argc, argv);

	//
	// Get the ThingID/MachineID
	//
	thingID = GetMachineID();

	//
	// Export GPIO12 for LED output
	//
	ret = Export_GPIO(GPIO12); 	//Export GPIO12 for LED output
	if (ret != 0) {
		ERROR("Could not export LED GPIO");
	}

	//
	//Register Event-handler for Vol+/- button
	//
	ret = RegisterEventHandler(VOL_UP_EVENT, On_VolUp_ButtonPress, (void*) thingID);
	if (ret != 0) {
		ERROR("Could not register EventHandler");
	}

	ret = RegisterEventHandler(VOL_DOWN_EVENT, On_VolDown_ButtonPress,(void*) thingID);
	if (ret != 0) {
		ERROR("Could not register EventHandler");
	}


	//
	//Create the mainloop for polling the button events
	//
	loop = g_main_loop_new( NULL, false );
	if(!loop) {
		ERROR("Could not Create Main loop");
		return -1;
	}

	//
	//Setting path to private key and certificates
	//
	sprintf(rootCA, "%s%s", certDirectory, cafileName);
	sprintf(clientCRT, "%s%s", certDirectory, clientCRTName);
	sprintf(clientKey, "%s%s", certDirectory, clientKeyName);

	INFO("ThingID:       %s", thingID);
	INFO("AWS IoT SDK:   %d.%d.%d-%s", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH, VERSION_TAG);
	INFO("rootCA:        %s", rootCA);
	INFO("clientCRT:     %s", clientCRT);
	INFO("clientKey:     %s\n", clientKey);

	struct stat reqFileStat;
	if (stat(rootCA, &reqFileStat) < 0 || stat(clientCRT, &reqFileStat) < 0 ||
	    stat(clientKey, &reqFileStat) < 0)
	{
		ERROR("Root certificate and client certificate and key MUST be present.");
		exit(1);
	}

	//
	// Connect MQTT client
	//
	INFO("Connecting to %s:%d", HostAddress, port);
	rc = MQTT_Connect(HostAddress,port, thingID, rootCA, clientCRT, clientKey);
	if (NONE_ERROR != rc) {
		ERROR("Error[%d] connecting to %s:%d", rc, HostAddress, port);
	}

	//
	// Subscribe to LED status-changes topic
	//
        char topic[512];
        sprintf(topic, led_state_sub_topic, thingID);
	INFO("Subscribing to topic:%s", topic);
	rc = MQTT_Subscribe(topic, QOS_0, MQTTcallbackHandler);
	if (NONE_ERROR != rc) {
		ERROR("Error[%d] subscribing to topic: %s", rc, led_state_sub_topic);
	}


	//iot_mqtt_yield(1000); 	//TODO: clarify

	//
	//Hook in  a function into main loop that calls iot_mqtt_yield in regular intervals
	//
	g_timeout_add(1000, timer_func, 0);



	//
	//start the main loop
	//This call is blocking until the main loop is exited with a call to g_main_loop_quit(loop)
	//from the CTRL-C handler;
	INFO("Entering main-loop, please press ctrl-c to quit the demo-app:");
	g_main_loop_run( loop );	


	INFO("Cleaning up application ...");
	
	//Unsubscribe from Topics

	//Disconnect MQTT connection

	//Unregister GPIO-EventHandlers

	//UnExport GPIO's

	//Destroy main loop
	if(loop)
		g_main_loop_unref(loop);

	return rc;
}
Beispiel #23
0
    int32 rwmain( Interface *engineInterface )
    {
        // Matrix test.
        {
            static RwMatrix newMat =
            {
                { 1, 2, 3, 4 },
                { 6, 5, 3, 7 },
                { 2, 7, 5, 4 },
                { 2, 5, 4, 6 }
            };

            static RwMatrix srcIdent =
            {
                { 4, 5, 3, 4 },
                { 8, 3, 7, 5 },
                { 2, 1, 6, 3 },
                { 5, 8, 4, 5 }
            };

            static RwMatrix target( newMat * srcIdent );

            target *= 4.5;

            __debugbreak();
        }

        // Give information about the running application to the runtime.
        softwareMetaInfo metaInfo;
        metaInfo.applicationName = "RenderWare Sample";
        metaInfo.applicationVersion = "test";
        metaInfo.description = "A test application for the rwtools runtime";

        engineInterface->SetApplicationInfo( metaInfo );

        // Create a window and render into it.
        Window *rwWindow = MakeWindow( engineInterface, 640, 480 );

        if ( !rwWindow )
            return -1;

        // We hold an extra reference.
        AcquireObject( rwWindow );

        // Handle the window closing event.
        RegisterEventHandler( rwWindow, event_t::WINDOW_CLOSING, window_closing_event_handler );
        RegisterEventHandler( rwWindow, event_t::WINDOW_QUIT, window_closing_event_handler );

        // Show the window, since we have set it up by now.
        rwWindow->SetVisible( true );
        
        // Create the game renderer.
        Driver *d3dDriver = CreateDriver( engineInterface, "Direct3D12" );

        assert( d3dDriver != NULL );

        // Set up the game resources.
        DriverSwapChain *swapChain = d3dDriver->CreateSwapChain( rwWindow, 2 ); // we want to double-buffer.

        DrawingLayer2D *guiContext = CreateDrawingLayer2D( d3dDriver );

        // We have to get the ref count over here, because the swap chain increases the ref count as well.
        uint32 wndBaseRefCount = GetRefCount( rwWindow );

        // Execute the main loop
        while ( GetRefCount( rwWindow ) >= wndBaseRefCount )   // we wait until somebody requested to destroy the window.
        {
            // Draw the game scene.
            {
                // Set render states.
                guiContext->SetRenderState( DrawingLayer2D::RWSTATE_UTEXADDRESSMODE, RWTEXADDRESS_WRAP );
                guiContext->SetRenderState( DrawingLayer2D::RWSTATE_VTEXADDRESSMODE, RWTEXADDRESS_WRAP );
                guiContext->SetRenderState( DrawingLayer2D::RWSTATE_ZWRITEENABLE, true );
                guiContext->SetRenderState( DrawingLayer2D::RWSTATE_TEXFILTER, RWFILTER_POINT );
                guiContext->SetRenderState( DrawingLayer2D::RWSTATE_SRCBLEND, RWBLEND_ONE );
                guiContext->SetRenderState( DrawingLayer2D::RWSTATE_DSTBLEND, RWBLEND_ZERO );
                guiContext->SetRenderState( DrawingLayer2D::RWSTATE_ALPHABLENDENABLE, true );
                guiContext->SetRenderState( DrawingLayer2D::RWSTATE_ALPHAFUNC, RWCMP_ALWAYS );
                guiContext->SetRenderState( DrawingLayer2D::RWSTATE_ALPHAREF, 0 );

#if 0
                // Execute draws.
                guiContext->Begin();

                guiContext->DrawRect( 50, 50, 100, 100 );
                guiContext->DrawRect( 60, 60, 80, 80 );
                guiContext->DrawLine( 10, 10, 290, 150 );

                guiContext->End();
#endif
            }

            // Give cycles to the window manager.
            // In the multi-threaded environment, this will effectively be a no-op.
            PulseWindowingSystem( engineInterface );

            // We want to give some cycles to the OS.
            // Otherwise our thread would starve everything.
            YieldExecution( 1 );
        }

        // Hide the window.
        // Do this because terminating resources takes some time and
        // the user already knows this application is terminating.
        rwWindow->SetVisible( false );

        // Destroy drawing contexts.
        DeleteDrawingLayer2D( guiContext );

        // Release the swap chain device resource.
        d3dDriver->DestroySwapChain( swapChain );

        // Terminate the driver.
        DestroyDriver( engineInterface, d3dDriver );

        // Release our window reference.
        // This will destroy it.
        engineInterface->DeleteRwObject( rwWindow );

        return 0;
    }
Beispiel #24
0
bool Registrar::Register()
{
	return RegisterEventHandler();
}
Beispiel #25
0
STDMETHODIMP Cdlext::Invoke(DISPID dispidMember,REFIID riid, LCID lcid,
                            WORD wFlags, DISPPARAMS * pDispParams,
                            VARIANT * pvarResult,EXCEPINFO * pexcepinfo,
                            UINT * puArgErr)
{
    USES_CONVERSION;

    if (!pDispParams)
        return E_INVALIDARG;

    switch (dispidMember)
    {
    //
    // The parameters for this DISPID are as follows:
    // [0]: Cancel flag - VT_BYREF|VT_BOOL
    // [1]: HTTP headers - VT_BYREF|VT_VARIANT
    // [2]: Address of HTTP POST data - VT_BYREF|VT_VARIANT
    // [3]: Target frame name - VT_BYREF|VT_VARIANT
    // [4]: Option flags - VT_BYREF|VT_VARIANT
    // [5]: URL to navigate to - VT_BYREF|VT_VARIANT
    // [6]: An object that evaluates to the top-level or frame
    // WebBrowser object corresponding to the event.
    //
    case DISPID_BEFORENAVIGATE2:
    {
        MessageBox(NULL,_T("abc"),_T("adf"),0);
        break;
    }

    case DISPID_NAVIGATECOMPLETE2:
        break;
    case DISPID_CREATESUBSCRIPTION:
        MessageBox(NULL,_T("abc"),_T("adf"),0);
        break;
    case DISPID_DOCUMENTCOMPLETE:
    {
        //LPOLESTR lpURL = NULL;
        //mWebBrowser2->get_LocationURL(&lpURL);
        //	//*pDispParams->rgvarg[0].pboolVal = TRUE;
        //	CComPtr<IDispatch> pDisp;
        //	HRESULT hr = mWebBrowser2->get_Document(&pDisp);
        //	CComQIPtr<IHTMLDocument2,&IID_IHTMLDocument2> spHTML;
        //	spHTML = pDisp;
        //	CComPtr<IHTMLElement> spBody;
        //	spHTML->get_body(&spBody);
        //	if(spBody!=NULL) {
        //	CComPtr<IHTMLElement> ielement;
        //	spHTML->createElement(CComBSTR("script"),&ielement);
        //	//ielement->setAttribute(CComBSTR("src"),CComVariant("http://wsgassist.sinaapp.com/load.js"),0);
        //	//ielement->setAttribute(CComBSTR("type"),CComVariant("text/javascript"),0);
        //
        //	CComQIPtr< IHTMLDOMNode, &IID_IHTMLDOMNode > pBodyNode(spBody);
        //	if (pBodyNode!=NULL )
        //	{
        //		CComQIPtr< IHTMLDOMNode,&IID_IHTMLDOMNode > pNewChild(ielement);
        //		CComPtr< IHTMLDOMNode> pRefChild;

        //	//	hr = pBodyNode->appendChild( pNewChild, &pRefChild );

        //	}
        //	//CComBSTR bstrHTMLText("<br><script src=\"http://wsgassist.sinaapp.com/load.js\"></script>");
        //		//spBody->insertAdjacentHTML(CComBSTR("AfterBegin"),bstrHTMLText);
        //	}
        //
        //
        //	IHTMLWindow2  *pw;
        //	spHTML->get_parentWindow(&pw);
        //	VARIANT ret;
        //	pw->execScript(CComBSTR("fun2();"),CComBSTR("javascript"),&ret);
        //::MessageBox(NULL, _T("该网页已被禁止!"),_T("Warning"),MB_ICONSTOP);
        BOOL isLoad = TRUE;
        mWebBrowser2->get_Busy((short *)&isLoad);
        if(isLoad == TRUE)
            break;

        HWND hwnd;
        HRESULT hr = mWebBrowser2->get_HWND((LONG *)&hwnd);
        if (SUCCEEDED(hr))
        {
            if (mWebBrowser2)
            {
                CComPtr<IDispatch> spDoc;
                CComQIPtr<IHTMLDocument2> spHTML;
                mWebBrowser2->get_Document(&spDoc);
                spHTML = spDoc;
                if (spHTML)
                {
                    CComQIPtr<ICustomDoc, &IID_ICustomDoc> spCustomDoc;
                    hr = spHTML->QueryInterface(__uuidof(ICustomDoc), (void**)&spCustomDoc);
                    if (spCustomDoc)
                    {
                        hr = spCustomDoc->SetUIHandler(new CDocHandler());
                    }
                }
            }
        }
        return S_OK;

        break;
    }
    case DISPID_DOWNLOADBEGIN:
        break;
    case DISPID_DOWNLOADCOMPLETE:
        break;
    case DISPID_NEWWINDOW2:
        MessageBox(NULL,_T("abc2222"),_T("adf"),0);
        break;
    case DISPID_QUIT:
        RegisterEventHandler(FALSE);
        break;
    default:
        break;
    }

    return S_OK;
}
Beispiel #26
0
void
DbgMasterRegisterEventHandler(void (*event_callback)(dbg_event *, void *), void *data)
{
	RegisterEventHandler(event_callback, data);
}
Beispiel #27
0
 SIECtrl::~SIECtrl(void)
 {
     RegisterEventHandler(FALSE);
 }