


// This signature must match HR_OpenLibrary in HR_Lib.h
typedef HR_StatusType (*HR_OpenLibraryPtr)
(
    HR_Int32Type    inOptionBits, // Each bit specifies an option, unused bits must be zero
    HR_LibHandle*   outLibHandle   // will be needed for later calls
);


// This signature must match HR_CloseLibrary in HR_Lib.h
typedef HR_StatusType (*HR_CloseLibraryPtr)
(
    HR_LibHandle inLibHandle // a library handle for the library created by HR_OpenLibrary
);



// This signature must match HR_OpenCamera in HR_Lib.h
typedef HR_StatusType (*HR_OpenCameraPtr)
(
    HR_CamHandle inCameraHandle     // must be a valid handle
);


// This signature must match HR_CloseCamera in HR_Lib.h
typedef HR_StatusType (*HR_CloseCameraPtr)
(
    HR_CamHandle inCameraHandle     // must be a valid handle
);


// This signature must match HR_GetCameraList in HR_Lib.h
typedef HR_StatusType (*HR_GetCameraListPtr)
(
    HR_LibHandle     inLibHandle,   // must be a valid library handle
    HR_Int32Type     inBufferCount, // element count the app. allocated for outCameraList
    HR_Int32Type*    outAvailCount, // Library reports how many cameras found
    HR_CamHandle*    outCameraList  // allocation must match inBufferCount
);


// This signature must match HR_TriggerCamera in HR_Lib.h
typedef HR_StatusType (*HR_TriggerCameraPtr)
(
    HR_CamHandle inCameraHandle     // must be a valid handle
);


// This signature must match HR_OpenImage in HR_Lib.h
typedef HR_StatusType (*HR_OpenImagePtr)
(
    HR_ImgHandle inImageHandle     // must be a valid handle
);





// This signature must match HR_CloseImage in HR_Lib.h
typedef HR_StatusType (*HR_CloseImagePtr)
(
    HR_ImgHandle inImageHandle     // must be a valid handle
);


// This signature must match HR_DeleteImage in HR_Lib.h
typedef HR_StatusType (*HR_DeleteImagePtr)
(
    HR_ImgHandle inImageHandle     // must be a valid image handle
);


// This signature must match HR_GetImageList in HR_Lib.h
typedef HR_StatusType (*HR_GetImageListPtr)
(
    HR_BaseHandle   inHandle,      // can be the Library or one specific camera
    HR_Int32Type    inBufferCount, // element count the app. allocated for outImageList
    HR_Int32Type*   outAvailCount, // Lib reports how many images found
    HR_ImgHandle*   outImageList   // allocation must match inBufferCount
);


// This signature must match HR_GetParamInfo in HR_Lib.h
typedef HR_StatusType (*HR_GetParamInfoPtr)
(
    HR_BaseHandle      inHandle,       // a handle to a lib, cam, or img object
    HR_ParamIdEnumType inID,           // the enumerated ID of a parameter
    HR_InfoType*       outInfo         // all the info in this struct
);



// This signature must match HR_GetParam in HR_Lib.h
typedef HR_StatusType (*HR_GetParamPtr)
(
    HR_BaseHandle      inHandle,     // a handle to a lib, cam, or img object
    HR_ParamIdEnumType inID,         // the enum, enumerated ID of an parameter
    HR_Int32Type       inCount,      // count of elelments outpValue can hold
    HR_Int32Type*      outAvailCount,// count of elements ( not bytes ) available.
    void*              outpValue     // The HR Library will copy data TO app memory
);


// This signature must match HR_SetParam in HR_Lib.h
typedef HR_StatusType (*HR_SetParamPtr)
(
    HR_BaseHandle      inHandle,       // a handle to a lib, cam, or img object
    HR_ParamIdEnumType inID,           // the enumerated ID of a parameter
    HR_DataTypeEnumType    inType,         // the data type of the param
    HR_Int32Type       inCount,        // count of elements ( not bytes )
    void*              inpValue
);


// This signature must match HR_Poll in HR_Lib.h
typedef HR_StatusType (*HR_PollPtr)
(
    HR_BaseHandle   inHandle,
    HR_Int32Type    inEventsFlags, //Events we are looking for
    HR_Int32Type*   outEvents      //Events codes for events we have recieved

);


// This signature must match HR_RegisterCallback in HR_Lib.h
/*
typedef HR_StatusType (*HR_RegisterCallbackPtr)
(
    HR_BaseHandle*    inHandle,   // The item we whish to register a callback for
    HR_CallbackType*  inCallbackFunctionPointer,
    void*             inUsersDataPointer //
);
*/

// This signature must match HR_GetErrorString in HR_Lib.h
typedef char* (*HR_GetErrorStringPtr)
(
    HR_Int32Type inErrorNumber
);



