Beispiel #1
0
//==============================================================================
STDMETHODIMP CVMain::GetEventLog(SAFEARRAY** ppsaLogID, SAFEARRAY** ppsaTimeStampMs){
  SAFEARRAY *psaMtx;
  int * piData;
  double * pdData;

  * ppsaLogID =NULL;
  * ppsaTimeStampMs = NULL;

  if( g_MakeSafeArray( g_nLogEvents, &psaMtx, &piData ) ){
    return g_ErrorToHresult(1);
  }

  memcpy( piData, g_aiLogIDs, sizeof(int) * g_nLogEvents);
  SafeArrayUnaccessData( psaMtx );
  * ppsaLogID = psaMtx;

  if( g_MakeSafeArray( g_nLogEvents, &psaMtx, &pdData ) ){
    return g_ErrorToHresult(1);
  }
  memcpy( pdData, g_adEventTimes, sizeof(double) * g_nLogEvents);
  SafeArrayUnaccessData( psaMtx );
  * ppsaTimeStampMs = psaMtx;

  return S_OK;
}
Beispiel #2
0
//==============================================================================
STDMETHODIMP CVMouse::GetXY(SAFEARRAY ** ppsaMtx){
  SAFEARRAY *psaMtx;
  int * piData;

  * ppsaMtx = NULL;
  if( g_MakeSafeArray( 2, &psaMtx, &piData ) ){
    return g_ErrorToHresult(1);
  }
  piData[0] = g_tMouseXY.x;
  piData[1] = g_tMouseXY.y;
  SafeArrayUnaccessData( psaMtx );
  * ppsaMtx = psaMtx;

  return S_OK;
}
Beispiel #3
0
//==============================================================================
STDMETHODIMP CVMain::GetTransformMatrix(SAFEARRAY  ** ppsaMtx){
  SAFEARRAY *psaMtx;
  double * pData;

  // Output 6x2 array of doubles
  if( g_MakeSafeArray( TRANSF_MTX_N_2, TRANSF_MTX_N_1, &psaMtx, &pData ) ){
    return g_ErrorToHresult(1);
  }

  memcpy( pData, g_adTransfMtx, sizeof(g_adTransfMtx));
  SafeArrayUnaccessData( psaMtx );

  * ppsaMtx = psaMtx;
  return S_OK;
}
Beispiel #4
0
//==============================================================================
STDMETHODIMP CVMouse::GetUpEvents(SAFEARRAY ** ppsaMtx){
  SAFEARRAY *psaMtx;
  int * piData;

  * ppsaMtx = NULL;
  if( g_MakeSafeArray( 3, &psaMtx, &piData ) ){
    return g_ErrorToHresult(1);
  }
  piData[0] = g_aiMouseEvents[MOUSE_LEFT][MOUSE_UP];
  piData[1] = g_aiMouseEvents[MOUSE_MIDDLE][MOUSE_UP];  
  piData[2] = g_aiMouseEvents[MOUSE_RIGHT][MOUSE_UP];  
  SafeArrayUnaccessData( psaMtx );
  * ppsaMtx = psaMtx;
  
  return S_OK;
}
Beispiel #5
0
//==============================================================================
STDMETHODIMP CVMouse::GetAllEvents(SAFEARRAY ** ppsaMtx){
  SAFEARRAY *psaMtx;
  int * piData;
  int iSize;

  * ppsaMtx = NULL;
  if( g_MakeSafeArray( 3, 3, &psaMtx, &piData ) ){
    return g_ErrorToHresult(1);
  }
  iSize = sizeof(g_aiMouseEvents);
  memcpy( piData, g_aiMouseEvents, sizeof(g_aiMouseEvents));
  SafeArrayUnaccessData( psaMtx );
  * ppsaMtx = psaMtx;

  return S_OK;
}