# Remote camera control The Video SDK for Windows lets one user request control of another user's camera by panning, tilting, and zooming it remotely, which is useful for remote-assistance and inspection workflows. You control a specific user's camera through that user's `IZoomVideoSDKRemoteCameraControlHelper`, obtained with `getRemoteCameraControlHelper`. ```cpp IZoomVideoSDKRemoteCameraControlHelper* pControlHelper = pUser->getRemoteCameraControlHelper(); ``` ## Request control of a remote camera Before you can move a camera, call `requestControlRemoteCamera`. The target user receives `onCameraControlRequestReceived` and must approve the request. When they respond, the SDK calls `onCameraControlRequestResult` with whether the request was approved. For details, see [Camera control requests](/docs/video-sdk/windows/video/video-events/#camera-control-requests). ```cpp pControlHelper->requestControlRemoteCamera(); ``` ## Pan, tilt, and zoom Once your request is approved, move the camera with `turnLeft`, `turnRight`, `turnUp`, `turnDown`, `zoomIn`, and `zoomOut`. Each method takes an optional `range` from 10 to 100 that controls how far the camera moves, defaulting to 50. ```cpp // Pan right by the default amount. pControlHelper->turnRight(); // Tilt up by a smaller amount. pControlHelper->turnUp(20); // Zoom in. pControlHelper->zoomIn(); ``` ## Give up control When you're finished, release the camera with `giveUpControlRemoteCamera`. ```cpp pControlHelper->giveUpControlRemoteCamera(); ``` ## Respond to a control request When another user requests control of the local user's camera, the SDK calls `onCameraControlRequestReceived` and passes an `IZoomVideoSDKCameraControlRequestHandler`. Call `approve` to grant control or `decline` to refuse. ```cpp void CExampleListener::onCameraControlRequestReceived(IZoomVideoSDKUser* pUser, ZoomVideoSDKCameraControlRequestType requestType, IZoomVideoSDKCameraControlRequestHandler* pCameraControlRequestHandler) { // After confirming with the local user: pCameraControlRequestHandler->approve(); // Or, to refuse: // pCameraControlRequestHandler->decline(); } ```