Ok, ya vi lo que pasa SPP_DEVICE_INFO es un puntero. Tenemos que usar SP_DEVICE_INFO:
- Code: Select all Expand view
HB_FUNC( SFNTGETDEVICEINFO )
{
SP_DEVICE_INFO deviceInfo;
hb_retnl( SFNTGetDeviceInfo( ( SP_HANDLE ) hb_parnl( 1 ), &deviceInfo ) ); // OJO al &
hb_storclen( ( char * ) deviceInfo, sizeof( SP_DEVICE_INFO ), 2 );
}
Y
- Code: Select all Expand view
HB_FUNC( SFNTGETDEVICEINFO )
{
SP_DEVICE_INFO deviceInfo;
SFNTGetDeviceInfo( ( SP_HANDLE ) hb_parnl( 1 ), &deviceInfo );
hb_reta( 10 ); // vamos a devolver un array de 10 elementos
hb_stornl( ( LONG ) deviceInfo.formFactorType, -1, 1 );
hb_stornl( ( LONG ) deviceInfo.productCode, -1, 2 );
hb_stornl( ( LONG ) deviceInfo.hardlimit, -1, 3 );
hb_stornl( ( LONG ) deviceInfo.capabilities, -1, 4 );
hb_stornl( ( LONG ) deviceInfo.devID, -1, 5 );
hb_stornl( ( LONG ) deviceInfo.devSN, -1, 6 );
hb_stornl( ( LONG ) deviceInfo.timeValue, -1, 7 );
hb_stornl( ( LONG ) deviceInfo.memorySize, -1, 8 );
hb_stornl( ( LONG ) deviceInfo.freeSize, -1, 9 );
hb_stornl( ( LONG ) deviceInfo.drvVersion, -1, 10 );
}