@TriUrs: I quickly checked this and can confirm this. The reason is, that the T30 library had a interrupt reason missing. After adding the "No acknolege" interrupt, there is no more timeout error. I think there is a further issue, nevertheless I share with you a version that fixes this issue. You can doanload the version here. After that fix, do you still see any issues with the device you are communicating?

I've used the release lib, unfortunately it doesn't work. I think I need the DLL too?

I have discovered another error but is hard to reproduce:
Sometimes the I2C bus is "locked". An OpenI2C always returns 'false', GetLastError() returns 0.
A cold reboot doesn't unlock the I2C bus. I need to switch the T30 module completely off and on.

I'm not sure if it has something to do with the upper issue. I try to find out if the upper issue is solved :-)

@samuel.tx: no compiler or linker error. But I need the DLL at runtime. Otherwise I get a "unable to import library TdxAllLibraries.DLL.dll" error. I would say this is a normal behavior. There are tricks to include the DLL but this is not the intention of a DLL :-)
btw: I use CE800, but should not be different to CE700. If you rename or delete the DLL it shouldn't run.

(Maybe this would be in a new ticket?)
I've tested it with the new DLL and C++ and now I can write to I2C slaves with address register. Unfortunately nothing happens at the chip. Under C# it works, so no hardware fault. Probably I've made a mistake somewhere but until now I haven't discovered any mistake.

The other issue I found: I use a C# (r) and C++ (r/w) application at the same time accessing the I2C bus. Now if I run both applications I get always a timeout error (code 1460) for write commands under C++, but read commands are working. In my C# application I only read at 1 second intervals. Tried to higher timeout at my C++ application for a test without success: TegI2c_SetConfigInt(i2cHandle, L"Timeout", 500, StoreVolatile);

I still try to read/write data with a register address with the new pre-release library. So I took a new Ixora carrier board V1.0A which has an EEPROM (latest doesnt') and took this example and modified it a little bit.

Library: latest prelease provided in this thread

OS: WinCE 2013 V2.0

Module: Apalis T30 1GB IT V1.1A

I can read the RTC but I can't write and read the EEPROM. Return value gives me the right number of bytes for read and write operation, but its wrong. To verify if any data are written I used the example with the old library. With the old example I'm able to read and write (so no hardware fault) successful.

Now if I read the help there are parameters "RegisterAddr" and "RegisterAddrSize". Should I not set these parameters? Tried this with a second code but it doesn't work either. At read operation it's blocked, write doesn't write (but tells me correct number of bytes written).