Hi, I was looking at sources, I think vc6 is still not a good idea nowadays, vs 2005 produces executables compatible with win98 but I think mingw would be preferred since you may better control stuff that are linked I've tried to build kexcore by converting thunks.cpp in a pure att asm but I'm unable to resolve intermodular symbols unfortunately gcc does not support naked functions so you can't just write the function and then emit asm by using __asm() about mpc GetRawInputDeviceList -> return 0 replace other RawInputStuff with stubs, the only code where used is in mplayerc.cpp void CMPlayerCApp::RegisterHotkeys() { RAWINPUTDEVICELIST InputDeviceList[50]; UINT nInputDeviceCount = countof(InputDeviceList); RID_DEVICE_INFO DevInfo; RAWINPUTDEVICE MCEInputDevice[] = { // usUsagePage usUsage dwFlags hwndTarget { 0xFFBC, 0x88, 0, NULL}, { 0x000C, 0x01, 0, NULL}, { 0x000C, 0x80, 0, NULL} }; // Register MCE Remote Control raw input for (int i=0; i<countof(MCEInputDevice); i++) MCEInputDevice[i].hwndTarget = m_pMainWnd->m_hWnd; nInputDeviceCount = GetRawInputDeviceList (InputDeviceList, &nInputDeviceCount, sizeof(RAWINPUTDEVICELIST)); for (int i=0; i<nInputDeviceCount; i++) { UINT nTemp = sizeof(DevInfo); if (GetRawInputDeviceInfo (InputDeviceList[i].hDevice, RIDI_DEVICEINFO, &DevInfo, &nTemp)>0) { if (DevInfo.hid.dwVendorId == 0x00000471 && // Philips HID vendor id DevInfo.hid.dwProductId == 0x00000617) // IEEE802.15.4 RF Dongle (SRM 7500) { MCEInputDevice[0].usUsagePage = DevInfo.hid.usUsagePage; MCEInputDevice[0].usUsage = DevInfo.hid.usUsage; GetRemoteControlCode = GetRemoteControlCodeSRM7500; } } } RegisterRawInputDevices (MCEInputDevice, countof(MCEInputDevice), sizeof(RAWINPUTDEVICE)); if (m_s.fGlobalMedia) { POSITION pos = m_s.wmcmds.GetHeadPosition(); while(pos) { wmcmd& wc = m_s.wmcmds.GetNext(pos); if (wc.appcmd != 0) RegisterHotKey(m_pMainWnd->m_hWnd, wc.appcmd, 0, GetVKFromAppCommand (wc.appcmd)); } } } Also I'm curious about the hook works, it's a replacement of kernel32? it is possible to make it works as "light" version, I mean a loader that will inject a dll with missing stubs? I already made some compatibility stuff, that may be usefull http://clamwin.git.sourceforge.net/git/gitweb.cgi?p=clamwin/clamav-win32.git;a=tree;f=contrib/msvc/src/dllmain;h=a59d356c3f1b369e1a13f2c02cb39d781b854610;hb=HEAD also consider interacting with reactos/wine projects