Правильно, что вы получаете исключение при попытке преобразовать данные в буфере в структуру другого типа, чем была изначально создана CONAFileSystem.CONAFindNextFolder.
Вы пытаетесь форсировать структуру данных типа CONADefinitions.CONAPI_FOLDER_INFO в структуру типа CONADefinitions.CONAPI_FOLDER_INFO2. Они почти наверняка имеют разную длину и т. Д., Поэтому крайне маловероятно, что этот метод когда-либо сработает.
Из опыта разработки C ++ для операционной системы Symbian, модель, которую Nokia, вероятно, будет использовать здесь, - это модель, в которой они впоследствии разработали более новую версию API и поэтому создали новую версию структуры CONADefinitions.CONAPI_FOLDER_INFO (т.е. CONADefinitions.CONAPI_FOLDER_INFO2).
Предполагая, что это правильно, есть 3 вероятности:
1) В первой функции есть параметр enum, который указывает, какая версия структуры вывода должна быть создана.
2) Существует новая функция, которая возвращает новую структуру, например, CONAFileSystem.CONAFindFirstFolder2, CONAFileSystem.CONAFindNextFolder2
3) Nokia разработала новую версию внутри страны, но еще не выпустила ее публично.