asathatsme Posted November 27, 2009 Share Posted November 27, 2009 Hi folks, I'm trying to create a working callback for the latest WIMGAPI. The C style definition looks like this: DWORD WINAPI SampleCallback( IN DWORD msgId, //message ID IN WPARAM param1, //usually file name INOUT LPARAM param2, //usually error code IN void *unused ) I've been trying to use calback definitions like: $handle = DLLCallbackRegister("_DefaultCallBack", "ptr", "dword;wparam;lparam;ptr") or $handle = DLLCallbackRegister("_DefaultCallBack", "dword", "dword;uint;uint;ptr"), but the result has been (and still is) some memory corruption and due to that, program crashing. Funny thing is that capturing a WIM image seems to be working fine (?? I'm able to apply the resulting image successfully with the standard imagex.exe), but applying a created image (with Autoit script and callbacks) fails. If I remove these callbacks completely, the program under work seems to be working, but I loose all the file skipping possibilities and progress information. So please tell me what would be the correctly formatted DLLCallbackRegister command ? Or some other ideas to consider (except giving up .. ) Link to comment Share on other sites More sharing options...
asathatsme Posted November 27, 2009 Author Share Posted November 27, 2009 (edited) I'm sorry, I didn't see any "edit" buttons to add some more poblem places.. Am I blind or what So, could it be that this is wrong? Func _WIM_RegisterMessageCallback($hCreateFile, $WIM_MessageProc) Local $register $register = DllCall($ghWimgapi, "int", "WIMRegisterMessageCallback", "ptr", $hCreateFile, "ptr", $WIM_MessageProc, "long_ptr", 0) If $register[0]=$invalid_callback_value Then dbg_error("_WIM_RegisterMessageCallback") msgbox(0, "WIMRegisterMessageCallback error", _WinAPI_GetLastErrorMessage()) EndIf Return $register[0] EndFunc The C style definition looks like this: DWORD WINAPI WIMRegisterMessageCallback( HANDLE hWim FARPROC fpMessageProc, PVOID pvUserData ); Edited November 27, 2009 by asathatsme Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now