There's likely to be a list of cameras provided, perhaps by the camera API - that's the first place to look, camera manufacturers usually provided example code. And perhaps linking to a list of structures, where each structure contains information about one camera. I'd look for these.
When using cameras (on a firewire bus) I needed be able to detect newly a added camera and reasoned that a person is there to add (or remove that camera) and so can press a button 'refresh camera list' rather demand an event fired by some low-level detection. Though it may be your API provides such an event so again, have a look for that.
You might later find it useful to write a C++ class to handle such additions and removals. I've added the header from such a class I wrote, and its description, to show how this might look.
#include "CameraList.h"
class CBusManager
{
public:
CBusManager(CCameraList* pCameraList);
void OnNodelistChanged();
void EnableNode(UINT32 Ix,BOOL Enable);
void RemoveNode(UINT32 Ix);
void AddNode(FGNODEINFO *pInfo);
CCameraList* m_pCameraList;
};