| 5433 | } |
| 5434 | |
| 5435 | XN_C_API XnStatus xnRegisterUserCallbacks(XnNodeHandle hInstance, XnUserHandler NewUserCB, XnUserHandler LostUserCB, void* pCookie, XnCallbackHandle* phCallback) |
| 5436 | { |
| 5437 | XN_VALIDATE_INTERFACE_TYPE(hInstance, XN_NODE_TYPE_USER); |
| 5438 | XN_VALIDATE_OUTPUT_PTR(phCallback); |
| 5439 | XnUserGeneratorInterfaceContainer* pInterface = (XnUserGeneratorInterfaceContainer*)hInstance->pModuleInstance->pLoaded->pInterface; |
| 5440 | XnModuleNodeHandle hModuleNode = hInstance->pModuleInstance->hNode; |
| 5441 | |
| 5442 | UserCookie* pUserCookie; |
| 5443 | XN_VALIDATE_ALLOC(pUserCookie, UserCookie); |
| 5444 | pUserCookie->newHandler = NewUserCB; |
| 5445 | pUserCookie->lostHandler = LostUserCB; |
| 5446 | pUserCookie->hNode = hInstance; |
| 5447 | pUserCookie->pUserCookie = pCookie; |
| 5448 | |
| 5449 | XnStatus nRetVal = pInterface->User.RegisterUserCallbacks(hModuleNode, xnNewUserCallback, xnLostUserCallback, pUserCookie, &pUserCookie->hCallback); |
| 5450 | if (nRetVal != XN_STATUS_OK) |
| 5451 | { |
| 5452 | xnOSFree(pUserCookie); |
| 5453 | return (nRetVal); |
| 5454 | } |
| 5455 | |
| 5456 | *phCallback = pUserCookie; |
| 5457 | |
| 5458 | return (XN_STATUS_OK); |
| 5459 | } |
| 5460 | |
| 5461 | XN_C_API void xnUnregisterUserCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback) |
| 5462 | { |
no test coverage detected