EuCOM 2.08 + WinXP Pro SP3
- Posted by Rad Nov 27, 2009
- 4078 views
Hi,
Is anybody using Euphoria with WinXP PRO SP3... specifically SP3?
And worked with Eu v3.1 + win32lib v0.70.19 + EuCom 2.08 on it?
I have the following scenario at my place....
Till 3 weeks back, I had WinXP PRO SP2 + Eu v3.1 + Win32lib v.70.19 + EuCom v2.08 on my laptop working fine for last 4 years, when WinXP files got corrupt and I had to reinstall WinXP (with sony pre-install recovery cd) going back to year 2005 stage.
As I had to anyway get the latest updates for SP2, I decided to slipstream SP3 from my original i386 folder using RyanVM Integrator update packs and nLite. Everything went accordingly, and I could create an iso image which I installed on a VritualbOx instance/machine. I also installed all required Euphoria and other applications for my project.
Everything worked fine including IDE, untill I executed my main project which uses EuCom 2.08 for accessing third party ActiveX controls.
Now, the ActiveX control (present in c:\windows\system32 folder) Regiatration process fails with 0 (zero) as return code, which was working before the reinstall.
I tried using regsvr32 for registering same controls and they Displayed "DllRegiterServer in [control-name] succeeded" message. Also, my application setup installer program also deosn't generate any error while registering these controls.
Thinking that it could be SP3, I tried to execute same project on physical machine (with SP2), but getting the same result. I regenerated the wrapper using Tbrowse.exw, tried under both SP2 and SP3 environment, without any success.
But the sgrid.ocx provided with EuCom demo works just fine, I can register/unregister it using the same code in my program.
Also, the original demo program which was provided with third party ActiveX controls also works fine.
Following is the code -
atom RSVR32 -- add various ocx names and their corresponding ids from respective ew files -- to following 2 sequences ocxnm1 = {"OneWayX.ocx", "OneWaySerialX.ocx"} ocxnm2 = {OneWay_clsid_ix, OneWaySerial_clsid_ix} -- RSVR32 = 0 ------------------------------------------------------------------- -- Window SynInit -- Info Window global constant SynInit = createEx( Window, "Syndicate Setup", 0, 0, 0, 220, 64, {WS_BORDER, WS_CLIPSIBLINGS}, {WS_EX_DLGMODALFRAME} ), LTextInit = createEx( CText, "Setting up File....", SynInit, 4, 4, 204, 24, 0, 0 ) setVisible( SynInit, w32False ) ---------------------------------------------------------------------------- -- -- register and open ocx -- global function reg_ocx(sequence regnm, atom clsid_ix) RSVR32 = create_com_object( clsid_ix ) -- Try to register ocx if it didn't create properly if not RSVR32 then setText(SynInit, appName & " OCX Setup") setText(LTextInit, "Registering " & regnm & " ...") openWindow(SynInit, Normal) setVisible(SynInit, w32True) RSVR32 = open_dll( regnm ) RSVR32 = define_c_proc( RSVR32, "DllRegisterServer", {} ) c_proc( RSVR32, {} ) RSVR32 = create_com_object( clsid_ix ) sleep(2) setVisible(SynInit, w32False) closeWindow(SynInit) else -- void = message_box("Already Registered!", regnm & " Msg", MB_ICONINFORMATION) return RSVR32 end if if not RSVR32 then void = message_box(sprintf("Registration error : %d", {RSVR32}), regnm & " Msg", MB_ICONERROR) abort(1) else -- void = message_box("Registered successfully!", regnm & " Msg", MB_ICONINFORMATION) end if return RSVR32 end function -- -- unregister ocx -- global procedure unreg_ocx(sequence regnm, atom clsid_ix) RSVR32 = create_com_object( clsid_ix ) -- Try to unregister already registered ocx if RSVR32 then setText(SynInit, appName & " OCX Setup") setText(LTextInit, "Unregistering " & regnm & " ...") openWindow(SynInit, Normal) setVisible(SynInit, w32True) RSVR32 = open_dll( regnm ) RSVR32 = define_c_proc( RSVR32, "DllUnregisterServer", {} ) c_proc( RSVR32, {} ) RSVR32 = create_com_object( clsid_ix ) sleep(2) setVisible(SynInit, w32False) closeWindow(SynInit) else -- void = message_box("NOT Registered yet!", regnm & " Msg", MB_ICONINFORMATION) return end if if not RSVR32 then void = message_box(sprintf("Unregistration error : %d",{RSVR32}), regnm & " Msg", MB_ICONERROR) abort(1) else -- void = message_box("Unregistered successfully!", regnm & " Msg", MB_ICONINFORMATION) end if end procedure
Any help is appreciated.
Thanks & Regards,
Rad.